About KulmanLab
A one-person project, built the slow way.
Hi, I'm Volodymyr, and I live in Ukraine. I'm a civil engineer by education — I spent years at the drafting board and in desktop CAD software before switching careers to backend software development. The engineering itch never went away, though. It eventually led me down the rabbit hole of CNC machines, and to building my own CO₂ laser cutter from scratch.
That's where KulmanLab comes from: I kept needing a quick way to open a DXF file, clean it up, adjust a few lines, and send it to the machine — without launching heavyweight CAD software or signing up for yet another cloud service. So I started building my own tool. That was in 2023; it has been an evenings-and-weekends project ever since.
The name
A kulman is what the classic drafting machine — the Kuhlmann drawing board — is called in the part of the world I come from. Generations of engineers learned to draw on one. KulmanLab is my attempt to keep that spirit in the browser.
What I believe a CAD tool should be
Free, instant, and private. KulmanLab has no accounts, no uploads, and no server behind it — your drawings are processed and stored entirely on your own device, and the app keeps working offline. Nothing to install, nothing to subscribe to, nothing to hand over. The details are in the privacy policy, which is short because there is genuinely little to tell.
It is deliberately a focused tool: fast 2D drafting with a command terminal, layers, dimensions, and honest DXF import/export — not a replacement for a full desktop CAD suite. If you cut things on CNC or laser machines, or need quick technical sketches for a lab report, it was built with you in mind.
Under the hood
KulmanLab is written in Angular on top of HTML5 Canvas, and comfortably handles drawings with 100,000+ objects. By far the hardest part has been the DXF format itself — parsing it is easy, writing files that every CAD editor will accept is a minefield of reverse-engineered splines and group codes.
Say hello
Found a bug, missing a feature, or just want to show what you made? Open an issue on GitHub, join r/kulmanlab, or write to me at kulmanlab@gmail.com. I read everything.