-
Hello, I hope to understand the limitation of functional representation and why it is not mainstream yet? It seems that b-rep needs to handle many corner cases. But what's the catch of using f-rep, does it work with non-CADish models? like the stanford bunny? how can I f-rep the stanford bunny? How can I model it from scratch using only f-rep? Thanks |
Beta Was this translation helpful? Give feedback.
Replies: 4 comments 1 reply
-
It is kinda mainstream e.g. alternative functional CAD ("fCAD") implementation OpenSCAD is widely used across thingiverse.com (set filter by Customizable, all of those are fCADs) the arguable issue with fCAD is that it's really impossible to do any kinda of prototyping in an efficient way and compared to things like FreeCAD and it takes significantly more resources to develop. So for me the workflow is: Prototype in FreeCAD -> Define in OpenSCAD/LibFive The other arguable issue is that LibFive doesn't have a good development environment as the provided Inspekt3d has upstream down and i can't get it to work in emacs and Studio is interpreting guile code line by line so it's inaccurately represented Another major issue in LibFive are bevels so you can't really easily make things like rounded corners, in OpenSCAD that is addressed through Turtlelang implementation where you have imaginary turtle that you program to move to draw the shape. |
Beta Was this translation helpful? Give feedback.
-
About stanford bunny i don't think it's difficult to make in LibFive/OpenSCAD i think i could do that under 2 hours, but in general 3D models should be done in blender as it takes significantly less resources to do (would probably take me around 10 min to make in comparison) and the environment is more adjusted to it.. LibFive/OpenSCAD should be used for engineering things such as structural geometry, parts and alike where you need to change the generated shape depending on e.g. used material, air pressure, temperature, features, etc.. |
Beta Was this translation helpful? Give feedback.
-
This is a very broad question! Some of it is historical: b-reps were easy to triangulate (back when computer-aided design was first getting started), so they've got 30+ years of kernel development behind them. Comparing to b-reps specifically, f-reps have the upside that CSG is trivial and rendering is very parallelizable. However, for CAD purposes, they're missing explicit notions of faces and edges; everything is implicit in a black-box expression. This means that if you want to say "bevel this edge", it's much trickier! Representing a Stanford Bunny, for example, using pure CSG would be tricky. You could do it by smooth-blending a bunch of spheres, very carefully placed to fill the volume, or try to build it from geometric primitives... There's also a bunch of research into neural implicits: it turns out that neural networks are a very flexible representation for everything, so you can use them as an implicit surface. The downside is that the black box becomes even more opaque, since you just have a neural net and a bunch of weights that happens to spit out your model. |
Beta Was this translation helpful? Give feedback.
-
There is a distinction between functional representation and signed distance field (SDF). Libfive is both, but the concepts are orthogonal. OpenSCAD is function rep + boundary rep. You can also represent 3D shapes as pure data structures that aggregate a collection of simple elements. Triangle meshes are a data structure form of boundary rep. In the video game world, voxel data structures are frequently used to represent signed distance fields.
Maybe your question is really about SDF representation, since you contrast it with b-rep.
I think the main limitation of SDF representation is that it is immature: the problems are quality of implementation and maturity of tooling.
IMO a high quality SDF system will support multiple and hybrid SDF representations: the CSG tree, the function representation, a bounding volume hierarchy to speed up rendering, and voxels.
* If you 3D scan a model, you get a point cloud, which is normally converted to a b-rep triangle mesh, but can also be converted to a voxel array of SDF values. Fitting a function to a point cloud is far more difficult and expensive.
* Isosurfaces are commonly used as a surrogate for offsets in an SDF system. But if the SDF is not perfectly Euclidean then you get a bad result. To implement offset both efficiently and accurately requires a lot more care, and my approach is to operate on the CSG tree, using different implementations of offset for different CSG operators.
I don't know any SDF implementations that meet all these requirements, but we will get there eventually.
…On Mon, Oct 31, 2022, at 1:23 PM, Shi Yan wrote:
Hello,
I hope to understand the limitation of functional representation and why it is not mainstream yet?
It seems that b-rep needs to handle many corner cases. But what's the catch of using f-rep,
does it work with non-CADish models? like the stanford bunny? how can I f-rep the stanford bunny? How can I model it from scratch using only f-rep?
Thanks
—
Reply to this email directly, view it on GitHub <#509>, or unsubscribe <https://github.com/notifications/unsubscribe-auth/ABIHVIIH4PTTASIAAIHF4YDWF76CRANCNFSM6AAAAAARTJOBG4>.
You are receiving this because you are subscribed to this thread.Message ID: ***@***.***>
|
Beta Was this translation helpful? Give feedback.
This is a very broad question! Some of it is historical: b-reps were easy to triangulate (back when computer-aided design was first getting started), so they've got 30+ years of kernel development behind them.
Comparing to b-reps specifically, f-reps have the upside that CSG is trivial and rendering is very parallelizable. However, for CAD purposes, they're missing explicit notions of faces and edges; everything is implicit in a black-box expression. This means that if you want to say "bevel this edge", it's much trickier!
Representing a Stanford Bunny, for example, using pure CSG would be tricky. You could do it by smooth-blending a bunch of spheres, very carefully placed to fill the vol…