Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Plasticity: CAD for Artists (plasticity.xyz)
103 points by dgellow on March 8, 2024 | hide | past | favorite | 46 comments


Plasticity is interesting because it is maybe the only way to run the Parasolid geometry kernel natively on Linux right now.

Parasolid, the library used to perform the geometric operations (the most difficult and important part of a CAD program) also powers the likes of SolidWorks (the industry standard), NX, and Onshape, and is arguably the best in the world. Its licensing cost is presumably a large part of the Plasticity price.


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.


Meh. Geometry kernels are oversold. Triangulate, CSG and triumph. CSG is the non-trivial part - and Manifold (https://github.com/elalish/manifold) is excellent at this.

At least for consumer stuff where you anyway eventually just want triangles for either rendering or 3d printing.

If your industrial workflow includes CNC machines you may benefit from actual analytic surface cuts and unions - maybe.


I've always used MOI (https://moi3d.com/) I started something like 12 years ago and always thought it would catch after having to labor through the clumsy paradigm of Rhino in school. Never did catch on, not sure why. Very smooth and intuitive way to sculpt surface models.


I'm very much torn between Plasticity and MoI for my next sculpting project. I've always used Blender but for some stuff I'm finding myself in need of some proper NURBS tool. I've spent a few hours on Plasticity, I'll do the same with MOI and see how it goes! :)


Currently the only thing that is stopping me from an insta-buy is that the export quality seems to be pretty low poly, even when the detail slider is all the way to 1.

Of course my trial version is nowhere near there, but watching several videos it appears that even the highest settings still are far from a proper high-poly export.

Since I work with 3D prints, that is a blocking issue for me, BUT the videos are all several months old.

Anyone with a more recent experience with Plasticity has something fresher information about that?


The creator of this app, Nick Kallen, has a nice YouTube channel where he talks about some of the behind-the-scenes work on the project. I think his video comparing geometry kernels [0] was posted to HN a while back, but it's worth a watch if you're curious!

[0]: https://www.youtube.com/watch?v=WvwiH1DOK1M


I’m wondering whether this is useful for 3D printing and whether you can add important measurements when it matters (to make parts that fit.)


I've been using it for light CAD work to design stuff for (hobbyist) 3d printing. You can use exact measurements just fine. The main issue is that it isn't parametric but for my needs that isn't a big issue, and the one-time $150 pricetag is wildly easier to swallow than a Fusion 360 subscription.

It's a lot like Blender, if Blender was a few degrees more usable for CAD. That said, I've yet to try the Blender CAD Sketcher addon (https://www.cadsketcher.com/).


I've tried that add-on and while it works, it still feels rather incomplete. I don't have much CAD experience though so my expectations might just be out of the norm.

I've ended up preferring to use cadquery instead, since copilot makes iterating designs with it pretty easy. But it looks like Plasticity might have the kind of workflow I'd like.


Oh I need to try that addon.

I've been meaning to look for a Fusion360 alternative that can run on linux and doesn't cost $$$$/yr.


There's also FreeCAD, which is getting better! Definitely worth trying the RealThunder fork [0] that handles some geometry better than the upstream branch, and is kept up to date.

It's still weird. That's for sure. But very much usable as a fusion360 replacement for simple to intermediate 3D printing work.

[0] https://github.com/realthunder/FreeCAD/releases


I try every FreeCAD release in hopes the UX and tool naming improves, but so far no dice. It’s almost amazingly obscure by design.


I really want to like it. I am well accustomed to dealing with quirky FOSS UIs. But it is so bad. Something that takes one click in Solidworks or Solid Edge takes ten, and at any point if there is an error, there is no feedback.

If it looked like FreeCAD was trying to improve the UI I think I'd be throwing some money their way to fund it. But it appears they're happy with the way it works, as these paper cuts have actually gotten worse over time.

It's just FreeCAD, not FOSS-CAD-as-a-whole. Kicad gets better and easier to use each release and I am well aware what a gift it is to engineering work.


Are you familiar with parametric modelling in general / from other software? Fusion360/NX/Onshape/Inventor etc? Cause while there are a bunch of UX issues big and small in FreeCAD, some of the complexity and learning curve does come with the territory.


I need to give FreeCAD another try,

but last time I tried it I couldn't figure out how to do almost anything. Fusion 360 and solidworks (and I think onshape) all just "made sense". Throw down a sketch, extrude some surfaces, etc. FreeCAD was a struggle for me and I went back to fusion 360 mostly because I was already familiar with it.


I use Fusion360 (unwillingly) and Shapr3D, plus I learned Solidworks and used a _lot_ of 3D design (mesh) and parametric apps (like OnShape, Solvespace, etc.). It’s not the territory, it’s FreeCAD’s inscrutability by design—even Solvespace has a better workflow.


As a hobbyist, Fusion 360 is free, no?

I don’t pay for my Fusion 360.


You're limited to 10 design files total for a hobby license right?


10 editable files at any one time. You can have an unlimited number of files that are set to read-only, and you can freely switch files from read-only to editable or vice-versa.


I use plasticity exclusively for 3D printing. I'm a huge fan. I also deeply appreciate a no-nonsense perpetual license for a fair price. You can't define persistent dimensional or relational constraints; however you can iterate and edit so fast that I have never missed it. Part tolerance is off? Grab a surface and pull it in or out to the length you need. If you need highly parametric parts, I might favor OpenSCAD or CadQuery (python), anyway.


From a 2022 discussion: https://news.ycombinator.com/item?id=30695360

> Are there parametric features? eg. Can I say "this line is 35mm long"?

> I want to emphasize to everyone that this is for concept artists. It’s nurbs used to create interesting shapes and fillets. While there are some parametric features, they’re completely de emphasized compared to something like fusion or solidworks


The software has evolved significantly since 2022, I'd even say that the dev has been flexible and enabled functionality to bridge some more traditional CAD use cases in modern versions. For example when you sketch shapes on a workplane you are able to define the measurement aspects, diameters, offsets, lengths; you can even quickly define relative angles when drawing out segmented lines.

However there are no parametric controls for the elements of your shapes or drawings. Keeping these constraints out of mind certainly helps me get into a flow when modeling, much more akin to subd or poly modeling while maintaining the benefits of NURBS. But for adapting models quickly for more flexible designs isn't /really/ the tool for it. You can take it pretty far though!

I personally use Plasticity to model all kinds of things including 3d-printed items (vacuum wall mounting, iPhone lens mount, storage cases, clips...) All of these items needed to be measured accurately and Plastiticy was able to handle that without issue.

I've been using 3d software for 20+ years, Max, Maya, Blender, XSI, Houdini, Wings3d, Lightwave, Modo, ZBrush, Mudbox... "lots" of 3d software. Some get the job done and some are even a pleasure to use, Plasticity decidedly in my mind does both.


It’s a really an amazing piece of software.


CAD for artists is just installing a set dimensions plugin for Blender. It's super weird that there's still no native functionality to just scale a select in edit mode to a specific measurable length value.


Blender uses an entirely different paradigm: vertex modelling. The only true geometric primitives in Blender are vertices, edges, and faces. When you insert a "sphere", you're actually running code to automatically generate vertices that approximate a sphere. There is no inherent "sphereness" to the resulting object. You have to decide how close an approximation you want up front, and if you get it wrong you might have to redo a lot of modelling. This is particularly tricky when it comes to constructive solid geometry (CSG), e.g. drilling a hole in that sphere by subtracting a cylinder from it. You might not have enough vertices to satisfactorily approximate the resulting object, and have to use various manual techniques to subdivide specific polygons in the right places.

CAD supports true curved surfaces. A sphere in CAD is a genuine sphere, and you can decide how accurately to render it independently of your modeling operations. CSG is a core technique in CAD modelling, with no special tricks needed to get good results.

To me, the CAD approach is more intuitive, but it's true that vertex modelling can be very fast when you don't need high precision, so I can see why artists like it.


Sure, but Blender does support CSG with polygons easily. You can do all typical CAD operations, modifiers, parametric stuff, you just have to pick your accuracy on the fly, not later when exporting. You do realize that everything eventually gets turned into polygons before production right? Well aside from sheet metal design I guess.

I've lost count how many Fusion360 modelers I've seen that can't properly turn their models into a mesh and 3D print curved surfaces with visible polygon banding lol.

> vertex modelling can be very fast when you don't need high precision, so I can see why artists like it

It's not about speed, it's about control. When making assets for rendering all kinds of wild tricks are sometimes needed that go beyond modelling solid objects, plus adjusting UV coordinates for texturing and the like.


IMO you're totally right, but it's nice and more idiot friendly that underlying representation is always geometry based and not polygon based. Fusion 360 lets me unfillet an edge in an imported file just by hitting Backspace, which AIUI that takes more time and skill to do in Blender.

It's Illustrator and Photoshop difference, Ai is superior to Ps if you're having to select and move individual brush strokes all the time. Otherwise it's near polar opposite of course.


I think you vastly underestimate the difficulty of performing geometric kernel operations if you think someone could just wing it in Blender. These kernels represent the combined effort of literally generations of engineers solving really difficult edge case scenarios.

Of course for artists, accuracy probably doesn't matter.


Well I regularly do indeed wing it in Blender. It is poorly suited for conforming to specific measurements out of the box, but with some plugins it's usable enough. Definitely wouldn't imagine it being in spec for any professional usage but for hobbyist maker stuff getting within 100 microns is more than accurate enough. I mean hell, I can't really measure much more accurately with my callipers anyway.


Honestly from the way you are describing your workflow, it sounds like you haven’t actually dipped into parametric design and you’re still creating your models very manually.

Let’s say you have a hole in a part and you need it to be a certain distance from an edge.

The rookie way is to pull out your calipers and actually measure that distance and put it into the design.

But let’s say you know the hole needs to be co-tangent to an invisible line between two other points. In a parametric modeling program, you would say it as it is: this hole is co-tangent to this invisible line which is defined by these two points.

…which gives you a HUGE advantage: let’s say you have to move one of the defining points… well because you defined it parametrically, the hole would just magically resize and reorient itself instantly. And let’s say you extended the hole parametrically to another surface… well that would update too.

But if you did it the rookie way, you would have to pull out your calipers and re-measure everything. Risky risky too. Have to double check all your measurements all over again.

In Blender, because shapes are not actually mathematical shapes, you aren’t going to be able to define co-tangents or constraints or derive any measurements.

That’s why, no matter whether you are a hobbyist or a large professional engineering firm, you might much prefer parametric design because it saves you so much time when drawing out or changing the part. It has nothing to do with the precision of your calipers or the precision of your final product.

(That said, not all tasks are fit for parametric design. I wouldn’t design a game model or rendered scene with parametric design. I would use Blender. Also to be said, I know there have been attempts to add parametric design to Blender but I’m not familiar with how far they are.)


I completely agree. Tools like Solidworks are irreplaceable and save ton of time during design. Especially for complex parts and assemblies.


Blender CSG slows down extremely quickly though. Only takes about a dozen boolean modifiers to cause large slowdowns when editing.


You mention game devs as potential users. Why would I need NURBS for game models?


I love this app.


this link is just an ad


why do you say that?


I installed a binary but wont register to use it "for free"... I'm going to stick with Blender.


Ah yeah that's a major turn off


Same here


I say that because the linked page is just there to get people to download the product and doesn't provide any real information on anything interesting, even though the software itself may be of interest to many people here.


It’s the landing page of the project…




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

Search: