ShopSpec is a deterministic parametric furniture generator (bookshelves, cabinets, shop carts, leg-and-rail frames, multi-carcass composites) that encodes real woodworking intelligence and outputs shop-ready artifacts.
Most recently, introduced the concept of value engineering by sweeping across dimensions to batch evaluate candidates that ranks based on sheet purchases. Also have in beta an MCP connector to let agents explore the deterministic engine.
I'm building a number of items for home and shop and ShopSpec has been instrumental to plan, visualize, and execute on these new ideas/projects.
Hi there! I'm a woodworker and love seeing new woodworking software! Thank you for making this.
I could tell from the layout screenshots, but one thing to make sure is that you are accounting for the size of the kerf. Being able to set a different kerf size for different cuts would be ideal as your rip vs crosscut are often different blades.
Also, one of the more daunting parts of casework for me is sorting out exactly how undermount slides go. I would highlight any help your tool does with raising confidence in getting those installed. Even having an undermount installation tool separate from the spec work I think could be useful.
Don't forget about the rest of the world which does not use imperial and have access to plywood stock that is e.g. 18mm birch in metric standard dimensions for the cut sheet. Being able to customize what stock I have access to locally and adjust measurements and cuts automatically, e.g. rounding to cm not quarter inches.
This is beautiful and I'm now itching to make a workbench (finally! that initial "how many sheets and what for what size" problem has been the mental blocker)
Glad ShopSpec helped get you over the hump and appreciate the feedback. I am building a tool that I find useful for myself and previously encountered a similar pattern to what you mention.
Wow that's really cool! I'm actually trying to learn about woodworking and using those example as a base are really great!
You could consider having an option for metric users as well!
Is this related at all to sawdust.diy which was posted last What are you working on? https://news.ycombinator.com/item?id=49234277. Has a really similar look and feel but different feature set
In a recent project the countertop contractor digitally measured the walls, even ones that look square weren't, not a 90 degree corner to be found! You should build cabinets as squared boxes and level them when installing. The trim work that surrounds it will hide gaps, etc.
Generally if there is space because of odd angled walls there really isn't any advantage to trying to use it. You're talking square inches of drawer/cabinet space, it really doesn't matter as far as usable space is concerned. Its a huge hassle to try and build cabinets that are not square - things like how do you screw/nail parts and not have the screw/nail blow out a finished side? It can be done, but should it?
I have not opened up that can of worms yet, but have been thinking more about tapers and other non-rectilinear forms. Longer-term I very much want to support a "fill this space" mode for built-ins.
One other note, is there a way to see the bay map larger? I am trying to see the height between shelves and the measurement does not show because there is not enough space for it.
You can also visualize the measurements between shelves by clicking 'Show Sizes' on the 3d scene options and having a bay selected. Let me know if that helps.
P.S. I showed this to a friend, and he asked if we could mock something up, export the dxf, and send it to a cut shop... you could end up with your own flatpack pipeline.
I previously added dxf and ruby export as part of validation efforts with capability to import into SketchUp Pro and other CAD. This is available in the Reference Rail by clicking `All Exports` or scrolling down to the design interchange section in the rail.
Have been building something non-CAD too in the space which is also aligned with carpentry. This looks really neat and can't believe how similar the functionality is. Would be great to chat!
Shopspec looks very cool! Love to see people building in this direction, we have at least validated for each other that the demand for a tool like this has a minimum bound of at least 2.
We live in the shattered remains, badly reconstructed, of what a true operating system could be - we have some of the pieces (zfs, k8s, virtualization, scaling, failover, nixos, qubes) but imagine it all put together, orchestrated, carefully documented and tested by immense number of engineers. Ah, what could have been.
This is what it feels like to look in at Linux from the outside as a Windows admin used to corporate-enforced consistency.
Sure, Microsoft has stumbled a bit recently, but around the 2010s it was a glorious era of PowerShell and Windows Server releases that were still improving.
I remember being quite young and proud that I had built something using Samba and Kerberos that mimicked an NT domain controller, and how powerful it was for our little LAN in the dorm, and why would anyone pay M$ for this, and then barely a few years later using small business server and being like "oh, that's why".
The problem is license costs. IBM makes a great system but almost all their customers have been working hard to replace it, not because of issues with the quality but the high license costs.
IBM AS/400 lineup was fully designed to optimize customer segmentation and threfore capture better the customer value. For example, there were cheaper models where the hardware was exactly the same as more expensive models except for additional hardware loops to make things run slower. That’s why they had so many models, they wanted to have a price point available for every company size.
There's really only one acceptable price for an OS, and it's the same as the only acceptable price for a browser or DB - $0.00. The precedent has been pretty solidly set (Linux, FreeBSD, MySQL, Postgres, Chrome, Firefox...) at this point, hence all the pivots to charging for service and support and suchlike.
I am working on ShopSpec (https://shopspec.io/), a tool for designing bookshelves and cabinets. Enter the dimensions and it generates the parts, cuts, sheet layout, and build steps.
I built it because I wanted to spend less time drawing boxes in CAD and more time building them. Still early and I'd love feedback from other woodworkers.
I would love to hear more about your oddly-shaped non-rectangular room.
For now rectilinear has made things simpler; but on this kick now with 3d-printed jigs also derived from the spec. I already have a dog-hole system worked out and in-place with this idea. Could be interesting to extend to curves - becomes approachable/repeatable.
I would love to have floor to ceiling custom shelves. On my second floor I have ceilings that are angled instead of flat and would love to still have the usable space for books. Stuff like this is what I would love to make:
I'm threading this now and have paired AI-assisted development with woodworking knowledge. Partially chose to work on this because I wanted to build in a domain that the models might have a tougher time understanding.
Parallels and interests overlap everywhere between programming and woodworking; decisions about tooling, tolerances, sequencing, and what can be easily fixed later.
The models get rectangles pretty well and has been fun exploring a parametric casework planner for my own shop.
For me, it was during an on-going incident in a failing IoT OTA service which was growing in priority; taking two items I was unfamiliar with and bolting together new OTA mechanism via alternative SMS provider. I'd never developed in .NET ecosystem before and happened to gain access to another team's Twilio account in a prior week, so took a shot, planned interfaces to extract and implemented alternative Twilio implementation + feature flag
Normal software instincts plus access to a different service flushed the buildup of OTA's and lives on as a fallback mechanism. Amazed me going from idea to execution faster than I could have ever dreamed of even on-boarding myself to the area or environment.
I’ve had a similar experience building a geometry/woodworking-flavored web app with Three.js and SVG rendering. It’s been kind of wild how quickly the SOTA models let me approach a new space in spatial development and rendering 3d (or SA optimization approaches, for that matter). That said, there are still easy "3d app" mistakes it makes like z-axis flipping or misreading coordinate conventions. But these models make similar mistakes with CSS and page awareness. Both require good verification loops to be effective.
I think there is a pattern. It has a hard time with temporal and spatial.
Temporal. I had a research project where the LLM had no concept about preventing data from the future to leak in. I eventually had to create a wall clock and an agent that would step through every line of code and ensure by writing that lines logic and why there is no future of the wall clock data leaking.
Spatial. I created a canvas for rendering thinking model's attention and feedforward layers for data visualization animations. It was having a hard time working with it until I pointed Opus 4.7 to some ancient JavaScript code [0] about projecting 3d to 2d and after searching Github repositories. It worked perfect with pan zoom in one shot after that.
No matter how hard I tried I couldn't get it to stack all the layers correctly. It must have remembered all the parts for projecting 3d to 2d because it could not figure out how to position the layers.
There is a ton of information burnt into the weights during training but it can not reason about it. When it does work well with spatial and temporal it is more slight of hand than being able to generalize.
People say, why not just do reinforcement learning? That can't generalize in the same way a LLM can. I'm thinking about doing the Rubik's Cube because if people can solve that it might open up solutions for working temporal and spatial problems.
reply