Runtime

Evulgare Simulations Product Evaluation and Development Brief

Report summary

Evulgare’s simulations area is already more substantial than a typical interactive-demo gallery. The public product contains ten implemented simulations, each described as combining deterministic server logic, browser-based three-dimensional visualization, WebXR support, accessible table and text al

Status
Research archive item
Category
Runtime
Length
8,101 words
Reading time
37 minutes
Report type
evaluation

Key topics

  • Runtime
  • AI
  • TypeScript
  • Python
  • Rust
  • Privacy
  • Physics
  • Semantic Systems

Research provenance

Archive status
Research archive item
Content identity
sha256:32b46dd8e311cb048f63501512a589ff2614dd4ab021cf2c22eba895c1599aa6

For citation, use the report title and canonical URL. Archival presence does not establish authorship or promote report statements into portfolio evidence.

Source availability: 42 citation markers in the source export have no recoverable source links. Those markers are omitted from this reader; any supplied bibliography and ordinary links remain. Check the original sources before relying on the cited claims.

This page renders the archived Markdown as safe, formatted HTML. It is background research and does not become a portfolio claim without evidence review.

Full report

On this page

Executive summary

Evulgare’s simulations area is already more substantial than a typical interactive-demo gallery. The public product contains ten implemented simulations, each described as combining deterministic server logic, browser-based three-dimensional visualization, WebXR support, accessible table and text alternatives, API endpoints, proof invariants, and research traceability. The published software contract explicitly separates what the visual viewer demonstrates from what the deterministic Python engine proves, while public inputs are bounded, synthetic, and non-persistent.

The product’s strongest differentiator is therefore not three-dimensional graphics by themselves. It is the combination of:

  • deterministic and inspectable state transitions;
  • synchronized visual, tabular, narrative, event-log, and proof representations;
  • explicit safety and non-operational boundaries;
  • accessible, server-rendered fallbacks;
  • research-to-code traceability;
  • conservative treatment of uncertainty, authority, and assurance.

That foundation is unusually defensible. Replacing it with a conventional game-engine experience would risk producing a more visually impressive but less trustworthy product. The recommended strategy is to turn the existing collection into a browser-native assurance simulation workbench whose visual layer is more cinematic, immediate, and collaborative while the existing deterministic engines remain authoritative.

The central architectural recommendation is a two-layer model:

  1. Authoritative assurance layer: versioned, pure Python domain engines, canonical scenario schemas, named invariants, deterministic event logs, cryptographic run digests, and accessible server-rendered outputs.
  2. Experiential simulation layer: a TypeScript application with a modern workbench interface, Babylon.js as the preferred three-dimensional runtime, WebGPU enhancement with WebGL2 fallback, optional WebXR, worker-based computation, replay animation, comparison tools, collaboration, and carefully bounded authoring.

Babylon.js is the strongest default fit because it provides an integrated TypeScript/JavaScript engine, WebGPU and WebGL support, WebXR capabilities, and WebAssembly-based Havok physics under the Apache 2.0 license. Three.js remains a credible alternative where lower-level rendering control and a smaller abstraction layer are preferable. WebGPU should be treated as an enhancement rather than a baseline because browser and device support continues to vary, particularly across immersive XR contexts.

The highest-priority product changes are:

PriorityRecommendationWhy it matters
ImmediateReplace the text-heavy gallery with a visual Simulation ExplorerMakes the scope and quality of the existing work apparent within seconds
ImmediateIntroduce a unified simulation workbenchReduces vertical fragmentation and creates a consistent mental model across all ten simulations
ImmediateAdd guided and expert modesBroadens the audience without diluting technical rigor
ImmediateStandardize replay, timeline, compare, export, and share capabilitiesConverts isolated demonstrations into repeatable analytical workflows
Near termAdd capability-aware WebGPU/WebGL/XR startup and performance modesProvides a polished experience without excluding lower-capability devices
Near termPublish a versioned API and simulation schemaEnables integrations, batch evaluation, embeds, and a future plugin ecosystem
Medium termAdd bounded scenario authoring and team collaborationChanges the product from a gallery into a working platform
Long termAdd a signed plugin marketplace, community gallery, and optional GPU-streamed premium laboratoriesCreates network effects and higher-value enterprise offerings

The proposed first product-grade release should be achievable in approximately four to six months with a cross-functional team of five to seven people, assuming the existing deterministic engines are preserved rather than rewritten. A planning range of roughly $800,000–$1.9 million is reasonable for that release under a loaded engineering-cost assumption of $8,000–$12,000 per person-week. The complete eighteen-month platform vision is estimated at $1.8–$4.4 million, excluding unusually expensive content production, specialized XR hardware laboratories, and sustained GPU-streaming infrastructure. These are directional planning estimates, not vendor quotations.

The desired product position is:

Evulgare is the interactive assurance workbench for inspecting how consequential autonomous and software-intensive systems make, constrain, explain, and prove decisions.

This position is more distinctive than competing directly with general-purpose game engines, engineering solvers, or digital-twin platforms. Those products optimize rendering, physical fidelity, model construction, or industrial scale. Evulgare should optimize answerability, provenance, accessible inspection, safe experimentation, and proof-linked interaction.

Current-state audit

Audit scope and confidence. This assessment covers the public, unauthenticated simulations pages, representative simulation experiences, published proof material, and public accessibility and security statements. It is not a source-code audit, penetration test, browser-profile capture, Lighthouse run, or authenticated-workspace review. Findings about publicly described behavior have high confidence; findings about undocumented implementation details and actual runtime performance have lower confidence.

Audit scorecard

AreaCurrent evidenceAssessmentPrincipal opportunity
Product breadthTen implemented simulations cover accountability, provenance, dynamic assurance, authority, uncertainty, federated trust, resilience, modular architecture, governance, and autonomous-drone assurance.Strong conceptual breadth. The content already resembles a coherent research suite rather than a handful of experiments.Present the collection as a navigable curriculum and platform, not ten similarly formatted cards.
Functional depthEach simulation is described as combining deterministic server logic, WebGL, WebXR, accessible alternatives, APIs, proof invariants, and research links. The drone laboratory additionally exposes replay, metrics, event timelines, health gates, proof checks, run comparison, export, and counterfactual branching.Strong underlying functionality, unevenly surfaced. The most advanced experience demonstrates the direction the entire suite could take.Define a shared capability baseline and progressively bring all simulations to it.
TechnologyConfirmed public components are a same-origin Flask API, pure Python service functions, deterministic invariants and digests, native WebGL/WebXR visualization, and server-rendered accessible representations. The public site does not identify its JavaScript framework, rendering abstraction, asset pipeline, hosting topology, or observability stack.Sound authoritative core; incomplete public technical picture. The separation of engine and viewer is architecturally valuable.Standardize schemas and scene adapters, modernize the interactive shell, and publish developer documentation.
Information architectureThe landing page repeats category labels, research-source counts, proof-invariant counts, summaries, and launch links for each scene.Clear but text-heavy. Visitors must read extensively before understanding how experiences differ.Add visual previews, filters, recommended paths, estimated duration, difficulty, audience, and capability badges.
In-simulation UXRepresentative simulations provide controls, presets, keyboard instructions, status text, tables, proof checks, and alternative representations. The drone laboratory contains many advanced panels but creates a long, vertically distributed workflow.Rigorous but cognitively dense. Advanced functionality is discoverable through reading rather than spatial organization.Create a persistent workbench with scene, controls, proof inspector, and timeline visible in a coordinated layout.
AccessibilityThe site states that it targets WCAG 2.2 AA and provides keyboard navigation, visible focus, semantic headings, reduced-motion handling, and multiple representations. Individual simulations provide server-rendered table and text content even when JavaScript or three-dimensional rendering is unavailable.A major differentiator. Progressive enhancement and representation parity are stronger than those of many graphics-oriented products.Convert the target into a documented conformance program with automated and manual evidence, screen-reader matrices, and parity tests.
PerformanceServer-rendered content and no-JavaScript fallbacks reduce the risk that essential information is hidden behind the renderer. Actual bundle sizes, scene-load times, frame times, memory use, API latency, XR latency, and Core Web Vitals are not publicly documented.Architecturally promising but unmeasured in this audit. Progressive enhancement is positive; runtime efficiency remains unknown.Establish explicit budgets and real-user monitoring before expanding visual complexity.
Security and safetyPublicly described controls include secure cookies, CSRF protection, role-based administration, Argon2id, restrictive headers, least privilege, and append-oriented auditing. The simulations also forbid real targeting data and operational interfaces and advise against submitting sensitive or controlled information.Strong stated baseline and boundary discipline.Threat-model persistence, plugins, file import, collaboration, and public sharing before those capabilities launch.
ContentThe simulations consistently articulate what they demonstrate and what they do not demonstrate. The content avoids reducing complex assurance questions to a universal score.Intellectually disciplined, but specialized. Terminology may be difficult for first-time visitors.Add layered explanations, glossaries, examples, guided narratives, and audience-specific entry points.
Target audienceNo single audience statement is prominent on the gallery. Based on subject matter and terminology, likely users include assurance engineers, autonomy and safety researchers, system architects, governance specialists, technical evaluators, policy stakeholders, educators, and program leadership.Audience is inferred rather than declared.Introduce explicit tracks such as “Learn,” “Evaluate,” “Build,” and “Govern.”
Analytics and product feedbackNo public evidence was found of user-facing telemetry controls, session diagnostics, feedback prompts, adoption metrics, or experiment infrastructure.Unknown.Add privacy-preserving product analytics and operational telemetry with clear data boundaries.
Platform extensibilityPublic API endpoints exist, but the site does not yet present a consolidated API portal, SDK, plugin contract, scenario package format, embed kit, or community registry.Promising foundation, not yet a visible ecosystem.Productize the APIs and establish versioned extension contracts.

Feature and content analysis

The landing page’s main strength is clarity of intent. It immediately identifies desktop three-dimensional rendering, WebXR, accessible fallbacks, synthetic boundaries, and the ten implemented scenes. It also distinguishes visualization from deterministic proof and explains the run–derive–verify–render contract.

Its main weakness is that it communicates richness almost entirely through text. The page does not quickly answer several practical questions a prospective user is likely to have:

  • Which simulation should I start with?
  • Which ones are introductory versus advanced?
  • How long does each experience take?
  • Which ones work well on mobile or XR?
  • Which offer replay, comparison, branching, or export?
  • Which concepts are prerequisites for others?
  • Can I save, share, embed, or modify a scenario?
  • What will I learn or be able to prove after completing one?

A more effective gallery would function as an explorer rather than a catalog. Each simulation card should show an animated or interactive preview, subject category, estimated completion time, difficulty, available modes, relevant audiences, proof count, and device capability. Filters should support topic, simulation mechanic, audience, complexity, duration, input method, and accessibility mode.

The individual simulation pages show a stronger interaction model than the landing page implies. The Accountability Evidence Room, for example, combines bounded controls, presets, proof checks, disclaimers, keyboard guidance, visual output, tables, textual interpretation, and an authoritative fallback. The Autonomous Drone Control Assurance Lab goes much further with replay, timeline events, candidate comparison, supervisory control, health gates, proof evidence, post-run summaries, export, comparison, and counterfactual branching.

The product should standardize those advanced capabilities. A visitor should not have to learn a different page structure or hunt through a long page for each simulation. A common workbench can preserve simulation-specific controls while providing invariant locations for:

  • simulation status;
  • scenario presets;
  • run controls;
  • visual scene;
  • accessible representation switcher;
  • event timeline;
  • proof inspector;
  • comparison;
  • export and sharing;
  • research traceability;
  • performance and capability diagnostics.

Accessibility assessment

The existing approach is directionally excellent. The site targets WCAG 2.2 AA and emphasizes keyboard navigation, visible focus, semantic structure, reduced motion, and multiple representations. WCAG 2.2 organizes accessibility under four principles—perceivable, operable, understandable, and robust—and requires a combination of machine testing and human evaluation rather than reliance on automated checks alone.

The most valuable existing accessibility choice is that the table and text views are not merely afterthoughts. Representative simulation pages identify them as authoritative equivalents and leave useful server-rendered information available when JavaScript or the renderer is unavailable.

The remaining gap is evidence. “Targets WCAG 2.2 AA” should mature into a public conformance and testing program covering:

RequirementRecommended evidence
Keyboard operationAutomated focus-order checks plus manually recorded task completion without a pointer
Screen-reader compatibilityNVDA/Firefox, JAWS/Chrome, VoiceOver/Safari, and TalkBack/Chrome test matrix
Visual alternativesAutomated assertion that each scene state has corresponding table, narrative, and proof state
Reduced motionTest that camera animation, particles, flashing, and timeline auto-play are suppressed
Non-color statusScreenshot and DOM tests confirming icons, labels, patterns, or text accompany color
Zoom and reflowTesting at 200% and 400%, including workbench panels and data tables
XR accessibilityDocumented non-XR equivalents for every required task
Cognitive accessibilityGuided mode, glossary, progressive disclosure, plain-language summary, and recoverable controls
Conformance reportingVersioned accessibility statement and VPAT/ACR where enterprise procurement requires it

Performance assessment

The public architecture has one important performance advantage: critical explanatory content is rendered independently of the three-dimensional client. That means a failed or slow renderer does not necessarily result in a blank page.

However, increasingly sophisticated visuals can easily undermine that advantage if engine code, high-resolution assets, XR libraries, physics, analytics, collaboration, and authoring tools are loaded eagerly. The redesign should therefore enforce three principles:

  1. Do not download the three-dimensional engine on the gallery page.
  2. Do not initialize XR, physics, collaboration, or authoring until requested.
  3. Do not let visual update work block accessible state updates or input responsiveness.

For public pages, recommended field-performance gates are the current “good” Core Web Vitals thresholds: Largest Contentful Paint no greater than 2.5 seconds, Interaction to Next Paint no greater than 200 milliseconds, and Cumulative Layout Shift no greater than 0.1 at the 75th percentile. Resource prioritization, CDN delivery, explicit media dimensions, and the removal of unnecessary main-thread JavaScript are among the principal means of achieving those targets.

Competitive landscape

The comparison below intentionally includes both platforms and frameworks. They solve different layers of the problem: browser rendering, native engine development, streamed high-fidelity graphics, industrial digital twins, systems simulation, engineering analysis, and verification. Evulgare should selectively adopt their strongest patterns rather than imitate any one product wholesale.

Platform and framework comparison

Platform or frameworkPrimary strengthsReal-time capabilitiesScalabilityExtensibilityLicensingTypical stack and relevance to Evulgare
Babylon.jsIntegrated browser three-dimensional engine with WebGPU, WebGL, WebXR, materials, asset loading, inspector tooling, and optional Havok physicsStrong browser-frame rendering; XR support; WebGPU with WebGL compatibility; WASM physicsScales well for client-side interactive scenes when assets and draw calls are managed; heavier computation can move to workers or servicesTypeScript/JavaScript modules, custom shaders, node materials, loaders, engine pluginsApache 2.0TypeScript/JavaScript, WebGPU/WebGL, WebXR, WASM. Best default match for a unified Evulgare scene runtime.
Three.jsFlexible, lower-level rendering toolkit with a large ecosystem and less opinionated architectureWebGL and WebGPU rendering; WebXR integrations; application logic supplied by the developerExcellent for carefully optimized bespoke scenes; more platform infrastructure must be built separatelyHighly extensible through loaders, controls, post-processing, custom render passes, shaders, and ecosystem packagesMITTypeScript/JavaScript, WebGL/WebGPU, WebXR. Appropriate where Evulgare wants complete rendering control and is willing to assemble more subsystems.
Unity 6Mature editor, broad asset ecosystem, multiplatform deployment, physics, animation, UI, and multiplayer packagesStrong native real-time engine; web builds use WebAssembly/WebGL2; WebGPU support remains experimental rather than a safe production baselineStrong for native and managed multiplayer deployments; browser builds can be large and constrained by browser threading, networking, and memory limitationsC#, packages, editor tooling, native plugins, Netcode for GameObjects and EntitiesCommercial terms; Personal tier under eligibility thresholds and paid Pro/Industry tiersC#, Unity runtime, WebAssembly/WebGL2 for web, native clients elsewhere. Suitable for a separate native application, but not recommended as the primary replacement for Evulgare’s progressive web architecture.
Unreal Engine with Pixel StreamingHighest-end visual fidelity, mature cinematic tooling, Nanite/Lumen rendering, complex native simulation, and browser delivery through streamed renderingNative real-time rendering streamed over WebRTC; signaling, selective forwarding, and scaling infrastructure support remote usersScales through GPU instances, orchestration, matchmakers, and streaming infrastructure, but operating cost is much higher than client-side renderingC++, Blueprints, plugins, source access, custom rendering and simulation modulesFree below applicable revenue thresholds for many uses; royalties or seat fees apply under defined commercial casesC++/Blueprints, GPU servers, WebRTC. Best reserved for premium high-fidelity laboratories that cannot run locally.
NVIDIA OmniverseOpenUSD-based industrial digital twins, RTX visualization, collaborative scene state, physics schemas, and enterprise simulation workflowsNucleus supports collaborative scene data; Kit applications can stream framebuffers using WebRTC-based livestreamingDesigned for multi-application digital-twin workflows and high-end GPU infrastructurePython and C++ extension APIs, OpenUSD schemas, Kit extensions, connectorsOmniverse development and production components are broadly available without per-seat development fees; enterprise support is available through NVIDIA offeringsPython/C++, OpenUSD, RTX, WebRTC, Nucleus. Relevant for enterprise digital-twin interoperability or an optional high-fidelity backend, not as the default public runtime.
AnyLogic and AnyLogic CloudAgent-based, discrete-event, and system-dynamics modeling in one environment; web execution and model sharingInteractive simulation runs and cloud dashboards rather than high-frame-rate immersive renderingCloud execution, external data integration, and model sharing support operational simulation workloadsModel APIs, Java-oriented model logic, Python connectivity, cloud APIs, and custom interfacesProprietary commercial editions with limited or educational tiersAnyLogic authoring plus cloud/browser execution and APIs. A strong benchmark for scenario authoring, experimentation, and process modeling.
SimScaleBrowser-based CFD, finite-element, thermal, and electromagnetic engineering simulation with cloud computeNot intended for game-like frame-level interactivity; excels at asynchronous and parameter-sweep engineering runsElastic cloud execution and parallel exploration of many design variantsREST APIs, workflows, Python and C# SDKs, third-party solver integration, CI/CD integrationSaaS subscriptions, including limited community access and commercial plansBrowser SaaS plus cloud solvers and SDKs. Relevant as a model for API-driven batch jobs, experiment management, and large parameter studies.
MATLAB Simulink and SimscapeBlock-diagram dynamic-system modeling, multidomain physical modeling, automated verification, code generation, hardware-in-the-loop, and co-simulationStrong real-time and hardware-in-the-loop execution in specialized environmentsScales through compiled models, testing infrastructure, hardware targets, and engineering workflows rather than public browser renderingMATLAB code, Simulink blocks, Simscape language, FMUs, C/C++/CUDA generation, third-party co-simulationProprietary commercial licensingMATLAB/Simulink/Simscape with generated native code and real-time targets. An important benchmark for model verification, requirements traceability, test automation, and co-simulation.

Competitive conclusions

Babylon.js versus Three.js. Babylon.js is the recommended default because Evulgare needs an application platform rather than only a renderer. Integrated XR, physics, inspection tools, material systems, and WebGPU fallback reduce the amount of platform code that must be maintained. Three.js is preferable only if the existing renderer is already deeply bespoke or if maintaining a thinner rendering abstraction is a strategic priority.

Unity and Unreal. Both deliver mature real-time authoring, but neither should replace the current web and Python architecture. Unity web deployments inherit browser-specific constraints and do not yet make WebGPU a conservative production foundation. Unreal’s Pixel Streaming can deliver exceptional graphics, but each active high-fidelity session consumes server-side GPU capacity and introduces latency, orchestration, and cost concerns.

Omniverse. Omniverse becomes strategically relevant if Evulgare enters industrial digital twins, OpenUSD exchange, synthetic-data generation, or shared enterprise scenes. Its OpenUSD and extension model could support premium integrations, but introducing it into the public product now would add more platform complexity than user value.

AnyLogic, SimScale, and Simulink. These are the most useful conceptual competitors. They demonstrate that serious simulation platforms are differentiated by experiment design, parameter sweeps, scenario management, verification, integration, and reproducibility—not only rendering. Evulgare should borrow those workflow patterns while preserving its unique emphasis on assurance structure, proof, and accessible inspection.

Defensible product differentiation

Evulgare should avoid positioning itself as:

  • a general game engine;
  • a high-fidelity CFD or finite-element solver;
  • an operational autonomy-control interface;
  • a universal digital-twin environment;
  • an automated safety-certification system.

Its strongest competitive space is the intersection of simulation, assurance, provenance, governance, and explanation. The public proof material itself cautions that running a simulation is not certification and does not eliminate the gap between a model and reality.

A useful category formulation is:

Assurance simulation and decision-provenance platform

The category promise would be that every meaningful visual transition can be traced to structured inputs, deterministic domain logic, named proof conditions, an event history, and an accessible representation.

Product roadmap and feature proposals

Effort scale. Low means approximately one to three person-weeks; medium means four to eight person-weeks; high means nine to twenty person-weeks. Estimates include implementation and routine testing but not extensive original research, regulatory certification, or specialized content creation.

Impact scale. High indicates a substantial effect on adoption, comprehension, retention, enterprise value, or platform leverage. Medium indicates valuable but non-foundational improvement.

Short-term product work

Priority and featureUser storyAcceptance criteriaEffortImpact
Simulation ExplorerAs a first-time visitor, I want to understand and compare simulations visually so that I can choose an appropriate starting point without reading the entire page.Every simulation has a preview image or lightweight muted animation; filters cover topic, audience, difficulty, duration, mode, and device support; filters are keyboard operable and represented in the URL; the gallery does not load the full 3D engine; cards identify guided mode, expert mode, XR, comparison, and export availability.MediumHigh
Capability preflightAs a user on an unknown device, I want the product to select a compatible experience and explain its choice.Detect WebGPU, WebGL2, XR, memory class, reduced motion, pointer type, and relevant accessibility preferences; offer “Recommended,” “High fidelity,” and “Low power” modes; never block access to table or text views; capability results can be reopened from the workbench.MediumHigh
Unified simulation workbenchAs a returning analyst, I want the same structural layout across simulations so that I can transfer knowledge from one scene to another.Desktop layout exposes controls, scene, proof inspector, and timeline without requiring long-page navigation; panels are resizable and keyboard reachable; mobile converts panels into ordered tabs or drawers; each simulation implements a shared workbench interface.HighHigh
Guided and expert modesAs a learner, I want a narrated path; as an expert, I want direct access to all controls.Guided mode states a learning objective, introduces no more than one new concept per step, explains each resulting change, and completes a baseline exercise in approximately three minutes; expert mode exposes all bounded inputs; users can switch modes without losing valid scenario state.MediumHigh
Universal replay and timelineAs an evaluator, I want to move through a run event by event and see all representations remain synchronized.Play, pause, step, scrub, speed, and jump-to-event controls are available; visual scene, table, narrative, metrics, and proof state reflect the same event index; keyboard and screen-reader alternatives exist; replay does not recompute or alter canonical history.HighHigh
Baseline-versus-variant comparisonAs an analyst, I want to compare two deterministic runs and understand exactly what changed.Users can pin a baseline, change bounded parameters, execute a variant, and inspect input, event, output, invariant, and digest differences; camera synchronization is optional; unchanged fields collapse by default; both histories remain immutable.HighHigh
Portable evidence packageAs a reviewer, I want to export a run so that another person can independently inspect or replay it.Export includes schema version, engine version, normalized input, event log, outputs, proof results, digest, accessibility narrative, and research references; import validates schema and digest; export avoids sensitive browser or user identifiers; JSON and human-readable report formats are supported.MediumHigh
Privacy-preserving product analyticsAs a product team, we want to understand where users succeed or abandon without collecting scenario content by default.Analytics record page and feature events but exclude scenario payloads, free-form annotations, and proof content unless separately consented; a diagnostic mode shows exactly what will be transmitted; opt-out is honored; event schemas are versioned.MediumMedium–High
Performance and accessibility CI baselineAs an engineering team, we need regressions to fail before release.Lighthouse CI, axe-core, keyboard smoke tests, bundle budgets, scene frame-time tests, and representative API benchmarks run in CI; threshold failures block protected-branch merges unless an exception is documented.MediumHigh

Mid-term platform work

Priority and featureUser storyAcceptance criteriaEffortImpact
Versioned simulation runtime and schemaAs a developer, I want a stable contract for adding scenes without copying page-specific infrastructure.Define versioned Scenario, Run, Event, Metric, Proof, Representation, Asset, Annotation, and Capability schemas; every existing scene is represented through an adapter; schema migrations are testable; unknown fields follow a documented compatibility policy.HighHigh
Bounded scenario authoring studioAs a domain expert, I want to configure a new synthetic scenario without editing code.Authors can compose allowlisted nodes, relationships, events, parameters, and proof-display rules; validation occurs continuously; preview runs are sandboxed; operational coordinates, hardware commands, external actuators, and prohibited data types cannot be introduced through the public authoring interface.HighHigh
Team workspaces and annotationsAs a review team, we want to inspect the same run, annotate events, and resolve questions collaboratively.Workspace roles include owner, author, analyst, reviewer, and observer; annotations can target events, proof checks, entities, and time ranges; all changes are audited; public simulations remain ephemeral unless a user explicitly saves to a workspace.HighHigh
Live collaborative observationAs a distributed team, we want to follow the same replay and discuss evidence in real time.A host or presenter can synchronize playback and selection; observers may detach locally; presence and shared pointers are rate-limited; deterministic run data remains server-authoritative; reconnection restores the correct run and event index.HighMedium–High
Public API, SDKs, and webhooksAs an integrator, I want to run scenarios and retrieve proof records programmatically.Publish OpenAPI documentation; support idempotency keys, schema versioning, rate limits, pagination, structured error codes, and signed webhooks; provide generated TypeScript and Python clients; examples include single run, batch run, compare, export, and embed.HighHigh
WebGPU enhancement pathAs a user with modern hardware, I want richer scenes without excluding users on WebGL2.WebGPU is selected only after capability checks; WebGL2 remains a fully functional fallback; render output differences do not alter authoritative simulation results; shader and scene tests run against both paths; quality adapts to sustained frame time.HighMedium–High
Challenge and learning systemAs a learner, I want structured exercises that reward understanding rather than unsafe optimization.Challenges evaluate explanation quality, proof inspection, successful identification of defeaters, appropriate abstention, and comparison completion; rankings do not reward increased authority, reduced safety margins, or operational performance.MediumMedium–High
Embeddable simulation componentsAs a researcher or educator, I want to place a bounded Evulgare scenario in a course or report.Embeds support fixed scenario manifests, configurable controls, accessible output, signed origin restrictions, responsive sizing, and parent-page event callbacks; third-party pages cannot expand the allowlisted control surface.MediumHigh

Long-term platform work

Priority and featureUser storyAcceptance criteriaEffortImpact
Signed plugin SDK and registryAs a qualified developer, I want to add a visualization, importer, exporter, proof view, or simulation adapter without modifying the core product.Plugins declare permissions and compatible schema versions; manifests are signed; execution is sandboxed; network, storage, and DOM access are denied by default; registry review, revocation, telemetry, and update channels exist.HighHigh
Community scenario galleryAs a user, I want to discover credible scenarios created by others.Published scenarios expose author, version, license, safety classification, schema version, validation status, dependencies, proof coverage, and moderation history; forks retain provenance; reporting and takedown workflows are available.HighHigh
Assurance copilotAs a learner or reviewer, I want help interpreting a run without allowing an AI assistant to invent proof or operational advice.The assistant can explain visible state, compare runs, summarize events, and point to cited research; statements are grounded in structured run data; generated content is labeled; it cannot modify canonical history, certify safety, produce prohibited operational data, or silently change scenario parameters.HighMedium–High
Premium streamed laboratoriesAs an enterprise user, I want photorealistic or computationally heavy scenes that exceed browser-device capability.Unreal or Omniverse sessions are isolated, region-aware, metered, and initiated only when needed; WebRTC quality adapts to network conditions; accessible state remains available independently of video; authoritative run evidence is generated outside the rendered framebuffer.HighMedium
Enterprise private deploymentAs a regulated organization, I need private models, identity federation, auditability, and deployment control.SAML/OIDC SSO, SCIM, tenant keys, private plugins, configurable retention, data residency, customer-managed storage options, audit export, and on-premises or private-cloud deployment are supported.HighHigh
Experiment orchestration and parameter sweepsAs a researcher, I want to run hundreds or thousands of bounded variants and analyze invariant failures.Jobs are queued and cancellable; parameter spaces are validated; results are deduplicated by normalized input and engine version; aggregate analysis never hides individual proof failures; resource quotas and cost estimates are shown before execution.HighHigh
Native or offline companionAs a field educator or secure-site user, I want selected laboratories to operate without continuous connectivity.Signed scenario and engine bundles can be installed; runs remain deterministic; exports can be transferred without cloud dependency; offline state is encrypted; synchronization is explicit and conflict-safe.HighMedium
PhaseCalendarPrincipal outputEstimated person-weeksDirectional cost
Foundation and measurementWeeks 0–6Contract inventory, schema package, analytics policy, performance baseline, accessibility test matrix, visual explorer prototype, design system25–40$200,000–$480,000
Unified workbench releaseWeeks 7–16Explorer, capability preflight, guided mode, shared workbench, standardized replay, comparison, export, first migrated scenes45–70$360,000–$840,000
Platform and collaborationMonths 5–9Remaining scene migration, FastAPI services, public API, workspace persistence, annotations, live observation, embeds, bounded authoring beta70–110$560,000–$1,320,000
Ecosystem and frontier capabilitiesMonths 10–18Plugin registry, community gallery, parameter sweeps, enterprise deployment, copilot, optional streamed high-fidelity laboratories90–150$720,000–$1,800,000
Complete eighteen-month visionMonths 0–18Product, platform, ecosystem, and enterprise capabilities230–370$1,840,000–$4,440,000

These estimates assume a blended team consisting of a product or engineering lead, two to three frontend/graphics engineers, two backend/platform engineers, a product designer with accessibility expertise, and shared quality/security support. Content-heavy simulation authoring may require additional subject-matter expertise.

Architecture and technology recommendations

Target architecture

flowchart LR
    subgraph Client["Browser and XR client"]
        SSR["Server-rendered semantic HTML\nTables · narratives · proof summaries"]
        SHELL["TypeScript workbench\nReact · state machine · design system"]
        RENDER["Babylon.js renderer\nWebGPU with WebGL2 fallback"]
        WORKERS["Web Workers and optional WASM\nLayout · interpolation · visual effects"]
        A11Y["Accessible representation adapter\nARIA · tables · live summaries"]
        LOCAL["Ephemeral local state\nIndexedDB only when explicitly enabled"]

        SHELL --> RENDER
        SHELL --> WORKERS
        SHELL --> A11Y
        SHELL --> LOCAL
        SSR --> SHELL
    end

    CDN["CDN and object storage\nJS · glTF · KTX2 · exports"]
    EDGE["WAF · API gateway · rate limits\nAuthentication · request IDs"]
    API["FastAPI application layer\nOpenAPI · validation · orchestration"]
    ENGINE["Pure deterministic Python engines\nNamed invariants · canonical digests"]
    REALTIME["Realtime service\nWebSocket presence and collaboration"]
    JOBS["Asynchronous workers\nBatch runs · exports · parameter sweeps"]
    PG["PostgreSQL\nTenants · workspaces · metadata"]
    REDIS["Redis\nPresence · cache · quotas · short-lived state"]
    BUS["NATS JetStream or equivalent\nVersioned domain events"]
    OBJECTS["S3-compatible storage\nAssets · reports · signed packages"]
    OTEL["OpenTelemetry collector\nTraces · metrics · logs"]
    GPU["Optional GPU-streamed laboratories\nUnreal or Omniverse over WebRTC"]

    Client --> CDN
    Client --> EDGE
    EDGE --> API
    EDGE --> REALTIME
    API --> ENGINE
    API --> PG
    API --> REDIS
    API --> BUS
    API --> OBJECTS
    REALTIME --> REDIS
    REALTIME --> BUS
    JOBS --> ENGINE
    JOBS --> BUS
    JOBS --> OBJECTS
    API --> OTEL
    REALTIME --> OTEL
    JOBS --> OTEL
    Client -. premium session .-> GPU
    GPU --> EDGE

The authoritative boundary is deliberate. Babylon.js, WebGPU, physics, interpolation, particles, and cinematic camera behavior improve the representation, but they must not become the source of truth for proof-bearing state. The server’s deterministic engine should remain authoritative unless a future computation kernel is independently specified, versioned, and proven equivalent.

Technology decision matrix

LayerRecommendationAdvantagesTradeoffsMigration approach
Web application shellTypeScript, React, Vite initiallyMature component ecosystem, strong accessibility libraries, incremental embedding in existing server-rendered pages, fast development loopAdds a framework where current pages may be simpler; requires hydration disciplineMount the workbench only inside simulation routes; preserve server-rendered content outside the mount point; migrate one scene at a time
Three-dimensional runtimeBabylon.jsIntegrated WebGPU/WebGL, WebXR, materials, inspector, asset loading, animation, and optional Havok physicsLarger and more opinionated than a renderer-only libraryBuild a SceneAdapter interface; reproduce one representative scene; keep legacy scenes available behind a feature flag until parity is proven
Alternative rendererThree.js where justifiedLower-level control, broad ecosystem, flexible integrationMore custom work for asset management, physics, inspector tooling, XR behavior, and scene conventionsRetain as a fallback architectural option if a prototype shows materially lower size or migration risk
UI stateXState or explicit reducer-based state machinesMakes idle → validating → running → replaying → comparing → exporting → error states inspectable and testableRequires state-model discipline and trainingStart with the workbench lifecycle and collaboration connection state
Server-state clientTanStack QueryCaching, cancellation, retries, invalidation, and request-state consistencyMust not obscure deterministic run identityKey all run queries by normalized input hash, schema version, and engine version
Runtime validationZod on the client; Pydantic on the serverShared conceptual schemas, generated documentation, bounded input validationDuplicated validation definitions unless code generation is usedGenerate TypeScript schemas from OpenAPI/JSON Schema where practical
Accessible componentsReact Aria or similarly mature primitivesKeyboard and screen-reader behavior without locking the product into a visual themeComplex composite widgets still require manual testingUse for dialogs, tabs, menus, sliders, grids, tooltips, and focus management
Backend APIFastAPI, introduced through a strangler migrationTyped request models, OpenAPI and JSON Schema generation, WebSocket support, testing utilities, and Python compatibilityRunning Flask and FastAPI temporarily adds operational complexityPut FastAPI beside Flask; route new endpoints to FastAPI; wrap existing pure service functions; migrate only after golden-contract parity
Domain enginePreserve pure deterministic Python functionsExisting proof logic, reproducibility, auditability, and low rewrite riskPython may not suit every future high-throughput numerical workloadDefine a strict engine interface; optimize only measured hotspots; allow optional Rust/WASM/native kernels behind the same contract
Client concurrencyWeb Workers with Comlink; optional Rust/WASMKeeps layout, interpolation, parsing, and non-authoritative visual computation off the main threadSerialization and worker lifecycle add complexityMove one measurable long task at a time; do not duplicate canonical server logic without parity tests
PhysicsUse selectively: Havok for visual scenes; Rapier for deterministic WASM experimentsHavok integrates with Babylon; Rapier supports browser deployment and an enhanced determinism modeMost existing scenes are abstract graphs and do not need physics; visual physics can imply false realismTreat physics as presentation unless the same versioned kernel is authoritative; never add physics merely for spectacle
Real-time communicationWebSocket for collaboration; WebRTC only where necessaryWebSocket is straightforward for presence, annotations, and synchronized replay; WebRTC is appropriate for media, XR poses, or GPU streamingWebSocket scaling requires connection-state infrastructure; WebRTC is operationally complexLaunch asynchronous annotations first, then presenter synchronization; reserve WebRTC for voice/video or streamed laboratories
Primary databaseManaged PostgreSQLTransactions, relational integrity, JSON support, tenant metadata, mature operationsRequires schema governance and migration disciplineStore users, workspaces, saved scenario references, annotations, API keys, and billing metadata—not transient frame state
Short-lived stateRedisPresence, quotas, ephemeral collaboration state, caching, distributed rate limitingIncorrect use can create hidden durable stateAssign TTLs to all transient keys and document whether each key is reconstructable
Event transportNATS JetStream or a managed equivalentLightweight event fan-out, replayable streams, good fit for run completion, exports, collaboration, and webhooksAnother operational system; ordering and delivery semantics must be designedIntroduce when asynchronous jobs and webhooks appear, not before
Object storageS3-compatible storage with CDNDurable exports, assets, signed packages, cost-efficient distributionRequires lifecycle, malware scanning, access-policy, and tenancy controlsStore immutable content-addressed artifacts; issue short-lived signed URLs
Asset pipelineglTF/GLB, KTX2/Basis textures, Draco or meshopt compressionEfficient web-standard asset delivery and GPU-friendly texture compressionCompression adds build complexity and can delay first render if overusedEstablish per-scene asset budgets and progressive levels of detail
ObservabilityOpenTelemetryVendor-neutral traces, metrics, logs, and collector architectureInstrumentation still requires careful semantic conventions and privacy controlsDefine run ID, trace ID, engine version, scene version, and capability tier as standard attributes; exclude scenario content by default
CI/CDGitHub Actions or equivalent with preview environmentsFamiliar automation, pull-request validation, reproducible deliveryGPU and XR testing require specialized runners or device labsSplit fast required checks from scheduled browser, GPU, security, and soak suites
HostingCDN plus managed containers and managed data servicesIndependent scaling of static assets, APIs, collaboration, and workersMore components than a single Flask deploymentBegin with a small number of services; split only where scaling, security, or availability boundaries justify it
Premium renderingOptional Unreal or Omniverse GPU poolEnables scenes beyond client hardware and supports premium enterprise experiencesHigh session cost, regional capacity planning, WebRTC operations, latencyKeep isolated from the core product and provision only after demonstrated demand

FastAPI’s official capabilities include OpenAPI and JSON Schema generation, typed Python request models, WebSocket endpoints, and documented test-client patterns, making it a pragmatic modernization path without abandoning the existing Python domain layer.

Canonical data contracts

The platform should define a versioned envelope similar to:

{
  "schemaVersion": "2.0.0",
  "simulationId": "autonomy-assurance-lab",
  "simulationVersion": "2.3.1",
  "engineVersion": "1.8.0",
  "scenario": {
    "presetId": "unexpected-object-baseline",
    "parameters": {}
  },
  "run": {
    "id": "content-addressed-or-generated-id",
    "startedAt": "ISO-8601 timestamp",
    "determinismProfile": "python-authoritative-v1"
  },
  "events": [],
  "outputs": {},
  "metrics": {},
  "proof": {
    "invariants": [],
    "canonicalDigest": "..."
  },
  "representations": {
    "narrative": {},
    "table": {},
    "scene": {}
  },
  "provenance": {
    "researchReferences": [],
    "parentRunId": null,
    "branchEventIndex": null
  }
}

Canonical serialization must specify field ordering or canonical JSON rules, numerical precision, Unicode treatment, absent-versus-null behavior, and schema-version inclusion. Otherwise, equivalent records may produce different digests across languages or runtime versions.

A digest proves integrity relative to the selected canonical representation; it does not prove that assumptions are correct, that reality matches the model, or that a system is certified. Evulgare’s existing proof language already preserves this distinction and should continue doing so.

Migration sequence

Migration stepWorkExit condition
BaselineCapture all current routes, payloads, outputs, proof vectors, screenshots, keyboard workflows, and no-JavaScript representations.Golden regression suite passes against the current production behavior.
Contract extractionCreate shared JSON Schema/OpenAPI definitions and a Python domain-engine interface.Every simulation can execute through one typed internal interface without changing results.
Workbench shellAdd the TypeScript workbench around one representative simulation, preferably the Accountability Evidence Room or Drone Assurance Lab.Feature parity exists for controls, visual state, table, narrative, proof, and fallback.
Scene adaptersIntroduce adapters for data-to-scene mapping, camera policy, interaction, selection, and accessibility narration.A second materially different simulation can reuse the shell without page-specific duplication.
FastAPI sidecarRoute new versioned endpoints to FastAPI while retaining legacy Flask endpoints.Golden payload and digest tests prove compatibility; generated SDK clients pass contract tests.
Standardized replay and compareNormalize events and snapshots across engines.At least three simulations share the same timeline and comparison components.
Full scene migrationMove remaining scenes incrementally behind per-scene feature flags.All public simulations meet shared capability, accessibility, and performance gates.
Opt-in persistenceAdd identity, workspaces, saved runs, and annotations without changing anonymous defaults.Anonymous public runs remain ephemeral; saved content is tenant-isolated and auditable.
Realtime and authoringAdd collaboration and bounded authoring after schemas and authorization stabilize.Threat models, load tests, and abuse controls pass release criteria.
WebGPU and premium renderingAdd enhanced rendering and optional GPU streaming.WebGL2 and accessible modes retain full functional parity; costs and quality are measurable.

Experience, quality, security, and commercial strategy

Interaction and visual design

The desired visual direction should be technical, spatial, and cinematic without becoming decorative or militarized. A productive design vocabulary would combine:

  • a restrained dark or neutral instrument-panel foundation;
  • clear typographic hierarchy;
  • semantic status chips;
  • animated edges, pulses, volumes, uncertainty fields, and state transitions;
  • camera moves tied to events rather than idle spectacle;
  • subtle depth, lighting, and post-processing;
  • diagrams and overlays that expose proof structure;
  • visible identifiers and text labels so that color is never the sole carrier of meaning.

The gallery should use still or lightweight animated previews. Motion should pause when cards leave the viewport, when the page is hidden, or when reduced motion is requested. Full engine initialization should occur only after a user launches a simulation.

A recommended desktop workbench structure is:

┌──────────────────────────────────────────────────────────────────────────────┐
│ Simulation title · mode · capability · run status · save/share/export       │
├─────────────────┬──────────────────────────────────────┬─────────────────────┤
│ Scenario        │                                      │ Proof inspector     │
│                 │          Interactive scene           │                     │
│ Presets         │                                      │ Invariants          │
│ Parameters      │          Selection overlays          │ Evidence            │
│ Interventions   │          Camera / view tools         │ Defeaters           │
│ Run controls    │                                      │ Research links      │
├─────────────────┴──────────────────────────────────────┴─────────────────────┤
│ Event timeline · play · step · speed · bookmarks · baseline/variant diff    │
├──────────────────────────────────────────────────────────────────────────────┤
│ View: Visual | Table | Narrative | Metrics | Event log | Raw evidence       │
└──────────────────────────────────────────────────────────────────────────────┘

On mobile, the same information hierarchy should become a scene-first layout with a persistent status header and ordered tabs:

[Status and Run]
[Scene / diagram]
[Controls] [Timeline] [Proof] [Table] [Narrative]

Mobile users should not receive a compressed desktop dashboard. Complex tables should support card representations, sticky row headers, column selection, and downloadable full data.

Guided interaction model

Each simulation should have three explicit modes:

ModeIntended userBehavior
GuidedFirst-time visitor, student, executive reviewerPrescribed sequence, minimal controls, narrated transitions, glossary, “why this matters,” and a short completion summary
ExploreGeneral technical userCurated presets, bounded parameter changes, replay, compare, and contextual explanations
ExpertAssurance engineer, researcher, integratorFull allowlisted parameter surface, raw event and proof views, exports, API examples, and authoring hooks

Guided mode should never present itself as a simplistic video tour. It should still execute the real deterministic engine and display authentic proof state. The difference is controlled disclosure, not a separate demonstration.

User flow

flowchart TD
    A["Arrive at Simulation Explorer"] --> B["Choose goal\nLearn · Evaluate · Build · Govern"]
    B --> C["Filter or accept recommendation"]
    C --> D["Capability and accessibility preflight"]
    D --> E{"Select experience mode"}
    E -->|Guided| F["Learning objective and narrated baseline"]
    E -->|Explore| G["Choose preset and bounded controls"]
    E -->|Expert| H["Open full workbench and raw evidence tools"]

    F --> I["Validate scenario"]
    G --> I
    H --> I

    I --> J["Execute deterministic run"]
    J --> K["Synchronize visual, table, narrative,\nmetrics, event log, and proof"]
    K --> L["Inspect event timeline and invariants"]
    L --> M{"Next action"}
    M -->|Change bounded input| N["Create variant or counterfactual"]
    N --> J
    M -->|Compare| O["Baseline-versus-variant analysis"]
    M -->|Collaborate| P["Share workspace or live review"]
    M -->|Export| Q["Evidence package or report"]
    M -->|Learn more| R["Research traceability and glossary"]

    O --> S["Summary of changed causes,\noutputs, and proof conditions"]
    P --> S
    Q --> S
    R --> S
    S --> T["Recommended next simulation or challenge"]

Accessibility requirements

Every interactive capability should have a representation-level acceptance rule:

Visual capabilityRequired equivalent
Selecting a node or entityKeyboard-selectable row or tree item with identical identifier and state
Seeing an edge activateEvent-log and narrative statement naming source, destination, condition, and time
Comparing colors or volumesText label, icon, pattern, numeric or categorical value
Moving the camera“Focus entity” command and non-spatial hierarchy or relationship view
Scrubbing a timelineKeyboard step controls, current-event announcement, and event table
Viewing uncertaintyNumeric ranges, component labels, distribution status, and explanation of abstention
Inspecting proofStructured invariant list with pass, fail, unknown, evidence, and rationale
XR interactionComplete desktop, keyboard, table, and text alternative
Animated transitionStatic before/after or event-step representation
Dragging a controlKeyboard-operable input with typed value and reset action

Automated accessibility tools are useful but insufficient. WCAG conformance requires human judgment for many interaction and content questions, so release testing should include keyboard-only operation, multiple screen readers, zoom and reflow, reduced-motion verification, and comprehension testing with representative users.

Performance and scalability targets

CategoryProposed release target
Public-page Core Web Vitalsp75 LCP ≤ 2.5 seconds, INP ≤ 200 milliseconds, CLS ≤ 0.1
Gallery JavaScript≤ 250 KB gzip for the application shell, excluding lazy-loaded simulation runtime
Initial simulation shellInteractive controls and accessible representations within 2 seconds on a representative broadband desktop
First meaningful 3D frame≤ 4 seconds on supported desktop; ≤ 7 seconds on representative mid-tier mobile
Frame rateSustained 60 frames per second on target desktop; minimum 30 on supported mobile; XR targets adapted to device refresh rate
Main-thread responsivenessNo routine task over 50 milliseconds during playback; heavy parsing and layout moved to workers
Initial scene payloadTarget ≤ 5 MB for common simulations, using progressive assets and levels of detail
MemoryTarget ≤ 500 MB desktop and ≤ 250 MB mobile for standard scenes
Deterministic-run APIp95 ≤ 300 milliseconds for existing lightweight simulations within the primary region
Collaboration propagationp95 ≤ 150 milliseconds regionally for cursor, selection, and playback-state events
Availability99.9% initial paid-platform objective, with a higher objective reserved for enterprise contracts
Batch executionQueue-based horizontal scaling with tenant quotas, cancellation, retry policy, and cost visibility

Core Web Vitals thresholds in the table correspond to current official “good” thresholds, while the other values are proposed product budgets that should be validated against actual scenes and user hardware.

The performance strategy should include:

  • route-level and feature-level code splitting;
  • progressive glTF and texture loading;
  • KTX2/Basis texture compression;
  • meshopt or Draco geometry compression where it improves total time;
  • instancing for repeated nodes and markers;
  • dynamic resolution scaling;
  • quality tiers for shadows, post-processing, particles, and antialiasing;
  • object pooling for transient visual effects;
  • worker-based event parsing and interpolation;
  • suspension of rendering when hidden or static;
  • explicit cleanup of GPU resources on route changes;
  • asset caching through immutable content hashes;
  • CDN delivery close to users;
  • stateless API scaling;
  • queues for long-running or batch work;
  • separate scaling policies for APIs, realtime connections, workers, and GPU streams.

WebGPU offers more direct access to modern GPU functionality and compute capabilities than WebGL, but it should remain capability-gated because availability and production readiness vary by browser, platform, and embedded context. WebXR also requires secure contexts and remains unevenly supported.

Testing strategy

LayerRequired testsRelease gate
Domain logicUnit tests, property-based tests, boundary-value tests, invariant mutation tests, deterministic-repeat testsIdentical normalized input and engine version must produce identical canonical output and digest
Existing proof vectorsPreserve and expand the published deterministic proof suite, currently described as 64 runs across ten simulationsNo changed vector without explicit engine-version change and reviewed migration record
API contractsOpenAPI schema validation, generated-client tests, malformed-input tests, version compatibility, idempotencyNo undocumented response shape or unbounded input accepted
ReplaySnapshot reconstruction, event ordering, branch provenance, scrub determinismEvery event index produces synchronized representations
UIPlaywright task flows, component tests, browser history, error recovery, responsive layoutsCritical guided and expert journeys pass on the support matrix
GraphicsScreenshot regression, scene-graph assertions, shader compilation, WebGPU/WebGL comparison, GPU-resource leak testsNo proof-bearing discrepancy between renderer paths
Accessibilityaxe-core, keyboard traversal, focus assertions, live-region tests, manual screen-reader sessions, reduced motion, zoom/reflowNo critical or serious violation; all required tasks complete without the visual scene
PerformanceLighthouse CI, WebPageTest, bundle analysis, frame-time benchmarks, memory sampling, API latency testsBudgets cannot regress without approved exception
RealtimeMulti-client synchronization, disconnect/reconnect, duplicate and reordered message handling, WebSocket soak testingState convergence and permission boundaries hold under failure
Loadk6 or equivalent API and WebSocket load tests, batch-queue saturation testsService-level objectives maintained at forecast peak plus safety margin
SecurityStatic analysis, dependency scanning, container and IaC scanning, DAST, fuzzing, authorization tests, tenant-isolation testsNo unresolved critical or high-severity exploitable issue
ResilienceDependency failure, Redis restart, worker termination, message redelivery, regional impairment, object-store delayCanonical records are not corrupted; users receive explicit degraded-state messaging
UsabilityModerated testing with novices and domain expertsGuided baseline completion, concept comprehension, and proof discovery meet agreed thresholds

Recommended tools include Vitest, Testing Library, Playwright, axe-core, pytest, Hypothesis, Schemathesis, Lighthouse CI, WebPageTest, k6, OWASP ZAP, Semgrep or CodeQL, Trivy, Syft/Grype, Renovate or Dependabot, and browser/device laboratories.

Security and privacy

The current public posture already describes several appropriate controls: secure cookies, CSRF protection, role-based administration, Argon2id password hashing, restrictive headers, least privilege, and append-oriented auditing. The expansion into accounts, persistence, collaboration, imports, plugins, and marketplaces materially increases the attack surface.

The security model should be organized around the following boundaries:

BoundaryRequired controls
Anonymous public executionBounded schemas, strict content types, payload limits, rate limits, same-origin policy, no durable storage by default
Authentication and workspacesOIDC/SAML options, MFA support, secure session rotation, tenant-scoped RBAC, authorization tests on every object access
Scenario importsSize limits, schema validation, archive-bomb prevention, MIME verification, malware scanning, no executable content
PluginsSigned manifests, permission declarations, sandboxed workers or isolated frames, deny-by-default network access, revocation, version pinning
CollaborationAuthenticated channels, room-scoped authorization, message schemas, rate limiting, sequence handling, abuse controls
API keysScoped tokens, expiration, rotation, hashed storage, quota policies, audit logs
WebhooksHMAC signatures, timestamp and replay protection, delivery IDs, retries with backoff, endpoint verification
Object storageTenant-prefixed access policies, short-lived signed access, encryption, retention rules, immutable evidence options
Browser isolationRestrictive Content Security Policy, Permissions Policy, frame-ancestor restrictions, Subresource Integrity where applicable, COOP/COEP only when needed and tested
Supply chainLockfiles, signed builds where practical, software bill of materials, dependency scanning, provenance attestations
ObservabilityNo scenario payloads or annotation text in default logs; structured redaction; controlled access; retention limits
AI assistanceRetrieval only from allowed evidence, prompt-injection handling, tool allowlists, no silent state changes, output labeling and auditability

OWASP ASVS provides a suitable basis for defining and verifying application-security controls. A strong Content Security Policy is an important defense-in-depth measure, and API inputs should be validated for type, range, format, allowed values, and structural limits rather than sanitized into silently accepted forms.

Analytics and product measurement

The analytics program should distinguish three categories:

CategoryExamplesDefault handling
Product interactionexplorer_viewed, filter_applied, simulation_launched, guided_step_completed, proof_opened, comparison_completed, export_createdAllowed with pseudonymous session ID and no scenario values
Technical telemetryscene readiness, renderer path, device tier, frame-time buckets, API latency, fallback used, error classAllowed with coarse device data and short retention
Sensitive contentscenario payloads, imported files, annotations, workspace names, proof narratives, user research textExcluded by default; collect only for an explicit, documented purpose and consent basis

Core product metrics should include:

  • explorer-to-launch conversion;
  • time to first successful run;
  • guided-mode completion;
  • proof-inspector discovery;
  • baseline-versus-variant completion;
  • export and share rates;
  • fallback and renderer-failure rates;
  • return rate by audience track;
  • simulations completed per active user;
  • API activation and successful first call;
  • collaboration sessions and annotation resolution;
  • accessibility-mode task success;
  • performance by renderer and device tier.

Monetization model

Tier or channelProposed offerIndicative pricingStrategic purpose
Public LabsAnonymous simulations, guided modes, limited export, public documentationFreeDiscovery, education, credibility, and research dissemination
Creator or ProfessionalPrivate saved scenarios, advanced comparison, report exports, higher API quota, authoring tools$19–$49 per user/monthIndividual researchers, educators, consultants, and engineers
TeamShared workspaces, annotations, live review, role controls, team templates, branded embeds$99–$299 per workspace/month or seat-based equivalentDepartmental adoption and collaborative evaluation
EnterpriseSSO, SCIM, private plugins, audit export, retention controls, private deployment, support, service objectivesApproximately $25,000–$150,000+ annuallyRegulated organizations and institutional programs
Usage-based APIBatch runs, parameter sweeps, webhooks, high-volume exportsMetered by run, compute class, or quota packageIntegrations and machine-to-machine workloads
GPU laboratory sessionsStreamed Unreal or Omniverse experiencesPer-minute, reserved capacity, or enterprise bundleRecover high infrastructure costs
Education and nonprofitClassroom management, curricula, discounted workspacesDiscounted or sponsoredAdoption, workforce development, research community
MarketplacePaid plugins, scenario packs, visual themes, domain adapters, instructional contentSuggested 15–20% platform feeEcosystem incentives and long-term network effects

These prices are product-planning proposals rather than observed Evulgare prices or externally validated willingness-to-pay figures. They should be tested through customer discovery before implementation.

Community and engagement

Community functionality must reinforce the product’s assurance values rather than imitate entertainment-platform engagement indiscriminately.

APIs and plugins. Publish a clear developer portal, runnable examples, API status, changelog, schema registry, SDKs, sandbox keys, rate-limit dashboards, and plugin certification levels. Plugins should be categorized as renderers, importers, exporters, metrics, proof views, simulation engines, integrations, or educational modules.

Multiplayer. Begin with presenter-led collaborative review rather than shared physics. Useful roles include presenter, analyst, reviewer, observer, and facilitator. High-value features include synchronized replay, shared selection, laser-pointer-style presence, event annotations, questions, decision records, and branch proposals.

Leaderboards. Avoid ranking users by speed, maximum system authority, aggressive intervention, or apparent operational performance. Appropriate rankings and badges could reward:

  • completing proof-inspection exercises;
  • identifying hidden assumptions or stale evidence;
  • choosing justified abstention;
  • explaining why two runs diverged;
  • creating well-documented public scenarios;
  • resolving peer-review comments;
  • writing high-quality plugins;
  • reproducing published runs.

Community gallery. Public artifacts should display provenance, author, license, version, moderation status, schema compatibility, proof coverage, safety classification, fork history, and reproducibility status. “Featured” placement should reflect educational quality and evidence discipline, not only popularity.

Engagement loops. Recommended loops include simulation learning paths, weekly bounded challenges, curated expert walkthroughs, scenario-of-the-month reviews, reproducibility badges, contributor profiles, plugin showcases, classroom cohorts, and research-paper companion simulations.

Developer-facing implementation prompt

The following prompt is designed to be given directly to an AI engineering system, a software-development team, or a combination of both.

You are the principal engineering and product implementation team for the next generation
of Evulgare Simulations.

MISSION

Transform the existing Evulgare simulations collection into a bleeding-edge, visually exciting,
accessible, deterministic, collaborative assurance simulation workbench.

The resulting product must feel materially more advanced and immediate than the current
text-heavy gallery while preserving and strengthening its most important properties:

1. Pure, deterministic, authoritative simulation logic.
2. Named proof invariants and canonical run digests.
3. Synchronization among visual, tabular, narrative, metric, event-log, and proof views.
4. Complete non-3D and non-XR task parity.
5. Explicit synthetic, abstract, and non-operational safety boundaries.
6. Research-to-code traceability.
7. No universal score that averages away missing authority, uncertainty, stale evidence,
   violated constraints, or failed proof conditions.
8. Public inputs remain ephemeral unless the user explicitly saves a run to an authenticated
   workspace.
9. The renderer is never the authoritative source of proof-bearing state.
10. Simulation output must never be presented as certification or as elimination of the
    model-to-reality gap.

PRODUCT POSITION

Build an “assurance simulation and decision-provenance platform.”

The product should help users inspect:

- what inputs and assumptions were supplied;
- how state changed;
- which events caused later outcomes;
- where uncertainty, authority, trust, purpose, or evidence became insufficient;
- which invariant passed, failed, or remained unknown;
- how two deterministic runs differ;
- what is visual interpretation versus authoritative engine output;
- how a run can be replayed and independently inspected.

PRIMARY USERS

Design for these user classes:

- First-time learner or student
- Assurance or safety engineer
- Autonomy researcher
- System and software architect
- Technical evaluator or independent reviewer
- Governance, policy, or legal-process stakeholder
- Program or executive decision-maker
- Educator or curriculum designer
- API and plugin developer
- Enterprise workspace administrator

Do not assume that all users understand terms such as provenance, defeater, epistemic
uncertainty, authority gate, distribution shift, or invariant. Provide layered explanations
without diluting the expert representation.

NON-OPERATIONAL SAFETY BOUNDARIES

Maintain hard product prohibitions against introducing or producing:

- real-world targeting coordinates;
- weapon ranges or payload parameters;
- firing solutions;
- force authorization;
- operational intelligence;
- live vehicle, weapon, actuator, or command-and-control interfaces;
- instructions that convert an abstract scene into operational deployment;
- hidden external side effects from public simulations.

Use abstract identifiers, normalized units, synthetic entities, fictional organizations,
bounded scalar controls, and null sinks.

Any future import, plugin, AI, or authoring feature must enforce these boundaries through
schema validation, allowlists, permissions, moderation, and tests.

CORE TECHNICAL DIRECTION

Frontend:
- TypeScript
- React
- Vite for the incrementally mounted simulation workbench
- Babylon.js as the preferred 3D runtime
- WebGPU when capability checks pass
- WebGL2 as a supported fallback
- WebXR as an optional enhancement
- React Aria or equivalent accessible primitives
- XState or explicit reducer-based state machines
- TanStack Query for server-state coordination
- Zod-generated or JSON-Schema-generated client validation
- Web Workers with Comlink for parsing, layout, interpolation, and heavy visual computation
- Optional Rust/WASM only for measured hotspots or shared deterministic kernels

Backend:
- Preserve existing pure Python domain-engine functions
- Introduce FastAPI incrementally beside Flask
- Pydantic models and generated OpenAPI
- Versioned Scenario, Run, Event, Metric, Proof, Representation, Asset, Annotation,
  Capability, and PluginManifest schemas
- PostgreSQL for users, tenants, workspaces, saved-run metadata, annotations, API keys,
  and billing records
- Redis for presence, short-lived collaboration state, caching, and rate limiting
- NATS JetStream or an equivalent event stream for jobs, webhooks, exports, and
  collaboration events
- S3-compatible object storage for immutable assets, reports, evidence packages,
  and signed plugin packages
- OpenTelemetry for traces, metrics, and logs

Hosting:
- CDN for static application and scene assets
- Managed container runtime for APIs, collaboration, and asynchronous workers
- Managed PostgreSQL and Redis
- WAF and API gateway
- Region-aware deployment for paid collaboration
- Separate optional GPU pools for future Unreal or Omniverse streaming

Do not rewrite all engines or simulations at once.
Use a strangler migration and scene-adapter architecture.

AUTHORITATIVE RUN CONTRACT

Every run must have:

- schemaVersion
- simulationId
- simulationVersion
- engineVersion
- normalized bounded inputs
- deterministic event history
- explicit outputs and metrics
- named invariant results
- invariant status: pass, fail, or unknown
- invariant evidence and rationale
- canonical digest
- representation metadata
- provenance and branch metadata
- research references
- generation timestamp as metadata, not as an input to deterministic computation
- clear statement of limitations

Specify canonical serialization:

- field ordering or a recognized canonical JSON method;
- number precision and rounding;
- handling of integers versus floating-point numbers;
- Unicode normalization;
- null versus omitted fields;
- arrays and event ordering;
- inclusion of schema and engine versions;
- binary asset references;
- digest algorithm and version.

The same normalized input, schema version, simulation version, and engine version must
produce the same authoritative output, event history, invariant results, and digest.

VISUAL PRODUCT DIRECTION

Create a sophisticated technical-instrument visual language:

- clear information hierarchy;
- dark or neutral workspace with strong contrast;
- restrained glow, particles, edge animation, volumetric fields, and post-processing;
- semantic status chips;
- camera animation driven by meaningful events;
- readable labels and overlays;
- optional cinematic mode;
- reduced-motion mode;
- no information conveyed by color alone;
- no decorative motion that obscures proof state;
- no military or operational aesthetic that contradicts the synthetic assurance purpose.

The experience must look exciting because causal structure becomes visible, not because
unrelated effects are added.

EPIC: SIMULATION EXPLORER

Replace the static catalog experience with a visual explorer.

Required capabilities:
- card or grid representation for all simulations;
- static preview or lightweight paused/muted animation;
- title, summary, topic, audience, difficulty, estimated duration, proof count,
  research-source count, and supported modes;
- filters for topic, audience, difficulty, duration, interaction type, WebXR,
  guided mode, comparison, export, and authoring compatibility;
- sorting by recommended, newest, duration, complexity, and popularity;
- recommended paths such as Learn, Evaluate, Build, and Govern;
- recently viewed and favorited simulations for consenting users;
- shareable filter URLs;
- full keyboard operation;
- no loading of the full 3D engine before a simulation is opened.

Acceptance tests:
GIVEN the explorer is loaded
WHEN no simulation is opened
THEN the Babylon.js runtime and large scene assets are not downloaded.

GIVEN a keyboard-only user
WHEN the user applies a topic filter and opens a simulation
THEN focus order is logical, filter state is announced, and the selected simulation opens
without pointer interaction.

GIVEN a URL containing valid explorer filters
WHEN the page loads
THEN matching filters and results are restored.

GIVEN reduced motion
WHEN previews are visible
THEN animated previews are paused or replaced with still images.

EPIC: CAPABILITY PREFLIGHT

Detect:
- WebGPU availability;
- WebGL2 availability;
- WebXR availability;
- reduced-motion preference;
- high-contrast or forced-colors behavior where observable;
- pointer and touch capabilities;
- approximate memory or performance tier using privacy-respecting signals;
- network constraints;
- renderer initialization errors.

Offer:
- Recommended mode
- High-fidelity mode
- Low-power mode
- Accessible table and narrative mode
- XR mode only when supported

Acceptance tests:
GIVEN WebGPU is unavailable and WebGL2 is available
WHEN the user opens a scene
THEN the scene operates through WebGL2 with identical authoritative outputs.

GIVEN neither renderer initializes
WHEN the scene route loads
THEN controls, run execution, table, narrative, timeline, and proof remain usable.

GIVEN XR is unavailable
WHEN the user opens capability information
THEN the interface explains that XR is optional and does not imply reduced analytical
functionality.

EPIC: UNIFIED WORKBENCH

Desktop layout:
- top command and status bar;
- left scenario and controls panel;
- central scene;
- right proof and evidence inspector;
- bottom event timeline;
- representation tabs for Visual, Table, Narrative, Metrics, Event Log, and Raw Evidence.

Mobile layout:
- scene-first or summary-first view;
- ordered tabs or drawers;
- persistent run status;
- no tiny multi-column desktop reproduction;
- touch targets meeting accessibility requirements;
- tables that can be transformed into cards or narrowed to selected columns.

All panels must be:
- resizable where useful;
- collapsible;
- keyboard reachable;
- restorable to defaults;
- represented in URL or workspace preferences only where appropriate;
- capable of announcing important state changes without excessive screen-reader verbosity.

Acceptance tests:
GIVEN a user switches from Visual to Table at event 12
THEN the table reflects event 12 and the selected entity.

GIVEN a user changes viewport from desktop to mobile
THEN no run, event index, selection, or valid unsaved scenario input is lost.

GIVEN the proof panel is collapsed
WHEN an invariant changes to failed
THEN a non-color status indicator appears and the user can navigate directly to the failure.

EPIC: GUIDED, EXPLORE, AND EXPERT MODES

Guided:
- state a learning objective;
- introduce concepts incrementally;
- provide a glossary;
- explain why each important transition occurred;
- provide skip, back, restart, and exit controls;
- complete a representative baseline in about three minutes;
- use the real engine, not a prerecorded imitation.

Explore:
- present curated presets;
- expose commonly understood bounded controls;
- provide compare, replay, and contextual explanation.

Expert:
- expose all public allowlisted inputs;
- raw event and proof records;
- API request example;
- engine and schema versions;
- export options;
- advanced camera, overlay, and diagnostics controls.

Acceptance tests:
GIVEN a new user starts Guided mode
WHEN the user completes the baseline
THEN the user receives a summary of inputs, decisive events, proof results, limitations,
and recommended next exploration.

GIVEN a user switches from Guided to Expert
THEN the valid scenario and completed run remain available.

GIVEN a glossary term appears
THEN it is accessible by keyboard, touch, and screen reader without forcing a navigation away.

EPIC: REPLAY AND TIMELINE

Standard controls:
- play;
- pause;
- previous event;
- next event;
- scrub;
- speed;
- jump to beginning or end;
- jump to proof change;
- bookmarks;
- event categories;
- search;
- selected-entity filtering.

The canonical run history is immutable.
Replay is a view over history.
A counterfactual creates a new run with parentRunId and branchEventIndex.
It never modifies the parent history.

Acceptance tests:
GIVEN a completed run
WHEN the user scrubs from event 20 to event 5
THEN visual, table, narrative, metrics, proof, and selection all reflect event 5.

GIVEN a counterfactual is created at event 8
THEN the original run remains byte-for-byte unchanged and the new run identifies its
parent and branch event.

GIVEN two users observe the same hosted replay
WHEN the presenter changes event index
THEN observers receive the new position within the collaboration latency objective,
while retaining the ability to detach locally.

EPIC: BASELINE AND VARIANT COMPARISON

Compare:
- normalized input differences;
- event-sequence differences;
- output and metric differences;
- proof status differences;
- evidence and rationale differences;
- digest and version differences;
- branch provenance;
- visual split view;
- optional synchronized cameras;
- overlay mode only where it remains comprehensible.

Do not display a single aggregate “better” score.
Do not hide failed or unknown invariants behind a favorable average.

Acceptance tests:
GIVEN two runs with one changed input
WHEN comparison opens
THEN the changed input, first divergent event, resulting output differences, and proof
differences are identifiable.

GIVEN one run has a failed invariant
THEN the comparison cannot collapse the failure into an aggregate score.

GIVEN the two runs use different engine versions
THEN the comparison displays a version warning and explains that differences may not be
attributable only to scenario inputs.

EPIC: EVIDENCE EXPORT AND SHARE

Support:
- canonical JSON package;
- human-readable HTML or PDF report;
- optional CSV extracts for tables and metrics;
- signed share links;
- privacy-safe anonymous share mode;
- workspace-scoped share mode;
- import and validation;
- deterministic replay where the required engine version is available.

The evidence package includes:
- schema and engine versions;
- normalized inputs;
- event history;
- outputs;
- proof results;
- digest;
- narrative;
- research references;
- limitations;
- provenance;
- verification result after import.

Acceptance tests:
GIVEN a valid exported package
WHEN it is imported into a compatible environment
THEN its digest validates and the replay reaches identical authoritative states.

GIVEN a package has been modified
WHEN it is imported
THEN validation fails clearly and no claim of equivalence is shown.

GIVEN an anonymous user creates a share link
THEN the link contains or references only the intended run package and no browser fingerprint,
account data, or unrelated session information.

EPIC: VERSIONED API AND SDK

Build FastAPI endpoints for:
- list simulations;
- retrieve simulation schema;
- validate scenario;
- execute run;
- retrieve run;
- retrieve event slice;
- retrieve proof;
- compare runs;
- export package;
- submit batch;
- retrieve batch status;
- create webhook;
- verify package;
- health and readiness.

Requirements:
- OpenAPI 3 documentation;
- generated TypeScript and Python clients;
- idempotency keys for run and batch creation;
- structured error codes;
- request IDs;
- schema version negotiation;
- explicit deprecation policy;
- pagination where required;
- quotas and rate-limit headers;
- HMAC-signed webhooks;
- no silent coercion of illegal input.

Acceptance tests:
GIVEN an out-of-range scalar
WHEN a run request is submitted
THEN the API rejects it with a structured validation error and does not clamp silently unless
the schema explicitly defines clamping.

GIVEN the same idempotency key and identical body
WHEN a request is retried
THEN the same run result or run identifier is returned.

GIVEN the same idempotency key and a different body
THEN the request is rejected as an idempotency conflict.

GIVEN a generated SDK
WHEN contract tests run
THEN all supported endpoints serialize and deserialize against the published schema.

EPIC: BOUNDED AUTHORING STUDIO

Allow qualified users to create synthetic scenarios using:
- approved entity templates;
- abstract relationships;
- event sequences;
- bounded parameters;
- allowlisted metrics;
- display rules;
- narrative templates;
- references;
- explicit limitations;
- proof-view configuration.

Do not initially allow arbitrary code execution.
Do not permit public authors to introduce external network calls, actuator commands,
unrestricted files, or prohibited operational fields.

Provide:
- live schema validation;
- preview;
- accessibility preview;
- proof-coverage checklist;
- versioning;
- draft and publish workflow;
- license selection;
- moderation status;
- fork provenance.

Acceptance tests:
GIVEN an author attempts to create an unsupported operational-coordinate field
THEN the schema rejects it and identifies the policy category.

GIVEN a scenario lacks an accessible narrative for a visual state
THEN publication is blocked.

GIVEN a published scenario is forked
THEN parent version, author, license, and modifications remain visible.

EPIC: WORKSPACES AND COLLABORATION

Roles:
- owner;
- administrator;
- author;
- analyst;
- reviewer;
- observer.

Capabilities:
- saved scenarios;
- saved runs;
- comments and annotations;
- event-targeted and proof-targeted annotations;
- assignments and resolution states;
- presenter-led replay;
- presence;
- audit history;
- export;
- configurable retention.

Public runs remain ephemeral unless explicitly saved.

Acceptance tests:
GIVEN an observer
WHEN the observer attempts to modify a scenario or annotation
THEN authorization denies the action on the server, not only in the UI.

GIVEN a user from tenant A knows an object ID in tenant B
WHEN the user requests it
THEN the response reveals no tenant-B content or metadata.

GIVEN a collaboration client disconnects and reconnects
THEN it restores the correct room, run version, presenter state, and permission scope.

EPIC: PLUGIN SDK

Plugin categories:
- renderer extension;
- scene adapter;
- importer;
- exporter;
- metric view;
- proof view;
- integration connector;
- educational module;
- simulation-engine adapter.

Manifest fields:
- plugin ID and version;
- publisher;
- license;
- compatible platform and schema versions;
- declared permissions;
- entry points;
- integrity digest;
- signature;
- network domains if any;
- data-access scope;
- accessibility declaration;
- test status;
- revocation status.

Security:
- sandbox by default;
- no network by default;
- no direct database access;
- no unrestricted DOM access;
- no secret access;
- no dynamic native code in public hosting;
- message-based APIs;
- rate and resource limits;
- signed package verification;
- kill switch and revocation.

Acceptance tests:
GIVEN an unsigned plugin
THEN production installation is denied.

GIVEN a plugin without network permission
WHEN it attempts a network request
THEN the sandbox blocks the request and records a security event.

GIVEN a plugin is revoked
THEN new loads are blocked and administrators can identify affected workspaces.

EPIC: WEBGPU AND RENDERING QUALITY

Implement:
- WebGPU enhancement path;
- WebGL2 functional fallback;
- dynamic resolution;
- quality tiers;
- instancing;
- progressive asset loading;
- KTX2 textures;
- compressed meshes;
- level of detail;
- GPU timing where available;
- frame-time monitoring;
- render suspension for hidden or static scenes;
- explicit resource disposal.

Renderer behavior must never alter authoritative simulation output.

Acceptance tests:
GIVEN WebGPU and WebGL2 runs of the same scenario
THEN canonical engine output and digest are identical.

GIVEN average frame time exceeds the selected budget
THEN optional effects or resolution reduce progressively without removing required labels,
status, or accessible information.

GIVEN a user leaves a simulation route
THEN scene resources, event listeners, animation loops, workers, and GPU allocations are released.

EPIC: ACCESSIBILITY

Target WCAG 2.2 AA and establish evidence rather than making an unsupported claim.

Required:
- semantic HTML;
- keyboard operation;
- visible focus;
- logical focus order;
- screen-reader labels and announcements;
- skip links;
- landmarks;
- reduced motion;
- forced-colors support where practical;
- 200% and 400% zoom/reflow;
- no color-only information;
- text and table parity;
- accessible errors;
- touch-target sizing;
- captions/transcripts for instructional media;
- non-XR task parity.

Supported manual matrix:
- NVDA with Firefox
- JAWS with Chrome
- VoiceOver with Safari on macOS and iOS
- TalkBack with Chrome on Android
- keyboard only
- reduced motion
- zoom/reflow
- forced colors or high-contrast evaluation

Acceptance tests:
GIVEN JavaScript is disabled
THEN simulation purpose, baseline inputs, authoritative table/text state, proof summary,
research links, and limitations remain available.

GIVEN a user operates only by keyboard
THEN the user can select a preset, edit values, execute a run, step through events, inspect
proof, compare runs, and export evidence.

GIVEN reduced motion
THEN nonessential animation, camera travel, particles, and auto-playing previews stop.

GIVEN a proof state is represented visually by color
THEN an icon, text label, and programmatic state convey the same meaning.

EPIC: PERFORMANCE

Public field targets:
- LCP <= 2.5 seconds at p75
- INP <= 200 milliseconds at p75
- CLS <= 0.1 at p75

Product budgets:
- gallery shell <= 250 KB gzip, excluding lazy simulation runtime;
- no full 3D engine on explorer route;
- accessible shell interactive <= 2 seconds on target desktop;
- first meaningful 3D frame <= 4 seconds target desktop;
- first meaningful 3D frame <= 7 seconds representative mid-tier mobile;
- sustained 60 FPS target desktop;
- minimum 30 FPS supported mobile;
- no routine main-thread task over 50 ms during interaction;
- initial common-scene payload target <= 5 MB;
- memory target <= 500 MB desktop and <= 250 MB mobile;
- deterministic lightweight API p95 <= 300 ms in primary region;
- collaboration event p95 <= 150 ms in-region.

Implement real-user monitoring using privacy-preserving buckets.
Do not log raw scenario inputs by default.

Acceptance tests:
- CI fails when public bundles exceed their budgets.
- CI fails when a representative scene exceeds frame-time budgets on the benchmark runner.
- Lighthouse CI fails on agreed threshold regression.
- A scheduled test detects unbounded memory growth across repeated route changes.
- A load test demonstrates forecast peak capacity plus an agreed safety margin.

EPIC: SECURITY

Base verification on an application security standard such as OWASP ASVS.

Implement:
- secure cookies;
- CSRF defenses where cookie authentication applies;
- strict input schemas;
- size and depth limits;
- WAF and rate limiting;
- OIDC-compatible authentication;
- MFA support;
- tenant-scoped RBAC;
- encrypted transport and managed encryption at rest;
- secrets manager;
- restrictive Content Security Policy;
- Permissions Policy;
- frame restrictions;
- signed uploads and plugins;
- malware scanning;
- immutable or append-oriented audit records;
- API-key hashing and rotation;
- HMAC webhooks with replay protection;
- SBOM;
- dependency and container scanning;
- static analysis;
- dynamic security testing;
- tenant-isolation tests;
- threat models for each major epic.

Acceptance tests:
- A cross-tenant object reference cannot disclose existence, metadata, or content.
- Malformed and deeply nested JSON is rejected before expensive processing.
- Replayed webhook deliveries are identifiable and safe.
- A plugin cannot exceed declared permissions.
- Logs and traces do not contain scenario payloads, credentials, tokens, or annotation text
  under default configuration.
- Public authoring cannot create external side effects.
- Critical and high exploitable findings block production release.

EPIC: ANALYTICS

Use a versioned event taxonomy.

Initial events:
- explorer_viewed
- explorer_filter_applied
- capability_checked
- simulation_launched
- scene_shell_ready
- first_3d_frame
- renderer_fallback_used
- preset_selected
- run_started
- run_completed
- guided_step_completed
- timeline_used
- proof_opened
- invariant_inspected
- comparison_created
- counterfactual_created
- export_created
- share_created
- collaboration_started
- annotation_created
- authoring_draft_created
- api_key_created
- plugin_installed
- accessibility_mode_selected
- simulation_error

Do not include scenario values in these events.
Provide a diagnostics screen that shows the user which telemetry category is active.

EPIC: COMMERCIAL CAPABILITIES

Free:
- public labs;
- guided modes;
- limited exports;
- public documentation.

Professional:
- saved private scenarios;
- advanced comparison;
- richer exports;
- higher API quota;
- individual authoring.

Team:
- shared workspaces;
- annotations;
- live review;
- role controls;
- embeds;
- team templates.

Enterprise:
- SSO and SCIM;
- tenant audit export;
- private plugin registry;
- configurable retention;
- private cloud or on-premises deployment;
- support and service objectives;
- optional data-residency commitments.

Usage:
- batch runs;
- parameter sweeps;
- high-volume API;
- GPU-streamed sessions.

Implement entitlements in a centralized service or policy layer.
Do not scatter plan checks across visual components.

EPIC: COMMUNITY

Build:
- public scenario gallery;
- contributor profiles;
- reproducibility badges;
- licenses;
- version history;
- forks;
- moderation;
- reporting;
- plugin registry;
- educational learning paths;
- bounded weekly challenges;
- expert walkthroughs.

Leaderboards may reward:
- proof-inspection completion;
- identification of assumptions and defeaters;
- justified abstention;
- high-quality explanations;
- reproducible scenario creation;
- peer-review contributions;
- plugin quality.

Leaderboards must not reward:
- unsafe reduction of margins;
- increased authority;
- aggressive operational performance;
- bypassing proof conditions;
- speed where speed compromises comprehension.

MILESTONE PLAN

Milestone A: Foundation and baseline, weeks 0–6
Deliver:
- architecture decision records;
- current-behavior inventory;
- golden proof and API tests;
- schema v2 draft;
- design tokens and workbench prototype;
- analytics and privacy specification;
- performance baseline;
- accessibility test plan;
- threat model;
- Simulation Explorer beta.

Exit criteria:
- all existing proof vectors run in CI;
- no-JavaScript behavior is captured;
- schema design is approved;
- explorer prototype passes keyboard and performance checks;
- one representative simulation is selected for migration.

Milestone B: Unified workbench, weeks 7–16
Deliver:
- TypeScript application shell;
- Babylon.js scene adapter;
- capability preflight;
- guided/explore/expert modes;
- shared timeline;
- proof inspector;
- baseline-versus-variant comparison;
- evidence export;
- first two or three migrated simulations;
- FastAPI sidecar and initial OpenAPI.

Exit criteria:
- migrated scenes have authoritative parity;
- all representations synchronize at every event index;
- performance budgets pass;
- required screen-reader journeys pass;
- legacy route can be restored with a feature flag;
- no critical/high security issue remains.

Milestone C: Platform and collaboration, months 5–9
Deliver:
- all ten simulations in the shared workbench;
- public API and SDKs;
- user identity and workspaces;
- annotations;
- presenter-led collaboration;
- embed kit;
- authoring beta;
- batch execution foundation;
- product analytics dashboards.

Exit criteria:
- anonymous public runs remain ephemeral;
- tenant-isolation suite passes;
- WebSocket soak test passes;
- API documentation and generated SDKs are complete;
- all ten simulations meet shared accessibility and performance gates;
- workspace audit export is available.

Milestone D: Ecosystem and enterprise, months 10–18
Deliver:
- signed plugin SDK and registry;
- community gallery;
- authoring general availability;
- parameter sweeps;
- marketplace billing;
- SSO/SCIM;
- private deployment;
- assurance copilot beta;
- optional GPU-streamed laboratory pilot.

Exit criteria:
- plugin sandbox and revocation have passed external security review;
- marketplace moderation and licensing workflows operate;
- enterprise recovery and deployment runbooks are tested;
- copilot outputs are grounded, cited, labeled, and non-authoritative;
- GPU-streaming unit economics and accessibility alternatives are documented.

REQUIRED ENGINEERING ARTIFACTS

For each epic, produce:
- architecture decision record;
- threat model;
- data-flow diagram;
- API and schema changes;
- user stories;
- acceptance tests;
- accessibility considerations;
- performance budget;
- observability plan;
- rollout and rollback strategy;
- migration plan;
- operational runbook;
- documentation and changelog;
- product analytics events;
- privacy review.

REQUIRED CI PIPELINE

Fast pull-request checks:
- formatting;
- linting;
- type checking;
- unit tests;
- schema tests;
- contract tests;
- key component accessibility tests;
- bundle budget;
- software-composition analysis.

Protected-branch checks:
- full domain proof vectors;
- API integration tests;
- Playwright critical journeys;
- no-JavaScript tests;
- visual regression;
- WebGL renderer tests;
- WebGPU tests where runners support them;
- security scanning;
- infrastructure validation.

Scheduled tests:
- multi-browser suite;
- manual-accessibility rotation;
- performance benchmarks;
- memory and GPU-resource leak tests;
- WebSocket soak;
- API load;
- batch saturation;
- dependency failure and chaos tests;
- backup restoration;
- plugin sandbox tests;
- DAST and fuzzing.

DEFINITION OF DONE

A feature is done only when:

1. The implementation is merged and deployable.
2. Domain and contract tests pass.
3. Accessibility equivalence is implemented and tested.
4. Performance budgets pass or an explicit exception is approved.
5. Security and privacy reviews are complete.
6. Analytics and observability exist without collecting prohibited content.
7. Documentation is published.
8. Feature flags and rollback procedures exist for risky changes.
9. Schema and version impacts are recorded.
10. Existing deterministic runs remain reproducible or have an explicit version migration.
11. The product clearly distinguishes representation, simulation evidence, and certification.
12. The feature cannot expand public simulations beyond synthetic, abstract,
    non-operational boundaries.

FIRST IMPLEMENTATION TASKS

Begin by producing, in order:

1. A repository and deployment inventory.
2. A current route, payload, proof-vector, and fallback matrix for all ten simulations.
3. A proposed v2 canonical schema with compatibility rules.
4. A workbench information architecture and responsive wireframes.
5. A Babylon.js versus Three.js spike using one representative scene, with bundle,
   frame-time, accessibility, and migration findings.
6. A FastAPI sidecar proof of concept wrapping one unchanged Python engine.
7. A Simulation Explorer prototype that does not load the 3D runtime.
8. A synchronized timeline prototype proving visual/table/narrative/proof parity.
9. A baseline-versus-variant comparison prototype.
10. A CI quality-gate proposal with measured current baselines.
11. A threat model for persistence, sharing, collaboration, authoring, and plugins.
12. A milestone backlog with dependencies, staffing assumptions, person-week estimates,
    risks, and explicit acceptance criteria.

When forced to choose between visual spectacle and inspectable correctness, preserve
inspectable correctness and redesign the spectacle so that it reveals rather than obscures
the causal and assurance structure.