[HN Gopher] Claude Tips for 3D Work
___________________________________________________________________
Claude Tips for 3D Work
Author : snide
Score : 192 points
Date : 2026-03-13 14:53 UTC (4 days ago)
(HTM) web link (www.davesnider.com)
(TXT) w3m dump (www.davesnider.com)
| mungoman2 wrote:
| Really good. I've struggled with the same thing.
|
| > Instead of expecting it to understand my requests, I almost
| always build tooling first to give us a shared language to
| discuss the project.
|
| This is probably the key. I've found this to be true in general.
| Building simple tools that the model can use help frame the
| problem in a very useful way.
| 8note wrote:
| gemini on the otherhand, isnt half bad.
|
| all i wanted was some opinions on if my bad idea would work, but
| it instead wrote me files for making my own sony earphones in
| 3ish parts.
|
| and when i sewed it together, it worked!
|
| that said, it did have full access to a mini CAD app, but i think
| it wrote all its own calculations inline
| andkenneth wrote:
| Gemini's best ability is it's 3d spatial reasoning. It's
| downright terrible at a lot of things (toolcalling is an
| absolute nightmare), but it consistently wins in stuff like 3d
| modeling, reasoning through 3d problems, and even 2d layout and
| animation tasks like the infamous pelican riding a bycicle
| benchmark
| StephenHerlihyy wrote:
| Honestly understanding and applying 3d transformations should be
| a new LLM benchmark. Three.js, OpenSCAD, even Nano Banano
| prompts. The moment you add that extra dimension any semblance of
| 'intelligence' goes right out the window. Every model out there
| seems to spin themselves in circles trying to logic through it
| with no success.
| Schlagbohrer wrote:
| As soon as LLMs are doing serious junior level 3D modeling and
| mechanical CAD design, that's going to lead to some wild
| iteration loops with rapid prototyping. Very exciting.
| bambax wrote:
| Just yesterday I used Claude to great effect in FreeCAD to model
| a church tower. The tower has a square base and an octagonal top,
| but connecting the two by creating a loft using the GUI in
| FreeCAD results in a wrong and ugly abomination.
|
| Claude understood the problem and produced elegant Python code
| that worked perfectly the first time.
|
| So I continued and described the other features of the tower to
| Claude, who coded them.
|
| It's sometimes difficult to properly describe what you want in
| English, and Claude does a _lot_ of thinking, and sometimes goes
| deep into a wrong direction of which it won 't come out easily;
| but in the end the result is almost perfect.
| mijoharas wrote:
| Can you describe how you hooked Claude up to freecad?
|
| I've messed around with freecad a bit (I'm still a beginner)
| and was just saying today I'd like to play around with trying
| to use llm's for 3d modelling.
|
| EDIT: I found this mcp[0] after searching, was it that? The
| docs mention Claude desktop, but I assume it works fine with
| Claude code too, right?
|
| [0] https://github.com/neka-nat/freecad-mcp
| snide wrote:
| Hey, I'm the OP. I originally started with FreeCAD. There's
| not much to "hook up" to Claude. It can natively write for
| FreeCAD. You don't need to use the FreeCAD editor and can
| point to an external, local file with an import. At that
| point there's not much more than pointing your LLM to that
| file. You'll need to tell the FreeCAD desktop app to update
| on changes.
|
| Eventually I moved to JSCAD for the application mentioned in
| my blog post because I realized I wanted a more complex UI
| (which meant a web app) than what FreeCAD provided natively.
| If you're looking for something simple with some var
| statements though, FreeCAD might be enough.
|
| In my experience, the MCP isn't really needed. Claude at
| least already can write the code pretty well. The problems
| are more with getting it to understand the output, which the
| blog post covers.
| mijoharas wrote:
| Sorry what format of local file can it work with?
|
| I can see it working with scad, and then having that
| generate some things. I'd imagine it'd struggle with an STL
| file. I don't know much about the format of FCStd files but
| I'd find that surprising if it worked fine. Obviously
| three.js code and everything it could be alright with.
|
| It might be my lack of knowledge, because I've mostly just
| used Freecad to create and edit things and then just
| exported to STL (which doesn't feel like the thing Claude
| would be good at modifying)
| bambax wrote:
| I didn't hook up anything to anything, I copied-and-pasted
| the Python output of Claude to the Python console of FreeCAD.
| Run, check, delete, repeat.
| willis936 wrote:
| I've been struggling to get Claude or Gemini to make a project
| enclosure. I've got it down to a decent set of requirements and
| have been trying FreeCAD Python output, OpenSCAD, and
| Build123d. Most attempts fail to generate output (after several
| minutes of thinking and getting a good way there). When
| attempts don't fail they get aspects wrong. At this point I
| think my workflow needs to be breaking up the request into a
| series of functions for each feature then iterating on the
| overall model.
| sinker wrote:
| I'm not sure what went wrong exactly, but a common issue people
| run into with lofts is caused by the fact that FreeCAD tries to
| match vertices to vertices. If you use the split edge tool on
| your square to create 8 edges out of the existing 4
| (maintaining the same square shape), it should loft smoothly to
| the octagon.
|
| If the loft appears twisted it only means you need to change
| the order in which you created the geometry. FC in addition to
| matching vertex to vertex will also match them in the order
| they were created. This allows you to purposely create twisted
| shapes, but sometimes can happen inadvertently also.
| bambax wrote:
| Here's a photo of the church tower in question:
|
| https://img.over-blog-
| kiwi.com/1/40/25/08/20170227/ob_76f390...
|
| You can see that the square base is connected to the
| octagonal tower using alternating trapezoids and triangles;
| FreeCAD doesn't seem capable of doing that using the GUI (but
| I'm no expert and would love to be proved wrong).
| alright2565 wrote:
| This is what the other person was trying to describe:
| https://imgur.com/a/J9lQBNK
|
| I chose 1mm for my corner chamfer on the base, but you
| could make it any dimension including something
| imperceptible.
| bambax wrote:
| Aah thank you!!!
|
| Yes that would have worked, I will try that next time.
| The last image is more or less what the Python code
| produced, but being able to do it in the GUI would be
| nice.
| ftcHn wrote:
| Great article. I've been trying to achieve something similar with
| a Revit. It's an old CAD application for Windows which means
| there's a few additional hurdles in exposing a cli interface that
| allows the LLM to drive it. However, once that is done, the loop
| of "write code, take a screenshot, repeat" works pretty well.
| shen wrote:
| I'd be interested if you can describe a bit more of this
| process, and what kind of modelling in revit that works well
| with this.
| sigmoid10 wrote:
| >I still occasionally hand write code in NeoVim on the bits I
| care the most about (CSS, design and early architecture like API
| patterns)
|
| I find it amazing how people's opinions differ here. This is the
| first stuff I'd trust to Claude and co. because it is very much
| in-distribution for training data. Now if I had sensitive backend
| code or a framework/language/library that is pretty new or
| updated frequently, I'd be much more cautious about trusting LLMs
| or at least I would want to understand every bit of the code.
| gbalduzzi wrote:
| I think the main point is that LLMs are pretty good at
| following existing patterns and conventions.
|
| If you setup your skeleton in a way it is familiar to you,
| reviewing new features afterwards is easier.
|
| If you let the LLM start with the skeleton, they may use
| different patterns and in the long run it's harder to keep
| track of it.
| iLoveOncall wrote:
| > they may use different patterns
|
| "Bad" is the word you're looking for, not "different".
| NuclearPM wrote:
| Different was fine.
| tonypapousek wrote:
| > in-distribution for training data
|
| Engineers are an opinionated bunch, safe to say at least a
| small chunk of us will disagree with what goes into the
| training pile.
|
| For me, it's preferring Deno-style pinned imports vs
| traditional require() or even non-versioned ecmascript import
| syntax.
| OJFord wrote:
| I think OP nailed it with 'the bits I care the most about'--if
| you like those things a certain way, then you'll want to make
| sure they are that way, not accept whatever Claude does. If you
| don't care, you just want something done, then you'll have
| Claude do it while you work on what you _do_ care more about.
| sigmoid10 wrote:
| That's true. Not everyone cares about shipping working
| software.
| bsjshshsb wrote:
| Got some excellent results vibe coding 3.js games with Claude.
| Maybe for printable things it is harder as precision is important
| though.
| murkt wrote:
| Try asking it for some curves that go in this or that
| direction. CW, CCW, curves to the left, to the right, etc.
|
| Produces a bunch of crap and it's really hard to convince it
| that something needs to be changed. "Yep, I looked at the
| screenshot, it curves, so it's okay."
| bob1029 wrote:
| I've been having pretty good success with unity as a 3d llm tool.
| In addition to the iso views I've included a perspective mode
| that can focus on a list of game object ids with a custom camera
| origin. The agent is required to send instructions along with the
| VLM request each time in order to condition how the view is
| interpreted. E.g.: "How does ambient occlusion look in A vs B?".
|
| The VLM is invoked as a nested operation within a tool call, not
| as part of the same user-level context. This provides the ability
| to analyze a very large number of images without blowing token
| budgets.
|
| I've observed that GPT5.4 can iteratively position the
| perspective camera and stop once it reaches subjectively
| interesting arrangements. I don't know how to quantify this, but
| it does seem to have some sense of world space.
|
| I think much of it comes down to conditioning the vision model to
| "see" correctly, and willingness to iterate many times.
| Razengan wrote:
| Claude is terrible. I've been using Codex for a few months and
| decided to give Opus a try and see how it is.
|
| After asking it to review a single file in a simple platformer
| game, it goes:
|
| > _Coyote jump fires in the wrong direction (falling UP with
| inverted gravity)_ var fallVelocity: float =
| body.velocity.y * body.up_direction.y
|
| I'm like ok, suggest a fix
|
| > _I owe you a correction: after re-analyzing the math more
| carefully, lines 217-223 are actually correct -- my original
| review point was wrong. Let me walk through why._
|
| Oh boy. It's had several other gaffes like this, and the UI/UX is
| still crap (fonts don't get applied, it doesn't catch up with the
| updated working state after editing files etc.) Codex helped me
| save time but Claude is just wasting my time. Can I get a refund?
| Schlagbohrer wrote:
| Do you find Gemini or ChatGPT or Grok to be better?
|
| I am currently using Claude as I find it to be better than the
| others at the free tier.
| Razengan wrote:
| Around 8 months or so of using ChatGPT/Codex, Claude, Grok &
| Gemini, I've found ChatGPT and Grok to be the best overall.
|
| Claude often gets API and logic wrong and tries way too hard
| to "impress": When asked to generate Godot proof-of-concept
| scenes (or other stuff) it adds a lot of extra textures,
| colors, UI etc whereas Codex is more exact, does literally
| what asked, no more no less. Claude tends to flops in general
| non-coding questions too.
|
| Gemini is the worst; it often refuses to search or interop
| with Google's own services like Flights etc. When I asked to
| do a reverse image search, it told me to go to TinEye
|
| ChatGPT/Sora seems to be better at image generation than
| Gemini/Banana too.
|
| Sometimes I ask them a quirky question or a random phrase and
| only Grok and ChatGPT seem to know what's up. Gemini would if
| it used Google's own search but nope.
| Sparkyte wrote:
| I thought about something similar with claude, I would like it to
| operate as an assistant for in something like unity engine.
| ponyous wrote:
| This "screenshot -> refine loop" is a great strategy and I have
| built it into my 3D Modeling product as well[0], but had to
| disable it because it would often quadruple the costs and the
| product is already expensive.
|
| I am on standby to enable it though, just need a price to drop a
| bit more!
|
| [0]: https://grandpacad.com
| prawn wrote:
| My late maternal grandfather was Slovenian, so I enjoyed your
| project's backstory. I've mucked around with ChatGPT and
| OpenSCAD so can identify with that also. Great concept and best
| of luck!
| ponyous wrote:
| Thank you!
| ramesh31 wrote:
| Cool button
| neomantra wrote:
| My mind-blown moment was when I was doing work like this and
| Claude started positioning the camera itself to get better looks
| at areas it wanted to improve.
| phendrenad2 wrote:
| For people wondering before they click, this is about 3D CAD / 3D
| printing, not 3D animation.
| Archit3ch wrote:
| I tried to generate python scripts for Blender with local models
| a while back and the results were pretty bad. I assume the
| frontier models of today would fare much better.
| s1mon wrote:
| I've been using Codex (GPT-5.4 extra high) to code custom
| FeatureScript in Onshape (3D mechanical CAD software). It's
| challenging to get it to do TDD that involves any visual
| reasoning. At the moment I've got tooling through Google Chrome
| Devtools MCP and Playwright to extract things and control the
| browser and I use some custom features which help with formatting
| and controlling debugging outputs (text and visual overlays).
| Mostly the text debugging outputs are very helpful to Codex. It
| will often add debugging payloads when we're focused on a
| particular issue. I do occasionally take screenshots and paste
| them into Codex and explain the issue that I'm seeing. It seems
| to understand a certain amount, especially if the issue can be
| seen in orthogonal views.
| giancarlostoro wrote:
| This is where I'm at too and why I wound up building my own
| ticketing system similar to Beads. I got tired of my personal
| frustrations (and errors from Beads when switching branches). I
| think its fine to build tools to help you be more productive with
| the model, it makes a lot of sense.
| nickthegreek wrote:
| Love to see this stuff. I recently used codex to produce me a
| scad file for generating multicolored tokens for 3d printing. I
| had alot of more fun than grinding it out in the software, and if
| I ever want to make more for other board games, most of the word
| is already done.
|
| https://makerworld.com/en/models/2456180-token-creator
___________________________________________________________________
(page generated 2026-03-17 23:02 UTC)