<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Mon, Nov 9, 2015 at 9:59 PM, Jeremy Wright <span dir="ltr"><<a href="mailto:wrightjmf@gmail.com" target="_blank">wrightjmf@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div>1. OpenCASCADE (B-Rep)</div><div>2. CGAL (F-Rep)</div><div>3. OpenNURBS (NURBS)</div><div></div></blockquote></div><br>1. OpenCASCADE requires a tremendous amount of work to become high-quality source code that can be regularly maintained without a legion of bored postdocs. The best effort with OpenCASCADE towards this is the "Community Edition" version over here: <a href="https://github.com/tpaviot/oce">https://github.com/tpaviot/oce</a></div><div class="gmail_extra">my notes taken while reading OpenCASCADE source code: <a href="http://diyhpl.us/wiki/cad/opencascade/">http://diyhpl.us/wiki/cad/opencascade/</a></div><div class="gmail_extra"><br></div><div class="gmail_extra">2. no comments on CGAL</div><div class="gmail_extra"><br></div><div class="gmail_extra">3. OpenNURBS itself is somewhat high quality source code, and BRLCAD wrote a wrapper around OpenNURBS and then implemented the missing surface-surface intersection methods that Rhino kept closed-source:</div><div class="gmail_extra"><a href="http://brlcad.org/wiki/User:Phoenix/GSoc2013/Reports">http://brlcad.org/wiki/User:Phoenix/GSoc2013/Reports</a><br></div><div class="gmail_extra"><a href="https://github.com/kanzure/brlcad/tree/master/src/other/openNURBS">https://github.com/kanzure/brlcad/tree/master/src/other/openNURBS</a><br></div><div class="gmail_extra"><a href="https://github.com/kanzure/brlcad/blob/master/src/other/openNURBS/opennurbs_intersect.cpp">https://github.com/kanzure/brlcad/blob/master/src/other/openNURBS/opennurbs_intersect.cpp</a><br></div><div class="gmail_extra"><br></div><div class="gmail_extra">The BRLCAD team is highly available over freenode IRC in the #brlcad channel during "normal business hours".</div><div class="gmail_extra"><br></div><div class="gmail_extra">Most recently I have been pointing people towards verbnurbs and solvespace:</div><div class="gmail_extra"><br></div><div class="gmail_extra">verbnurbs:</div><div class="gmail_extra"><a href="https://github.com/pboyer/verb">https://github.com/pboyer/verb</a><br></div><div class="gmail_extra"><a href="https://github.com/pboyer/verb/blob/master/src/verb/eval/Intersect.hx">https://github.com/pboyer/verb/blob/master/src/verb/eval/Intersect.hx</a><br></div><div class="gmail_extra"><a href="http://verbnurbs.com/">http://verbnurbs.com/</a></div><div class="gmail_extra"><a href="http://verbnurbs.com/examples/surfaceIntersection.html">http://verbnurbs.com/examples/surfaceIntersection.html</a></div><div class="gmail_extra"><a href="http://heybryan.org/shots/2015-10-25-101304--verbnurbs-com-examples-surfaceIntersection-html-1445785971891.png">http://heybryan.org/shots/2015-10-25-101304--verbnurbs-com-examples-surfaceIntersection-html-1445785971891.png</a><br clear="all"><div><br></div><div>solvespace:</div><div><a href="http://solvespace.com/index.pl">http://solvespace.com/index.pl</a><br></div><div><a href="https://github.com/whitequark/solvespace/blob/for-upstream/src/srf/surfinter.cpp">https://github.com/whitequark/solvespace/blob/for-upstream/src/srf/surfinter.cpp</a><br></div><div><a href="https://github.com/whitequark/solvespace">https://github.com/whitequark/solvespace</a><br></div><div><br></div><div>I think a verified kernel sounds like a reasonable think to work on, although not necessary for open-source CAD reasons... I think eventually FreeCAD is going to voluntarily switch to either verbnurbs, solvespace or brlcad under the hood instead of OpenCASCADE.</div><div><br></div><div>I also think that cadquery does sane things, and I am eager to convince people to write a cadquery interface around the pythonized version of verbnurbs (it uses haxe which apparently cross-compiles to python, but I haven't investigated whether that works or is reasonable).</div><br><div class="gmail_signature">- Bryan<br><a href="http://heybryan.org/" target="_blank">http://heybryan.org/</a><br>1 512 203 0507</div>
</div></div>