Documentation

Render3D CAD Visualizer

A CAD project visualizer inspired by ForgeCAD: orbit, zoom, and pan a 3D viewport, upload meshes, edit transforms, and generate new geometry from natural-language prompts via GPT-5.5 Pro.

What changed today

Render3D now has a more complete electronics-to-CAD workflow: source parts, wire them, generate real mounting fixtures, draw routes between objects, and inspect AI cost usage by project, person, prompt, tokens, or calls.

Component-aware CAD Imported STEP/GLB parts can be profiled, measured, referenced, mounted, and automatically placed into generated fixtures.
Draw mode upgrades Selected-face hole patterns, blind depths, and line-tool ducts/wire loops now run as local geometry edits.
Wiring simulator intelligence Components can be dragged into the simulator, drivers are validated for motors, and code/simulation flows are documented.
Workspace quality of life Stop generation, hide objects from the context menu, keep prompt drafts per project, and use expanded AI cost analytics.

Visual workflows

Line tool to route geometry

Line tool
  click object A
      ↓
  click bend / midpoint(s)
      ↓
  click object B
      ↓
  Enter / double-click → @path-1
      ↓
Draw prompt: "create wire loops along this path"

Component fixture prompt

@component:arduino_nano_r4
@component:adafruit_858_stepper_motor_5vdc
      ↓
component_specs + measured bounds
      ↓
deterministic fixture generator
      ↓
mount plate + board pocket + motor posts
      ↓
component meshes moved into the mounts

AI cost analytics

Range filter: 7d / 30d / 90d / year
View filter: mine / shared / individual
Metric: cost / tokens / prompts / calls
Chart: bars / line / area / user / project / prompts
Prompt chart: "compare project token usage last 90 days"

Wiring validation

Stepper motor requested
      ↓
validator checks coils + current path
      ↓
Arduino pins must feed driver inputs
      ↓
ULN2003 / driver outputs feed motor coils
      ↓
simulation animates actuator when valid

Prompt examples — using skills

Enable skills on the Skills Library page, then reference them in Studio prompts. Active skills appear as @skill:cad chips; you can also name the skill in plain language. Blueprint Vision turns on automatically when you attach an image to a prompt.

CAD — parametric block with holes

Use the CAD skill to generate a parametric STEP model.

Create a 100mm x 60mm x 20mm rectangular block with four 8mm vertical through-holes. Add a 2mm chamfer only on the top outer perimeter.

Output:
- STEP file
- STL file
- Preview in CAD Viewer

Blueprint Vision — schematic to CAD model

Attach a schematic, blueprint, or concept drawing image to the prompt. Blueprint Vision enables automatically; also enable CAD to generate geometry.

Use the Blueprint Vision skill to analyze this schematic, then model it with the CAD skill.

Extract all dimensions and labels from the image text. Produce the full 7-stage analysis
(understanding, dimensions, components, relationships, reconstruction plan, model tree),
then generate a parametric STEP assembly.

Example target: countertop automated cooking appliance, 420×360×520 mm envelope,
bowl, support columns, bridge, motor, mixing shaft, hopper, spice dispensers, control panel.

Output:
- Structured analysis summary
- STEP assembly
- STL meshes
- Preview in CAD Viewer

Mesh Checkup — repair and smooth a selected region

Use the ◈ Checkup tool in the Direct modeling panel (Tools tab). Pick a face (F) or lasso a region (L) first to scope smoothing; repair runs on the whole mesh.

1. Upload or load an STL/GLB mesh with rough or noisy geometry.
2. Press F and click a bumpy face, or press L and lasso the area to smooth.
3. Open Tools → ◈ Checkup.
4. Click Check — review topology report (non-manifold edges, open boundaries, degenerate triangles).
5. Enable Repair topology + Smooth selection.
   Method: Taubin (shape-preserving) · Iterations: 8
6. Click Apply cleanup.

Optional AI prompt (after cleanup) for further edits on the same region:
At @face-1 fillet the outer edge 2mm and keep the smoothed surface unchanged.

Wiring Simulator — breadboard schematic from prompt or photo

Switch workspace to ⎍ Wiring Simulator. Drag components, drag wires pin-to-pin on the grid, or describe the circuit in the left Wiring AI panel. Attach a breadboard photo to match an existing build. Click Example to load a filled blink-LED circuit with color-coded wires.

Arduino Uno blink LED on pin 13:
- Half breadboard centered on canvas
- 220Ω resistor between D13 row and LED anode
- LED cathode to GND rail
- 5V and GND from Arduino to breadboard power rails
Use red for 5V, gray for GND, blue for D13 signal.

Then prompt edits:
Move the LED one column right and add a second red LED on pin 12 with its own 220Ω resistor.

Component-aware fixture — real parts, real mounts

Drag components from the project browser into the prompt or copy their @component reference. Render3D measures the current mesh, uses known part profiles when available, and can place the component models into deterministic mounting geometry.

@component:adafruit_858_stepper_motor_5vdc
@component:arduino_nano_r4

Generate a flat open breadboard-style test fixture.
Mount the Arduino Nano in a pocket with corner holes and USB clearance.
Hold the stepper motor by its bracket ears with two posts and a body clearance opening.
Move the referenced STEP/GLB components into the generated mounts.

Draw mode — selected-face hole pattern

Switch prompt mode to Draw, press F, pick a face, then describe the local edit. Draw mode now separates hole count, diameter, pattern, and blind depth.

put 5 holes in a circle evenly apart 4 mm 3mm deep

Result:
- 5 blind holes
- 4 mm diameter
- 3 mm deep
- evenly spaced around the selected face center

Draw mode — ducts and wire loops from the Line tool

Press N or click Line, click path points between objects, then double-click or press Enter to finish. The path becomes an @path-N reference that Draw mode can turn into route geometry.

create a 6mm wire duct along this path

make 2mm wire loops 10mm high along this path

add wire clips between these two objects using @path-1

Features

  • 3D viewer — Orbit, pan, zoom; grid toggle; fit-to-view
  • Edit timeline — Fusion-style history; drag the slider or click steps to restore earlier states
  • Geometric references — Pick corners, faces, edges, lasso regions, and line paths; insert @corner-1 or @path-1 chips into prompts
  • Reference-aware AI — e.g. “at @corner-1 drill a 3mm hole through the part”
  • File import — STL, OBJ, GLB/GLTF, PLY, OFF, and 3MF upload with timeline history
  • Gizmo edit — Transform controls with server-side save
  • AI CAD prompting — GPT-5.5 Pro builds and modifies geometry via Trimesh
  • Stop generating — cancel an in-flight OpenAI/Claude generation to avoid wasting time and tokens
  • Project prompt drafts — prompt text and references are saved per project when you switch away and restored when you return
  • Object visibility — right-click a component in the workspace browser and choose Hide object / Show object
  • Color tool — select an object or face and apply a color from the Create/viewport controls
  • Component profiles — source imported parts, store datasheets/pinouts/specs, and feed verified dimensions to wiring and CAD generation
  • Driver-aware wiring — motors and steppers are validated through driver boards such as ULN2003 instead of wiring Arduino pins directly to coils
  • Code + simulation — wiring designs can generate Arduino-style code, open an editable code tab, and run visual actuator simulations when wiring validates
  • AI cost analytics — compare cost, tokens, prompt counts, and AI calls by time range, user, project, or recent prompt

Draw mode local edits

ReferencePromptResult
Selected faceput a 4 mm hole in the middle of this faceThrough-hole at selected face center
Selected faceput 5 holes in a circle evenly apart 4 mm 3mm deepBlind circular hole pattern
Line pathcreate a wire duct along this pathRaised duct/conduit along @path-N
Line pathmake wire loops along this pathRepeated hoop clips following @path-N

Component and wiring workflow

  • Drag to prompt — drag a component from the workspace browser into the AI prompt to create a component reference chip.
  • Drag to Wiring Simulator — drop a component into the wiring viewport to create a recognized wiring part with pins.
  • Profile / source — right-click a component and choose Profile / source to identify an imported STEP/GLB part, collect specs, and seed datasheets or pinout data.
  • Driver picker — if a motor needs a driver, the simulator can prompt for a compatible driver board and import/source the supporting STEP file.
  • Validation — stepper coil inputs, Arduino control pins, power rails, and driver outputs are checked before simulation.

AI cost analytics

Open the account/profile menu and choose View analytics. The popup is wide enough for chart comparison and includes quick buttons plus a prompt-style chart builder.

ControlOptions
RangeLast 7, 14, 30, 60, 90, 180, or 365 days
ViewMine + shared, mine only, shared only, or a specific shared-key user
MetricCost, tokens, prompt count, AI calls
ChartStacked bars, line, area, by person, by project, recent prompts
Prompt chartcompare project token usage last 90 days

Quick start

cd Render3D
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
cp .env.example .env
# Edit .env and set OPENAI_API_KEY
python run.py

Open http://127.0.0.1:8001 (default port; set PORT in .env if needed).

Viewer controls

InputAction
LMBOrbit
RMBPan
ScrollZoom
C / F / EPick corner / face / edge
LLasso a surface region for scoped cleanup or references
NLine / path tool for ducts, wire loops, and route references
GToggle gizmo
WToggle wireframe
Right-click componentOpen, attach to wiring, profile/source, hide/show, export, rename, delete
EscReturn to orbit mode

Configuration

VariableDefaultDescription
OPENAI_API_KEYRequired for AI prompts
OPENAI_MODELgpt-5.5Fast OpenAI model id
OPENAI_MODEL_QUALITYgpt-5.5-proQuality model for slower prompts
HOST127.0.0.1Bind address
PORT8000HTTP port

Skills Library

Render3D ships agent skills from text-to-cad under backend/skills/. Enable skills on the Skills Library page; active skills appear as @skill:cad chips in Studio and are sent with each prompt.

  • GET /api/skills — List installed skills (tools, references, provenance)
  • GET /api/skills/{id} — Full SKILL.md content
  • GET /api/skills/{id}/tools — Python CLI tools for a skill

API

  • GET /api/health — Status and model
  • GET /api/projects — List saved projects
  • POST /api/projects — Create project
  • POST /api/projects/{id}/upload — Upload CAD file
  • POST /api/projects/{id}/prompt — AI generate geometry
  • POST /api/projects/{id}/generation/cancel — Stop an in-flight generation
  • POST /api/projects/{id}/files/{name}/transform — Apply transform
  • POST /api/projects/{id}/files/{name}/paint — Paint an object or selected face
  • POST /api/projects/{id}/files/{name}/draw-hole — Draw selected-face holes and hole patterns
  • POST /api/projects/{id}/files/{name}/draw-route — Draw ducts or wire loops along a line-tool path
  • POST /api/projects/{id}/files/{name}/mesh-cleanup — Topology checkup, repair, and selection smoothing
  • GET /api/projects/{id}/timeline — Edit history timeline
  • GET /api/projects/{id}/prompt-history — Past prompts
  • GET /api/user/ai-costs — Cost, token, project, user, and prompt analytics

Security

Never commit .env or API keys. If a key was shared in chat or logs, rotate it in the OpenAI dashboard.