Everything Lola3d actually does.
Not a roadmap and not a wish list — this is what ships, grouped the way the application is built. Where something has a limit worth knowing, it is written beside it rather than left for you to discover.
Direct modeling
The SketchUp half: draw on the model and push it. Every gesture commits through the same action catalogue as everything else, so nothing here is a UI-only shortcut.
- ✦Drawing tools. Line, Polyline, Freehand, Rectangle and rotated Rectangle, Circle, Polygon, three Arc tools and Pie — each with live, lockable dimension fields beside the gesture, so a size is typed where it is measured.
- ✦Primitives. Box, Cylinder, Cone (and truncated cone), Sphere and Torus, each placed by base, size and height on any plane.
- ✦Push / Pull. Reaches both ways from where you start it: an offset for where the sweep begins, a signed distance, a second side of its own length, or symmetric about the start. The pointer carries the far cap, so the face lands under the cursor in every mode.
- ✦Move, Rotate, Scale, Offset, Follow Me, Flip. With copy modes, axis locks and a rotation axis you choose.
- ✦Inference engine. Endpoints, midpoints, intersections, edge extensions, face centres, guides, the drawing axes and — while moving — the selection's own grips. Pure and unit-tested, so what snaps is predictable.
- ✦Drawing planes. Automatic (the face under the pointer), or locked to an origin plane, a face or a construction plane;
NandShift+Ncycle, and picks land on the locked plane. - ✦Modifier keys. Ctrl / Alt / Shift modes in the SketchUp idiom, reflected in the key handling, the tool tray and the hints at once.
- ✦Face regions. A closed profile drawn wholly inside a planar face is imprinted into the body: the region and the surround become faces you can push and pick separately. It is an ordinary timeline item, so it can be suppressed, reordered and deleted.
- ✦Booleans. Union, Subtract, Intersect, Trim, Split and Outer Shell.
- ✦Paint, Tag, Eraser. Click or stroke to erase, Shift to hide instead; paint samples with Alt and repaints look-alikes with Shift; tag assigns a layer.
- ✦Drag a material onto a body. From the Materials panel — the model's own, a palette preset, a textured preset or one from your library — dropped straight on the geometry. Drop on a selected body and the whole selection is painted.
- ✦Camera. Orbit, Pan, Zoom, Zoom Window, Zoom Extents, Previous View, Position Camera, Look Around and Walk, plus the standard views and both projections.
- ✦Grid and units. A document grid whose snap step follows the zoom, and per-document units with dimensionally-checked expressions.
Sketching & constraints
The Fusion / SolidWorks half. A sketch is a feature in the timeline holding its plane, its points, its entities and its constraints — and the browser mirrors the solver, so dragging is immediate rather than a round trip.
- ✦A minimum-change solver. Newton, reporting degrees of freedom and refusing an edit that would over-constrain the sketch rather than silently picking a solution.
- ✦Constraints and dimensions. Coincident, horizontal, vertical, parallel, perpendicular, tangent, equal, symmetric, concentric, fix, and driving dimensions for length, distance, radius, diameter and angle.
- ✦Profiles. Found by splitting the plane with every curve, referenced by their boundary and an inside point — so a profile survives the edits around it.
- ✦Sketch on a face. The sketch follows that face when it moves; its origin can be anchored to a body corner or a face centre, and a lost anchor is reported rather than guessed.
attach_sketchre-hosts or detaches one. - ✦Modify tools. Fillet, chamfer, trim, offset, project, move, rotate and scale — the fillet takes the corner first and then its size, drawing the corner it would leave.
- ✦Named parameters. Expressions with units, checked dimensionally, editable in a Change Parameters dialog and usable in any dimension or feature value.
- ✦Values where the gesture is. Every drawing and modify tool shows lockable fields beside what they measure, with an arrow from the anchor to the pointer.
- ✦Sketch text. In any font the installation has, with the missing ones reported rather than silently substituted.
- ✦3D sketches. Points, lines, polylines, rectangles and fit splines in world space with 3D constraints, solved by Levenberg–Marquardt with a trust region. Its curves are a Follow Me path and a loft rail. Honest limit: there is no browser mirror of the 3D solver, so a 3D constraint shows once the kernel answers, and the panel says so while it is on its way.
- ✦Work geometry. Work points and axes beside construction planes, stored as persistent references and re-resolved on every build; construction geometry can be built on other construction geometry.
Solid features
Each tool's tray is its dialog, and the value the dialog is about is also sized on the body: a grip, an arrow and one field on the faces it will rebuild, previewing exactly what Apply will commit.
- ✦Extrude and revolve from sketch profiles, polygons or face features, with start, direction, two sides and symmetric spans.
- ✦Loft and sweep, with twist, scale and frame control.
- ✦Shell, draft and thicken. Draft pivots about a fixed plane you arm from the tray — or a face that stands in for one.
- ✦Fillet and chamfer on chosen edges, with chains and tangent chains; a chamfer's second side is given as a distance or an angle.
- ✦Split body and split face, cutting on an origin plane, a construction plane, a second body or a face extended over the body.
- ✦Patterns and mirror. Rectangular (both directions, spacing or total extent, symmetric), circular and path patterns, and mirror across a plane — in 3D, with their own live grips.
- ✦Direct face editing. Move a face, offset it, delete it by defeaturing, or replace it.
- ✦Healing and repair, faces found from separately drawn coplanar curves, section cap fills, and soft edges for smooth shading.
- ✦Persistent names. Every face and edge carries a name derived from its history. Everywhere a face or edge is referenced — push/pull, a face sketch, a construction plane, an anchor, a plugin placement, a fillet — the stored form is the name plus a geometric fallback, and what resolved by geometry (or not at all) is reported on the object.
Timeline, history & variants
The model is its history. Everything below operates on that history rather than on a flattened result.
- ✦A parametric timeline holding features and annotations in one order, with a marker: the kernel shows and exports what is up to it, and new work is inserted there.
- ✦Reorder, dependency-checked. A drag knows before it drops whether the step may pass the one it is built from.
- ✦Suppress a step — a replacing feature hands its input through; anything else is absent and its dependents are reported rather than silently dropped.
- ✦Feature groups over contiguous ranges, folded per viewer.
- ✦Undo and redo across 101 kept states, each one a stored forward and inverse patch — so undo costs what the step changed, not the model's size.
- ✦Configurations. A variant table of parameters, suppressions and per-feature values; activate one, or compute a variant for an export or a replay without storing it.
- ✦Branches. A trunk and named branches sharing history to a fork point, kept apart by copy-on-write, with a three-way merge that refuses to commit until every conflict is settled — and refuses outright if the merged document does not build.
- ✦Freeze bakes the object the marker shows into stored geometry.
- ✦Replay. Play the build back step by step, with per-kind entrance animations, scrubbing, speed from 0.25× to 8× and looping — for one viewer, without touching the shared marker. Record it to WebM or GIF.
- ✦Replay past revisions from the stored undo patches, captioned from the audit log: not how the model builds, but how it was made.
- ✦Design checks & design CI. Re-run a model's own checks on demand, and a scheduled headless job that re-runs every design scenario so a library bump that breaks a model is found before you open it.
Assemblies
- ✦Components that own their features, nest, carry their own origin and show their colour on their bodies unless a body carries its own.
- ✦Instances. Place a definition again without copying it; make one unique when it has to differ.
- ✦Joints. Rigid, revolute, slider, cylindrical, pin-slot, planar and ball, at origins stored as persistent references, with limits, driven values and grounded parts.
- ✦Motion studies that animate joint values, with a transport and a sampler that computes where every part stands at each frame.
- ✦The browser. Origin, Analyses, Components, Bodies, Faces, Sketches, Curves, Construction and Annotations — with drag-and-drop that says what a drop would do, or why it may not, before you let go.
2D drawings
Only the definition is stored: views are projected on read by hidden-line removal and cached by shape key, so a drawing can never show yesterday's model.
- ✦Sheets in ISO and ANSI sizes, portrait or landscape, at a scale.
- ✦Views: base, projected (first or third angle, kept aligned), section (hatched), detail and isometric.
- ✦Dimensions that re-measure themselves. Every projected curve keeps its object and its persistent edge name, so a dimension follows the edge it was placed on across a model edit.
- ✦Annotations and a title block, formatted in the document's own units.
- ✦Export to PDF, SVG and DXF.
Simulation
- ✦Linear static stress and modal analysis of one solid.
- ✦Meshed from the exact B-rep — gmsh tetrahedra, quadratic by default, with the mesh readable and refinable (a global size, a floor, curvature refinement, a size on named faces) before you pay for a solve.
- ✦Honest physics. Fixtures eliminated by null-space elimination, loads integrated over the real surface, solved with scipy, and verified against closed-form solutions.
- ✦Fields: displacement, magnitude, von Mises, principal max and min, strain and safety factor; modal shapes normalised and ready to animate.
- ✦Nothing stale. Only the definition and the last summary are stored, and a summary whose geometry has changed is marked stale rather than shown as though it still applied.
- ✦Honest limit: linear, static, one solid at a time. What is not modelled is written down in the documentation, not implied away.
CAM
No toolpath is stored. Every path is computed from the model as the timeline shows it, so a program can never be stale.
- ✦Setups and stock, with a work offset, a post and an ordered list of operations.
- ✦A tool library: flat, ball, bull and drill, with their geometry in millimetres, their cutting data, and what uses each one.
- ✦Strategies: facing, 2D contour, pocket, adaptive clearing, drilling, engraving and 3D parallel.
- ✦Simulation by Z-map material removal, reporting removed volume, per-operation time, measured tool engagement, and gouges and collisions naming the operation that caused them.
- ✦Estimates of cutting and rapid lengths, depths, hole counts, tool changes and time — with the assumptions carried in the answer, because a time without its assumptions is a guess.
- ✦Post-processors for GRBL, LinuxCNC and Fanuc — described by data, not code, so you can write your own as a plain object — and verified by parsing their own G-code back and comparing it with the path it was written from.
- ✦Honest limit: the simulator is a top-down Z-map, so undercuts and the underside of an overhang are neither represented nor checked.
Analysis & measurement
- ✦Mass properties: volume, surface area, centre of mass, mass from each material's density, and moments of inertia about the centre of mass and about the origin — with the bodies that had no density reported, not quietly counted as zero.
- ✦Interference between bodies, computed by the kernel and living on the scene rather than in the document — so it can never be a stale stored number.
- ✦Surface analyses: zebra stripes, curvature, draft angle per face and the parting line.
- ✦Requirements in plain language. "The wall must stay above 2 mm" becomes a checked annotation — wall thickness, clearance, overhang, bounding box or mass — re-checked on every regeneration, in any of the four languages, with an explanation of what fails and where.
- ✦Measuring tools: tape measure, dimensions, protractor and guides.
Materials, scenes & rendering
- ✦Materials with colour, opacity, roughness, metalness and density.
- ✦Image textures with real millimetre placement — width, height, rotation and offset on the surface — plus normal maps with adjustable strength.
- ✦A material library of your own and your organisation's, importable into any model, exportable as JSON, with generated textured presets.
- ✦Layers with colours, visibility and locking.
- ✦Scenes, as in SketchUp: a saved camera, style, toggles, visibility, section and optional timeline marker, with transitions between them.
- ✦Styles: shaded, hidden line, monochrome, wireframe and x-ray, with back edges, profiles, the origin, a watermark and a ground plane.
- ✦Rendering: generated environments, tone mapping, ambient occlusion, and an AI concept render driven by your configured provider.
Import & export
- ✦Import 3D: STEP, IGES, BREP, STL, OBJ, 3MF, glTF, GLB, Collada (.dae) and IFC — each body arriving with the name, colour and component the file gave it, meshes sewn into solids where they are watertight and kept as faces where they are not, then healed and checked.
- ✦Import 2D: DXF and SVG into sketch entities that share their endpoints.
- ✦Export 3D: STEP, IGES, BREP (exact, with names, colours and components), STL, OBJ+MTL, 3MF, glTF, GLB, Collada, IFC — and JSON, which keeps the editable history.
- ✦Export 2D: DXF and SVG of a sketch or a section cut; PDF, SVG and DXF of a drawing.
- ✦Large files travel as chunked uploads and are read from disk by the kernel, not passed through JSON.
- ✦Honest note: SketchUp's .skp has no open format. Collada is the way in and out.
Collaboration
- ✦Ownership and visibility: private, organisation or link, with members as editors or viewers. A model you cannot see answers 404; a role too low answers 403 and says which role was needed.
- ✦Live editing. Committed revisions are pushed over a per-model channel with their change when it is small enough; polling is only a slow fallback.
- ✦Presence — colour, selection and camera — that is ephemeral and never written into the document.
- ✦Comments anchored to an object, a face and a point, as threads.
- ✦Share links that are a credential of their own: a reviewer opens the model read-only, with the replay, without an account.
- ✦An audit log of every edit, which is also what captions the history replay.
Automation, API & agents
The rule the whole application is built on: every capability is available through a secured endpoint before a button exists for it.
- ✦One action catalogue of 228 actions with JSON schemas, consumed identically by the interface, REST (
/api/studio/actions/<name>), MCP and the in-app assistant. - ✦An MCP endpoint so an external agent — Claude, or your own — drives the modeler as tools, held to the same read and write scopes.
- ✦API tokens with scopes, an OpenAPI manifest, and optimistic concurrency on every mutation.
- ✦A Python console running a script inside the geometry kernel with the whole catalogue bound to one name — loops, arithmetic, and reading the model back between calls. One script is one edit and one undo step; a script that fails changes nothing. How it is sandboxed →
- ✦Batch edits: up to 100 commands as one revision and one undo step, with the model unchanged if any of them fails.
- ✦Deltas. A client that holds a model gets the change, not the file: a document patch and a scene delta, keeping unchanged meshes on the GPU.
- ✦Design-intent review. An agent can preview a change and propose it: you see the ghost of it in the viewport and approve or reject, and an approval applies as one edit with one timeline group.
- ✦Cancellation. Close the connection and the abort reaches the geometry worker, which stops at its next checkpoint. Nothing is committed for a cancelled request.
Feature plugins
A plugin is a JSON manifest the kernel interprets — bounded declarative steps and expressions. No plugin code ever runs.
- ✦A verified library of parametric parts — spur and bevel gears, ISO threads, hex bolts and nuts, washers, coil springs, pipe flanges — each pinned by a SHA-256 of its manifest.
- ✦Placement on a plane, a planar face or a cylindrical face, adding into or cutting from a body.
- ✦Parts regenerate without the plugin. A generated feature stores its recipe and its inputs, so a model opens correctly on an installation that never had the plugin.
- ✦Signatures and a registry. A manifest may carry an ed25519 signature and geometry assertions; signatures are settled before any geometry is generated, with a safe fallback to the local library. Browse, install, rate and update — with usage counted against parts that exist.
Platform
- ✦Runs in the browser on WebGL. No install, no plug-in, no licence dongle. A workstation-sized window is assumed — the CAD surfaces say so rather than folding into something unusable on a phone.
- ✦Geometry in its own processes. A pool of kernel workers, one model pinned to one worker, with per-request deadlines the worker enforces itself, per-worker memory and CPU ceilings, health checks and automatic recycling.
- ✦Caching that survives a restart. Shapes and meshes are keyed by geometry and cached in memory and on disk.
- ✦Four languages — English, French, German and Italian — including every refusal the service can give.
- ✦Themes. Fourteen palettes in light and dark, editable, plus a palette editor.
- ✦Self-hostable. Two containers behind your own proxy, with scheduled backups and a restore script.
A list is not a demo.
Open a showcase model and push a face. Ten minutes will tell you more than this page can.