pixi-effects 0.50.0 → 0.50.1
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 +11 -0
- package/README.md +7 -7
- package/ai/CHAT.md +1 -1
- package/ai/chat-template.html +11 -5
- package/dist/3d.cjs +8 -7
- package/dist/3d.cjs.map +1 -1
- package/dist/3d.js +2 -1
- package/dist/3d.js.map +1 -1
- package/dist/Composition-5SBIDTBB.cjs +17 -0
- package/dist/{Composition-47U5U637.cjs.map → Composition-5SBIDTBB.cjs.map} +1 -1
- package/dist/Composition-7D6ERUVY.js +8 -0
- package/dist/{Composition-GVWWLFDL.js.map → Composition-7D6ERUVY.js.map} +1 -1
- package/dist/{Spans-R426NVY3.cjs → Spans-OBNYI6LJ.cjs} +10 -9
- package/dist/Spans-OBNYI6LJ.cjs.map +1 -0
- package/dist/{Spans-3SEZSTQV.js → Spans-WRQPIDPO.js} +5 -4
- package/dist/Spans-WRQPIDPO.js.map +1 -0
- package/dist/{chunk-UTUUOQ47.js → chunk-24MVJFW4.js} +5 -62
- package/dist/chunk-24MVJFW4.js.map +1 -0
- package/dist/{chunk-YOKRPAKA.cjs → chunk-2DC6TRJI.cjs} +46 -103
- package/dist/chunk-2DC6TRJI.cjs.map +1 -0
- package/dist/{chunk-O2MD3L4J.cjs → chunk-2VMLNKHT.cjs} +63 -63
- package/dist/{chunk-O2MD3L4J.cjs.map → chunk-2VMLNKHT.cjs.map} +1 -1
- package/dist/{chunk-VVUSZVP7.cjs → chunk-NXMNBFHM.cjs} +78 -4
- package/dist/chunk-NXMNBFHM.cjs.map +1 -0
- package/dist/{chunk-TXNQLMRT.js → chunk-OI75LGIB.js} +3 -3
- package/dist/{chunk-TXNQLMRT.js.map → chunk-OI75LGIB.js.map} +1 -1
- package/dist/{chunk-SSVHAF3Q.js → chunk-SC7EWGHB.js} +79 -6
- package/dist/chunk-SC7EWGHB.js.map +1 -0
- package/dist/index.cjs +37 -37
- package/dist/index.js +3 -3
- package/dist/loader.css +1 -1
- package/dist/present.cjs +3 -3
- package/dist/present.js +3 -3
- package/dist/three.cjs +9 -7
- package/dist/three.cjs.map +1 -1
- package/dist/three.d.cts +2 -0
- package/dist/three.d.ts +2 -0
- package/dist/three.js +3 -1
- package/dist/three.js.map +1 -1
- package/docs/api.md +10 -0
- package/docs/dsl.md +5 -3
- package/llms-full.txt +18 -5
- package/package.json +1 -1
- package/skills/pixi-effects/SKILL.md +3 -2
- package/skills/pixi-effects/template.html +14 -8
- package/dist/Composition-47U5U637.cjs +0 -16
- package/dist/Composition-GVWWLFDL.js +0 -7
- package/dist/Spans-3SEZSTQV.js.map +0 -1
- package/dist/Spans-R426NVY3.cjs.map +0 -1
- package/dist/chunk-SSVHAF3Q.js.map +0 -1
- package/dist/chunk-UTUUOQ47.js.map +0 -1
- package/dist/chunk-VVUSZVP7.cjs.map +0 -1
- package/dist/chunk-YOKRPAKA.cjs.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.50.1
|
|
4
|
+
|
|
5
|
+
Fixes from a trial of 8 fresh agents (Sonnet, Opus) making videos with `scene2d` / `scene3d` on 0.50.0; nothing breaks.
|
|
6
|
+
|
|
7
|
+
- **Fixed: an `.ogg` sound played nothing, with no warning.** PixiJS's own video loader took `.ogg` as a video, so an audio layer on it was silent and `check` said nothing; `.m4a`, `.flac` and `.opus` had no loader at all and stopped `init` with "Cannot read properties of null". An audio asset may now be `.mp3`, `.wav`, `.ogg`, `.oga`, `.m4a`, `.aac`, `.flac` or `.opus` (a query after the name is fine), and a sound asset that did not load, or a video with no sound track used as one, stops `init` with the layer, the asset, its file and the formats. Test film `audio-formats`.
|
|
8
|
+
- **PixiJS's official skills are named where an agent writes PixiJS code.** `scene2d` and `scene3d` hold plain PixiJS / PixiJS 3D code, and PixiJS publishes official skills for both (`npx skills add pixijs/pixijs-skills`, MIT); SKILL.md, AGENTS.md, the README, the For AI page and the `scene2d` / `scene3d` sections say so, with the copy inside the npm package of the version the template loads (`pixi.js@8.23.0/skills/pixijs`, `@pixi/3d@0.1.0/skills/pixijs-3d`), readable with no install. The `scene3d` section lists the @pixi/3d geometries with their options and the materials (`emissive: { color, strength }`), and says that @pixi/3d ignores an option it does not know (3 of 4 agents grepped the package's types for them; one passed `tubeRadius` to `TorusGeometry` and got a fat ring).
|
|
9
|
+
- **A PixiJS deprecation keeps its message in `check` and the chat's red box.** PixiJS prints it as a collapsed console group titled with the message and only the stack inside, so the collected warning was a bare stack; both templates now put an open group's title before the warnings inside it.
|
|
10
|
+
- **The sound-effect knobs are shown in place.** 4 of 8 agents wrote `pitch` beside `sfx: 'chime'` (the warning caught it); SKILL.md and CHAT.md now show `sfx: { preset: 'chime', pitch: 7 }` with the units.
|
|
11
|
+
- **`three`: `ctx.objects`** in `update`, what setup returned plus `camera`, as the `scene2d` and `scene3d` layers already have.
|
|
12
|
+
- **`random(seed)` and `rand(seed)` have their own section** in the API reference, so `help random` answers with them (it printed the canvas layer).
|
|
13
|
+
|
|
3
14
|
## 0.50.0
|
|
4
15
|
|
|
5
16
|
Nothing breaks: `scene2d`, a layer of PixiJS 2D objects built by your code (core, nothing to import), and two fixes for every engine: a rebuild that keeps a scene starts its keyframes from setup's values, and a routed `tint` keyframe moves by channel.
|
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# pixi-effects
|
|
2
2
|
|
|
3
|
-
> **Status**: experimental — current release `0.50.
|
|
3
|
+
> **Status**: experimental — current release `0.50.1`. The API may still change between minor versions; see the [CHANGELOG](./CHANGELOG.md) for what each release changed.
|
|
4
4
|
|
|
5
5
|
**[Gallery →](https://yjmtmtk.github.io/pixi-effects/examples/gallery/)** · 43 pieces written as plain data by AI models · **[For AI →](https://yjmtmtk.github.io/pixi-effects/for-ai.html)** · what an AI reads and runs · **[Playground →](https://yjmtmtk.github.io/pixi-effects/examples/playground.html)** in the browser.
|
|
6
6
|
|
|
@@ -10,7 +10,7 @@ Give any AI (ChatGPT, Claude, Codex, Cursor, Claude Code …) one sentence:
|
|
|
10
10
|
|
|
11
11
|
> Use https://github.com/yjmtmtk/pixi-effects to make a video: a 10-second title for a bakery, warm colours, a soft chime at the end.
|
|
12
12
|
|
|
13
|
-
That is all it needs. **To register it as a skill** in your agent (Claude Code, Codex, Cursor, Gemini CLI, Copilot, OpenCode, …): `npx skills add yjmtmtk/pixi-effects` (update with `npx skills update`). In Claude Code you can also run `/plugin install pixi-effects --marketplace yjmtmtk/pixi-effects`. **If you are the AI** that was asked to do this, do not read the whole repository: if you can run commands (a shell, Node 22, Chrome), read [`AGENTS.md`](./AGENTS.md) and [`skills/pixi-effects/SKILL.md`](./skills/pixi-effects/SKILL.md); if you can only write text (a browser chat), fetch https://raw.githubusercontent.com/yjmtmtk/pixi-effects/main/ai/CHAT.md and follow it. You will write the video as plain data in one HTML file, check it (the check tool writes a contact sheet to look at), and hand it over; the person opens the file and downloads the MP4 with the button in the player bar.
|
|
13
|
+
That is all it needs. **To register it as a skill** in your agent (Claude Code, Codex, Cursor, Gemini CLI, Copilot, OpenCode, …): `npx skills add yjmtmtk/pixi-effects` (update with `npx skills update`). In Claude Code you can also run `/plugin install pixi-effects --marketplace yjmtmtk/pixi-effects`. For the PixiJS code you may write inside a `scene2d` or `scene3d` layer, PixiJS's own official skills help too: `npx skills add pixijs/pixijs-skills` ([pixijs/pixijs-skills](https://github.com/pixijs/pixijs-skills)). **If you are the AI** that was asked to do this, do not read the whole repository: if you can run commands (a shell, Node 22, Chrome), read [`AGENTS.md`](./AGENTS.md) and [`skills/pixi-effects/SKILL.md`](./skills/pixi-effects/SKILL.md); if you can only write text (a browser chat), fetch https://raw.githubusercontent.com/yjmtmtk/pixi-effects/main/ai/CHAT.md and follow it. You will write the video as plain data in one HTML file, check it (the check tool writes a contact sheet to look at), and hand it over; the person opens the file and downloads the MP4 with the button in the player bar.
|
|
14
14
|
|
|
15
15
|
Declarative composition and video rendering for the web. After Effects-style timelines on top of [PixiJS v8](https://pixijs.com/), with a small timeline of its own and strict TypeScript types. The ease names and the way `to` / `from` / `set` read are [GSAP](https://gsap.com/)'s, with thanks. Render to MP4 / WebM / MOV via [mediabunny](https://mediabunny.dev/).
|
|
16
16
|
|
|
@@ -52,8 +52,8 @@ Drop the imports into an [importmap](https://developer.mozilla.org/docs/Web/HTML
|
|
|
52
52
|
"imports": {
|
|
53
53
|
"pixi.js": "https://esm.sh/pixi.js@8.23.0?bundle-deps",
|
|
54
54
|
"mediabunny": "https://esm.sh/mediabunny",
|
|
55
|
-
"pixi-effects": "https://cdn.jsdelivr.net/npm/pixi-effects@0.50.
|
|
56
|
-
"pixi-effects/controller": "https://cdn.jsdelivr.net/npm/pixi-effects@0.50.
|
|
55
|
+
"pixi-effects": "https://cdn.jsdelivr.net/npm/pixi-effects@0.50.1/dist/index.js",
|
|
56
|
+
"pixi-effects/controller": "https://cdn.jsdelivr.net/npm/pixi-effects@0.50.1/dist/Controller.js"
|
|
57
57
|
}
|
|
58
58
|
}
|
|
59
59
|
</script>
|
|
@@ -66,7 +66,7 @@ Drop the imports into an [importmap](https://developer.mozilla.org/docs/Web/HTML
|
|
|
66
66
|
|
|
67
67
|
The `mediabunny` line is needed only to export (the download button, `movie.render()`) or for a `video` layer; a page that only plays can leave it out and never fetches it (or call `useMediabunny(url)` instead, see [the API](docs/api.md#where-the-encoder-comes-from-usemediabunnysource)).
|
|
68
68
|
|
|
69
|
-
Load the `dist/` files **as they are** (jsDelivr's `/npm/…/dist/…`, or unpkg's `https://unpkg.com/pixi-effects@0.50.
|
|
69
|
+
Load the `dist/` files **as they are** (jsDelivr's `/npm/…/dist/…`, or unpkg's `https://unpkg.com/pixi-effects@0.50.1/dist/index.js`) rather than a CDN-rebundled build such as `esm.sh/pixi-effects` or jsDelivr's `+esm`: the entries (`pixi-effects`, `…/controller`, `…/three`) share internal chunks, which only works when each file is served untouched.
|
|
70
70
|
|
|
71
71
|
> **A 3D scene?** Add three more entries (`pixi-effects/3d`, `@pixi/3d`, `@pixi/3d/extras`) — see [Adding a 3D scene](#adding-a-3d-scene-optional) below. **Using three.js?** Add two more entries (`three` and `pixi-effects/three`) to this importmap — see [Adding three.js](#adding-threejs-optional) below.
|
|
72
72
|
>
|
|
@@ -81,7 +81,7 @@ Add three entries to the importmap above (PixiJS 3D needs `pixi.js` 8.23.0 or la
|
|
|
81
81
|
{
|
|
82
82
|
"imports": {
|
|
83
83
|
"...": "(everything from the importmap above)",
|
|
84
|
-
"pixi-effects/3d": "https://cdn.jsdelivr.net/npm/pixi-effects@0.50.
|
|
84
|
+
"pixi-effects/3d": "https://cdn.jsdelivr.net/npm/pixi-effects@0.50.1/dist/3d.js",
|
|
85
85
|
"@pixi/3d": "https://cdn.jsdelivr.net/npm/@pixi/3d@0.1.0/dist/pixijs-3d.min.mjs",
|
|
86
86
|
"@pixi/3d/extras": "https://cdn.jsdelivr.net/npm/@pixi/3d@0.1.0/dist/pixijs-3d-extras.min.mjs"
|
|
87
87
|
}
|
|
@@ -125,7 +125,7 @@ Add two more entries to the importmap above: three.js itself, and the `pixi-effe
|
|
|
125
125
|
"...": "(everything from the importmap above)",
|
|
126
126
|
"three": "https://esm.sh/three@0.178.0",
|
|
127
127
|
"three/addons/": "https://cdn.jsdelivr.net/npm/three@0.178.0/examples/jsm/",
|
|
128
|
-
"pixi-effects/three": "https://cdn.jsdelivr.net/npm/pixi-effects@0.50.
|
|
128
|
+
"pixi-effects/three": "https://cdn.jsdelivr.net/npm/pixi-effects@0.50.1/dist/three.js"
|
|
129
129
|
}
|
|
130
130
|
}
|
|
131
131
|
</script>
|
package/ai/CHAT.md
CHANGED
|
@@ -58,7 +58,7 @@ That is a complete, working video (the block between the two markers). Change th
|
|
|
58
58
|
- **Shapes:** `shape: 'rect' | 'circle' | 'ellipse' | 'arc' | 'line' | 'polygon' | 'path'`. `rect`: `width height cornerRadius`; `circle`: `radius`; `line`: `from: [x, y], to: [x, y]` (canvas coordinates, no `x, y`); `path`: `d` (SVG path data). Style: `fillColor strokeColor strokeWidth fillAlpha`.
|
|
59
59
|
- **Text:** `style` is a PixiJS text style (`fontSize fontFamily fontWeight fill letterSpacing align wordWrap wordWrapWidth lineHeight`). Use fonts that exist everywhere (`Georgia, serif`, `Arial, sans-serif`, `ui-monospace, monospace`); this page loads no web fonts. Estimate a text's width at about 0.6 × `fontSize` per character, keep important text 5 % away from the edges, and keep the bottom 60 px free (the player bar covers it in the preview, not in the file).
|
|
60
60
|
- **Scenes.** Stack layers with `at` / `duration` over an opaque background rect. Do not remove layers.
|
|
61
|
-
- **Sound with no files:** `{ type: 'audio', sfx: 'swoosh', at: 2 }`. Presets: `click pop swoosh swipe hit riser chime beep coin glitch typewriter`;
|
|
61
|
+
- **Sound with no files:** `{ type: 'audio', sfx: 'swoosh', at: 2 }`. Presets: `click pop swoosh swipe hit riser chime beep coin glitch typewriter`; to change one: `sfx: { preset: 'chime', pitch: 7 }` (`pitch` in semitones, `brightness` −1 … 1; inside `sfx`, never beside it). A `riser` is loudest at its **end**: start it `duration` seconds before the hit. This page cannot load music or images from your own files; use shapes, text, sfx and `music` (below).
|
|
62
62
|
- **Repeat with code, never by copying:** `Array.from({ length: 12 }, (_, i) => ({ type: 'shape', shape: 'circle', radius: 20, at: i * 0.15, duration: DURATION - i * 0.15, initial: { x: 120 + i * 90, y: 360, fillColor: '#ffd166' }, keyframes: [{ at: 0, from: { scale: 0 }, to: { scale: 1 }, duration: 0.4, ease: 'back.out(2)' }] }))` returns twelve layers: spread them into `sequences` with `...`.
|
|
63
63
|
- **Helpers already imported** in the template: `kenBurns` (slow zoom for an image layer), `withFade`, `wiggle` (seeded shake as keyframes), `stagger`, `animateText` (per letter / word entrances), `followPath`, `particles` (seeded confetti / snow / sparks as layers), `deck` (slides). Each returns keyframes or layers: `keyframes: wiggle(...)`, `...particles(...)`. The full signatures are in `https://raw.githubusercontent.com/yjmtmtk/pixi-effects/main/skills/pixi-effects/reference/cheatsheet.md` (22 KB; read it only if you need a helper).
|
|
64
64
|
- **Advanced:** `const INIT = { assets: [...], composition: { transitions: [...] } }` in the edit block adds `movie.init` options (the page merges it); most videos need nothing here.
|
package/ai/chat-template.html
CHANGED
|
@@ -39,9 +39,15 @@
|
|
|
39
39
|
document.getElementById('problems-text').textContent = '\n' + window.__logs.join('\n');
|
|
40
40
|
};
|
|
41
41
|
const add = (line) => { window.__logs.push(line); show(); };
|
|
42
|
+
// A console group's title leads the warnings inside it (PixiJS prints a deprecation as a group titled with its message, the stack inside).
|
|
43
|
+
let group = '';
|
|
44
|
+
const text = (a) => { if (typeof a[0] === 'string' && a[0].includes('%')) { let i = 1; a = [a[0].replace(/%([csdifoO])/g, (_, f) => f === 'c' ? (i++, '') : String(a[i++])), ...a.slice(i)]; } return a.map(x => (x && x.message) || String(x)).join(' '); };
|
|
45
|
+
const gc = console.groupCollapsed.bind(console), ge = console.groupEnd.bind(console);
|
|
46
|
+
console.groupCollapsed = (...a) => { group = text(a); gc(...a); };
|
|
47
|
+
console.groupEnd = () => { group = ''; ge(); };
|
|
42
48
|
for (const k of ['warn', 'error']) {
|
|
43
49
|
const orig = console[k].bind(console);
|
|
44
|
-
console[k] = (...a) => { add(k + ': ' +
|
|
50
|
+
console[k] = (...a) => { add(k + ': ' + (group ? group + ' — ' : '') + text(a)); orig(...a); };
|
|
45
51
|
}
|
|
46
52
|
window.addEventListener('error', e => add('uncaught: ' + e.message));
|
|
47
53
|
window.addEventListener('unhandledrejection', e => add('unhandled: ' + (e.reason && e.reason.message || e.reason)));
|
|
@@ -59,10 +65,10 @@
|
|
|
59
65
|
"imports": {
|
|
60
66
|
"pixi.js": "https://cdn.jsdelivr.net/npm/pixi.js@8.23.0/dist/pixi.min.mjs",
|
|
61
67
|
"mediabunny": "https://cdn.jsdelivr.net/npm/mediabunny@1.61.3/+esm",
|
|
62
|
-
"pixi-effects": "https://cdn.jsdelivr.net/npm/pixi-effects@0.50.
|
|
63
|
-
"pixi-effects/controller": "https://cdn.jsdelivr.net/npm/pixi-effects@0.50.
|
|
64
|
-
"pixi-effects/present": "https://cdn.jsdelivr.net/npm/pixi-effects@0.50.
|
|
65
|
-
"pixi-effects/3d": "https://cdn.jsdelivr.net/npm/pixi-effects@0.50.
|
|
68
|
+
"pixi-effects": "https://cdn.jsdelivr.net/npm/pixi-effects@0.50.1/dist/index.js",
|
|
69
|
+
"pixi-effects/controller": "https://cdn.jsdelivr.net/npm/pixi-effects@0.50.1/dist/Controller.js",
|
|
70
|
+
"pixi-effects/present": "https://cdn.jsdelivr.net/npm/pixi-effects@0.50.1/dist/present.js",
|
|
71
|
+
"pixi-effects/3d": "https://cdn.jsdelivr.net/npm/pixi-effects@0.50.1/dist/3d.js",
|
|
66
72
|
"@pixi/3d": "https://cdn.jsdelivr.net/npm/@pixi/3d@0.1.0/dist/pixijs-3d.min.mjs",
|
|
67
73
|
"@pixi/3d/extras": "https://cdn.jsdelivr.net/npm/@pixi/3d@0.1.0/dist/pixijs-3d-extras.min.mjs"
|
|
68
74
|
}
|
package/dist/3d.cjs
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkNXMNBFHM_cjs = require('./chunk-NXMNBFHM.cjs');
|
|
4
|
+
require('./chunk-VQXZ2NOI.cjs');
|
|
4
5
|
var chunkGXGIISFS_cjs = require('./chunk-GXGIISFS.cjs');
|
|
5
6
|
var chunk3FCDRLW3_cjs = require('./chunk-3FCDRLW3.cjs');
|
|
6
7
|
var chunkDOLTCXCL_cjs = require('./chunk-DOLTCXCL.cjs');
|
|
@@ -247,7 +248,7 @@ async function layerTexture(ctx, name, options = {}) {
|
|
|
247
248
|
var OWN_KEYS = ["width", "height", "view", "resolution", "setup", "update", "dispose", "followCamera", "followLights", "followFog", "reuse"];
|
|
248
249
|
var THREE_ONLY = ["renderer", "shareGpu", "antialias"];
|
|
249
250
|
var LAYER_OWNED = ["width", "height", "autoResize"];
|
|
250
|
-
var Scene3DSequence = class extends
|
|
251
|
+
var Scene3DSequence = class extends chunkNXMNBFHM_cjs.Sequence {
|
|
251
252
|
_view = null;
|
|
252
253
|
_ctx = null;
|
|
253
254
|
_objects = {};
|
|
@@ -272,7 +273,7 @@ var Scene3DSequence = class extends chunkVVUSZVP7_cjs.Sequence {
|
|
|
272
273
|
/** True once another layer took this layer's scene: destroying this one must not let it go. */
|
|
273
274
|
_donated = false;
|
|
274
275
|
/** What setup left on the objects the keyframes reach, shared with a layer that takes the scene over (core/setupValues.ts). */
|
|
275
|
-
_setupValues = new
|
|
276
|
+
_setupValues = new chunkNXMNBFHM_cjs.SetupValues();
|
|
276
277
|
_pendingRebinds = [];
|
|
277
278
|
_lightMirror = null;
|
|
278
279
|
_fogMirror = null;
|
|
@@ -303,14 +304,14 @@ var Scene3DSequence = class extends chunkVVUSZVP7_cjs.Sequence {
|
|
|
303
304
|
if (this.duration === void 0) this.duration = this.parent?.duration ?? this.root.duration;
|
|
304
305
|
this._checkKeys();
|
|
305
306
|
this._checkTint();
|
|
306
|
-
if (typeof spec.update === "function" &&
|
|
307
|
+
if (typeof spec.update === "function" && chunkNXMNBFHM_cjs.NOT_PURE.test(spec.update.toString())) {
|
|
307
308
|
this._say("pure", "update calls Math.random, Date.now, performance.now or new Date, so it is not deterministic: the same frame would draw differently in playback, in a seek and in an export. Derive the value from t");
|
|
308
309
|
}
|
|
309
310
|
const renderer = this.root.pixiRenderer;
|
|
310
311
|
if (renderer && !renderer.renderPipes.view3d) {
|
|
311
312
|
throw new Error(`${this._who()}: PixiJS 3D was loaded after the renderer started; import 'pixi-effects/3d' (and call register3D()) before movie.init`);
|
|
312
313
|
}
|
|
313
|
-
const scope =
|
|
314
|
+
const scope = chunkNXMNBFHM_cjs.buildScope(this, this.parent, this.root);
|
|
314
315
|
const width = resolveDim(spec.width, scope) ?? this.parent?.width ?? this.root.width;
|
|
315
316
|
const height = resolveDim(spec.height, scope) ?? this.parent?.height ?? this.root.height;
|
|
316
317
|
const viewOptions = { ...spec.view ?? {} };
|
|
@@ -865,7 +866,7 @@ function reuseKeyOf(spec, width, height) {
|
|
|
865
866
|
function resolveDim(v, scope) {
|
|
866
867
|
if (v === void 0) return void 0;
|
|
867
868
|
if (typeof v === "number") return v;
|
|
868
|
-
return
|
|
869
|
+
return chunkNXMNBFHM_cjs.evaluateExpr(v, scope);
|
|
869
870
|
}
|
|
870
871
|
var label2 = "pixi-effects: loadModel";
|
|
871
872
|
async function loadModel(url, options = {}) {
|
|
@@ -951,7 +952,7 @@ function register3D() {
|
|
|
951
952
|
}
|
|
952
953
|
_3d.Model3D.defaultOptions.autoUpdate = false;
|
|
953
954
|
_3d.AnimationPlayer.defaultOptions.autoUpdate = false;
|
|
954
|
-
|
|
955
|
+
chunkNXMNBFHM_cjs.registerSequenceType("scene3d", Scene3DSequence);
|
|
955
956
|
}
|
|
956
957
|
function scene3d(spec) {
|
|
957
958
|
return spec;
|