babylon.quarks-editor 0.24.0 → 0.25.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -4,6 +4,22 @@ All notable changes to the `babylon.quarks-editor` package are documented here.
4
4
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
5
5
  and the project follows the `quarks.core` 0.x version line.
6
6
 
7
+ ## [0.25.0] — 2026-10-20
8
+
9
+ ### Added
10
+
11
+ - Renderer module: "Beam (end set in code)" render mode. The beam's end is a runtime property
12
+ (`ParticleSystem.beamEnd`), so in the editor a beam has no length and draws nothing.
13
+
14
+ ## [0.24.1] — 2026-10-20
15
+
16
+ ### Fixed
17
+
18
+ - With Babylon 9.31 the viewport lost its ground grid (the whole plane drew in flat grey) and the
19
+ gizmos, viewport selection and drop-to-place stopped responding: 9.31's grid needs `linesOnly`
20
+ for what opacity below 1 used to do, and `scene.pick` now needs `@babylonjs/core/Culling/ray`
21
+ imported for its side effect, which the editor now does.
22
+
7
23
  ## [0.24.0] — 2026-10-20
8
24
 
9
25
  ### Added
@@ -1,3 +1,4 @@
1
+ import '@babylonjs/core/Culling/ray';
1
2
  import { Vector3 } from '@babylonjs/core/Maths/math.vector';
2
3
  import type { Scene } from '@babylonjs/core/scene';
3
4
  import type { BatchedRenderer } from 'babylon.quarks';
@@ -1,3 +1,4 @@
1
+ import '@babylonjs/core/Culling/ray';
1
2
  import { Vector3 } from '@babylonjs/core/Maths/math.vector';
2
3
  import { DEFAULT_GALLERY_SPACING, galleryGridPosition } from './galleryLayout';
3
4
  /** Clears live particles and freezes simulation for one scene entry. */
@@ -1,3 +1,4 @@
1
+ import '@babylonjs/core/Culling/ray';
1
2
  import { TransformNode } from '@babylonjs/core/Meshes/transformNode';
2
3
  import type { Scene } from '@babylonjs/core/scene';
3
4
  import type { SceneEntry } from './sceneEntries';
@@ -1,3 +1,4 @@
1
+ import '@babylonjs/core/Culling/ray';
1
2
  import { MeshBuilder } from '@babylonjs/core/Meshes/meshBuilder';
2
3
  import { EDITOR_SCENE_NODE_METADATA } from './editorScene';
3
4
  import { GROUND_RING_RADIUS, GalleryHoverMarker } from './gallerySelectionMarker';
@@ -1,3 +1,4 @@
1
+ import '@babylonjs/core/Culling/ray';
1
2
  import { Scene } from '@babylonjs/core/scene';
2
3
  import { BatchedRenderer } from 'babylon.quarks';
3
4
  import React from 'react';
@@ -1,5 +1,7 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { ArcRotateCamera } from '@babylonjs/core/Cameras/arcRotateCamera';
3
+ // scene.pick lives in Ray's side effect (Babylon 9.31 no longer pulls it in); gizmos pick through it.
4
+ import '@babylonjs/core/Culling/ray';
3
5
  import { Engine } from '@babylonjs/core/Engines/engine';
4
6
  import { PointerEventTypes } from '@babylonjs/core/Events/pointerEvents';
5
7
  import { GizmoManager } from '@babylonjs/core/Gizmos/gizmoManager';
@@ -293,6 +295,9 @@ export function EffectEditorHost(props) {
293
295
  groundMaterial.mainColor = new Color3(1, 1, 1);
294
296
  groundMaterial.lineColor = new Color3(1, 1, 1);
295
297
  groundMaterial.opacity = 0.5;
298
+ // Draw only the lines. Babylon < 9.31 did this by itself for opacity < 1; 9.31 needs the flag,
299
+ // or the whole plane is filled with the main color.
300
+ groundMaterial.linesOnly = true;
296
301
  const ground = MeshBuilder.CreateGround('ground', { width: 100, height: 100 }, scene);
297
302
  ground.material = groundMaterial;
298
303
  const gizmoUtilityLayer = new UtilityLayerRenderer(scene);
@@ -373,6 +373,7 @@ export function RendererModule({ binding, textureOptions, geometryOptions, resol
373
373
  { value: RenderMode.VerticalBillBoard, label: 'Vertical billboard' },
374
374
  { value: RenderMode.Trail, label: 'Trail' },
375
375
  { value: RenderMode.Mesh, label: 'Mesh' },
376
+ { value: RenderMode.Beam, label: 'Beam (end set in code)' },
376
377
  ], onChange: (mode) => binding.apply((s) => (s.renderMode = mode)) }) }), system.renderMode === RenderMode.Trail && (_jsxs(_Fragment, { children: [_jsx(Row, { label: "Trail length", children: _jsx(NumberField, { value: readScalar(system.rendererEmitterSettings.startLength).value, min: 1, step: 1, onChange: (v) => binding.apply((s) => {
377
378
  s.rendererEmitterSettings.startLength =
378
379
  new ConstantValue(Math.round(v));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "babylon.quarks-editor",
3
- "version": "0.24.0",
3
+ "version": "0.25.0",
4
4
  "description": "Shuriken-style effect editor for babylon.quarks: headless edit-model core + React module-stack UI",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,3 +1,4 @@
1
+ import '@babylonjs/core/Culling/ray';
1
2
  import {Vector3} from '@babylonjs/core/Maths/math.vector';
2
3
  import type {Scene} from '@babylonjs/core/scene';
3
4
  import type {BatchedRenderer} from 'babylon.quarks';
@@ -1,3 +1,4 @@
1
+ import '@babylonjs/core/Culling/ray';
1
2
  import {Mesh} from '@babylonjs/core/Meshes/mesh';
2
3
  import {MeshBuilder} from '@babylonjs/core/Meshes/meshBuilder';
3
4
  import {TransformNode} from '@babylonjs/core/Meshes/transformNode';
@@ -1,4 +1,6 @@
1
1
  import {ArcRotateCamera} from '@babylonjs/core/Cameras/arcRotateCamera';
2
+ // scene.pick lives in Ray's side effect (Babylon 9.31 no longer pulls it in); gizmos pick through it.
3
+ import '@babylonjs/core/Culling/ray';
2
4
  import {Engine} from '@babylonjs/core/Engines/engine';
3
5
  import {PointerEventTypes} from '@babylonjs/core/Events/pointerEvents';
4
6
  import {GizmoManager} from '@babylonjs/core/Gizmos/gizmoManager';
@@ -411,6 +413,9 @@ export function EffectEditorHost(props: EffectEditorHostProps) {
411
413
  groundMaterial.mainColor = new Color3(1, 1, 1);
412
414
  groundMaterial.lineColor = new Color3(1, 1, 1);
413
415
  groundMaterial.opacity = 0.5;
416
+ // Draw only the lines. Babylon < 9.31 did this by itself for opacity < 1; 9.31 needs the flag,
417
+ // or the whole plane is filled with the main color.
418
+ groundMaterial.linesOnly = true;
414
419
  const ground = MeshBuilder.CreateGround('ground', {width: 100, height: 100}, scene);
415
420
  ground.material = groundMaterial;
416
421
 
@@ -940,6 +940,7 @@ export function RendererModule({
940
940
  {value: RenderMode.VerticalBillBoard, label: 'Vertical billboard'},
941
941
  {value: RenderMode.Trail, label: 'Trail'},
942
942
  {value: RenderMode.Mesh, label: 'Mesh'},
943
+ {value: RenderMode.Beam, label: 'Beam (end set in code)'},
943
944
  ]}
944
945
  onChange={(mode) => binding.apply((s) => (s.renderMode = mode))}
945
946
  />