--> rev20 (2026-10-20) Stage A3: THE EMBED ROUND (zero-CDN). three.js --> r147 + ArcballControls + PptxGenJS + the OpenCascade engine --> (occt-import-js 0.0.23 js+wasm) ride inside as gz+base64 payloads; --> boot decodes them before init; the OCCT worker receives its pair --> at creation. Prior: rev19 (2026-10-20) Stage A1+A2: --> pdl.ingest rev1->rev4, pdl.model rev1->rev2 (both purely additive, --> contract-checked against this app's call sites) + the site-wide --> error boundary (pdl.errboundary rev1). Base: the 2026-10-20 --> public mirror (newest castDFM; superset of internal rev18). -->
Drop a .stl or .step/.stp file anywhere on the page. The part is automatically centered on the virtual build plate with its lowest point at Z=0 (Z is the die opening direction in automotive CAD).
Fineness: coarser tessellation loads large parts quickly and is usually enough for draft, tonnage and mass estimates. Switch to Standard or Fine when you need small features resolved; changing it re-tessellates the loaded STEP model.
Units: STEP files carry their own units. STL files do not, so if an STL was exported in metres, tick the metres box to scale it to millimetres.
Import runs in a background worker, so the page stays responsive and you can cancel a long import with the Cancel button.
Orientation is the single most important casting decision: the Z axis is the die opening (parting) direction, so what points up in this view is what the die must release when it opens.
Rotations turn the part 90 degrees about the part center. Unlike rev14, these are matrix operations, so they are instant even on large models.
Tip to face: click the button, then hover over any face. An orange arrow shows the direction that face currently points; clicking makes that direction UP. Hovering is a live preview, so you always know what a click will do before you commit. Tip mode exits by itself after each tip so it cannot fire accidentally; if you want it to stay on for several tips in a row, enable hold mode in the settings gear (top right). An orange banner and border remind you while the mode is active.
Move to zero re-centers the part on the plate after nudging. Nudges and Z spins do not change the parting direction, so analyses stay valid; 90 degree rotations mark downstream analyses stale.
Draft angles color every face by its angle to the pull direction. LPDC: faces should draft at least 3 degrees, ideally 5. HPDC: at least 1.5 degrees, ideally 2.5. Perfectly vertical faces are almost always machined surfaces and are flagged separately (they get machining stock later).
Undercuts highlight die-lock regions: areas the die cannot release along the pull direction. Continuous gold and purple regions should only toggle at a mold seam.
Wall thickness casts a ray from the middle of every face into the part and colors the face by the distance to the opposite wall: red faces are thinner than the minimum (misfill and cold-shut risk), purple faces are thicker than the maximum (shrinkage porosity risk), black faces found no opposite wall (open shell or an extreme local thickness), and faces inside the band are ghosted. The calculation runs in a background worker against a spatial grid so large meshes stay tractable, with progress and Cancel in the overlay. Changing the min/max bands re-colors instantly without recomputing; any orientation change clears the result, because the distances belong to the orientation they were measured in.
Process first: pick LPDC or HPDC with the tabs at the top of the panel; the draft and wall-thickness limits fill in with that process's defaults (LPDC 3/5 deg and 3/8 mm, HPDC 1.5/2.5 deg and 2/6 mm) and stay editable. LPDC mode hides the tonnage step: PQ2 locking-force sizing is an HPDC-only calculation.
Draft analysis colors every face by its angle to the pull direction (Z): purple faces are near-vertical and are almost always machined surfaces (within 1.5 deg for LPDC, 0.5 deg for HPDC, so under-drafted faces show red in HPDC mode), red faces do not draft enough to release, yellow faces are between the limits, and everything else is well drafted (shown ghosted). The legend buttons toggle each color so you can capture clean images for reports.
Undercut analysis colors faces by which die half they release with: purple faces face up, gold faces face down (die lock on opening), and black faces are near-vertical seam candidates. Gold and purple regions should be continuous, toggling only at a mold seam.
If two or more parts fit between the tie bars in one shot, the die can be built as a multi-cavity array. Turn on Array mode, choose a grid or a circular pattern, set the cavity count and the gap (or circle radius), and the part is patterned on the bedplate so you can see whether the layout fits between the tie bars.
The pattern's footprint is checked against the selected machine's tie-bar clear envelope, and the projected area used by the tonnage calculation is multiplied by the cavity count (each cavity pours its own shadow area at the same metal pressure). The fit line also estimates the total shot mass (cavity count x part mass) for runner and biscuit sizing sanity checks.
Decide array-or-not before tonnage, because the number of cavities directly multiplies the locking force the machine must react. Turning Array mode off restores the single part untouched.
When the die is filled at metal pressure P, that pressure acts on the projected (shadow) area A of the casting, trying to push the die halves apart. The machine must clamp with more force than P x A, so the four tie bars must react the locking force.
The estimate adds the part's projected area, an overflow percentage, a gating percentage, slide corrections, and the biscuit area, then multiplies by the metal pressure. The pressure you set is the biscuit pressure (specific metal pressure at the biscuit); the machine's hydraulics see a different pressure at the shot piston, scaled by the biscuit/piston area ratio (a biscuit smaller than the piston amplifies metal pressure, so the piston pressure is lower). Both limits are checked: locking force against the machine's clamping rating, and injection force against its casting-force rating. Each machine has its own bedplate and tie bar spacing, so the part must fit the machine you are quoting.
Projected area is measured automatically from the part silhouette (occlusion-correct, so folded-over parts are handled) and updates whenever the orientation changes. Override it only if you have a better number.
Fit check: selecting a machine shows its bedplate with the four tie-bar holes and draws the clear envelope between the bars. The part's footprint must fit inside that envelope; the fit line turns red when it does not, which means a bigger machine (or a different orientation, or an array decision) is needed.
Generate report assembles a PowerPoint deck from the current assessment: title slide with the part render, a Casting Overview slide (part, material, density, volume, machined/cast/shot weights, bounding box in mm and cm, nominal draft and wall, projected area, cavity count), a Machine Layout slide with the bedplate and projected-area views and the PQ2 numbers, a Wall Thickness slide when that analysis has been computed, and an Undercut Analysis slide. All views are captured live from the scene; footnotes state the ACTUAL assumptions used (pressure, adders, machine). Fill in the naming and material fields first; the deck regenerates from scratch on every click.