You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+19-18Lines changed: 19 additions & 18 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,7 +2,7 @@
2
2
3
3
Automaginarium is a configurable universe generator for cellular automata. It extends the spirit of [Cellcosmos](https://github.com/multilingualprogramming/cellcosmos): instead of exploring only the 256 elementary Wolfram rules, it opens the rule space itself.
4
4
5
-
The project is designed to demonstrate the expressive power of the Multilingual programming language. The canonical automata concepts are written in French Multilingual source, while JavaScript is kept as a browser layer for loading JSON configurations, drawing to canvas, and wiring interface events.
5
+
The project is designed to demonstrate the expressive power of the Multilingual programming language. The canonical automata concepts are written in French Multilingual source, while JavaScript is kept as a thin browser layer for loading JSON configurations, drawing to canvas, and wiring only the essential interface events.
scripts/ Future build helpers for Multilingual/WASM compilation
28
28
```
29
29
30
-
## Current Stage
30
+
## Current Shape
31
31
32
-
This is the Stage 2 working skeleton. It includes:
32
+
The repository currently includes:
33
33
34
34
- a canonical French Multilingual core in `src/automate_universel.ml`
35
35
- a small JavaScript adapter in `public/automate-core.js` that mirrors the current core until the Multilingual/WASM build pipeline is wired
36
-
- a canvas UI in `public/app.js`
36
+
- a canvas UI in `public/app.mjs`
37
+
- a small progressive-enhancement layer in `public/ui.mjs`
37
38
- copied Cellcosmos heritage references in `public/metrics.js` and `src/cellcosmos_primitives_heritage.ml`
38
39
- example configurations and a JSON schema in `examples/`
39
40
- migration and architecture documentation in `docs/`
40
-
-Stage 3 canonical rule keys using JSON-array strings such as `"[0,1,0]"`
41
+
- canonical rule keys using JSON-array strings such as `"[0,1,0]"`
41
42
42
43
## Run The Demo
43
44
@@ -64,7 +65,7 @@ Useful docs:
64
65
-`docs/quickstart.md`
65
66
-`docs/create-universe.md`
66
67
-`docs/gallery.md`
67
-
-`docs/stage4-runtime.md`
68
+
-`docs/packed-runtime.md`
68
69
-`docs/release-checklist.md`
69
70
70
71
The repository also includes GitHub Actions workflows:
@@ -74,30 +75,30 @@ The repository also includes GitHub Actions workflows:
74
75
75
76
Generated Multilingual/WASM outputs under `public/generated/automate_packed/` are intentionally ignored. GitHub Actions regenerates them before publishing Pages.
76
77
77
-
Stage 3 also adds smoke tests:
78
+
Smoke tests include:
78
79
79
80
```bash
80
-
node tests/stage3-smoke.js
81
+
node tests/core_smoke.js
81
82
multilingual compile src/automate_universel.ml
82
83
```
83
84
84
-
Stage 4 adds a generated runtime bridge:
85
+
The packed runtime bridge is refreshed with:
85
86
86
87
```powershell
87
-
.\scripts\build-stage4.ps1
88
-
node tests/stage4-wasm.mjs
88
+
.\scripts\build-packed-runtime.ps1
89
+
node tests/packed_runtime_smoke.mjs
89
90
```
90
91
91
-
Stage 5 adds the preset gallery and static deployment checks:
92
+
Static deployment checks run with:
92
93
93
94
```bash
94
-
node tests/stage5-static.js
95
+
node tests/static_site_smoke.js
95
96
```
96
97
97
-
Stage 6 strengthens Multilingual ownership by testing the generated Python produced from the French core:
98
+
The generated Python produced from the French core is checked with:
98
99
99
100
```bash
100
-
python tests/stage6_french_core.py
101
+
python tests/french_core_smoke.py
101
102
```
102
103
103
104
## Attribution
@@ -113,7 +114,7 @@ Where source code is directly adapted, comments identify Cellcosmos as the origi
113
114
114
115
## Next Migration Steps
115
116
116
-
1. Compile `src/automate_universel.ml` through the Multilingual toolchain to WebAssembly or generated JavaScript.
117
-
2. Replace `public/automate-core.js` with generated calls into the French core.
118
-
3.Bring over isolated Cellcosmos features: metrics, gallery thumbnails, sharing, PNG export refinements, and selected Matter Lab interactions.
117
+
1. Compile more of `src/automate_universel.ml` through the Multilingual toolchain to WebAssembly or generated JavaScript.
118
+
2. Replace more of `public/automate-core.js` with generated calls into the French core.
119
+
3.Keep trimming browser-side helpers that do not strengthen the multilingual model.
119
120
4. Add more generated rule spaces: totalistic, symmetric, genetic, stochastic, and multi-channel examples.
Copy file name to clipboardExpand all lines: docs/architecture.md
+4-3Lines changed: 4 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,14 +6,15 @@ Automaginarium is split into four layers:
6
6
examples/*.json declarative universes
7
7
src/automate_universel.ml canonical French Multilingual automata core
8
8
public/automate-core.js temporary browser adapter mirroring the core
9
-
public/app.js DOM events, canvas drawing, preset loading
9
+
public/app.mjs DOM events, canvas drawing, preset loading
10
+
public/ui.mjs small progressive-enhancement UI bridge
10
11
```
11
12
12
13
The intended stable boundary is the configuration object. The UI should not know Wolfram-specific details except where it offers a preset shortcut.
13
14
14
-
Stage 3 uses canonical JSON-array rule keys, for example`"[0,1,0]"`, rather than concatenated keys such as `"010"`. The browser adapter still accepts older Cellcosmos-style keys as a compatibility fallback.
15
+
Canonical JSON-array rule keys use forms such as`"[0,1,0]"`, rather than concatenated keys such as `"010"`. The browser adapter still accepts older Cellcosmos-style keys as a compatibility fallback.
15
16
16
-
Stage 4 adds a generated Multilingual/WASM bridge. The full French core remains the canonical configuration and evolution model, while `src/automate_packed_wasm.ml` exposes a narrow numeric ABI for browser calls. The browser prefers `window.AutomaginariumPacked` when available and falls back to JavaScript only where rich JSON orchestration is still needed.
17
+
The packed Multilingual/WASM bridge keeps the full French core as the canonical configuration and evolution model, while `src/automate_packed_wasm.ml` exposes a narrow numeric ABI for browser calls. The browser prefers `window.AutomaginariumPacked` when available and falls back to JavaScript only where rich JSON orchestration is still needed.
Copy file name to clipboardExpand all lines: docs/gallery.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
# Preset Gallery
2
2
3
-
Stage 5 adds a browser-rendered preset gallery. Each gallery tile is generated from the same Automaginarium configuration model used by the main canvas.
3
+
The browser-rendered preset gallery uses the same Automaginarium configuration model as the main canvas.
4
4
5
5
Current preset families:
6
6
@@ -16,5 +16,5 @@ The gallery intentionally uses real generated thumbnails rather than static imag
Copy file name to clipboardExpand all lines: docs/packed-runtime.md
+4-4Lines changed: 4 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
-
# Stage 4 Runtime Bridge
1
+
# Packed Runtime Bridge
2
2
3
-
Stage 4 introduces a generated runtime path from French Multilingual into the browser.
3
+
The packed runtime introduces a generated path from French Multilingual into the browser.
4
4
5
5
The rich canonical engine remains:
6
6
@@ -32,9 +32,9 @@ The browser loads `public/generated/automate_packed_runtime.mjs`, which instanti
32
32
Regenerate artifacts with:
33
33
34
34
```powershell
35
-
.\scripts\build-stage4.ps1
35
+
.\scripts\build-packed-runtime.ps1
36
36
```
37
37
38
38
Current limitation: the full JSON/dictionary/list-rich core compiles to generated Python but does not yet produce a browser WASM bundle with the current Multilingual WAT backend. The narrow ABI module is the deliberate bridge until richer data lowering is available.
39
39
40
-
The generated rich core is now exercised by `tests/stage6_french_core.py`, so CI verifies behavior that comes directly from `src/automate_universel.ml`.
40
+
The generated rich core is exercised by `tests/french_core_smoke.py`, so CI verifies behavior that comes directly from `src/automate_universel.ml`.
0 commit comments