Polydera

Lunar workbench.

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.

Browser-nativeAI-readyMCPWebAssembly

Why Lunar

Dynamic reflection layer

No fixed product logic. The interface and AI tools manifest from a central operator registry. Add a capability to the engine, both surfaces follow.

Select first, then act

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.

AI operates, not assists

Connect Claude, Gemini, or Codex. They discover operators, read scene state, and execute — same resolver, same executor, same validation.

Native via WebAssembly

Every operator maps to a trueform function. Native speed. Parallel via async tasks. No server round-trips.

Parallel & non-blocking

All algorithms are parallel internally. Every operation dispatches through a task queue — no UI blocking, provenance tracking, error isolation.

Open a URL

No install. No CAD license. No desktop app. Drag STL or OBJ onto the viewport. Full feature parity in the browser.

Operators

45+ operations. 11 categories.

IO

Import, Export STL, Export OBJ, Download

Add

Sphere, Box, Cylinder, Plane

Inspect

Analysis, Boundary, Non-manifold, Sharp edges, Components, Self-intersection

Fields

Curvature, Normals, Distance field

Curves

Isocontours, Triangulate

Repair

Clean, Orient outward, Orient consistently, Reverse winding

Refine

Decimate, Isotropic remesh, Laplacian smooth, Taubin smooth

Cut

Boolean, Embedded intersection curves, Self-intersection, Mesh arrangements, Polygon arrangements

Reindex

Concatenate, Split into components

Align

OBB + ICP registration, Frame alignment

Style

Color by array, Shading

Cmd+K

Find any operator, action, or link by name

AI cooperation

Three tools. The full engine.

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.

Open the browser workflow.

The best way to understand the engine is to touch the geometry directly.

Free for non-commercial use·Commercial licenses available