INTERACTIVE DEMO — SYNTHETIC DATA
Systems in Motion — Portfolio V1
The predecessor of this site, archived rather than linked. Its runtime decision layer is ported and running below, driven by the four URL switches that were built to test it.
Every record on this page is fabricated. No production system, customer, employee or credential is involved.
The production code behind this demo is my own work — design, implementation.
The runtime, driven by you
V1 decided two things before it rendered anything: how much GPU work the machine could afford, and whether you had to sit through the intro. Set the URL and the machine; watch which gate decides.
high
mounted
1–1.75
2400
on
on
A desktop that reports eight cores and eight gigabytes. This is the only path to the full budget — 2,400 particles, postprocessing and shadows.
THE LADDER, IN THE SOURCE’S ORDER
- ?quality=high|medium|low|none
- ?webgl=off
- no webgl2 or webgl context
- software rasteriser and not ?webgl=force
- navigator.connection.saveData
- (pointer: coarse) or viewport < 900px
- cores ≥ 8 and memory ≥ 8→ high
Four switches, and why each one exists
- ?skip=1
Skips the boot sequence entirely.
Every QA script sets it. An intro that a test has to sit through is an intro that gets deleted from the test.
- ?quality=high|medium|low|none
Pins the render tier, bypassing detection.
Look-dev, and comparing four tiers on one machine without owning four machines.
- ?webgl=off
Mounts no canvas at all. DOM art direction only.
Proving the site is readable without WebGL, which the a11y run asserts on every pass.
- ?webgl=force
Overrides the software-rasteriser refusal.
Headless browsers render through SwiftShader, which detection correctly refuses — so without this there is no screenshot of the real scene.
The nine scenes
One persistent WebGL corridor, nine scenes over it, and every word in real DOM underneath — rule one of three was that nothing readable existed only in the canvas.
- 01Signal
- 02Selected Systems
- 03How I Work
- 04Web & Commerce
- 05Experience
- 06Capability Map
- 07Off Duty
- 08After Hours
- 09Contact
A capture of the full seventeen-second scroll exists and is kept in this repository at docs/v1-baseline/v1-homepage-scroll.webm, where it served as the baseline the V2 rewrite was audited against. It is not published on this page. The scroll passes through V1’s Experience scene, which names an employer beside a job title — where that name is allowed to appear, and only there. It is never placed beside the systems those repositories hold, several of which hold salaries and national IDs. Embedding the capture on a page about those systems would collapse that separation for the sake of seventeen seconds of video, so it stays out.
What is verified here, and what is not
V1 published an editorial rule set — no metric that a repository does not actually measure — and this page inherits it. That rule applies to the page’s claims about itself first.
The two decision ladders on this page are V1's
Ported from src/lib/quality.ts and BootSequence.shouldBoot at tag v1.0-production. The tests below re-assert every gate.
VERIFIED
The source is recoverable
git checkout v1.0-production. The tag is in this repository; it is not a screenshot of one.
VERIFIED
A capture of V1 running exists
docs/v1-baseline/v1-homepage-scroll.webm, taken from the live V1 site and committed on 28 Aug 2026, before a line of V2 was written, as the baseline the rewrite was audited against.
VERIFIED
That capture is published on this page
It is not, and the section above says why: the scroll passes through V1's Experience scene, where an employer is named beside a job title. That name belongs beside a job title and nowhere near the systems these repositories describe. Seventeen seconds of video is not worth collapsing the separation.
NOT VERIFIED
V1 is reachable at a URL
It is not. portfolio.jdenandro.com served V1 until 29 Aug 2026 and has served V2 since. Pointing a visitor there would show them this site and call it the old one.
NOT VERIFIED
The WebGL scene renders on this page
It does not. Nine scenes, GSAP, Lenis and three.js are not re-hosted here — that would be a second copy of a site to maintain. What is portable is the decision layer, and that is what runs.
NOT VERIFIED
The numbers above were re-derived
Each one names the command that produced it. None was carried over from an older document.
VERIFIED
V1 is not linked from this page. Its address, portfolio.jdenandro.com, has served this site since 29 August 2026 — so a link labelled “see V1” would show you V2 and call it the predecessor. An archive that says so is worth more than a link that is quietly wrong.
MEASURED FROM THE TAG
- 75 tracked files
- 58 files under src/ and scripts/
- 7,572 lines in those files
- 9 scenes in the manifest
- 6 case studies
- 6 commits, 20–27 Aug 2026
git checkout v1.0-production recovers all of it.