VERSION 0.1 · OPEN SOURCE · LOCAL FIRST

Make the system.
Find the unexpected.

A node-based 3D workspace for procedural ideas.
Shape geometry. Explore motion. Keep the whole recipe.

Plain JavaScriptWebGPU + fallbacksNo runtime dependencies
Basalt Garden / procedural instancingExplore this scene ↗
Actual Stratum FX studio showing a field of instanced columns, editable nodes, a parameter pane and a timeline.
A thousand columns. Six nodes. One editable recipe.Actual app capture · software preview backend
EVERY CONNECTION IS A POSSIBILITY

One idea.
Many ways to make it.

A linked viewport, node network, parameter inspector, and geometry spreadsheet keep your scene and its construction visible together.

01 / BUILD

Start with a shape.
End with a system.

Primitives, heightfields, seeded scattering, deformations and GPU instancing. Every operator stays in the graph, ready to change.

Explore procedural instancing ↗
02 / MOVE

Give your
parameters a pulse.

Safe mathematical expressions, numeric keyframes and timeline playback. Explore bounded cloth, ballistic particles and rigid sphere simulations.

Open the cloth study ↗
03 / REFINE

Inspect the result.
Keep the recipe.

Pick geometry, move transform handles, inspect point data and review cook timings. Save a project, export OBJ or STL, or capture a PNG.

Open the sculpture study ↗
A RENDERER. NOT A SCREENSHOT.

Geometry in.
Pixels out.

The native WebGPU renderer uses instanced draw calls, GGX/Schlick material shading, directional shadow maps and multisample antialiasing. The graph cooks off the UI thread in a Web Worker.

Without a usable GPU, the workspace falls back to WebGL2 or a labeled CPU depth-buffered preview. Fallbacks deliberately expose their reduced rendering capabilities.

Try the standalone renderer ↗
YOUR APP · YOUR ENGINE
import { Viewport } from
  '@stratum-fx/renderer';
import { torus } from
  '@stratum-fx/geometry';

const view = await new Viewport(canvas)
  .init();

view.setMesh(torus(2, 0.4));
view.frame();
WebGPUInstancingBVH pickingWorker cooking

Native GPU driver paths are implemented but not hardware-qualified in this delivery. Browser checks ran on the software preview.

TAKE THE PARTS YOU NEED

One repository.
Five independent packages.

The studio is one consumer of the libraries. Build your own editor, add a procedural viewport to another app, or use the geometry engine without a browser.

Self-contained ES modules, browser-global bundles, TypeScript declarations and MIT licenses. These downloads are local-installable package archives, not claims of registry publication.

SHARED WORK, EXPLICIT PERMISSIONS

Build together.
Keep the history.

The included Node server provides accounts, team projects, invitations, live presence and operation streaming. SQLite stores committed edits and checkpoints.

Independent field changes merge. Same-field changes follow server arrival order. Rejected edits are surfaced rather than silently discarded. This is not a CRDT or an enterprise identity system.

Set up a team workspace ↗
A WORKING FOUNDATION. AN OPEN RECIPE.

Your next idea
starts with a node.

Stratum FX 0.1 is an independent, bounded procedural studio—not a feature-equivalent or file-compatible Houdini replacement. The scope matrix and test report document what is implemented and what is not.

Read the release boundaries ↗