WindSim is a browser-native aerodynamics project with two distinct surfaces:
sandbox.html: the working reduced-order 3D wind sandboxcfd.html: the Phase A CFD laboratory shell for the future WebGPU solver stack
The launcher at index.html routes between them.
docs/CFD_MASTER_BLUEPRINT.md → CFD implementation phases docs/WINDSIM_ENGINEERING_PLAN.md → full system architecture and requirements
That blueprint is the active plan for the CFD side of the repo. The core rule is simple: the UI must not imply solved physics that the code does not actually compute.
The sandbox is the mature part of the project. It currently provides:
- reduced-order rigid-body aerodynamics with drag, lift, Magnus force, rotation, contact, and telemetry
- experiment workflows such as mounted mode, playback, sweeps, saved comparisons, and flow-probe slices
- a modular split across
js/windsim-app.js,js/windsim-physics.js,js/windsim-ui.js,js/windsim-scene.js,js/windsim-workflows.js,js/windsim-textures.js, andjs/windsim-models.js - multiple solver registrations through
js/windsim-solvers.js
The CFD surface is not a finished solver yet.
What is real today:
- WebGPU capability detection and hardware-tier routing
- a strict Phase A workflow shell for geometry, domain, boundary, and solver setup
- a Three.js viewport and domain visualization for the CFD surface
- a dedicated blueprint and project direction for the full solver stack
What is not real yet:
- a production LBM D3Q19 kernel running inside
cfd.html - validated drag, lift, pressure, or streamline outputs from the CFD surface
- full geometry import, voxelization, observability logging, and post-processing from the blueprint
js/windsim-cfd.js contains an experimental 2D grid-based solver path for the sandbox side. It is transitional work, not the final CFD lab backend, and it does not yet replace the full reduced-order pipeline with a true coupled 3D solver.
index.htmlLauncher that routes to the sandbox or the CFD lab.sandbox.htmlWorking reduced-order simulator surface.cfd.htmlPhase A CFD shell.css/windsim-entry.cssEntry and landing system styling for the sandbox experience.css/cfd-entry.cssCFD lab styling.js/windsim-*.jsSandbox modules.js/cfd-engine.jsCFD shell engine, hardware detection, viewport setup, and workflow gating.js/windsim-cfd.jsExperimental sandbox-side grid solver work.docs/CFD_MASTER_BLUEPRINT.mdActive CFD implementation blueprint.docs/CHANGELOG.mdHigh-level change history.
- The sandbox can use reduced-order and heuristic models, but it must label them honestly.
- The CFD lab must not show fake solved outputs.
- If a feature is not wired to real computation yet, it should stay locked, blank, or explicitly marked as shell-only.