@osmo.inc/cli-linux-arm64 0.1.23 → 0.1.24
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/dist/studio.js +3907 -909
- package/package.json +1 -1
- package/release.json +32 -32
- package/runtime/apps/native/tools/compile.mjs +20 -2
- package/runtime/packages/render-protocol/src/film-catalog.json +2543 -0
- package/runtime/packages/render-protocol/src/film-resources.mjs +91 -0
- package/runtime/packages/render-protocol/src/film-store.node.mjs +220 -0
- package/runtime/packages/scene/scripts/sync-film.mjs +8 -0
- package/runtime/packages/scene/scripts/validate-strict.mjs +14 -4
- package/runtime/packages/scene/scripts/verify-export-resolution.mjs +67 -0
- package/runtime/packages/scene/scripts/verify-film.mjs +66 -0
- package/runtime/packages/scene/src/effect-schemas.d.mts +246 -0
- package/runtime/packages/scene/src/effect-schemas.mjs +136 -0
- package/runtime/packages/scene/src/effects.ts +23 -6
- package/runtime/packages/scene/src/elements.ts +15 -3
- package/runtime/packages/scene/src/evaluate.ts +88 -12
- package/runtime/packages/scene/src/film-catalog.generated.ts +3 -0
- package/runtime/packages/scene/src/film.ts +39 -0
- package/runtime/packages/scene/src/index.ts +6 -2
- package/runtime/packages/scene/src/knob-schema.ts +5 -2
- package/runtime/packages/scene/src/metadata.d.mts +2 -1
- package/runtime/packages/scene/src/metadata.mjs +4 -4
- package/runtime/packages/scene/src/motion-blur.ts +30 -0
- package/src/starter/scene.tsx +1 -1
- package/studio/src/app.css +1 -1
- package/studio/src/app.js +187 -174
- package/studio/src/engine_bg.wasm +0 -0
- package/studio/src/preview-worker.js +33 -0
- package/third-party/braw/BlackmagicRawAPI.h +1137 -0
- package/third-party/braw/README.md +7 -0
- package/third-party/cargo/block-buffer@0.10.4/Cargo.toml +32 -0
- package/third-party/cargo/block-buffer@0.10.4/LICENSE-APACHE +201 -0
- package/third-party/cargo/block-buffer@0.10.4/LICENSE-MIT +25 -0
- package/third-party/cargo/cc@1.4.5/Cargo.toml +89 -0
- package/third-party/cargo/cc@1.4.5/LICENSE-APACHE +201 -0
- package/third-party/cargo/cc@1.4.5/LICENSE-MIT +25 -0
- package/third-party/cargo/cpufeatures@0.2.17/Cargo.toml +71 -0
- package/third-party/cargo/cpufeatures@0.2.17/LICENSE-APACHE +201 -0
- package/third-party/cargo/cpufeatures@0.2.17/LICENSE-MIT +25 -0
- package/third-party/cargo/crypto-common@0.1.7/Cargo.toml +62 -0
- package/third-party/cargo/crypto-common@0.1.7/LICENSE-APACHE +201 -0
- package/third-party/cargo/crypto-common@0.1.7/LICENSE-MIT +25 -0
- package/third-party/cargo/digest@0.10.7/Cargo.toml +70 -0
- package/third-party/cargo/digest@0.10.7/LICENSE-APACHE +201 -0
- package/third-party/cargo/digest@0.10.7/LICENSE-MIT +25 -0
- package/third-party/cargo/find-msvc-tools@0.1.12/Cargo.toml +49 -0
- package/third-party/cargo/find-msvc-tools@0.1.12/LICENSE-APACHE +201 -0
- package/third-party/cargo/find-msvc-tools@0.1.12/LICENSE-MIT +25 -0
- package/third-party/cargo/generic-array@0.14.7/Cargo.toml +75 -0
- package/third-party/cargo/generic-array@0.14.7/LICENSE +21 -0
- package/third-party/cargo/sha2@0.10.9/Cargo.toml +90 -0
- package/third-party/cargo/sha2@0.10.9/LICENSE-APACHE +201 -0
- package/third-party/cargo/sha2@0.10.9/LICENSE-MIT +27 -0
- package/third-party/cargo/shlex@2.0.1/Cargo.toml +51 -0
- package/third-party/cargo/shlex@2.0.1/LICENSE-APACHE +13 -0
- package/third-party/cargo/shlex@2.0.1/LICENSE-MIT +21 -0
- package/third-party/cargo/typenum@1.20.1/Cargo.toml +75 -0
- package/third-party/cargo/typenum@1.20.1/LICENSE +1 -0
- package/third-party/cargo/typenum@1.20.1/LICENSE-APACHE +201 -0
- package/third-party/cargo/typenum@1.20.1/LICENSE-MIT +21 -0
- package/third-party/film/camera-COLOUR-LICENSE +11 -0
- package/third-party/film/camera-CONFIG-LICENSE +26 -0
- package/third-party/film/camera-LICENSE +26 -0
- package/third-party/film/camera-metadata.json +344 -0
- package/third-party/film/provenance.json +7 -0
- package/third-party/inventory.json +140 -0
- package/vendor/osmo-lite +0 -0
- package/vendor/osmo-scene-0.1.0.tgz +0 -0
- package/vendor/platform.json +1 -1
package/package.json
CHANGED
package/release.json
CHANGED
|
@@ -1,37 +1,37 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "0.1.
|
|
2
|
+
"version": "0.1.24",
|
|
3
3
|
"package": "@osmo.inc/cli-linux-arm64",
|
|
4
4
|
"platform": "linux-arm64",
|
|
5
5
|
"channel": "latest",
|
|
6
|
-
"sourceCommit": "
|
|
6
|
+
"sourceCommit": "b56598df0b36200ac57715d4282924ec5bf931cd",
|
|
7
7
|
"sourceDirty": false,
|
|
8
8
|
"signing": "unsigned",
|
|
9
9
|
"licenseFileIncluded": false,
|
|
10
|
-
"dependencyCount":
|
|
10
|
+
"dependencyCount": 308,
|
|
11
11
|
"nativeDefaultFeatures": false,
|
|
12
12
|
"contents": {
|
|
13
|
-
"totalBytes":
|
|
14
|
-
"fileCount":
|
|
13
|
+
"totalBytes": 63522234,
|
|
14
|
+
"fileCount": 1978,
|
|
15
15
|
"groups": {
|
|
16
|
-
"studio":
|
|
17
|
-
"vendor":
|
|
16
|
+
"studio": 20080257,
|
|
17
|
+
"vendor": 18779297,
|
|
18
18
|
"node_modules/typescript": 9913238,
|
|
19
19
|
"node_modules/zod": 6140311,
|
|
20
|
-
"third-party":
|
|
21
|
-
"src":
|
|
22
|
-
"dist":
|
|
23
|
-
"runtime":
|
|
20
|
+
"third-party": 5144253,
|
|
21
|
+
"src": 2622446,
|
|
22
|
+
"dist": 486515,
|
|
23
|
+
"runtime": 353982,
|
|
24
24
|
"THIRD_PARTY_NOTICES.md": 1090,
|
|
25
25
|
"package.json": 845
|
|
26
26
|
},
|
|
27
27
|
"largestFiles": [
|
|
28
28
|
{
|
|
29
29
|
"path": "vendor/osmo-lite",
|
|
30
|
-
"bytes":
|
|
30
|
+
"bytes": 18708168
|
|
31
31
|
},
|
|
32
32
|
{
|
|
33
33
|
"path": "studio/src/engine_bg.wasm",
|
|
34
|
-
"bytes":
|
|
34
|
+
"bytes": 12156529
|
|
35
35
|
},
|
|
36
36
|
{
|
|
37
37
|
"path": "node_modules/typescript/lib/typescript.js",
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
},
|
|
40
40
|
{
|
|
41
41
|
"path": "studio/src/app.js",
|
|
42
|
-
"bytes":
|
|
42
|
+
"bytes": 5469526
|
|
43
43
|
},
|
|
44
44
|
{
|
|
45
45
|
"path": "node_modules/typescript/lib/lib.dom.d.ts",
|
|
@@ -57,6 +57,10 @@
|
|
|
57
57
|
"path": "src/starter/animations/osmo/shape8-62.tsx",
|
|
58
58
|
"bytes": 505710
|
|
59
59
|
},
|
|
60
|
+
{
|
|
61
|
+
"path": "dist/studio.js",
|
|
62
|
+
"bytes": 486515
|
|
63
|
+
},
|
|
60
64
|
{
|
|
61
65
|
"path": "src/starter/animations/osmo/shape26-0.tsx",
|
|
62
66
|
"bytes": 421037
|
|
@@ -77,10 +81,6 @@
|
|
|
77
81
|
"path": "studio/src/InterDisplay-Regular-H4SUAKN5.ttf",
|
|
78
82
|
"bytes": 408972
|
|
79
83
|
},
|
|
80
|
-
{
|
|
81
|
-
"path": "dist/studio.js",
|
|
82
|
-
"bytes": 373939
|
|
83
|
-
},
|
|
84
84
|
{
|
|
85
85
|
"path": "src/resource-examples/example-video/ambient.mp4",
|
|
86
86
|
"bytes": 370430
|
|
@@ -89,35 +89,35 @@
|
|
|
89
89
|
"path": "third-party/rust-standard-library/COPYRIGHT-library.html",
|
|
90
90
|
"bytes": 279302
|
|
91
91
|
},
|
|
92
|
+
{
|
|
93
|
+
"path": "studio/src/preview-worker.js",
|
|
94
|
+
"bytes": 273134
|
|
95
|
+
},
|
|
92
96
|
{
|
|
93
97
|
"path": "node_modules/typescript/lib/lib.es5.d.ts",
|
|
94
98
|
"bytes": 218439
|
|
95
99
|
},
|
|
96
100
|
{
|
|
97
101
|
"path": "studio/src/app.css",
|
|
98
|
-
"bytes":
|
|
102
|
+
"bytes": 204980
|
|
99
103
|
},
|
|
100
104
|
{
|
|
101
105
|
"path": "node_modules/zod/src/v4/core/schemas.ts",
|
|
102
106
|
"bytes": 175664
|
|
103
|
-
},
|
|
104
|
-
{
|
|
105
|
-
"path": "node_modules/zod/src/v3/types.ts",
|
|
106
|
-
"bytes": 160442
|
|
107
107
|
}
|
|
108
108
|
]
|
|
109
109
|
},
|
|
110
110
|
"hashes": {
|
|
111
|
-
"dist/studio.js": "
|
|
112
|
-
"vendor/osmo-lite": "
|
|
113
|
-
"studio/src/engine_bg.wasm": "
|
|
114
|
-
"studio/src/app.js": "
|
|
115
|
-
"studio/src/app.css": "
|
|
116
|
-
"third-party/inventory.json": "
|
|
111
|
+
"dist/studio.js": "d1f6235523b4ab90f6c9b31700049709ebc5b024d5a34344dec76c63363e279a",
|
|
112
|
+
"vendor/osmo-lite": "8320c18e2152c0d573751799b1380851ced26ceb2d5d8fb1ffcf218ce426fb66",
|
|
113
|
+
"studio/src/engine_bg.wasm": "a4e257f97e0d15c2847151aae0e88f46e9eb886ef0ab7e06b240aaf78e0c8c75",
|
|
114
|
+
"studio/src/app.js": "ccb3024ef41c9e28dd3e188fc3dd76cf025c9cbd7228d15d45c1bb5e8abc3e19",
|
|
115
|
+
"studio/src/app.css": "78a3715ee6200db6b0c23aff27bb7b10201350fce7a6629f616f0117878965a1",
|
|
116
|
+
"third-party/inventory.json": "27e4179ecd43b63625f1e61e29c3b5ed87f6ceb48b1cd932688975b950bbe1d0"
|
|
117
117
|
},
|
|
118
118
|
"lockfiles": {
|
|
119
|
-
"package-lock.json": "
|
|
120
|
-
"apps/native/Cargo.lock": "
|
|
121
|
-
"packages/render-engine/Cargo.lock": "
|
|
119
|
+
"package-lock.json": "38d15ffdc2dc9321ff5e21109c392069da8e9693f9eb2f6c71d0cb8f952c6aa8",
|
|
120
|
+
"apps/native/Cargo.lock": "109e3160fc6f68a71b18c9098af6ac3e7d13a9f2457354d0dc4585ada1ad1bf2",
|
|
121
|
+
"packages/render-engine/Cargo.lock": "582dea5c95112000f6e1f10f2805a22943e584a3a4c6e02ad23ae992053e151a"
|
|
122
122
|
}
|
|
123
123
|
}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { collectFilmKeys } from "../../../packages/render-protocol/src/film-resources.mjs";
|
|
2
|
+
import { createFilmStore } from "../../../packages/render-protocol/src/film-store.node.mjs";
|
|
1
3
|
import { build } from "esbuild";
|
|
2
4
|
import ts from "typescript";
|
|
3
5
|
import { open, readFile, stat } from "node:fs/promises";
|
|
@@ -25,7 +27,7 @@ const api = path.join(repo, "packages/scene/src/index.ts");
|
|
|
25
27
|
const runtime = path.join(repo, "packages/scene/src/jsx-runtime.ts");
|
|
26
28
|
const result = await build({
|
|
27
29
|
stdin: {
|
|
28
|
-
contents: `import scene from ${JSON.stringify(source)}; export {scene}; export {EFFECT_INPUT} from ${JSON.stringify(path.join(repo, "packages/scene/src/effects.ts"))}; export {Scene, Group, evaluateFrame} from ${JSON.stringify(api)}; export {prepareShader} from ${JSON.stringify(path.join(repo, "packages/scene/src/shader.ts"))};`,
|
|
30
|
+
contents: `import scene from ${JSON.stringify(source)}; export {scene}; export {EFFECT_INPUT} from ${JSON.stringify(path.join(repo, "packages/scene/src/effects.ts"))}; export {Scene, Group, evaluateMotionFrame as evaluateFrame} from ${JSON.stringify(api)}; export {prepareShader} from ${JSON.stringify(path.join(repo, "packages/scene/src/shader.ts"))};`,
|
|
29
31
|
resolveDir: path.dirname(source),
|
|
30
32
|
},
|
|
31
33
|
plugins: [{ name: "effect-source", setup(build) {
|
|
@@ -106,6 +108,7 @@ if (first.width > 8192 || first.height > 8192 || first.totalFrames > 18000) {
|
|
|
106
108
|
}
|
|
107
109
|
if (!Number.isInteger(first.width) || !Number.isInteger(first.height))
|
|
108
110
|
throw new Error("Native composition dimensions must be whole pixels");
|
|
111
|
+
const filmKeys = new Set();
|
|
109
112
|
const fonts = new Map();
|
|
110
113
|
const dependencies = new Set([
|
|
111
114
|
source,
|
|
@@ -116,6 +119,7 @@ const dependencies = new Set([
|
|
|
116
119
|
const shaders = new Map();
|
|
117
120
|
async function collectEffects(target) {
|
|
118
121
|
for (const effect of target.effects ?? []) {
|
|
122
|
+
if (effect.film) continue;
|
|
119
123
|
let key = "effect:" + effect.code;
|
|
120
124
|
if (effect.src) {
|
|
121
125
|
effect.src = path.resolve(path.dirname(path.resolve(repo, effect.sourceFile ?? source)), effect.src);
|
|
@@ -139,7 +143,14 @@ async function collectFonts(nodes) {
|
|
|
139
143
|
if(node.type === "composition") { await collectEffects(node.scene); await collectFonts(node.scene.children); }
|
|
140
144
|
if (["group","model","surface"].includes(node.type)) await collectFonts(node.children);
|
|
141
145
|
if (["image", "video", "audio", "model"].includes(node.type)) {
|
|
142
|
-
node.
|
|
146
|
+
if (node.type === "video" && node.originalSrc && process.env.OSMO_MEDIA_SOURCE === "original") {
|
|
147
|
+
const original = path.resolve(path.dirname(path.resolve(repo, node.originalSourceFile ?? node.sourceFile ?? source)), node.originalSrc);
|
|
148
|
+
if (!(await stat(original).catch(() => null))?.isFile()) throw new Error(`Original video is unavailable: ${original}`);
|
|
149
|
+
node.src = original;
|
|
150
|
+
}
|
|
151
|
+
delete node.originalSrc;
|
|
152
|
+
delete node.originalSourceFile;
|
|
153
|
+
node.src = path.resolve(
|
|
143
154
|
path.dirname(path.resolve(repo, node.sourceFile ?? source)),
|
|
144
155
|
node.src,
|
|
145
156
|
);
|
|
@@ -202,8 +213,12 @@ try {
|
|
|
202
213
|
});
|
|
203
214
|
for (let frame = 0; frame < first.totalFrames; frame++) {
|
|
204
215
|
const evaluated = frame === 0 ? first : evaluateFrame(scene, frame);
|
|
216
|
+
for (const sample of evaluated.motionSamples ?? []) {
|
|
217
|
+
await collectEffects(sample); await collectFonts(sample.children);
|
|
218
|
+
}
|
|
205
219
|
await collectEffects(evaluated);
|
|
206
220
|
await collectFonts(evaluated.children);
|
|
221
|
+
collectFilmKeys(evaluated, filmKeys);
|
|
207
222
|
await line(evaluated);
|
|
208
223
|
}
|
|
209
224
|
const assets = [];
|
|
@@ -216,6 +231,9 @@ try {
|
|
|
216
231
|
bytes: (await readFile(font)).toString("base64"),
|
|
217
232
|
});
|
|
218
233
|
}
|
|
234
|
+
// Installed CLI sets OSMO_FILM_TABLES to the shared resource directory.
|
|
235
|
+
// Direct desktop/check-out renderers retain their existing asset location.
|
|
236
|
+
await createFilmStore({directory: process.env.OSMO_FILM_TABLES ?? path.join(repo, "packages/render-engine/assets/film")}).ensureAll(filmKeys);
|
|
219
237
|
await line({ assets, dependencies: [...dependencies] });
|
|
220
238
|
} finally {
|
|
221
239
|
await file.close();
|