worldorbit 2.5.17 → 2.6.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/README.md CHANGED
@@ -29,7 +29,7 @@ WorldOrbit is not intended to be a real-world astronomy simulator or a high-prec
29
29
  ## Quick Example
30
30
 
31
31
  ```worldorbit
32
- schema 2.1
32
+ schema 2.5
33
33
 
34
34
  system Iyath
35
35
  title "Iyath System"
@@ -37,7 +37,7 @@ system Iyath
37
37
  referencePlane ecliptic
38
38
 
39
39
  defaults
40
- view isometric
40
+ view orthographic
41
41
  scale presentation
42
42
  preset atlas-card
43
43
  theme atlas
@@ -46,6 +46,16 @@ group inner-system
46
46
  label "Inner System"
47
47
  color #d9b37a
48
48
 
49
+ viewpoint eclipse
50
+ label "Eclipse View"
51
+ projection perspective
52
+ camera
53
+ azimuth 36
54
+ elevation 22
55
+ distance 6
56
+ layers background guides orbits-back events objects labels metadata
57
+ events naar-eclipse
58
+
49
59
  object star Iyath
50
60
 
51
61
  object planet Naar
@@ -57,6 +67,15 @@ object planet Naar
57
67
  phase 42deg
58
68
  atmosphere nitrogen-oxygen
59
69
  groups inner-system
70
+
71
+ object moon Seyra
72
+ orbit Naar
73
+ distance 384400km
74
+
75
+ event naar-eclipse
76
+ kind solar-eclipse
77
+ target Naar
78
+ participants Iyath Naar Seyra
60
79
  ````
61
80
 
62
81
  ## Installation
@@ -99,7 +118,7 @@ For direct browser usage, use the browser bundle:
99
118
  <html>
100
119
  <head>
101
120
  <meta charset="utf-8" />
102
- <script src="https://unpkg.com/worldorbit@2.5.17/dist/unpkg/worldorbit.min.js"></script>
121
+ <script src="https://unpkg.com/worldorbit@2.6.0/dist/unpkg/worldorbit.min.js"></script>
103
122
  <style>
104
123
  html, body {
105
124
  margin: 0;
@@ -118,7 +137,7 @@ For direct browser usage, use the browser bundle:
118
137
 
119
138
  <script>
120
139
  const source = `
121
- schema 2.1
140
+ schema 2.5
122
141
 
123
142
  system Iyath
124
143
  epoch "JY-0001.0"
@@ -176,13 +195,13 @@ The editor is optional. The core format remains text-first.
176
195
  New atlas authoring should start with:
177
196
 
178
197
  ```worldorbit
179
- schema 2.1
198
+ schema 2.5
180
199
  ```
181
200
 
182
201
  Example:
183
202
 
184
203
  ```worldorbit
185
- schema 2.1
204
+ schema 2.5
186
205
 
187
206
  system Iyath
188
207
  title "Iyath System"
@@ -190,7 +209,7 @@ system Iyath
190
209
  referencePlane ecliptic
191
210
 
192
211
  defaults
193
- view isometric
212
+ view orthographic
194
213
  scale presentation
195
214
  preset atlas-card
196
215
  theme atlas
@@ -203,7 +222,12 @@ group inner-system
203
222
  viewpoint overview
204
223
  label "Atlas Overview"
205
224
  summary "Fit the whole system."
206
- projection isometric
225
+ projection orthographic
226
+ camera
227
+ azimuth 24
228
+ elevation 18
229
+ layers background guides orbits-back events objects labels metadata
230
+ events naar-eclipse
207
231
  filter
208
232
  groups inner-system
209
233
 
@@ -225,9 +249,47 @@ object planet Naar
225
249
  groups inner-system
226
250
  image /demo/assets/naar-map.png
227
251
  atmosphere nitrogen-oxygen
252
+
253
+ object moon Seyra
254
+ orbit Naar
255
+ distance 384400km
256
+ groups inner-system
257
+
258
+ event naar-eclipse
259
+ kind solar-eclipse
260
+ label "Naar Eclipse"
261
+ target Naar
262
+ participants Iyath Naar Seyra
263
+ epoch "JY-0001.0"
264
+ referencePlane ecliptic
265
+
266
+ positions
267
+ pose Naar
268
+ orbit Iyath
269
+ semiMajor 1.18au
270
+ phase 90deg
271
+
272
+ pose Seyra
273
+ orbit Naar
274
+ distance 384400km
275
+ phase 90deg
228
276
  ```
229
277
 
230
- Schema `2.1` adds comments, semantic `group` and `relation` sections, object-level `epoch` and `referencePlane`, declarative resonance and validation hints, and optional structured lore blocks such as `climate`, `habitability`, and `settlement`.
278
+ ## What's New In Schema 2.5
279
+
280
+ Schema `2.5` keeps Schema `2.1` fully readable and adds a clearer 3D-ready authoring surface without turning WorldOrbit into a full 3D engine.
281
+
282
+ It adds:
283
+
284
+ * new viewpoint projections: `orthographic` and `perspective`
285
+ * a Schema-level `camera` block with `azimuth`, `elevation`, optional `roll`, and optional `distance`
286
+ * clearer inheritance for `epoch` and `referencePlane` across system, object, event, and pose contexts
287
+ * more stable event snapshots, where missing pose fields fall back to object, event, and system context instead of implying empty values
288
+ * stronger validation around viewpoints, camera fields, event/pose consistency, and ambiguous authoring combinations
289
+
290
+ Schema `2.5` still does **not** add full 3D coordinates, meshes, materials, quaternions, lighting, or simulation-heavy orbital solving.
291
+
292
+ Schema `2.1` already added comments, semantic `group` and `relation` sections, declarative `event` sections with per-event `positions`/`pose` snapshots, viewpoint-linked `events`, object-level `epoch` and `referencePlane`, declarative resonance and validation hints, and optional structured lore blocks such as `climate`, `habitability`, and `settlement`.
231
293
 
232
294
  Stable `1.0` source is still accepted. Canonical `schema 2.0` source remains fully supported, and legacy `schema 2.0-draft` files stay readable as a compatibility path with a deprecation diagnostic.
233
295
 
@@ -248,7 +310,7 @@ planet Naar orbit Iyath distance 1.18au
248
310
  `.trim());
249
311
 
250
312
  const loaded = loadWorldOrbitSource(`
251
- schema 2.1
313
+ schema 2.5
252
314
 
253
315
  system Iyath
254
316
  object star Iyath
@@ -351,7 +413,7 @@ const atlasDocument = upgradeDocumentToV2(stable.document, {
351
413
  preset: "atlas-card",
352
414
  });
353
415
 
354
- const atlasSource = formatDocument(atlasDocument, { schema: "2.1" });
416
+ const atlasSource = formatDocument(atlasDocument, { schema: "2.5" });
355
417
  const loaded = loadWorldOrbitSource(atlasSource);
356
418
  const parsedAtlas = parseWorldOrbitAtlas(atlasSource);
357
419
  const scene = renderDocumentToScene(loaded.document, {
@@ -365,18 +427,18 @@ const scene = renderDocumentToScene(loaded.document, {
365
427
 
366
428
  ## Viewer Capabilities
367
429
 
368
- Viewer features in `v2.5` include:
430
+ Viewer features in `v2.6` include:
369
431
 
370
432
  * scene-based SVG rendering
371
- * projections: `topdown` and `isometric`
433
+ * projections: `topdown`, `isometric`, `orthographic`, and `perspective`
372
434
  * theme presets: `atlas`, `nightglass`, `ember`
373
- * layer controls for background, guides, orbits, objects, labels, metadata, and relations
435
+ * layer controls for background, guides, orbits, events, objects, labels, metadata, and relations
374
436
  * selection, hover, focus, fit, pan, zoom, and rotate
375
437
  * tooltip cards and object detail payloads
376
438
  * viewpoints, filters, search, and bookmark capture
377
439
  * deep-linkable atlas state
378
440
  * embeddable viewer custom elements
379
- * semantic group filters, relation overlays, and schema 2.1 detail metadata
441
+ * semantic group filters, relation and event overlays, active event scenes, Schema 2.5 camera metadata, and event/object reference-context detail metadata
380
442
 
381
443
  ## Markdown Integration
382
444
 
@@ -415,6 +477,9 @@ mountWorldOrbitEmbeds(document, {
415
477
  Examples live in:
416
478
 
417
479
  * [examples/minimal.worldorbit](./examples/minimal.worldorbit)
480
+ * [examples/schema25-camera.worldorbit](./examples/schema25-camera.worldorbit)
481
+ * [examples/schema25-event-snapshot.worldorbit](./examples/schema25-event-snapshot.worldorbit)
482
+ * [examples/studio.schema25.worldorbit](./examples/studio.schema25.worldorbit)
418
483
  * [examples/iyath.worldorbit](./examples/iyath.worldorbit)
419
484
  * [examples/iyath.schema2.worldorbit](./examples/iyath.schema2.worldorbit)
420
485
  * [examples/iyath.schema21.worldorbit](./examples/iyath.schema21.worldorbit)
@@ -430,6 +495,7 @@ Browser-facing examples and demos live in the repository under `demo/`, `studio/
430
495
  * [migration guide: v0.8 to v1.0](./docs/migration-v0.8-to-v1.0.md)
431
496
  * [migration guide: v1 to v2](./docs/migration-v1-to-v2.md)
432
497
  * [migration guide: v2.0 to v2.1](./docs/migration-v2-to-v2.1.md)
498
+ * [migration guide: v2.1 to v2.5](./docs/migration-v2.1-to-v2.5.md)
433
499
  * [language reference](./docs/language-reference.md)
434
500
  * [language reference (DE)](./docs/language-reference.de.md)
435
501
  * [API inventory](./docs/api-inventory.md)