@opsydyn/effect-three 0.3.0 → 0.6.4

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.
Files changed (143) hide show
  1. package/CHANGELOG.md +56 -0
  2. package/README.md +15 -1
  3. package/dist/{index-8cf8t6by.js → index-re3rrfwd.js} +2935 -104
  4. package/dist/index-re3rrfwd.js.map +56 -0
  5. package/dist/index-ttwy0znv.js +145 -0
  6. package/dist/index-ttwy0znv.js.map +12 -0
  7. package/dist/index.js +557 -147
  8. package/dist/index.js.map +8 -6
  9. package/dist/kernel/bodies.d.ts +20 -1
  10. package/dist/kernel/bodies.d.ts.map +1 -1
  11. package/dist/kernel/boxSelect.d.ts +22 -0
  12. package/dist/kernel/boxSelect.d.ts.map +1 -0
  13. package/dist/kernel/build.d.ts +165 -7
  14. package/dist/kernel/build.d.ts.map +1 -1
  15. package/dist/kernel/cameraShake.d.ts.map +1 -1
  16. package/dist/kernel/describeScene.d.ts +50 -0
  17. package/dist/kernel/describeScene.d.ts.map +1 -0
  18. package/dist/kernel/description.d.ts +223 -1
  19. package/dist/kernel/description.d.ts.map +1 -1
  20. package/dist/kernel/diff.d.ts +15 -0
  21. package/dist/kernel/diff.d.ts.map +1 -1
  22. package/dist/kernel/equality.d.ts +11 -1
  23. package/dist/kernel/equality.d.ts.map +1 -1
  24. package/dist/kernel/gizmo.d.ts +69 -0
  25. package/dist/kernel/gizmo.d.ts.map +1 -0
  26. package/dist/kernel/history.d.ts +61 -0
  27. package/dist/kernel/history.d.ts.map +1 -0
  28. package/dist/kernel/index.d.ts +19 -6
  29. package/dist/kernel/index.d.ts.map +1 -1
  30. package/dist/kernel/index.js +124 -3
  31. package/dist/kernel/index.js.map +1 -1
  32. package/dist/kernel/inspect.d.ts +85 -0
  33. package/dist/kernel/inspect.d.ts.map +1 -0
  34. package/dist/kernel/lineGeometry.d.ts +25 -0
  35. package/dist/kernel/lineGeometry.d.ts.map +1 -0
  36. package/dist/kernel/lockstep.d.ts +114 -0
  37. package/dist/kernel/lockstep.d.ts.map +1 -0
  38. package/dist/kernel/loop.d.ts.map +1 -1
  39. package/dist/kernel/materials.d.ts.map +1 -1
  40. package/dist/kernel/paintOrder.d.ts +53 -0
  41. package/dist/kernel/paintOrder.d.ts.map +1 -0
  42. package/dist/kernel/physics.d.ts +39 -0
  43. package/dist/kernel/physics.d.ts.map +1 -1
  44. package/dist/kernel/pivot.d.ts +54 -0
  45. package/dist/kernel/pivot.d.ts.map +1 -0
  46. package/dist/kernel/pointBuffers.d.ts +17 -0
  47. package/dist/kernel/pointBuffers.d.ts.map +1 -0
  48. package/dist/kernel/pointer.d.ts +31 -1
  49. package/dist/kernel/pointer.d.ts.map +1 -1
  50. package/dist/kernel/preview.d.ts +32 -0
  51. package/dist/kernel/preview.d.ts.map +1 -0
  52. package/dist/kernel/renderKit.d.ts +21 -1
  53. package/dist/kernel/renderKit.d.ts.map +1 -1
  54. package/dist/kernel/renderer.d.ts +6 -0
  55. package/dist/kernel/renderer.d.ts.map +1 -1
  56. package/dist/kernel/sceneChanges.d.ts +87 -0
  57. package/dist/kernel/sceneChanges.d.ts.map +1 -0
  58. package/dist/kernel/sceneGraph.d.ts +9 -1
  59. package/dist/kernel/sceneGraph.d.ts.map +1 -1
  60. package/dist/kernel/sceneIndex.d.ts +5 -0
  61. package/dist/kernel/sceneIndex.d.ts.map +1 -1
  62. package/dist/kernel/seeded.d.ts +9 -0
  63. package/dist/kernel/seeded.d.ts.map +1 -0
  64. package/dist/kernel/shots.d.ts +26 -0
  65. package/dist/kernel/shots.d.ts.map +1 -0
  66. package/dist/kernel/tape.d.ts +38 -0
  67. package/dist/kernel/tape.d.ts.map +1 -0
  68. package/dist/kernel/timeline.d.ts +60 -0
  69. package/dist/kernel/timeline.d.ts.map +1 -0
  70. package/dist/kernel/trail.d.ts +31 -0
  71. package/dist/kernel/trail.d.ts.map +1 -0
  72. package/dist/kernel/viewportGizmo.d.ts +25 -0
  73. package/dist/kernel/viewportGizmo.d.ts.map +1 -0
  74. package/dist/runtime/Inspector.d.ts +20 -0
  75. package/dist/runtime/Inspector.d.ts.map +1 -0
  76. package/dist/runtime/SceneFile.d.ts +462 -0
  77. package/dist/runtime/SceneFile.d.ts.map +1 -0
  78. package/dist/runtime/SceneSchema.d.ts +404 -0
  79. package/dist/runtime/SceneSchema.d.ts.map +1 -1
  80. package/dist/runtime/errors.d.ts +9 -0
  81. package/dist/runtime/errors.d.ts.map +1 -1
  82. package/dist/runtime/index.d.ts +3 -1
  83. package/dist/runtime/index.d.ts.map +1 -1
  84. package/dist/webgl/index.d.ts.map +1 -1
  85. package/dist/webgl/index.js +228 -3
  86. package/dist/webgl/index.js.map +6 -4
  87. package/dist/webgl/line.d.ts +4 -0
  88. package/dist/webgl/line.d.ts.map +1 -0
  89. package/dist/webgl/points.d.ts +4 -0
  90. package/dist/webgl/points.d.ts.map +1 -0
  91. package/dist/webgpu/index.d.ts.map +1 -1
  92. package/dist/webgpu/index.js +206 -26
  93. package/dist/webgpu/index.js.map +6 -4
  94. package/dist/webgpu/line.d.ts +4 -0
  95. package/dist/webgpu/line.d.ts.map +1 -0
  96. package/dist/webgpu/points.d.ts +4 -0
  97. package/dist/webgpu/points.d.ts.map +1 -0
  98. package/package.json +4 -2
  99. package/src/kernel/bodies.ts +299 -17
  100. package/src/kernel/boxSelect.ts +73 -0
  101. package/src/kernel/build.ts +374 -1
  102. package/src/kernel/cameraShake.ts +3 -13
  103. package/src/kernel/describeScene.ts +224 -0
  104. package/src/kernel/description.ts +243 -0
  105. package/src/kernel/diff.ts +39 -0
  106. package/src/kernel/equality.ts +123 -0
  107. package/src/kernel/gizmo.ts +478 -0
  108. package/src/kernel/history.ts +118 -0
  109. package/src/kernel/index.ts +110 -1
  110. package/src/kernel/inspect.ts +214 -0
  111. package/src/kernel/lineGeometry.ts +75 -0
  112. package/src/kernel/lockstep.ts +237 -0
  113. package/src/kernel/loop.ts +7 -0
  114. package/src/kernel/materials.ts +3 -0
  115. package/src/kernel/paintOrder.ts +274 -0
  116. package/src/kernel/physics.ts +86 -1
  117. package/src/kernel/pivot.ts +418 -0
  118. package/src/kernel/pointBuffers.ts +115 -0
  119. package/src/kernel/pointer.ts +98 -17
  120. package/src/kernel/preview.ts +467 -0
  121. package/src/kernel/renderKit.ts +23 -1
  122. package/src/kernel/renderer.ts +6 -0
  123. package/src/kernel/sceneChanges.ts +265 -0
  124. package/src/kernel/sceneGraph.ts +354 -11
  125. package/src/kernel/sceneIndex.ts +8 -0
  126. package/src/kernel/seeded.ts +18 -0
  127. package/src/kernel/shots.ts +167 -0
  128. package/src/kernel/tape.ts +124 -0
  129. package/src/kernel/timeline.ts +93 -0
  130. package/src/kernel/trail.ts +170 -0
  131. package/src/kernel/viewportGizmo.ts +194 -0
  132. package/src/runtime/Inspector.ts +43 -0
  133. package/src/runtime/SceneFile.ts +46 -0
  134. package/src/runtime/SceneSchema.ts +319 -0
  135. package/src/runtime/errors.ts +6 -0
  136. package/src/runtime/index.ts +3 -1
  137. package/src/webgl/index.ts +4 -0
  138. package/src/webgl/line.ts +66 -0
  139. package/src/webgl/points.ts +205 -0
  140. package/src/webgpu/index.ts +4 -0
  141. package/src/webgpu/line.ts +67 -0
  142. package/src/webgpu/points.ts +193 -0
  143. package/dist/index-8cf8t6by.js.map +0 -41
@@ -0,0 +1,462 @@
1
+ /**
2
+ * Scenes saved and loaded as JSON (roadmap, "Beyond parity" 4): a description in a
3
+ * small versioned envelope, written and read through `SceneSchema`, so a file is either
4
+ * a well-typed description or a typed failure saying where it is not. Fields added since
5
+ * a file was written decode at their defaults, as stored descriptions always have.
6
+ *
7
+ * Decoding checks shapes, not the scene's own rules: duplicate keys and unknown
8
+ * behaviours are rejected whole when the scene is applied (`InvalidScene`), against the
9
+ * behaviours the app has registered.
10
+ *
11
+ * @module
12
+ */
13
+ import { Result, Schema } from 'effect';
14
+ import type { SceneDescription } from '../kernel/index.ts';
15
+ import { UnreadableScene } from './errors.ts';
16
+ /**
17
+ * A saved scene: what it is (`format`), the envelope's `version` (a later one decodes
18
+ * older files, migrating them), and the description.
19
+ */
20
+ export declare const SceneFile: Schema.Struct<{
21
+ readonly format: Schema.Literal<"effect-three/scene">;
22
+ readonly version: Schema.Literal<1>;
23
+ readonly scene: Schema.Struct<{
24
+ readonly camera: Schema.Union<readonly [Schema.TaggedStruct<"Perspective", {
25
+ readonly fov: Schema.Finite;
26
+ readonly near: Schema.Finite;
27
+ readonly far: Schema.Finite;
28
+ readonly position: Schema.Tuple<readonly [Schema.Finite, Schema.Finite, Schema.Finite]>;
29
+ readonly lookAt: Schema.Tuple<readonly [Schema.Finite, Schema.Finite, Schema.Finite]>;
30
+ readonly damping: Schema.Finite;
31
+ readonly autoRotate: Schema.Finite;
32
+ readonly shake: Schema.withDecodingDefaultKey<Schema.NullOr<Schema.Struct<{
33
+ readonly intensity: Schema.Finite;
34
+ readonly decay: Schema.Boolean;
35
+ readonly decayRate: Schema.Finite;
36
+ readonly maxYaw: Schema.Finite;
37
+ readonly maxPitch: Schema.Finite;
38
+ readonly maxRoll: Schema.Finite;
39
+ readonly yawFrequency: Schema.Finite;
40
+ readonly pitchFrequency: Schema.Finite;
41
+ readonly rollFrequency: Schema.Finite;
42
+ readonly trigger: Schema.Finite;
43
+ }>>, never>;
44
+ }>, Schema.TaggedStruct<"Orthographic", {
45
+ readonly zoom: Schema.Finite;
46
+ readonly near: Schema.Finite;
47
+ readonly far: Schema.Finite;
48
+ readonly position: Schema.Tuple<readonly [Schema.Finite, Schema.Finite, Schema.Finite]>;
49
+ readonly lookAt: Schema.Tuple<readonly [Schema.Finite, Schema.Finite, Schema.Finite]>;
50
+ readonly damping: Schema.Finite;
51
+ readonly autoRotate: Schema.Finite;
52
+ readonly shake: Schema.withDecodingDefaultKey<Schema.NullOr<Schema.Struct<{
53
+ readonly intensity: Schema.Finite;
54
+ readonly decay: Schema.Boolean;
55
+ readonly decayRate: Schema.Finite;
56
+ readonly maxYaw: Schema.Finite;
57
+ readonly maxPitch: Schema.Finite;
58
+ readonly maxRoll: Schema.Finite;
59
+ readonly yawFrequency: Schema.Finite;
60
+ readonly pitchFrequency: Schema.Finite;
61
+ readonly rollFrequency: Schema.Finite;
62
+ readonly trigger: Schema.Finite;
63
+ }>>, never>;
64
+ }>]>;
65
+ readonly gestures: Schema.Literals<readonly ["page", "scene"]>;
66
+ readonly views: Schema.$Array<Schema.Struct<{
67
+ readonly key: Schema.String;
68
+ readonly camera: Schema.Union<readonly [Schema.TaggedStruct<"Perspective", {
69
+ readonly fov: Schema.Finite;
70
+ readonly near: Schema.Finite;
71
+ readonly far: Schema.Finite;
72
+ readonly position: Schema.Tuple<readonly [Schema.Finite, Schema.Finite, Schema.Finite]>;
73
+ readonly lookAt: Schema.Tuple<readonly [Schema.Finite, Schema.Finite, Schema.Finite]>;
74
+ readonly damping: Schema.Finite;
75
+ readonly autoRotate: Schema.Finite;
76
+ readonly shake: Schema.withDecodingDefaultKey<Schema.NullOr<Schema.Struct<{
77
+ readonly intensity: Schema.Finite;
78
+ readonly decay: Schema.Boolean;
79
+ readonly decayRate: Schema.Finite;
80
+ readonly maxYaw: Schema.Finite;
81
+ readonly maxPitch: Schema.Finite;
82
+ readonly maxRoll: Schema.Finite;
83
+ readonly yawFrequency: Schema.Finite;
84
+ readonly pitchFrequency: Schema.Finite;
85
+ readonly rollFrequency: Schema.Finite;
86
+ readonly trigger: Schema.Finite;
87
+ }>>, never>;
88
+ }>, Schema.TaggedStruct<"Orthographic", {
89
+ readonly zoom: Schema.Finite;
90
+ readonly near: Schema.Finite;
91
+ readonly far: Schema.Finite;
92
+ readonly position: Schema.Tuple<readonly [Schema.Finite, Schema.Finite, Schema.Finite]>;
93
+ readonly lookAt: Schema.Tuple<readonly [Schema.Finite, Schema.Finite, Schema.Finite]>;
94
+ readonly damping: Schema.Finite;
95
+ readonly autoRotate: Schema.Finite;
96
+ readonly shake: Schema.withDecodingDefaultKey<Schema.NullOr<Schema.Struct<{
97
+ readonly intensity: Schema.Finite;
98
+ readonly decay: Schema.Boolean;
99
+ readonly decayRate: Schema.Finite;
100
+ readonly maxYaw: Schema.Finite;
101
+ readonly maxPitch: Schema.Finite;
102
+ readonly maxRoll: Schema.Finite;
103
+ readonly yawFrequency: Schema.Finite;
104
+ readonly pitchFrequency: Schema.Finite;
105
+ readonly rollFrequency: Schema.Finite;
106
+ readonly trigger: Schema.Finite;
107
+ }>>, never>;
108
+ }>]>;
109
+ readonly rect: Schema.Struct<{
110
+ readonly x: Schema.Finite;
111
+ readonly y: Schema.Finite;
112
+ readonly width: Schema.Finite;
113
+ readonly height: Schema.Finite;
114
+ }>;
115
+ }>>;
116
+ readonly renderTextures: Schema.$Array<Schema.Struct<{
117
+ readonly id: Schema.String;
118
+ readonly width: Schema.Int;
119
+ readonly height: Schema.Int;
120
+ readonly camera: Schema.Union<readonly [Schema.TaggedStruct<"Perspective", {
121
+ readonly fov: Schema.Finite;
122
+ readonly near: Schema.Finite;
123
+ readonly far: Schema.Finite;
124
+ readonly position: Schema.Tuple<readonly [Schema.Finite, Schema.Finite, Schema.Finite]>;
125
+ readonly lookAt: Schema.Tuple<readonly [Schema.Finite, Schema.Finite, Schema.Finite]>;
126
+ readonly damping: Schema.Finite;
127
+ readonly autoRotate: Schema.Finite;
128
+ readonly shake: Schema.withDecodingDefaultKey<Schema.NullOr<Schema.Struct<{
129
+ readonly intensity: Schema.Finite;
130
+ readonly decay: Schema.Boolean;
131
+ readonly decayRate: Schema.Finite;
132
+ readonly maxYaw: Schema.Finite;
133
+ readonly maxPitch: Schema.Finite;
134
+ readonly maxRoll: Schema.Finite;
135
+ readonly yawFrequency: Schema.Finite;
136
+ readonly pitchFrequency: Schema.Finite;
137
+ readonly rollFrequency: Schema.Finite;
138
+ readonly trigger: Schema.Finite;
139
+ }>>, never>;
140
+ }>, Schema.TaggedStruct<"Orthographic", {
141
+ readonly zoom: Schema.Finite;
142
+ readonly near: Schema.Finite;
143
+ readonly far: Schema.Finite;
144
+ readonly position: Schema.Tuple<readonly [Schema.Finite, Schema.Finite, Schema.Finite]>;
145
+ readonly lookAt: Schema.Tuple<readonly [Schema.Finite, Schema.Finite, Schema.Finite]>;
146
+ readonly damping: Schema.Finite;
147
+ readonly autoRotate: Schema.Finite;
148
+ readonly shake: Schema.withDecodingDefaultKey<Schema.NullOr<Schema.Struct<{
149
+ readonly intensity: Schema.Finite;
150
+ readonly decay: Schema.Boolean;
151
+ readonly decayRate: Schema.Finite;
152
+ readonly maxYaw: Schema.Finite;
153
+ readonly maxPitch: Schema.Finite;
154
+ readonly maxRoll: Schema.Finite;
155
+ readonly yawFrequency: Schema.Finite;
156
+ readonly pitchFrequency: Schema.Finite;
157
+ readonly rollFrequency: Schema.Finite;
158
+ readonly trigger: Schema.Finite;
159
+ }>>, never>;
160
+ }>]>;
161
+ readonly background: Schema.NullOr<Schema.Int>;
162
+ readonly children: Schema.$Array<Schema.Codec<import("../index.ts").SceneNode, unknown, never, never>>;
163
+ }>>;
164
+ readonly hud: Schema.withDecodingDefaultKey<Schema.NullOr<Schema.Struct<{
165
+ readonly alignment: Schema.Literals<readonly ["top-left", "top-center", "top-right", "center-left", "center-center", "center-right", "bottom-left", "bottom-center", "bottom-right"]>;
166
+ readonly margin: Schema.Tuple<readonly [Schema.Finite, Schema.Finite]>;
167
+ readonly children: Schema.$Array<Schema.Codec<import("../index.ts").SceneNode, unknown, never, never>>;
168
+ }>>, never>;
169
+ readonly overlays: Schema.$Array<Schema.Struct<{
170
+ readonly key: Schema.String;
171
+ readonly node: Schema.NullOr<Schema.String>;
172
+ readonly position: Schema.Tuple<readonly [Schema.Finite, Schema.Finite, Schema.Finite]>;
173
+ readonly center: Schema.Boolean;
174
+ readonly distanceFactor: Schema.NullOr<Schema.Finite>;
175
+ readonly occlude: Schema.Boolean;
176
+ readonly zIndexRange: Schema.Tuple<readonly [Schema.Int, Schema.Int]>;
177
+ readonly view: Schema.NullOr<Schema.String>;
178
+ }>>;
179
+ readonly environment: Schema.NullOr<Schema.Struct<{
180
+ readonly map: Schema.NullOr<Schema.String>;
181
+ readonly background: Schema.Union<readonly [Schema.Boolean, Schema.Literal<"only">]>;
182
+ readonly backgroundBlurriness: Schema.Finite;
183
+ readonly backgroundIntensity: Schema.Finite;
184
+ readonly environmentIntensity: Schema.Finite;
185
+ }>>;
186
+ readonly sky: Schema.NullOr<Schema.Struct<{
187
+ readonly sunPosition: Schema.Tuple<readonly [Schema.Finite, Schema.Finite, Schema.Finite]>;
188
+ readonly turbidity: Schema.Finite;
189
+ readonly rayleigh: Schema.Finite;
190
+ readonly mieCoefficient: Schema.Finite;
191
+ readonly mieDirectionalG: Schema.Finite;
192
+ readonly clouds: Schema.Finite;
193
+ readonly distance: Schema.Finite;
194
+ }>>;
195
+ readonly contactShadows: Schema.NullOr<Schema.Struct<{
196
+ readonly position: Schema.Tuple<readonly [Schema.Finite, Schema.Finite, Schema.Finite]>;
197
+ readonly size: Schema.Tuple<readonly [Schema.Finite, Schema.Finite]>;
198
+ readonly near: Schema.Finite;
199
+ readonly far: Schema.Finite;
200
+ readonly blur: Schema.Finite;
201
+ readonly smooth: Schema.Boolean;
202
+ readonly opacity: Schema.Finite;
203
+ readonly color: Schema.Int;
204
+ readonly resolution: Schema.Int;
205
+ }>>;
206
+ readonly physics: Schema.NullOr<Schema.Struct<{
207
+ readonly gravity: Schema.Tuple<readonly [Schema.Finite, Schema.Finite, Schema.Finite]>;
208
+ readonly paused: Schema.Boolean;
209
+ readonly timeStep: Schema.Finite;
210
+ readonly interpolate: Schema.Boolean;
211
+ readonly until: Schema.withDecodingDefaultKey<Schema.NullOr<Schema.Int>, never>;
212
+ readonly run: Schema.withDecodingDefaultKey<Schema.Int, never>;
213
+ readonly snapshotAt: Schema.withDecodingDefaultKey<Schema.NullOr<Schema.Int>, never>;
214
+ readonly from: Schema.withDecodingDefaultKey<Schema.NullOr<Schema.Struct<{
215
+ readonly step: Schema.Int;
216
+ readonly snapshot: Schema.NullOr<Schema.String>;
217
+ }>>, never>;
218
+ readonly keep: Schema.withDecodingDefaultKey<Schema.Int, never>;
219
+ readonly debug: Schema.Boolean;
220
+ readonly joints: Schema.$Array<Schema.Struct<{
221
+ readonly key: Schema.String;
222
+ readonly a: Schema.Struct<{
223
+ readonly key: Schema.String;
224
+ readonly instance: Schema.NullOr<Schema.String>;
225
+ }>;
226
+ readonly b: Schema.Struct<{
227
+ readonly key: Schema.String;
228
+ readonly instance: Schema.NullOr<Schema.String>;
229
+ }>;
230
+ readonly anchorA: Schema.Tuple<readonly [Schema.Finite, Schema.Finite, Schema.Finite]>;
231
+ readonly anchorB: Schema.Tuple<readonly [Schema.Finite, Schema.Finite, Schema.Finite]>;
232
+ readonly kind: Schema.Union<readonly [Schema.TaggedStruct<"Fixed", {
233
+ readonly frameA: Schema.Tuple<readonly [Schema.Finite, Schema.Finite, Schema.Finite]>;
234
+ readonly frameB: Schema.Tuple<readonly [Schema.Finite, Schema.Finite, Schema.Finite]>;
235
+ }>, Schema.TaggedStruct<"Spherical", {}>, Schema.TaggedStruct<"Revolute", {
236
+ readonly axis: Schema.Tuple<readonly [Schema.Finite, Schema.Finite, Schema.Finite]>;
237
+ readonly limits: Schema.NullOr<Schema.Tuple<readonly [Schema.Finite, Schema.Finite]>>;
238
+ readonly motor: Schema.NullOr<Schema.Struct<{
239
+ readonly position: Schema.Finite;
240
+ readonly velocity: Schema.Finite;
241
+ readonly stiffness: Schema.Finite;
242
+ readonly damping: Schema.Finite;
243
+ }>>;
244
+ }>, Schema.TaggedStruct<"Prismatic", {
245
+ readonly axis: Schema.Tuple<readonly [Schema.Finite, Schema.Finite, Schema.Finite]>;
246
+ readonly limits: Schema.NullOr<Schema.Tuple<readonly [Schema.Finite, Schema.Finite]>>;
247
+ readonly motor: Schema.NullOr<Schema.Struct<{
248
+ readonly position: Schema.Finite;
249
+ readonly velocity: Schema.Finite;
250
+ readonly stiffness: Schema.Finite;
251
+ readonly damping: Schema.Finite;
252
+ }>>;
253
+ }>, Schema.TaggedStruct<"Rope", {
254
+ readonly length: Schema.Finite;
255
+ }>, Schema.TaggedStruct<"Spring", {
256
+ readonly restLength: Schema.Finite;
257
+ readonly stiffness: Schema.Finite;
258
+ readonly damping: Schema.Finite;
259
+ }>]>;
260
+ readonly contacts: Schema.Boolean;
261
+ }>>;
262
+ }>>;
263
+ readonly xr: Schema.NullOr<Schema.Struct<{
264
+ readonly origin: Schema.Tuple<readonly [Schema.Finite, Schema.Finite, Schema.Finite]>;
265
+ readonly heading: Schema.Finite;
266
+ readonly referenceSpace: Schema.Literals<readonly ["local-floor", "local", "bounded-floor"]>;
267
+ readonly framebufferScale: Schema.Finite;
268
+ readonly hitTest: Schema.Boolean;
269
+ readonly showInputs: Schema.Boolean;
270
+ readonly anchors: Schema.$Array<Schema.Struct<{
271
+ readonly id: Schema.String;
272
+ readonly position: Schema.Tuple<readonly [Schema.Finite, Schema.Finite, Schema.Finite]>;
273
+ readonly rotation: Schema.Tuple<readonly [Schema.Finite, Schema.Finite, Schema.Finite]>;
274
+ }>>;
275
+ readonly planes: Schema.Boolean;
276
+ readonly meshes: Schema.Boolean;
277
+ readonly domOverlay: Schema.Boolean;
278
+ readonly glide: Schema.NullOr<Schema.Struct<{
279
+ readonly speed: Schema.Finite;
280
+ readonly turn: Schema.Literals<readonly ["smooth", "snap"]>;
281
+ readonly turnSpeed: Schema.Finite;
282
+ readonly snapDegrees: Schema.Finite;
283
+ }>>;
284
+ }>>;
285
+ readonly measure: Schema.$Array<Schema.String>;
286
+ readonly assets: Schema.withDecodingDefaultKey<Schema.$Array<Schema.Struct<{
287
+ readonly kind: Schema.Literals<readonly ["model", "texture", "environment", "font"]>;
288
+ readonly id: Schema.String;
289
+ readonly url: Schema.String;
290
+ readonly levels: Schema.withDecodingDefaultKey<Schema.$Array<Schema.String>, never>;
291
+ }>>, never>;
292
+ readonly render: Schema.Struct<{
293
+ readonly effects: Schema.$Array<Schema.Union<readonly [Schema.TaggedStruct<"Bloom", {
294
+ readonly strength: Schema.Finite;
295
+ readonly radius: Schema.Finite;
296
+ readonly threshold: Schema.Finite;
297
+ }>, Schema.TaggedStruct<"Vignette", {
298
+ readonly offset: Schema.Finite;
299
+ readonly darkness: Schema.Finite;
300
+ }>, Schema.TaggedStruct<"Film", {
301
+ readonly intensity: Schema.Finite;
302
+ readonly grayscale: Schema.Boolean;
303
+ }>]>>;
304
+ readonly frames: Schema.Literals<readonly ["always", "demand", "never"]>;
305
+ readonly resolution: Schema.Finite;
306
+ readonly shadows: Schema.Literals<readonly ["off", "basic", "percentage", "soft", "variance"]>;
307
+ readonly toneMapping: Schema.Literals<readonly ["none", "linear", "reinhard", "cineon", "aces", "agx", "neutral"]>;
308
+ readonly exposure: Schema.Finite;
309
+ readonly colorSpace: Schema.Literals<readonly ["srgb", "linear"]>;
310
+ }>;
311
+ readonly resources: Schema.Struct<{
312
+ readonly geometries: Schema.$Array<Schema.Struct<{
313
+ readonly id: Schema.String;
314
+ readonly geometry: Schema.Union<readonly [Schema.TaggedStruct<"Text", {
315
+ readonly text: Schema.String;
316
+ readonly font: Schema.String;
317
+ readonly size: Schema.Finite;
318
+ readonly depth: Schema.Finite;
319
+ readonly curveSegments: Schema.Int;
320
+ readonly bevel: Schema.NullOr<Schema.Struct<{
321
+ readonly thickness: Schema.Finite;
322
+ readonly size: Schema.Finite;
323
+ readonly offset: Schema.Finite;
324
+ readonly segments: Schema.Int;
325
+ }>>;
326
+ readonly center: Schema.Boolean;
327
+ readonly letterSpacing: Schema.Finite;
328
+ readonly lineHeight: Schema.Finite;
329
+ readonly align: Schema.Literals<readonly ["left", "center", "right"]>;
330
+ }>, Schema.TaggedStruct<"Box", {
331
+ readonly width: Schema.Finite;
332
+ readonly height: Schema.Finite;
333
+ readonly depth: Schema.Finite;
334
+ }>, Schema.TaggedStruct<"Sphere", {
335
+ readonly radius: Schema.Finite;
336
+ readonly widthSegments: Schema.Int;
337
+ readonly heightSegments: Schema.Int;
338
+ }>, Schema.TaggedStruct<"Plane", {
339
+ readonly width: Schema.Finite;
340
+ readonly height: Schema.Finite;
341
+ }>, Schema.TaggedStruct<"Cylinder", {
342
+ readonly radiusTop: Schema.Finite;
343
+ readonly radiusBottom: Schema.Finite;
344
+ readonly height: Schema.Finite;
345
+ readonly radialSegments: Schema.Int;
346
+ }>, Schema.TaggedStruct<"Torus", {
347
+ readonly radius: Schema.Finite;
348
+ readonly tube: Schema.Finite;
349
+ readonly radialSegments: Schema.Int;
350
+ readonly tubularSegments: Schema.Int;
351
+ }>, Schema.TaggedStruct<"Cone", {
352
+ readonly radius: Schema.Finite;
353
+ readonly height: Schema.Finite;
354
+ readonly radialSegments: Schema.Int;
355
+ }>, Schema.TaggedStruct<"Capsule", {
356
+ readonly radius: Schema.Finite;
357
+ readonly height: Schema.Finite;
358
+ readonly capSegments: Schema.Int;
359
+ readonly radialSegments: Schema.Int;
360
+ }>, Schema.TaggedStruct<"Ring", {
361
+ readonly innerRadius: Schema.Finite;
362
+ readonly outerRadius: Schema.Finite;
363
+ readonly thetaSegments: Schema.Int;
364
+ }>, Schema.TaggedStruct<"Circle", {
365
+ readonly radius: Schema.Finite;
366
+ readonly segments: Schema.Int;
367
+ }>, Schema.TaggedStruct<"RoundedBox", {
368
+ readonly width: Schema.Finite;
369
+ readonly height: Schema.Finite;
370
+ readonly depth: Schema.Finite;
371
+ readonly radius: Schema.Finite;
372
+ readonly smoothness: Schema.Int;
373
+ readonly bevelSegments: Schema.Int;
374
+ readonly steps: Schema.Int;
375
+ readonly creaseAngle: Schema.Finite;
376
+ }>, Schema.TaggedStruct<"Backdrop", {
377
+ readonly floor: Schema.Finite;
378
+ readonly segments: Schema.Int;
379
+ }>]>;
380
+ }>>;
381
+ readonly materials: Schema.$Array<Schema.Struct<{
382
+ readonly id: Schema.String;
383
+ readonly material: Schema.Union<readonly [Schema.TaggedStruct<"Shadow", {
384
+ readonly color: Schema.Int;
385
+ readonly opacity: Schema.Finite;
386
+ }>, Schema.TaggedStruct<"Basic", {
387
+ readonly opacity: Schema.Finite;
388
+ readonly transparent: Schema.Boolean;
389
+ readonly side: Schema.Literals<readonly ["front", "back", "double"]>;
390
+ readonly wireframe: Schema.Boolean;
391
+ readonly color: Schema.Int;
392
+ readonly map: Schema.NullOr<Schema.String>;
393
+ readonly depthTest: Schema.withDecodingDefaultKey<Schema.Boolean, never>;
394
+ }>, Schema.TaggedStruct<"Lambert", {
395
+ readonly opacity: Schema.Finite;
396
+ readonly transparent: Schema.Boolean;
397
+ readonly side: Schema.Literals<readonly ["front", "back", "double"]>;
398
+ readonly wireframe: Schema.Boolean;
399
+ readonly flatShading: Schema.Boolean;
400
+ readonly color: Schema.Int;
401
+ readonly map: Schema.NullOr<Schema.String>;
402
+ readonly emissive: Schema.Int;
403
+ }>, Schema.TaggedStruct<"Phong", {
404
+ readonly opacity: Schema.Finite;
405
+ readonly transparent: Schema.Boolean;
406
+ readonly side: Schema.Literals<readonly ["front", "back", "double"]>;
407
+ readonly wireframe: Schema.Boolean;
408
+ readonly flatShading: Schema.Boolean;
409
+ readonly color: Schema.Int;
410
+ readonly map: Schema.NullOr<Schema.String>;
411
+ readonly emissive: Schema.Int;
412
+ readonly specular: Schema.Int;
413
+ readonly shininess: Schema.Finite;
414
+ }>, Schema.TaggedStruct<"Standard", {
415
+ readonly opacity: Schema.Finite;
416
+ readonly transparent: Schema.Boolean;
417
+ readonly side: Schema.Literals<readonly ["front", "back", "double"]>;
418
+ readonly wireframe: Schema.Boolean;
419
+ readonly flatShading: Schema.Boolean;
420
+ readonly color: Schema.Int;
421
+ readonly map: Schema.NullOr<Schema.String>;
422
+ readonly roughness: Schema.Finite;
423
+ readonly metalness: Schema.Finite;
424
+ readonly emissive: Schema.Int;
425
+ readonly emissiveIntensity: Schema.Finite;
426
+ }>, Schema.TaggedStruct<"Physical", {
427
+ readonly opacity: Schema.Finite;
428
+ readonly transparent: Schema.Boolean;
429
+ readonly side: Schema.Literals<readonly ["front", "back", "double"]>;
430
+ readonly wireframe: Schema.Boolean;
431
+ readonly flatShading: Schema.Boolean;
432
+ readonly color: Schema.Int;
433
+ readonly map: Schema.NullOr<Schema.String>;
434
+ readonly roughness: Schema.Finite;
435
+ readonly metalness: Schema.Finite;
436
+ readonly emissive: Schema.Int;
437
+ readonly emissiveIntensity: Schema.Finite;
438
+ readonly clearcoat: Schema.Finite;
439
+ readonly clearcoatRoughness: Schema.Finite;
440
+ readonly transmission: Schema.Finite;
441
+ readonly ior: Schema.Finite;
442
+ }>, Schema.TaggedStruct<"Normal", {
443
+ opacity: Schema.Finite;
444
+ transparent: Schema.Boolean;
445
+ side: Schema.Literals<readonly ["front", "back", "double"]>;
446
+ wireframe: Schema.Boolean;
447
+ flatShading: Schema.Boolean;
448
+ }>]>;
449
+ }>>;
450
+ }>;
451
+ readonly children: Schema.$Array<Schema.Codec<import("../index.ts").SceneNode, unknown, never, never>>;
452
+ }>;
453
+ }>;
454
+ export type SceneFile = typeof SceneFile.Type;
455
+ /** The scene as the text of a scene file, indented for reading and diffing. */
456
+ export declare const save: (scene: SceneDescription) => string;
457
+ /**
458
+ * The scene a file's text describes, or why it cannot be read: a `Result`, which an
459
+ * Effect can `yield*` directly.
460
+ */
461
+ export declare const read: (text: string) => Result.Result<SceneDescription, UnreadableScene>;
462
+ //# sourceMappingURL=SceneFile.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SceneFile.d.ts","sourceRoot":"","sources":["../../src/runtime/SceneFile.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAExC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAG9C;;;GAGG;AACH,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAIpB,CAAC;AACH,MAAM,MAAM,SAAS,GAAG,OAAO,SAAS,CAAC,IAAI,CAAC;AAI9C,+EAA+E;AAC/E,eAAO,MAAM,IAAI,UAAW,gBAAgB,KAAG,MACiD,CAAC;AAIjG;;;GAGG;AACH,eAAO,MAAM,IAAI,SAAU,MAAM,KAAG,MAAM,CAAC,MAAM,CAAC,gBAAgB,EAAE,eAAe,CAIhF,CAAC"}