discuss@lists.openscad.org

OpenSCAD general discussion Mailing-list

View all threads

libigl: anyone poked at it for CGAL (partial) replacement?

C
clothbot
Thu, Nov 26, 2015 8:38 PM

Hey Everyone,

Has anyone looked into using libigl as a (partial) CGAL replacement for 3D
boolean op's and mesh manipulations?

http://libigl.github.io/libigl/

https://github.com/libigl/libigl

http://www.alecjacobson.com/weblog/?tag=libigl

Looks to be quite powerful!

Andrew.

--
View this message in context: http://forum.openscad.org/libigl-anyone-poked-at-it-for-CGAL-partial-replacement-tp14769.html
Sent from the OpenSCAD mailing list archive at Nabble.com.

Hey Everyone, Has anyone looked into using libigl as a (partial) CGAL replacement for 3D boolean op's and mesh manipulations? http://libigl.github.io/libigl/ https://github.com/libigl/libigl http://www.alecjacobson.com/weblog/?tag=libigl Looks to be quite powerful! Andrew. -- View this message in context: http://forum.openscad.org/libigl-anyone-poked-at-it-for-CGAL-partial-replacement-tp14769.html Sent from the OpenSCAD mailing list archive at Nabble.com.
DM
doug moen
Thu, Nov 26, 2015 8:51 PM

This appears to use CGAL and Cork to implement boolean operations.
https://github.com/gilbo/cork

They mention that Cork is available as an alternative: it is faster, but
not always robust.

On 26 November 2015 at 15:38, clothbot andrew@plumb.org wrote:

Hey Everyone,

Has anyone looked into using libigl as a (partial) CGAL replacement for 3D
boolean op's and mesh manipulations?

http://libigl.github.io/libigl/

https://github.com/libigl/libigl

http://www.alecjacobson.com/weblog/?tag=libigl

Looks to be quite powerful!

Andrew.

--
View this message in context:
http://forum.openscad.org/libigl-anyone-poked-at-it-for-CGAL-partial-replacement-tp14769.html
Sent from the OpenSCAD mailing list archive at Nabble.com.


OpenSCAD mailing list
Discuss@lists.openscad.org
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org

This appears to use CGAL and Cork to implement boolean operations. https://github.com/gilbo/cork They mention that Cork is available as an alternative: it is faster, but not always robust. On 26 November 2015 at 15:38, clothbot <andrew@plumb.org> wrote: > Hey Everyone, > > Has anyone looked into using libigl as a (partial) CGAL replacement for 3D > boolean op's and mesh manipulations? > > http://libigl.github.io/libigl/ > > https://github.com/libigl/libigl > > http://www.alecjacobson.com/weblog/?tag=libigl > > Looks to be quite powerful! > > Andrew. > > > > > > -- > View this message in context: > http://forum.openscad.org/libigl-anyone-poked-at-it-for-CGAL-partial-replacement-tp14769.html > Sent from the OpenSCAD mailing list archive at Nabble.com. > > _______________________________________________ > OpenSCAD mailing list > Discuss@lists.openscad.org > http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org > > >
DM
doug moen
Thu, Nov 26, 2015 8:57 PM

Cork is an unfinished project (still in the research phase) with 1
contributor; development stopped 3 years ago.

When libigl uses CGAL, it uses infinite precision rationals, just like
OpenSCAD.

On 26 November 2015 at 15:51, doug moen doug@moens.org wrote:

This appears to use CGAL and Cork to implement boolean operations.
https://github.com/gilbo/cork

They mention that Cork is available as an alternative: it is faster, but
not always robust.

On 26 November 2015 at 15:38, clothbot andrew@plumb.org wrote:

Hey Everyone,

Has anyone looked into using libigl as a (partial) CGAL replacement for 3D
boolean op's and mesh manipulations?

http://libigl.github.io/libigl/

https://github.com/libigl/libigl

http://www.alecjacobson.com/weblog/?tag=libigl

Looks to be quite powerful!

Andrew.

--
View this message in context:
http://forum.openscad.org/libigl-anyone-poked-at-it-for-CGAL-partial-replacement-tp14769.html
Sent from the OpenSCAD mailing list archive at Nabble.com.


OpenSCAD mailing list
Discuss@lists.openscad.org
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org

Cork is an unfinished project (still in the research phase) with 1 contributor; development stopped 3 years ago. When libigl uses CGAL, it uses infinite precision rationals, just like OpenSCAD. On 26 November 2015 at 15:51, doug moen <doug@moens.org> wrote: > This appears to use CGAL and Cork to implement boolean operations. > https://github.com/gilbo/cork > > They mention that Cork is available as an alternative: it is faster, but > not always robust. > > On 26 November 2015 at 15:38, clothbot <andrew@plumb.org> wrote: > >> Hey Everyone, >> >> Has anyone looked into using libigl as a (partial) CGAL replacement for 3D >> boolean op's and mesh manipulations? >> >> http://libigl.github.io/libigl/ >> >> https://github.com/libigl/libigl >> >> http://www.alecjacobson.com/weblog/?tag=libigl >> >> Looks to be quite powerful! >> >> Andrew. >> >> >> >> >> >> -- >> View this message in context: >> http://forum.openscad.org/libigl-anyone-poked-at-it-for-CGAL-partial-replacement-tp14769.html >> Sent from the OpenSCAD mailing list archive at Nabble.com. >> >> _______________________________________________ >> OpenSCAD mailing list >> Discuss@lists.openscad.org >> http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org >> >> >> >
AP
Andrew Plumb
Thu, Nov 26, 2015 10:43 PM

Ah, so it does:

https://github.com/libigl/libigl/blob/master/tutorial/609_Boolean/main.cpp https://github.com/libigl/libigl/blob/master/tutorial/609_Boolean/main.cpp

https://github.com/libigl/libigl/blob/master/include/igl/copyleft/boolean/mesh_boolean.cpp https://github.com/libigl/libigl/blob/master/include/igl/copyleft/boolean/mesh_boolean.cpp

On the plus side, looks like the meshes going into the operations and coming out are Eigen data constructs, so it may be easier to parallelize the operations and faster non-CSG mesh transforms (translate, rotate, etc.).

Something to play with…

Andrew.

On Nov 26, 2015, at 3:51 PM, doug moen doug@moens.org wrote:

This appears to use CGAL and Cork to implement boolean operations.
https://github.com/gilbo/cork https://github.com/gilbo/cork

They mention that Cork is available as an alternative: it is faster, but not always robust.

On 26 November 2015 at 15:38, clothbot <andrew@plumb.org mailto:andrew@plumb.org> wrote:
Hey Everyone,

Has anyone looked into using libigl as a (partial) CGAL replacement for 3D
boolean op's and mesh manipulations?

http://libigl.github.io/libigl/ http://libigl.github.io/libigl/

https://github.com/libigl/libigl https://github.com/libigl/libigl

http://www.alecjacobson.com/weblog/?tag=libigl http://www.alecjacobson.com/weblog/?tag=libigl

Looks to be quite powerful!

Andrew.

--
View this message in context: http://forum.openscad.org/libigl-anyone-poked-at-it-for-CGAL-partial-replacement-tp14769.html http://forum.openscad.org/libigl-anyone-poked-at-it-for-CGAL-partial-replacement-tp14769.html
Sent from the OpenSCAD mailing list archive at Nabble.com.


OpenSCAD mailing list
Discuss@lists.openscad.org mailto:Discuss@lists.openscad.org
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org


OpenSCAD mailing list
Discuss@lists.openscad.org
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org

--

"The future is already here.  It's just not very evenly distributed" -- William Gibson

Me: http://clothbot.com/wiki/ http://clothbot.com/wiki/

Ah, so it does: https://github.com/libigl/libigl/blob/master/tutorial/609_Boolean/main.cpp <https://github.com/libigl/libigl/blob/master/tutorial/609_Boolean/main.cpp> https://github.com/libigl/libigl/blob/master/include/igl/copyleft/boolean/mesh_boolean.cpp <https://github.com/libigl/libigl/blob/master/include/igl/copyleft/boolean/mesh_boolean.cpp> On the plus side, looks like the meshes going into the operations and coming out are Eigen data constructs, so it may be easier to parallelize the operations and faster non-CSG mesh transforms (translate, rotate, etc.). Something to play with… Andrew. > On Nov 26, 2015, at 3:51 PM, doug moen <doug@moens.org> wrote: > > This appears to use CGAL and Cork to implement boolean operations. > https://github.com/gilbo/cork <https://github.com/gilbo/cork> > > They mention that Cork is available as an alternative: it is faster, but not always robust. > > On 26 November 2015 at 15:38, clothbot <andrew@plumb.org <mailto:andrew@plumb.org>> wrote: > Hey Everyone, > > Has anyone looked into using libigl as a (partial) CGAL replacement for 3D > boolean op's and mesh manipulations? > > http://libigl.github.io/libigl/ <http://libigl.github.io/libigl/> > > https://github.com/libigl/libigl <https://github.com/libigl/libigl> > > http://www.alecjacobson.com/weblog/?tag=libigl <http://www.alecjacobson.com/weblog/?tag=libigl> > > Looks to be quite powerful! > > Andrew. > > > > > > -- > View this message in context: http://forum.openscad.org/libigl-anyone-poked-at-it-for-CGAL-partial-replacement-tp14769.html <http://forum.openscad.org/libigl-anyone-poked-at-it-for-CGAL-partial-replacement-tp14769.html> > Sent from the OpenSCAD mailing list archive at Nabble.com. > > _______________________________________________ > OpenSCAD mailing list > Discuss@lists.openscad.org <mailto:Discuss@lists.openscad.org> > http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org <http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org> > > > > _______________________________________________ > OpenSCAD mailing list > Discuss@lists.openscad.org > http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org -- "The future is already here. It's just not very evenly distributed" -- William Gibson Me: http://clothbot.com/wiki/ <http://clothbot.com/wiki/>
DM
doug moen
Thu, Nov 26, 2015 11:39 PM

Yes, but the "Eigen data constructs" (I don't understand this yet) use
floating point representation, and the conversion from CGAL to native
representation can result in an invalid mesh. This is mentioned in the
tutorial. Therefore, I don't see how we can use this: it's not robust.

What I think we want is a robust CSG geometry engine that works with
floating point meshes. This is extremely difficult to program correctly,
because you have to repair damage to the mesh caused by transformations,
deal with floating point instability, and so on, and there are a lot of
tricky edge cases. I'd be looking for a well-exercised engine with about 20
years worth of development and maintenance, and definitely not a
single-person project with only a year or two of work done.

On 26 November 2015 at 17:43, Andrew Plumb andrew@plumb.org wrote:

Ah, so it does:

https://github.com/libigl/libigl/blob/master/tutorial/609_Boolean/main.cpp

https://github.com/libigl/libigl/blob/master/include/igl/copyleft/boolean/mesh_boolean.cpp

On the plus side, looks like the meshes going into the operations and
coming out are Eigen data constructs, so it may be easier to parallelize
the operations and faster non-CSG mesh transforms (translate, rotate, etc.).

Something to play with…

Andrew.

On Nov 26, 2015, at 3:51 PM, doug moen doug@moens.org wrote:

This appears to use CGAL and Cork to implement boolean operations.
https://github.com/gilbo/cork

They mention that Cork is available as an alternative: it is faster, but
not always robust.

On 26 November 2015 at 15:38, clothbot andrew@plumb.org wrote:

Hey Everyone,

Has anyone looked into using libigl as a (partial) CGAL replacement for 3D
boolean op's and mesh manipulations?

http://libigl.github.io/libigl/

https://github.com/libigl/libigl

http://www.alecjacobson.com/weblog/?tag=libigl

Looks to be quite powerful!

Andrew.

--
View this message in context:
http://forum.openscad.org/libigl-anyone-poked-at-it-for-CGAL-partial-replacement-tp14769.html
Sent from the OpenSCAD mailing list archive at Nabble.com
http://nabble.com.


OpenSCAD mailing list
Discuss@lists.openscad.org
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org


OpenSCAD mailing list
Discuss@lists.openscad.org
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org

--

"The future is already here.  It's just not very evenly distributed" --
William Gibson

Me: http://clothbot.com/wiki/


OpenSCAD mailing list
Discuss@lists.openscad.org
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org

Yes, but the "Eigen data constructs" (I don't understand this yet) use floating point representation, and the conversion from CGAL to native representation can result in an invalid mesh. This is mentioned in the tutorial. Therefore, I don't see how we can use this: it's not robust. What I think we want is a robust CSG geometry engine that works with floating point meshes. This is extremely difficult to program correctly, because you have to repair damage to the mesh caused by transformations, deal with floating point instability, and so on, and there are a lot of tricky edge cases. I'd be looking for a well-exercised engine with about 20 years worth of development and maintenance, and definitely not a single-person project with only a year or two of work done. On 26 November 2015 at 17:43, Andrew Plumb <andrew@plumb.org> wrote: > Ah, so it does: > > https://github.com/libigl/libigl/blob/master/tutorial/609_Boolean/main.cpp > > > https://github.com/libigl/libigl/blob/master/include/igl/copyleft/boolean/mesh_boolean.cpp > > On the plus side, looks like the meshes going into the operations and > coming out are Eigen data constructs, so it may be easier to parallelize > the operations and faster non-CSG mesh transforms (translate, rotate, etc.). > > Something to play with… > > Andrew. > > On Nov 26, 2015, at 3:51 PM, doug moen <doug@moens.org> wrote: > > This appears to use CGAL and Cork to implement boolean operations. > https://github.com/gilbo/cork > > They mention that Cork is available as an alternative: it is faster, but > not always robust. > > On 26 November 2015 at 15:38, clothbot <andrew@plumb.org> wrote: > >> Hey Everyone, >> >> Has anyone looked into using libigl as a (partial) CGAL replacement for 3D >> boolean op's and mesh manipulations? >> >> http://libigl.github.io/libigl/ >> >> https://github.com/libigl/libigl >> >> http://www.alecjacobson.com/weblog/?tag=libigl >> >> Looks to be quite powerful! >> >> Andrew. >> >> >> >> >> >> -- >> View this message in context: >> http://forum.openscad.org/libigl-anyone-poked-at-it-for-CGAL-partial-replacement-tp14769.html >> Sent from the OpenSCAD mailing list archive at Nabble.com >> <http://nabble.com>. >> >> _______________________________________________ >> OpenSCAD mailing list >> Discuss@lists.openscad.org >> http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org >> >> >> > _______________________________________________ > OpenSCAD mailing list > Discuss@lists.openscad.org > http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org > > > -- > > "The future is already here. It's just not very evenly distributed" -- > William Gibson > > Me: http://clothbot.com/wiki/ > > > > > _______________________________________________ > OpenSCAD mailing list > Discuss@lists.openscad.org > http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org > >
TH
Tim Hawkins
Fri, Nov 27, 2015 3:16 AM

http://www.openvdb.org

This may not be what you are looking for but its worth considering.

It is a voxel based csg tree system with mesh import and export. You create
shapes as voxel grids and then it can perform csg operations on them, it
uses a sparse storage mechanism so its effectivly only storing the surface
voxels amd thier relationships.

On Fri, Nov 27, 2015, 07:40 doug moen doug@moens.org wrote:

Yes, but the "Eigen data constructs" (I don't understand this yet) use
floating point representation, and the conversion from CGAL to native
representation can result in an invalid mesh. This is mentioned in the
tutorial. Therefore, I don't see how we can use this: it's not robust.

What I think we want is a robust CSG geometry engine that works with
floating point meshes. This is extremely difficult to program correctly,
because you have to repair damage to the mesh caused by transformations,
deal with floating point instability, and so on, and there are a lot of
tricky edge cases. I'd be looking for a well-exercised engine with about 20
years worth of development and maintenance, and definitely not a
single-person project with only a year or two of work done.

On 26 November 2015 at 17:43, Andrew Plumb andrew@plumb.org wrote:

Ah, so it does:

https://github.com/libigl/libigl/blob/master/tutorial/609_Boolean/main.cpp

https://github.com/libigl/libigl/blob/master/include/igl/copyleft/boolean/mesh_boolean.cpp

On the plus side, looks like the meshes going into the operations and
coming out are Eigen data constructs, so it may be easier to parallelize
the operations and faster non-CSG mesh transforms (translate, rotate, etc.).

Something to play with…

Andrew.

On Nov 26, 2015, at 3:51 PM, doug moen doug@moens.org wrote:

This appears to use CGAL and Cork to implement boolean operations.
https://github.com/gilbo/cork

They mention that Cork is available as an alternative: it is faster, but
not always robust.

On 26 November 2015 at 15:38, clothbot andrew@plumb.org wrote:

Hey Everyone,

Has anyone looked into using libigl as a (partial) CGAL replacement for
3D
boolean op's and mesh manipulations?

http://libigl.github.io/libigl/

https://github.com/libigl/libigl

http://www.alecjacobson.com/weblog/?tag=libigl

Looks to be quite powerful!

Andrew.

--
View this message in context:
http://forum.openscad.org/libigl-anyone-poked-at-it-for-CGAL-partial-replacement-tp14769.html
Sent from the OpenSCAD mailing list archive at Nabble.com
http://nabble.com.


OpenSCAD mailing list
Discuss@lists.openscad.org
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org


OpenSCAD mailing list
Discuss@lists.openscad.org
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org

--

"The future is already here.  It's just not very evenly distributed" --
William Gibson

Me: http://clothbot.com/wiki/


OpenSCAD mailing list
Discuss@lists.openscad.org
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org

http://www.openvdb.org This may not be what you are looking for but its worth considering. It is a voxel based csg tree system with mesh import and export. You create shapes as voxel grids and then it can perform csg operations on them, it uses a sparse storage mechanism so its effectivly only storing the surface voxels amd thier relationships. On Fri, Nov 27, 2015, 07:40 doug moen <doug@moens.org> wrote: > Yes, but the "Eigen data constructs" (I don't understand this yet) use > floating point representation, and the conversion from CGAL to native > representation can result in an invalid mesh. This is mentioned in the > tutorial. Therefore, I don't see how we can use this: it's not robust. > > What I think we want is a robust CSG geometry engine that works with > floating point meshes. This is extremely difficult to program correctly, > because you have to repair damage to the mesh caused by transformations, > deal with floating point instability, and so on, and there are a lot of > tricky edge cases. I'd be looking for a well-exercised engine with about 20 > years worth of development and maintenance, and definitely not a > single-person project with only a year or two of work done. > > On 26 November 2015 at 17:43, Andrew Plumb <andrew@plumb.org> wrote: > >> Ah, so it does: >> >> https://github.com/libigl/libigl/blob/master/tutorial/609_Boolean/main.cpp >> >> >> https://github.com/libigl/libigl/blob/master/include/igl/copyleft/boolean/mesh_boolean.cpp >> >> On the plus side, looks like the meshes going into the operations and >> coming out are Eigen data constructs, so it may be easier to parallelize >> the operations and faster non-CSG mesh transforms (translate, rotate, etc.). >> >> Something to play with… >> >> Andrew. >> >> On Nov 26, 2015, at 3:51 PM, doug moen <doug@moens.org> wrote: >> >> This appears to use CGAL and Cork to implement boolean operations. >> https://github.com/gilbo/cork >> >> They mention that Cork is available as an alternative: it is faster, but >> not always robust. >> >> On 26 November 2015 at 15:38, clothbot <andrew@plumb.org> wrote: >> >>> Hey Everyone, >>> >>> Has anyone looked into using libigl as a (partial) CGAL replacement for >>> 3D >>> boolean op's and mesh manipulations? >>> >>> http://libigl.github.io/libigl/ >>> >>> https://github.com/libigl/libigl >>> >>> http://www.alecjacobson.com/weblog/?tag=libigl >>> >>> Looks to be quite powerful! >>> >>> Andrew. >>> >>> >>> >>> >>> >>> -- >>> View this message in context: >>> http://forum.openscad.org/libigl-anyone-poked-at-it-for-CGAL-partial-replacement-tp14769.html >>> Sent from the OpenSCAD mailing list archive at Nabble.com >>> <http://nabble.com>. >>> >>> _______________________________________________ >>> OpenSCAD mailing list >>> Discuss@lists.openscad.org >>> http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org >>> >>> >>> >> _______________________________________________ >> OpenSCAD mailing list >> Discuss@lists.openscad.org >> http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org >> >> >> -- >> >> "The future is already here. It's just not very evenly distributed" -- >> William Gibson >> >> Me: http://clothbot.com/wiki/ >> >> >> >> >> _______________________________________________ >> OpenSCAD mailing list >> Discuss@lists.openscad.org >> http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org >> >> > _______________________________________________ > OpenSCAD mailing list > Discuss@lists.openscad.org > http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org >
AP
Andrew Plumb
Fri, Nov 27, 2015 4:05 AM

On Nov 26, 2015, at 10:16 PM, Tim Hawkins tim.thawkins@gmail.com wrote:

http://www.openvdb.org http://www.openvdb.org/
This may not be what you are looking for but its worth considering.

It is a voxel based csg tree system with mesh import and export. You create shapes as voxel grids and then it can perform csg operations on them, it uses a sparse storage mechanism so its effectivly only storing the surface voxels amd thier relationships.

On Fri, Nov 27, 2015, 07:40 doug moen <doug@moens.org mailto:doug@moens.org> wrote:
Yes, but the "Eigen data constructs" (I don't understand this yet) use floating point representation, and the conversion from CGAL to native representation can result in an invalid mesh. This is mentioned in the tutorial. Therefore, I don't see how we can use this: it's not robust.

What I think we want is a robust CSG geometry engine that works with floating point meshes. This is extremely difficult to program correctly, because you have to repair damage to the mesh caused by transformations, deal with floating point instability, and so on, and there are a lot of tricky edge cases. I'd be looking for a well-exercised engine with about 20 years worth of development and maintenance, and definitely not a single-person project with only a year or two of work done.

On 26 November 2015 at 17:43, Andrew Plumb <andrew@plumb.org mailto:andrew@plumb.org> wrote:
Ah, so it does:

https://github.com/libigl/libigl/blob/master/tutorial/609_Boolean/main.cpp https://github.com/libigl/libigl/blob/master/tutorial/609_Boolean/main.cpp

https://github.com/libigl/libigl/blob/master/include/igl/copyleft/boolean/mesh_boolean.cpp https://github.com/libigl/libigl/blob/master/include/igl/copyleft/boolean/mesh_boolean.cpp

On the plus side, looks like the meshes going into the operations and coming out are Eigen data constructs, so it may be easier to parallelize the operations and faster non-CSG mesh transforms (translate, rotate, etc.).

Something to play with…

Andrew.

On Nov 26, 2015, at 3:51 PM, doug moen <doug@moens.org mailto:doug@moens.org> wrote:

This appears to use CGAL and Cork to implement boolean operations.
https://github.com/gilbo/cork https://github.com/gilbo/cork

They mention that Cork is available as an alternative: it is faster, but not always robust.

On 26 November 2015 at 15:38, clothbot <andrew@plumb.org mailto:andrew@plumb.org> wrote:
Hey Everyone,

Has anyone looked into using libigl as a (partial) CGAL replacement for 3D
boolean op's and mesh manipulations?

http://libigl.github.io/libigl/ http://libigl.github.io/libigl/

https://github.com/libigl/libigl https://github.com/libigl/libigl

http://www.alecjacobson.com/weblog/?tag=libigl http://www.alecjacobson.com/weblog/?tag=libigl

Looks to be quite powerful!

Andrew.

--
View this message in context: http://forum.openscad.org/libigl-anyone-poked-at-it-for-CGAL-partial-replacement-tp14769.html http://forum.openscad.org/libigl-anyone-poked-at-it-for-CGAL-partial-replacement-tp14769.html
Sent from the OpenSCAD mailing list archive at Nabble.com http://nabble.com/.


OpenSCAD mailing list
Discuss@lists.openscad.org mailto:Discuss@lists.openscad.org
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org


OpenSCAD mailing list
Discuss@lists.openscad.org mailto:Discuss@lists.openscad.org
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org

--

"The future is already here.  It's just not very evenly distributed" -- William Gibson

Me: http://clothbot.com/wiki/ http://clothbot.com/wiki/

Ooooh! Very interesting! http://www.openvdb.org/download/ <http://www.openvdb.org/download/> https://github.com/dreamworksanimation/openvdb <https://github.com/dreamworksanimation/openvdb> Even has python hooks: https://github.com/dreamworksanimation/openvdb/tree/master/openvdb/python <https://github.com/dreamworksanimation/openvdb/tree/master/openvdb/python> Definitely going to be exploring that for a bit! Andrew. > On Nov 26, 2015, at 10:16 PM, Tim Hawkins <tim.thawkins@gmail.com> wrote: > > http://www.openvdb.org <http://www.openvdb.org/> > This may not be what you are looking for but its worth considering. > > It is a voxel based csg tree system with mesh import and export. You create shapes as voxel grids and then it can perform csg operations on them, it uses a sparse storage mechanism so its effectivly only storing the surface voxels amd thier relationships. > > On Fri, Nov 27, 2015, 07:40 doug moen <doug@moens.org <mailto:doug@moens.org>> wrote: > Yes, but the "Eigen data constructs" (I don't understand this yet) use floating point representation, and the conversion from CGAL to native representation can result in an invalid mesh. This is mentioned in the tutorial. Therefore, I don't see how we can use this: it's not robust. > > What I think we want is a robust CSG geometry engine that works with floating point meshes. This is extremely difficult to program correctly, because you have to repair damage to the mesh caused by transformations, deal with floating point instability, and so on, and there are a lot of tricky edge cases. I'd be looking for a well-exercised engine with about 20 years worth of development and maintenance, and definitely not a single-person project with only a year or two of work done. > > On 26 November 2015 at 17:43, Andrew Plumb <andrew@plumb.org <mailto:andrew@plumb.org>> wrote: > Ah, so it does: > > https://github.com/libigl/libigl/blob/master/tutorial/609_Boolean/main.cpp <https://github.com/libigl/libigl/blob/master/tutorial/609_Boolean/main.cpp> > > https://github.com/libigl/libigl/blob/master/include/igl/copyleft/boolean/mesh_boolean.cpp <https://github.com/libigl/libigl/blob/master/include/igl/copyleft/boolean/mesh_boolean.cpp> > > On the plus side, looks like the meshes going into the operations and coming out are Eigen data constructs, so it may be easier to parallelize the operations and faster non-CSG mesh transforms (translate, rotate, etc.). > > Something to play with… > > Andrew. > >> On Nov 26, 2015, at 3:51 PM, doug moen <doug@moens.org <mailto:doug@moens.org>> wrote: >> >> This appears to use CGAL and Cork to implement boolean operations. >> https://github.com/gilbo/cork <https://github.com/gilbo/cork> >> >> They mention that Cork is available as an alternative: it is faster, but not always robust. >> >> On 26 November 2015 at 15:38, clothbot <andrew@plumb.org <mailto:andrew@plumb.org>> wrote: >> Hey Everyone, >> >> Has anyone looked into using libigl as a (partial) CGAL replacement for 3D >> boolean op's and mesh manipulations? >> >> http://libigl.github.io/libigl/ <http://libigl.github.io/libigl/> >> >> https://github.com/libigl/libigl <https://github.com/libigl/libigl> >> >> http://www.alecjacobson.com/weblog/?tag=libigl <http://www.alecjacobson.com/weblog/?tag=libigl> >> >> Looks to be quite powerful! >> >> Andrew. >> >> >> >> >> >> -- >> View this message in context: http://forum.openscad.org/libigl-anyone-poked-at-it-for-CGAL-partial-replacement-tp14769.html <http://forum.openscad.org/libigl-anyone-poked-at-it-for-CGAL-partial-replacement-tp14769.html> >> Sent from the OpenSCAD mailing list archive at Nabble.com <http://nabble.com/>. >> >> _______________________________________________ >> OpenSCAD mailing list >> Discuss@lists.openscad.org <mailto:Discuss@lists.openscad.org> >> http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org <http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org> >> >> >> >> _______________________________________________ >> OpenSCAD mailing list >> Discuss@lists.openscad.org <mailto:Discuss@lists.openscad.org> >> http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org <http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org> > > -- > > "The future is already here. It's just not very evenly distributed" -- William Gibson > > Me: http://clothbot.com/wiki/ <http://clothbot.com/wiki/> > > > > > _______________________________________________ > OpenSCAD mailing list > Discuss@lists.openscad.org <mailto:Discuss@lists.openscad.org> > http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org <http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org> > > > _______________________________________________ > OpenSCAD mailing list > Discuss@lists.openscad.org <mailto:Discuss@lists.openscad.org> > http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org <http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org> > _______________________________________________ > OpenSCAD mailing list > Discuss@lists.openscad.org > http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org -- "The future is already here. It's just not very evenly distributed" -- William Gibson Me: http://clothbot.com/wiki/ <http://clothbot.com/wiki/>
DM
doug moen
Fri, Nov 27, 2015 4:28 AM

It looks interesting.

It does have CSG operations. While reading about voxel based systems, I
found a claim that CSG is slow on voxel systems, compared to mesh systems,
and I found a forum post complaining about the speed of CSG operations in
OpenVDB. So this might not solve our speed problems with CGAL.

I didn't find any operations for convex hull or minkowski sum. It's not
obvious how you implement these without converting to a mesh first, which I
bet is slow.

It is described as a visual effects library, and the home page demos
effects like clouds, fog, dust clouds, particle based fluid simulations. If
this is the focus, then I'm not sure it will be efficient for our use
cases. We could try it and do some performance measurements.

I wonder what kind of 3D modelling operations are enabled by a voxel
engine, stuff that's difficult with our current mesh engine?

On 26 November 2015 at 22:16, Tim Hawkins tim.thawkins@gmail.com wrote:

http://www.openvdb.org

This may not be what you are looking for but its worth considering.

It is a voxel based csg tree system with mesh import and export. You
create shapes as voxel grids and then it can perform csg operations on
them, it uses a sparse storage mechanism so its effectivly only storing the
surface voxels amd thier relationships.

On Fri, Nov 27, 2015, 07:40 doug moen doug@moens.org wrote:

Yes, but the "Eigen data constructs" (I don't understand this yet) use
floating point representation, and the conversion from CGAL to native
representation can result in an invalid mesh. This is mentioned in the
tutorial. Therefore, I don't see how we can use this: it's not robust.

What I think we want is a robust CSG geometry engine that works with
floating point meshes. This is extremely difficult to program correctly,
because you have to repair damage to the mesh caused by transformations,
deal with floating point instability, and so on, and there are a lot of
tricky edge cases. I'd be looking for a well-exercised engine with about 20
years worth of development and maintenance, and definitely not a
single-person project with only a year or two of work done.

On 26 November 2015 at 17:43, Andrew Plumb andrew@plumb.org wrote:

Ah, so it does:

https://github.com/libigl/libigl/blob/master/tutorial/609_Boolean/main.cpp

https://github.com/libigl/libigl/blob/master/include/igl/copyleft/boolean/mesh_boolean.cpp

On the plus side, looks like the meshes going into the operations and
coming out are Eigen data constructs, so it may be easier to parallelize
the operations and faster non-CSG mesh transforms (translate, rotate, etc.).

Something to play with…

Andrew.

On Nov 26, 2015, at 3:51 PM, doug moen doug@moens.org wrote:

This appears to use CGAL and Cork to implement boolean operations.
https://github.com/gilbo/cork

They mention that Cork is available as an alternative: it is faster, but
not always robust.

On 26 November 2015 at 15:38, clothbot andrew@plumb.org wrote:

Hey Everyone,

Has anyone looked into using libigl as a (partial) CGAL replacement for
3D
boolean op's and mesh manipulations?

http://libigl.github.io/libigl/

https://github.com/libigl/libigl

http://www.alecjacobson.com/weblog/?tag=libigl

Looks to be quite powerful!

Andrew.

--
View this message in context:
http://forum.openscad.org/libigl-anyone-poked-at-it-for-CGAL-partial-replacement-tp14769.html
Sent from the OpenSCAD mailing list archive at Nabble.com
http://nabble.com.


OpenSCAD mailing list
Discuss@lists.openscad.org
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org


OpenSCAD mailing list
Discuss@lists.openscad.org
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org

--

"The future is already here.  It's just not very evenly distributed" --
William Gibson

Me: http://clothbot.com/wiki/


OpenSCAD mailing list
Discuss@lists.openscad.org
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org

It looks interesting. It does have CSG operations. While reading about voxel based systems, I found a claim that CSG is slow on voxel systems, compared to mesh systems, and I found a forum post complaining about the speed of CSG operations in OpenVDB. So this might not solve our speed problems with CGAL. I didn't find any operations for convex hull or minkowski sum. It's not obvious how you implement these without converting to a mesh first, which I bet is slow. It is described as a visual effects library, and the home page demos effects like clouds, fog, dust clouds, particle based fluid simulations. If this is the focus, then I'm not sure it will be efficient for our use cases. We could try it and do some performance measurements. I wonder what kind of 3D modelling operations are enabled by a voxel engine, stuff that's difficult with our current mesh engine? On 26 November 2015 at 22:16, Tim Hawkins <tim.thawkins@gmail.com> wrote: > http://www.openvdb.org > > This may not be what you are looking for but its worth considering. > > It is a voxel based csg tree system with mesh import and export. You > create shapes as voxel grids and then it can perform csg operations on > them, it uses a sparse storage mechanism so its effectivly only storing the > surface voxels amd thier relationships. > > On Fri, Nov 27, 2015, 07:40 doug moen <doug@moens.org> wrote: > >> Yes, but the "Eigen data constructs" (I don't understand this yet) use >> floating point representation, and the conversion from CGAL to native >> representation can result in an invalid mesh. This is mentioned in the >> tutorial. Therefore, I don't see how we can use this: it's not robust. >> >> What I think we want is a robust CSG geometry engine that works with >> floating point meshes. This is extremely difficult to program correctly, >> because you have to repair damage to the mesh caused by transformations, >> deal with floating point instability, and so on, and there are a lot of >> tricky edge cases. I'd be looking for a well-exercised engine with about 20 >> years worth of development and maintenance, and definitely not a >> single-person project with only a year or two of work done. >> >> On 26 November 2015 at 17:43, Andrew Plumb <andrew@plumb.org> wrote: >> >>> Ah, so it does: >>> >>> >>> https://github.com/libigl/libigl/blob/master/tutorial/609_Boolean/main.cpp >>> >>> >>> https://github.com/libigl/libigl/blob/master/include/igl/copyleft/boolean/mesh_boolean.cpp >>> >>> On the plus side, looks like the meshes going into the operations and >>> coming out are Eigen data constructs, so it may be easier to parallelize >>> the operations and faster non-CSG mesh transforms (translate, rotate, etc.). >>> >>> Something to play with… >>> >>> Andrew. >>> >>> On Nov 26, 2015, at 3:51 PM, doug moen <doug@moens.org> wrote: >>> >>> This appears to use CGAL and Cork to implement boolean operations. >>> https://github.com/gilbo/cork >>> >>> They mention that Cork is available as an alternative: it is faster, but >>> not always robust. >>> >>> On 26 November 2015 at 15:38, clothbot <andrew@plumb.org> wrote: >>> >>>> Hey Everyone, >>>> >>>> Has anyone looked into using libigl as a (partial) CGAL replacement for >>>> 3D >>>> boolean op's and mesh manipulations? >>>> >>>> http://libigl.github.io/libigl/ >>>> >>>> https://github.com/libigl/libigl >>>> >>>> http://www.alecjacobson.com/weblog/?tag=libigl >>>> >>>> Looks to be quite powerful! >>>> >>>> Andrew. >>>> >>>> >>>> >>>> >>>> >>>> -- >>>> View this message in context: >>>> http://forum.openscad.org/libigl-anyone-poked-at-it-for-CGAL-partial-replacement-tp14769.html >>>> Sent from the OpenSCAD mailing list archive at Nabble.com >>>> <http://nabble.com>. >>>> >>>> _______________________________________________ >>>> OpenSCAD mailing list >>>> Discuss@lists.openscad.org >>>> http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org >>>> >>>> >>>> >>> _______________________________________________ >>> OpenSCAD mailing list >>> Discuss@lists.openscad.org >>> http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org >>> >>> >>> -- >>> >>> "The future is already here. It's just not very evenly distributed" -- >>> William Gibson >>> >>> Me: http://clothbot.com/wiki/ >>> >>> >>> >>> >>> _______________________________________________ >>> OpenSCAD mailing list >>> Discuss@lists.openscad.org >>> http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org >>> >>> >> _______________________________________________ >> OpenSCAD mailing list >> Discuss@lists.openscad.org >> http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org >> > > _______________________________________________ > OpenSCAD mailing list > Discuss@lists.openscad.org > http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org > >
TH
Tim Hawkins
Fri, Nov 27, 2015 4:40 AM

It does claim to be multithreaded, which i can belive as voxel operations
are easy to partition, i dont claim to have any expertice in this, my
graphics abilities are limited to 2d, i used to write postscript
rasterisation engines, which render down to a trapezoid list which is easy
to slice and hand out to different threads for operations like colour
correction and halftoning.

Given it does work on a different set of principles there will be
operations that are missing or sub optimimal, like wise there will be
aspects that are faster and open up new capabilities, its just a case of
determining what the tradeoffs are.

On Fri, Nov 27, 2015, 12:29 doug moen doug@moens.org wrote:

It looks interesting.

It does have CSG operations. While reading about voxel based systems, I
found a claim that CSG is slow on voxel systems, compared to mesh systems,
and I found a forum post complaining about the speed of CSG operations in
OpenVDB. So this might not solve our speed problems with CGAL.

I didn't find any operations for convex hull or minkowski sum. It's not
obvious how you implement these without converting to a mesh first, which I
bet is slow.

It is described as a visual effects library, and the home page demos
effects like clouds, fog, dust clouds, particle based fluid simulations. If
this is the focus, then I'm not sure it will be efficient for our use
cases. We could try it and do some performance measurements.

I wonder what kind of 3D modelling operations are enabled by a voxel
engine, stuff that's difficult with our current mesh engine?

On 26 November 2015 at 22:16, Tim Hawkins tim.thawkins@gmail.com wrote:

http://www.openvdb.org

This may not be what you are looking for but its worth considering.

It is a voxel based csg tree system with mesh import and export. You
create shapes as voxel grids and then it can perform csg operations on
them, it uses a sparse storage mechanism so its effectivly only storing the
surface voxels amd thier relationships.

On Fri, Nov 27, 2015, 07:40 doug moen doug@moens.org wrote:

Yes, but the "Eigen data constructs" (I don't understand this yet) use
floating point representation, and the conversion from CGAL to native
representation can result in an invalid mesh. This is mentioned in the
tutorial. Therefore, I don't see how we can use this: it's not robust.

What I think we want is a robust CSG geometry engine that works with
floating point meshes. This is extremely difficult to program correctly,
because you have to repair damage to the mesh caused by transformations,
deal with floating point instability, and so on, and there are a lot of
tricky edge cases. I'd be looking for a well-exercised engine with about 20
years worth of development and maintenance, and definitely not a
single-person project with only a year or two of work done.

On 26 November 2015 at 17:43, Andrew Plumb andrew@plumb.org wrote:

Ah, so it does:

https://github.com/libigl/libigl/blob/master/tutorial/609_Boolean/main.cpp

https://github.com/libigl/libigl/blob/master/include/igl/copyleft/boolean/mesh_boolean.cpp

On the plus side, looks like the meshes going into the operations and
coming out are Eigen data constructs, so it may be easier to parallelize
the operations and faster non-CSG mesh transforms (translate, rotate, etc.).

Something to play with…

Andrew.

On Nov 26, 2015, at 3:51 PM, doug moen doug@moens.org wrote:

This appears to use CGAL and Cork to implement boolean operations.
https://github.com/gilbo/cork

They mention that Cork is available as an alternative: it is faster,
but not always robust.

On 26 November 2015 at 15:38, clothbot andrew@plumb.org wrote:

Hey Everyone,

Has anyone looked into using libigl as a (partial) CGAL replacement
for 3D
boolean op's and mesh manipulations?

http://libigl.github.io/libigl/

https://github.com/libigl/libigl

http://www.alecjacobson.com/weblog/?tag=libigl

Looks to be quite powerful!

Andrew.

--
View this message in context:
http://forum.openscad.org/libigl-anyone-poked-at-it-for-CGAL-partial-replacement-tp14769.html
Sent from the OpenSCAD mailing list archive at Nabble.com
http://nabble.com.


OpenSCAD mailing list
Discuss@lists.openscad.org
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org


OpenSCAD mailing list
Discuss@lists.openscad.org
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org

--

"The future is already here.  It's just not very evenly distributed" --
William Gibson

Me: http://clothbot.com/wiki/


OpenSCAD mailing list
Discuss@lists.openscad.org
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org

It does claim to be multithreaded, which i can belive as voxel operations are easy to partition, i dont claim to have any expertice in this, my graphics abilities are limited to 2d, i used to write postscript rasterisation engines, which render down to a trapezoid list which is easy to slice and hand out to different threads for operations like colour correction and halftoning. Given it does work on a different set of principles there will be operations that are missing or sub optimimal, like wise there will be aspects that are faster and open up new capabilities, its just a case of determining what the tradeoffs are. On Fri, Nov 27, 2015, 12:29 doug moen <doug@moens.org> wrote: > It looks interesting. > > It does have CSG operations. While reading about voxel based systems, I > found a claim that CSG is slow on voxel systems, compared to mesh systems, > and I found a forum post complaining about the speed of CSG operations in > OpenVDB. So this might not solve our speed problems with CGAL. > > I didn't find any operations for convex hull or minkowski sum. It's not > obvious how you implement these without converting to a mesh first, which I > bet is slow. > > It is described as a visual effects library, and the home page demos > effects like clouds, fog, dust clouds, particle based fluid simulations. If > this is the focus, then I'm not sure it will be efficient for our use > cases. We could try it and do some performance measurements. > > I wonder what kind of 3D modelling operations are enabled by a voxel > engine, stuff that's difficult with our current mesh engine? > > On 26 November 2015 at 22:16, Tim Hawkins <tim.thawkins@gmail.com> wrote: > >> http://www.openvdb.org >> >> This may not be what you are looking for but its worth considering. >> >> It is a voxel based csg tree system with mesh import and export. You >> create shapes as voxel grids and then it can perform csg operations on >> them, it uses a sparse storage mechanism so its effectivly only storing the >> surface voxels amd thier relationships. >> >> On Fri, Nov 27, 2015, 07:40 doug moen <doug@moens.org> wrote: >> >>> Yes, but the "Eigen data constructs" (I don't understand this yet) use >>> floating point representation, and the conversion from CGAL to native >>> representation can result in an invalid mesh. This is mentioned in the >>> tutorial. Therefore, I don't see how we can use this: it's not robust. >>> >>> What I think we want is a robust CSG geometry engine that works with >>> floating point meshes. This is extremely difficult to program correctly, >>> because you have to repair damage to the mesh caused by transformations, >>> deal with floating point instability, and so on, and there are a lot of >>> tricky edge cases. I'd be looking for a well-exercised engine with about 20 >>> years worth of development and maintenance, and definitely not a >>> single-person project with only a year or two of work done. >>> >>> On 26 November 2015 at 17:43, Andrew Plumb <andrew@plumb.org> wrote: >>> >>>> Ah, so it does: >>>> >>>> >>>> https://github.com/libigl/libigl/blob/master/tutorial/609_Boolean/main.cpp >>>> >>>> >>>> https://github.com/libigl/libigl/blob/master/include/igl/copyleft/boolean/mesh_boolean.cpp >>>> >>>> On the plus side, looks like the meshes going into the operations and >>>> coming out are Eigen data constructs, so it may be easier to parallelize >>>> the operations and faster non-CSG mesh transforms (translate, rotate, etc.). >>>> >>>> Something to play with… >>>> >>>> Andrew. >>>> >>>> On Nov 26, 2015, at 3:51 PM, doug moen <doug@moens.org> wrote: >>>> >>>> This appears to use CGAL and Cork to implement boolean operations. >>>> https://github.com/gilbo/cork >>>> >>>> They mention that Cork is available as an alternative: it is faster, >>>> but not always robust. >>>> >>>> On 26 November 2015 at 15:38, clothbot <andrew@plumb.org> wrote: >>>> >>>>> Hey Everyone, >>>>> >>>>> Has anyone looked into using libigl as a (partial) CGAL replacement >>>>> for 3D >>>>> boolean op's and mesh manipulations? >>>>> >>>>> http://libigl.github.io/libigl/ >>>>> >>>>> https://github.com/libigl/libigl >>>>> >>>>> http://www.alecjacobson.com/weblog/?tag=libigl >>>>> >>>>> Looks to be quite powerful! >>>>> >>>>> Andrew. >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> -- >>>>> View this message in context: >>>>> http://forum.openscad.org/libigl-anyone-poked-at-it-for-CGAL-partial-replacement-tp14769.html >>>>> Sent from the OpenSCAD mailing list archive at Nabble.com >>>>> <http://nabble.com>. >>>>> >>>>> _______________________________________________ >>>>> OpenSCAD mailing list >>>>> Discuss@lists.openscad.org >>>>> http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org >>>>> >>>>> >>>>> >>>> _______________________________________________ >>>> OpenSCAD mailing list >>>> Discuss@lists.openscad.org >>>> http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org >>>> >>>> >>>> -- >>>> >>>> "The future is already here. It's just not very evenly distributed" -- >>>> William Gibson >>>> >>>> Me: http://clothbot.com/wiki/ >>>> >>>> >>>> >>>> >>>> _______________________________________________ >>>> OpenSCAD mailing list >>>> Discuss@lists.openscad.org >>>> http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org >>>> >>>> >>> _______________________________________________ >>> OpenSCAD mailing list >>> Discuss@lists.openscad.org >>> http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org >>> >> >> _______________________________________________ >> OpenSCAD mailing list >> Discuss@lists.openscad.org >> http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org >> >> > _______________________________________________ > OpenSCAD mailing list > Discuss@lists.openscad.org > http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org >
TH
Tim Hawkins
Fri, Nov 27, 2015 4:42 AM

Also you need to decide if the license is acceptable, it uses the Mozia
Public License, which is a mashup of the BSD License and the GPL V2
License.

On Fri, Nov 27, 2015, 12:29 doug moen doug@moens.org wrote:

It looks interesting.

It does have CSG operations. While reading about voxel based systems, I
found a claim that CSG is slow on voxel systems, compared to mesh systems,
and I found a forum post complaining about the speed of CSG operations in
OpenVDB. So this might not solve our speed problems with CGAL.

I didn't find any operations for convex hull or minkowski sum. It's not
obvious how you implement these without converting to a mesh first, which I
bet is slow.

It is described as a visual effects library, and the home page demos
effects like clouds, fog, dust clouds, particle based fluid simulations. If
this is the focus, then I'm not sure it will be efficient for our use
cases. We could try it and do some performance measurements.

I wonder what kind of 3D modelling operations are enabled by a voxel
engine, stuff that's difficult with our current mesh engine?

On 26 November 2015 at 22:16, Tim Hawkins tim.thawkins@gmail.com wrote:

http://www.openvdb.org

This may not be what you are looking for but its worth considering.

It is a voxel based csg tree system with mesh import and export. You
create shapes as voxel grids and then it can perform csg operations on
them, it uses a sparse storage mechanism so its effectivly only storing the
surface voxels amd thier relationships.

On Fri, Nov 27, 2015, 07:40 doug moen doug@moens.org wrote:

Yes, but the "Eigen data constructs" (I don't understand this yet) use
floating point representation, and the conversion from CGAL to native
representation can result in an invalid mesh. This is mentioned in the
tutorial. Therefore, I don't see how we can use this: it's not robust.

What I think we want is a robust CSG geometry engine that works with
floating point meshes. This is extremely difficult to program correctly,
because you have to repair damage to the mesh caused by transformations,
deal with floating point instability, and so on, and there are a lot of
tricky edge cases. I'd be looking for a well-exercised engine with about 20
years worth of development and maintenance, and definitely not a
single-person project with only a year or two of work done.

On 26 November 2015 at 17:43, Andrew Plumb andrew@plumb.org wrote:

Ah, so it does:

https://github.com/libigl/libigl/blob/master/tutorial/609_Boolean/main.cpp

https://github.com/libigl/libigl/blob/master/include/igl/copyleft/boolean/mesh_boolean.cpp

On the plus side, looks like the meshes going into the operations and
coming out are Eigen data constructs, so it may be easier to parallelize
the operations and faster non-CSG mesh transforms (translate, rotate, etc.).

Something to play with…

Andrew.

On Nov 26, 2015, at 3:51 PM, doug moen doug@moens.org wrote:

This appears to use CGAL and Cork to implement boolean operations.
https://github.com/gilbo/cork

They mention that Cork is available as an alternative: it is faster,
but not always robust.

On 26 November 2015 at 15:38, clothbot andrew@plumb.org wrote:

Hey Everyone,

Has anyone looked into using libigl as a (partial) CGAL replacement
for 3D
boolean op's and mesh manipulations?

http://libigl.github.io/libigl/

https://github.com/libigl/libigl

http://www.alecjacobson.com/weblog/?tag=libigl

Looks to be quite powerful!

Andrew.

--
View this message in context:
http://forum.openscad.org/libigl-anyone-poked-at-it-for-CGAL-partial-replacement-tp14769.html
Sent from the OpenSCAD mailing list archive at Nabble.com
http://nabble.com.


OpenSCAD mailing list
Discuss@lists.openscad.org
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org


OpenSCAD mailing list
Discuss@lists.openscad.org
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org

--

"The future is already here.  It's just not very evenly distributed" --
William Gibson

Me: http://clothbot.com/wiki/


OpenSCAD mailing list
Discuss@lists.openscad.org
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org

Also you need to decide if the license is acceptable, it uses the Mozia Public License, which is a mashup of the BSD License and the GPL V2 License. On Fri, Nov 27, 2015, 12:29 doug moen <doug@moens.org> wrote: > It looks interesting. > > It does have CSG operations. While reading about voxel based systems, I > found a claim that CSG is slow on voxel systems, compared to mesh systems, > and I found a forum post complaining about the speed of CSG operations in > OpenVDB. So this might not solve our speed problems with CGAL. > > I didn't find any operations for convex hull or minkowski sum. It's not > obvious how you implement these without converting to a mesh first, which I > bet is slow. > > It is described as a visual effects library, and the home page demos > effects like clouds, fog, dust clouds, particle based fluid simulations. If > this is the focus, then I'm not sure it will be efficient for our use > cases. We could try it and do some performance measurements. > > I wonder what kind of 3D modelling operations are enabled by a voxel > engine, stuff that's difficult with our current mesh engine? > > On 26 November 2015 at 22:16, Tim Hawkins <tim.thawkins@gmail.com> wrote: > >> http://www.openvdb.org >> >> This may not be what you are looking for but its worth considering. >> >> It is a voxel based csg tree system with mesh import and export. You >> create shapes as voxel grids and then it can perform csg operations on >> them, it uses a sparse storage mechanism so its effectivly only storing the >> surface voxels amd thier relationships. >> >> On Fri, Nov 27, 2015, 07:40 doug moen <doug@moens.org> wrote: >> >>> Yes, but the "Eigen data constructs" (I don't understand this yet) use >>> floating point representation, and the conversion from CGAL to native >>> representation can result in an invalid mesh. This is mentioned in the >>> tutorial. Therefore, I don't see how we can use this: it's not robust. >>> >>> What I think we want is a robust CSG geometry engine that works with >>> floating point meshes. This is extremely difficult to program correctly, >>> because you have to repair damage to the mesh caused by transformations, >>> deal with floating point instability, and so on, and there are a lot of >>> tricky edge cases. I'd be looking for a well-exercised engine with about 20 >>> years worth of development and maintenance, and definitely not a >>> single-person project with only a year or two of work done. >>> >>> On 26 November 2015 at 17:43, Andrew Plumb <andrew@plumb.org> wrote: >>> >>>> Ah, so it does: >>>> >>>> >>>> https://github.com/libigl/libigl/blob/master/tutorial/609_Boolean/main.cpp >>>> >>>> >>>> https://github.com/libigl/libigl/blob/master/include/igl/copyleft/boolean/mesh_boolean.cpp >>>> >>>> On the plus side, looks like the meshes going into the operations and >>>> coming out are Eigen data constructs, so it may be easier to parallelize >>>> the operations and faster non-CSG mesh transforms (translate, rotate, etc.). >>>> >>>> Something to play with… >>>> >>>> Andrew. >>>> >>>> On Nov 26, 2015, at 3:51 PM, doug moen <doug@moens.org> wrote: >>>> >>>> This appears to use CGAL and Cork to implement boolean operations. >>>> https://github.com/gilbo/cork >>>> >>>> They mention that Cork is available as an alternative: it is faster, >>>> but not always robust. >>>> >>>> On 26 November 2015 at 15:38, clothbot <andrew@plumb.org> wrote: >>>> >>>>> Hey Everyone, >>>>> >>>>> Has anyone looked into using libigl as a (partial) CGAL replacement >>>>> for 3D >>>>> boolean op's and mesh manipulations? >>>>> >>>>> http://libigl.github.io/libigl/ >>>>> >>>>> https://github.com/libigl/libigl >>>>> >>>>> http://www.alecjacobson.com/weblog/?tag=libigl >>>>> >>>>> Looks to be quite powerful! >>>>> >>>>> Andrew. >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> -- >>>>> View this message in context: >>>>> http://forum.openscad.org/libigl-anyone-poked-at-it-for-CGAL-partial-replacement-tp14769.html >>>>> Sent from the OpenSCAD mailing list archive at Nabble.com >>>>> <http://nabble.com>. >>>>> >>>>> _______________________________________________ >>>>> OpenSCAD mailing list >>>>> Discuss@lists.openscad.org >>>>> http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org >>>>> >>>>> >>>>> >>>> _______________________________________________ >>>> OpenSCAD mailing list >>>> Discuss@lists.openscad.org >>>> http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org >>>> >>>> >>>> -- >>>> >>>> "The future is already here. It's just not very evenly distributed" -- >>>> William Gibson >>>> >>>> Me: http://clothbot.com/wiki/ >>>> >>>> >>>> >>>> >>>> _______________________________________________ >>>> OpenSCAD mailing list >>>> Discuss@lists.openscad.org >>>> http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org >>>> >>>> >>> _______________________________________________ >>> OpenSCAD mailing list >>> Discuss@lists.openscad.org >>> http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org >>> >> >> _______________________________________________ >> OpenSCAD mailing list >> Discuss@lists.openscad.org >> http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org >> >> > _______________________________________________ > OpenSCAD mailing list > Discuss@lists.openscad.org > http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org >