Vitsoe 606 App
This is a very rough prototype — a proof-of-concept experiment to see if the constraint system and drag-and-drop could work at all. It lacks lots of design refinement, and plenty of the 606 system isn't covered. Try it here.
The Vitsoe 606 is Dieter Rams' 1960 modular shelving system — vertical e-tracks on the wall, with shelves, cabinets, and desks hung between them. Planning a unit usually means sketching, emailing Vitsoe's planners, and waiting. The 606 Designer lets you lay one out yourself in the browser and see what it costs as you go.
- Real constraints - Narrow (66.7cm) and wide (91.2cm) bays, pin holes every 7cm, four e-track lengths — the grid enforces the actual system's rules
- Drag and drop - Pull shelves, cabinets, desks, and tables from the library into a bay; click any element to swap, replace, or remove it
- Smart resizing - Move an e-track from wide to narrow spacing and every element in that bay swaps to its narrow variant automatically
- Cost estimate - A running parts list with per-item and total pricing, updated as you design
- Export - PNG for sharing, SVG for vectors, or a PDF spec sheet with dimensions and an optional price list

Every element is an isometric SVG line drawing in the style of Vitsoe's own assembly instructions. Because the isometric depth makes each element a different pixel width, everything right-aligns to its e-track so the perspective stays consistent across the whole unit. Bay widths and total dimensions are labelled on the canvas and counter-scale against zoom so they stay readable.


The whole thing is vanilla HTML, CSS, and JavaScript — no framework, no build step, no backend. State, rendering, drag and drop, and the export pipeline live in a single file, and the element library is auto-discovered from a folder of SVGs following a {category}-{width}-{option} naming convention, so adding a new element is just dropping in a drawing. The only outside dependency is jsPDF for the spec sheet. Built with Claude.
Not affiliated with Vitsoe — it's a fan project, and the prices are estimates. Try it here, or take the source from GitHub.