Opens the trueform engine in your browser. UI controls for humans, MCP tools for models — both rendered from the same operator schemas. Connect Claude, Gemini, or Codex and operate geometry together.
Why Lunar
No fixed product logic. The interface and AI tools manifest from a central operator registry. Add a capability to the engine, both surfaces follow.
Click a mesh to select. Open a category or press Cmd+K. Single-input operators run in parallel, multi-input consume in order, array operators take the whole set.
Connect Claude, Gemini, or Codex. They discover operators, read scene state, and execute — same resolver, same executor, same validation.
Every operator maps to a trueform function. Native speed. Parallel via async tasks. No server round-trips.
All algorithms are parallel internally. Every operation dispatches through a task queue — no UI blocking, provenance tracking, error isolation.
No install. No CAD license. No desktop app. Drag STL or OBJ onto the viewport. Full feature parity in the browser.
Operators
Import, Export STL, Export OBJ, Download
Sphere, Box, Cylinder, Plane
Analysis, Boundary, Non-manifold, Sharp edges, Components, Self-intersection
Curvature, Normals, Distance field
Isocontours, Triangulate
Clean, Orient outward, Orient consistently, Reverse winding
Decimate, Isotropic remesh, Laplacian smooth, Taubin smooth
Boolean, Embedded intersection curves, Self-intersection, Mesh arrangements, Polygon arrangements
Concatenate, Split into components
OBB + ICP registration, Frame alignment
Color by array, Shading
Find any operator, action, or link by name
AI cooperation
AI models connect via MCP and receive three tools. Through them, they discover every operator, read the scene graph, and execute operations. Same schemas that render UI controls render tool descriptions. Same executor validates and runs both.
discover()Catalog of all operators by category. Call with operatorIds for full schemas + examples.
world_state()Scene contents: node IDs, types, positions. Pass nodeIds for full spatial detail — OBB, AABB, transform.
run({ operations })Execute operations. Each: operatorId, nodeIds, params. Batch independent operations in one call — fewer round-trips, fewer tokens.
The best way to understand the engine is to touch the geometry directly.