StudioSlab is a CMake-based C++23 workspace for physics simulations, numerical experiments, visualization, and a scientific creation platform in progress.
Lib/- shared reusable libraries, legacy/core code, and many domain/model implementations
Slab/- shared V2 platform/editor/runtime landing zone
Studios/- executable targets, standalone studies, CLI tools, legacy apps, and sandboxes
StudioSlab- the current desktop workbench binary built from
Studios/LabV2/
- the current desktop workbench binary built from
The repo intentionally serves both:
- a broad reusable toolbox for experiments and standalone targets
- a main platform/workbench path centered on
StudioSlab/LabV2
For the placement rules and naming disambiguation, read Docs/repo-architecture-overview.md.
LabV2is the main editor/workbench path.- shared V2 platform/editor/runtime code should live in
Slab/when it is reused across targets - reusable model/domain code still often belongs in
Lib/ - browser/wasm work is currently a bounded platform spike, not a full
LabV2port
Read these first:
Docs/index.mdDocs/status-v2.mdDocs/repo-architecture-overview.mdSPEC.md
Install dependencies on Ubuntu:
./Scripts/install-deps.shConfigure and build:
cmake -S . -B cmake-build-debug -DSTUDIOSLAB_CUDA_SUPPORT=ON
cmake --build cmake-build-debug --target Slab StudioSlab testsuite -j8Useful targets:
Slab: aggregate static libraryStudioSlab: currentLabV2desktop workbenchtestsuite: Catch2-based testsStudios/WebGL-WASM: standalone browser/wasm sandboxes
Minimal browser targets live under Studios/WebGL-WASM/.
Example:
emcmake cmake -S Studios/WebGL-WASM -B cmake-build-webgl-wasm
cmake --build cmake-build-webgl-wasm --target WebGLWasmSandbox WasmImGuiSandbox -j8This is intentionally separate from the current desktop Lib/Graphics stack.
A generic StudioSlab web frontend now lives under Studios/WebApp/.
It is intentionally local to that directory:
- local
package.json - local
node_modules - no root JS workspace
- no CMake integration
Run it with:
cd Studios/WebApp
npm install
npm run devBuild it with:
cd Studios/WebApp
npm run buildThe repo now includes a GitHub Pages workflow at .github/workflows/deploy-webapp-pages.yml.
Publishing flow:
- push to
main - GitHub Actions builds
WasmIsingWorkspaceSandbox - GitHub Actions builds
Studios/WebApp Studios/WebApp/distis deployed to GitHub Pages
One-time GitHub setup:
- open the repository
Settings - go to
Pages - under
Build and deployment, setSourcetoGitHub Actions
Default Pages URLs for this repository:
- site:
https://jstreibel.github.io/StudioSlab/ - Ising sandbox:
https://jstreibel.github.io/StudioSlab/wasm/ising-workspace-wasm-sandbox.html