Hacker News new | past | comments | ask | show | jobs | submit login

Why is it difficult (geometric operations)? Do you have any suggestions on how to learn more about it?



There are two aspects of CAD that are very technically complex: parametric modelling and constraint solving.

Parametric modelling is similar to 2D vector graphics formats in that instead of defining where vertices are placed in a coordinate space, it builds the model based on an instruction set that includes primitive shapes like circles but can also include complex curves defined using splines (NURBS)[0].

Constraint solving is a way of mathematically deriving the possible shapes an object can take based on the geometric constraints applied to it. For example, a 2D equilateral triangle could be defined by setting the length of one edge and then constraining all edges to be of equal length. The coordinates of the vertices are derived from these constraints.

SolveSpace [1] is an open source parametric modeler with a constraint-based solver that you can explore if this is something you're interested in.

[0] https://en.wikipedia.org/wiki/Non-uniform_rational_B-spline [1] https://solvespace.com/index.pl


SolveSpace is really a joy to use. Simple, fast, capable.

It’s been a white since I used it, though. I use CAD pretty infrequently these days, though, and generally just let the mechanical engineers do it (or maybe do it myself in FreeCAD).


I think it is like writing an OS. It's not hard[1], but there is little value in a novel OS that isn't Linux x86_64 or Win32/x86 ABI compatible. From [2][3]:

> The kernel market currently is dominated by Parasolid and ACIS, which were introduced in the late 1980s.

> Autodesk ShapeManager is a 3D geometric modeling kernel used by Autodesk Inventor and other Autodesk products that is developed inside the company. It was originally forked from ACIS 7.0 in November 2001,

... so it's quite like OS kernels. There's WinNT, AT&T UNIX, couple advanced forks of UNIX, and GNU/Hurd.

1: very broadly speaking, to me it could take rest of my life

2: https://en.wikipedia.org/wiki/Geometric_modeling_kernel

3: https://en.wikipedia.org/wiki/ShapeManager


> 1: very broadly speaking, to me it could take rest of my life

Perhaps coincidentally the rule of thumb is that it takes about 100 developer-years to go from zero to a viable kernel.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: