babylon.quarks 0.20.0 → 0.21.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,28 @@ All notable changes to the `babylon.quarks` 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.21.0] — 2026-10-16
8
+
9
+ ### Added
10
+
11
+ - `QuarksResourceResolver` on `QuarksLoaderOptions` (`resolve` / `fetchJson`) so File pickers,
12
+ CDN layouts and virtual FS backends can resolve relative texture and geometry links without
13
+ calling `resolveExternalGeometries` by hand.
14
+ - `loadFromJSON(json, baseUrl?)` — same pipeline as `load(url)` when the effect document is
15
+ already in memory; `resolveResources` / static `resolveLinkedResources` for prepare-only.
16
+ - `loadAll(urls)` and `loadFromJSONAll(entries)` for battle / level preload: fetch effect docs
17
+ (optional `concurrency`), resolve every linked geometry/image across the pack so shared asset
18
+ urls hit a per-scene fetch cache once, then parse. `continueOnError` and `onProgress` (once per
19
+ settled effect) supported; without `continueOnError` the return type is `TransformNode[]`.
20
+ - `QuarksLoader.joinUrl` for portable baseUrl joining (data/blob/absolute urls left alone).
21
+
22
+ ### Changed
23
+
24
+ - `load(url)` goes through `loadFromJSON` after fetching the effect JSON. Geometry JSON fetches
25
+ are deduped per scene; inlined array fields are copied so cached documents are not aliased
26
+ across effects. Prefer `load` / `loadFromJSON` / `resolveResources` over
27
+ `resolveExternalGeometries` (kept for compatibility).
28
+
7
29
  ## [0.20.0] — 2026-10-16
8
30
 
9
31
  ### Added
package/README.md CHANGED
@@ -170,6 +170,8 @@ import {BatchedRenderer, QuarksLoader, QuarksUtil} from 'babylon.quarks';
170
170
  const batchRenderer = new BatchedRenderer('particles', scene);
171
171
  const loader = new QuarksLoader(scene);
172
172
  const effect = await loader.load('effects/explosion.json');
173
+ // Or preload a battle pack — shared textures/geometries fetch once:
174
+ // const roots = await loader.loadAll(['fx/hit.json', 'fx/explosion.json'], { concurrency: 6 });
173
175
  QuarksUtil.addToBatchRenderer(effect, batchRenderer);
174
176
  QuarksUtil.play(effect);
175
177
  ```