Hacker News new | ask | show | jobs
by deadsy 2094 days ago
I started with OpenSCAD but: a) found the language to be clunky b) had a hard time doing chamfered unions between objects (needed for sand casting patterns).

So - I wrote my own tool/library in Go and it's essentially replaced my OpenSCAD usage.

https://github.com/deadsy/sdfx

2 comments

>> So - I wrote my own tool/library in Go and it's essentially replaced my OpenSCAD usage.

That looks really cool. What kind of files can it output?

Well, I looked at the linked page[0] and it says STL files.

0. https://github.com/deadsy/sdfx

3d = stl, 2d = svg or dxf
The examples in your README look cool. But, I was wondering about this sentence:

> SDFs make CSG easy

Can you share some more info about how this works?

SDF = signed distance function. A function mapping a 2d/3d coordinate onto a scalar. The scalar is the shortest distance from that point to the surface of the object. (+ve outside, -ve inside)

CSG = constructive solid geometry: Take primitive 3d shapes and do unions, differences, intersections on them to build more complex shapes.

Fairly obviously the union of 2 sdf functions is going to be the minimum of those values. That pretty simple.

Intersections and differences are not much more complex....

See: https://iquilezles.org/www/articles/distfunctions/distfuncti...

for some quick examples.