Skip to content

Commit a695b48

Browse files
Use polymodal computation
1 parent 4ce8041 commit a695b48

23 files changed

Lines changed: 1586 additions & 1 deletion

.github/workflows/deploy.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,9 @@ jobs:
7878
- name: Générer l'API statique JSON
7979
run: python scripts/generate_api.py
8080

81+
- name: Construire les manifestes de processus (semantic-core-v1)
82+
run: python scripts/build_processes.py
83+
8184
- name: Exécuter les tests d'intégration
8285
run: python scripts/integration_checks.py
8386

.github/workflows/monitor-multilingual.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,9 @@ jobs:
7676
- name: Generer l'API statique JSON
7777
run: python scripts/generate_api.py
7878

79+
- name: Construire les manifestes de processus (semantic-core-v1)
80+
run: python scripts/build_processes.py
81+
7982
- name: Verifier les checks d'integration
8083
run: python scripts/integration_checks.py
8184

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -228,3 +228,6 @@ public/*.py
228228

229229
# Generated by scripts/generate_api.py (CI/runtime artifact)
230230
public/api/
231+
232+
# Generated by scripts/build_processes.py (semantic-core-v1 process manifests)
233+
public/process/program.*.v1.json

public/index.html

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -238,6 +238,11 @@ <h3>Signets</h3>
238238
<span class="exploration-mode-icon" aria-hidden="true"></span>
239239
<span class="exploration-mode-label">Transforms</span>
240240
</button>
241+
<button class="exploration-mode-btn" type="button" data-mode="croissance" aria-label="Atelier Croissance"
242+
title="Atelier Croissance — fractales vivantes">
243+
<span class="exploration-mode-icon" aria-hidden="true"></span>
244+
<span class="exploration-mode-label">Croissance</span>
245+
</button>
241246
</nav>
242247

243248
<section id="exploration-panel" class="hidden" aria-label="Panneau de modes d'exploration">
@@ -587,6 +592,29 @@ <h3>Signets</h3>
587592
</div>
588593
</section>
589594

595+
<section class="exploration-view hidden" data-view="croissance">
596+
<label class="exploration-field" for="process-select">
597+
<span>Processus vivant</span>
598+
<select id="process-select"></select>
599+
</label>
600+
<canvas id="process-canvas" width="280" height="280"
601+
aria-label="Rendu du processus vivant" style="image-rendering: pixelated; width: 100%; height: auto;"></canvas>
602+
<div id="process-description" class="exploration-readout">Choisissez un processus à dérouler dans le temps.</div>
603+
<div id="process-tier" class="exploration-readout"></div>
604+
<label class="exploration-field" for="process-slider">
605+
<span id="process-step-readout">Image 0 / 0</span>
606+
<input type="range" id="process-slider" min="0" max="0" value="0" step="1" />
607+
</label>
608+
<div class="exploration-actions">
609+
<button id="btn-process-play" class="btn" type="button">Lecture</button>
610+
<button id="btn-process-relief" class="btn btn-secondary" type="button" aria-pressed="false">Relief 3D</button>
611+
<label class="exploration-field" for="process-steps-input">
612+
<span>Pas</span>
613+
<input type="number" id="process-steps-input" min="1" max="600" step="1" value="240" />
614+
</label>
615+
</div>
616+
</section>
617+
590618
</div>
591619
</section>
592620

public/js/process/README.md

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
# Vendored process runtime
2+
3+
`process_core.js` is the **modality-free stepper** for `semantic-core-v1` — the
4+
runtime of multilingual's polymodal / process-calculus layer (v0.8.0). It is
5+
*not* hand-written here: it is a verbatim copy of the language's own JS port,
6+
which is byte-for-byte equivalent to the Python engine in
7+
`multilingualprogramming/codegen/process_core.py`.
8+
9+
We vendor rather than reimplement on purpose. The stepper is the language's
10+
runtime, must stay bit-identical to the Python authority, and reimplementing it
11+
in `.multi` → WASM would be a fork that has to track upstream forever. The
12+
projection math fractales *adds* (e.g. the volumetric `(x,y,z) → (sx,sy,depth)`
13+
mapping) does live in `.multi`; only this shared engine is vendored.
14+
15+
## Provenance
16+
17+
- Upstream: `multilingual/docs/browser/process-dynamics/process_core.js`
18+
- Pinned multilingual version: **0.8.0**
19+
- Integrity: `process_core.js.sha256` records the expected SHA-256.
20+
`scripts/integration_checks.py` fails the build if the file drifts from this
21+
hash, so a silent divergence from the language runtime cannot ship.
22+
23+
To intentionally upgrade: re-copy the upstream file and regenerate the hash with
24+
`sha256sum public/js/process/process_core.js | cut -d' ' -f1 > public/js/process/process_core.js.sha256`.

0 commit comments

Comments
 (0)