Precision flat-pattern development for cylindrical and conical plate shells.
Shell Rolling Master is a browser-based fabrication calculator for rolling plate into open-seam cylindrical and conical shells. It computes neutral-fibre developments with K-factor compensation, visualizes the rolled solid and unfolded blank, and exports shop-ready DXF, PDF, and STEP deliverables — entirely client-side.
Live App · Documentation · Calculations · Architecture
| Area | What you get |
|---|---|
| Geometry modes | Cylinder and frustum (cone) shells with OD or ID specification |
| Neutral fibre | K-factor–based development along the bending neutral axis |
| Seam control | Configurable weld / seam gap deducted from the developed blank |
| Roll guides | Optional equally spaced bend / roll reference lines |
| 3D preview | Interactive thick-shell model (orbit, pan, zoom, view cube) |
| 2D pattern | Dimensioned SVG layout — rectangle (cylinder) or annular sector (cone) |
| Exports | DXF cut pattern, PDF fabrication report, STEP solid (OpenCascade WASM) |
| Embedding | Same-origin share-state protocol for host utility shells |
All units are millimetres. Computation and CAD export run in the browser; no backend is required.
npm install
npm run devOpen http://localhost:3000. Production build:
npm run build
npm run preview| Script | Purpose |
|---|---|
npm run dev |
Vite development server (port 3000, host 0.0.0.0) |
npm run build |
Type-checked production bundle to dist/ |
npm run preview |
Serve the production build locally |
npm run lint |
ESLint across the project |
Inputs (OD/ID, D1/D2, H, T, K, gap)
│
▼
Neutral diameters → Cylinder / cone development math
│
├──► Results card (sheet size, sector radii & angle)
├──► 2D SVG pattern view
├──► 3D Three.js thick-shell mesh
└──► Exports: PDF · DXF · STEP (CAD worker)
- Enter shell dimensions and material parameters.
- The engine derives neutral diameters, then develops the flat blank (rectangle or annular sector).
- Inspect the 3D model or 2D pattern.
- Download PDF (shop report), DXF (CNC / CAD blank), or STEP (thick open-seam solid).
Detailed formulas: docs/calculations.md.
| Parameter | Default | Description |
|---|---|---|
| Mode | Cylinder | cylinder or cone |
| Spec | OD | Outer or inner diameter basis |
| D1 | 2000 mm | Primary / top diameter |
| D2 | 1500 mm | Bottom diameter (cone) |
| H | 2500 mm | Axial height / blank width |
| Thickness | 15 mm | Plate thickness |
| K-factor | 0.44 | Neutral-axis position (0–1) |
| Gap | 2 mm | Weld / seam opening |
- UI: React 19 · TypeScript 5.9 · Vite 7 · Tailwind CSS 3 · Zustand 5
- 3D: Three.js · React Three Fiber · Drei
- CAD / STEP: replicad · OpenCascade.js (WASM) in a module Web Worker
- Reports: jsPDF
Relative asset paths (base: './') support static hosting and iframe embedding.
| Document | Contents |
|---|---|
| Documentation index | Full documentation map |
| User guide | Inputs, workflow, validation |
| Calculation reference | Neutral fibre, cylinder & cone maths |
| Domain model | Parameters, results, types |
| Architecture | Modules, data flow, CAD pipeline |
| Export formats | PDF, DXF, STEP, share protocol |
| Development | Setup, build, deploy, conventions |
src/
App.tsx Layout: sidebar + 2D/3D workspace
store/useShellStore.ts Zustand store & recalculation trigger
features/calculator/ Inputs, results, math, STEP export UI
features/viewer-2d/ SVG flat-pattern views
features/viewer-3d/ Three.js scene & shell meshes
cad/ OpenCascade / replicad STEP pipeline
utils/ DXF, PDF, bend lines, solid geometry
shareLink.ts Embedded host share-state protocol
Pushes to main build with Node 22 and publish dist/ (as app.html) to the CAD Auto Script site under:
static/utility-apps/cylindrical-shell-rolling
See docs/development.md.
- Client-side only — no project persistence, accounts, or server API.
- No laser / plasma / waterjet kerf compensation; cone reported sheet size includes a 10 mm cutting margin on the bounding box (not on DXF geometry).
- Cone mode requires a meaningful diameter difference (≥ 1 mm at neutral); near-cylindrical cases should use cylinder mode.
- STEP export initializes an OpenCascade WASM kernel on first use (progress is shown in the UI).
Private project (package.json: "private": true). Part of the CAD Auto Script utility suite.
Version: 0.21.0