Recommended test
Begin with one valid outside rectangle contour that has several depth passes.
- Open CAM in 2D, confirm the contour is valid, then click Simulate in the contextual toolbar.
- Confirm the stock appears as a translucent block and the summary reports its exact width, height, and thickness.
- Confirm every valid operation shows an estimated duration and the summary shows the combined enabled-job estimate.
- Select Material. After the short preparation state, confirm the completed result shows pocket floors, open through-contours, and retained holding tabs.
- Press Play. The stock should return to its uncut state, then disappear directly beneath the moving cutter. Pause, seek backward, restart, and change speed; removal must remain synchronized.
- If the complete job uses multiple cutters, confirm material playback pauses at the same manual tool-change boundary as Toolpaths mode.
- For a filled-artwork V-carve, zoom close during playback. The live groove should retain sub-millimetre sloped edges while the cutter continues moving smoothly.
- Switch back to Toolpaths. Confirm the existing translucent channels, pass lines, and legend return while the shared player keeps its current position.
- Use the chevron at the summary's top-right to collapse it to a compact title bar, then expand it again. The control should also work with Enter or Space when focused.
- Click the compact chevron chip at the right edge. Confirm the CAD-source and cutter-centre key slides into view, then use the opposite chevron to tuck it away.
- Find the selected stock-anchor/stock-top origin. Change its 3 × 3 selection in Setup and confirm the axes move to the corresponding corner, edge centre, or stock centre. Red is X, green is Y, and blue is Z.
- Orbit with left- or middle-drag, pan with Shift + middle-drag or right-drag, and zoom with the wheel.
- Try Top, Isometric, and Fit. Each should frame the complete stock again.
- Inspect the bright cutter-centre path at the stock top, the path repeated at every calculated Z pass, and the translucent final cut-channel volume.
- Return to 2D, add a small spoilboard overcut, then reopen Simulate. The channel should extend below the stock and the operation should be amber.
- Enable valid holding tabs. Confirm solid gold bridges appear and the deepest pass lines break around them.
- Switch the operation between Climb and Conventional. The bright caret inside the cyan cutter marker should reverse and agree with the 2D indicator.
- With tabs enabled, inspect the deepest pass for subtle amber vertical lifts and purple lowering moves at each gold bridge boundary.
- Press Play in the bottom animation panel. The diameter-correct flat cutter—without any oversized tip flange—should move from job zero through every rapid, approach, ramp or plunge, cut, tab transition, and retract.
- Pause, drag the progress slider, choose 25×, and restart. The move type, move number, pass, and XYZ values should update immediately.
- Set an invalid cutting parameter such as Feed 10001 mm/min. Both 2D and Simulate should show the operation in red with the same validation message.
01 · SCENE CONTENT
CAM operations in two coordinated views
BlockStock at its exact millimetre dimensionsAxesSelected stock-anchor XY and stock-top Z originLinesCutter-centre path at every calculated passVolumeTranslucent final cutter-sweep channelCaretPlanned feed travel at the operation startThe top-left summary identifies the stock, selected origin, cutters, stages, and visible operations. Its operation list follows machining order and repeats the exact T-number and diameter used by output. Its top-right chevron collapses the details to a small, persistent title bar when more viewport space is needed. The CAD-source and cutter-centre key is tucked into the right edge by default.
The grid is a subdued spatial reference placed slightly below the stock's bottom face. It is deliberately separate from machining zero: the XYZ axes remain on the selected anchor of the stock top. This keeps the cutting face clear without changing any coordinates.
Green means the operation passes current checks, amber means it needs review, and red means an error remains. The 3D renderer receives the same status and messages as the 2D inspector.
02 · MATERIAL PLAYBACK
Optional motion-driven removal
Toolpaths remains the default inspection mode. Material prepares a separate removal program from the selected operation or complete enabled job. The first view opens on the completed stock. Pressing Play restarts from uncut material and follows cutting motion while ignoring Safe-Z rapid and retract travel.
Flat-tool contours, pockets, V-carves, and mixed-cutter jobs share an adaptive sparse high-resolution surface. Cadivari targets 0.08 mm cells, allocates 64-cell tiles only where a cutter reaches, and automatically relaxes resolution if a large cleared region would exceed the guarded vertex budget. Only the cut footprint and its one-cell surface transition replace the stock, preventing tile-sized squares from appearing around a moving cutter. Flat end mills produce cylindrical sweeps with level floors and shaded walls; V-bits retain conical, variable-depth faces. Untouched stock remains one block.
The cutter continues at display-frame speed. Material applies only newly reached cutter stamps and refreshes changed tiles at the bounded UI cadence. Seeking backward clears and deterministically replays the sparse job; the resulting surface still comes from the same stored CAM motion and cutter geometry.
Compare remaining stock with the model
In Cadivari 0.3.0, Remaining stock adds a coloured upper-surface comparison for valid model Roughing and Surface operations. Choose After roughing and After finishing to compare accumulated removal from the complete enabled job. Green shows near-target samples; yellow and orange show increasing excess above the target. The view reports its comparison grid size and caches stage results. See Remaining stock for the colour scale, resolution and limits.
03 · NAVIGATION
Readable camera presets plus direct control
The Three.js renderer is loaded only when 3D is opened. The normal CAD and 2D CAM workspace therefore avoids paying the larger 3D download and startup cost.
04 · EXPANSION FOUNDATION
One motion source for two synchronized views
The renderer does not interpret the Cadivari document directly. A separate, tested scene builder supplies stock, job origin, sampled cutter-centre geometry, pass depths, holding-tab intervals, the resolved start point, and the complete typed motion plan. Renderer-independent animation and material engines consume those same moves.
CAD document + validated CAM operation
↓
Typed motion plan + tested simulation engines
↓
Three.js toolpath or progressive-material viewThe visible cutter is transformed every animation frame. Material state updates at the deliberately bounded UI cadence and uses cached checkpoints for deterministic forward and backward seeking, keeping React and full mesh construction out of the 60 Hz cutter loop.
CURRENT SCOPE
2.5D flat-tool and V-bit simulation
- CAM Animation plays an individual operation or the complete enabled job in Toolpaths and Material modes
- Material removal follows pockets, ramps, exact arcs, approved spline samples, tabs, through-cuts, variable-depth V-carves, and manual tool-change pauses
- Flat-tool, V-bit, and mixed-cutter playback use adaptive sparse high-resolution tiles around the actual swept areas
- Restart and backward/forward seeking rebuild deterministically
- No ball-nose, undercut, holder, collet, clamp, or collision geometry
- The visual simulation does not change toolpaths or G-code
- Local NC Export saves the matching reviewed G0/G1/G2/G3 program