Printing the clebsch cubic with lines, in two colors

8/25/15

The Clebsch Cubic is a projective surface, typically written in four projective variables, which is smooth and contains 27 lines, some of which are complex under real projections. Certain projections of the surface into real space yield 27 real lines, with none being complex. Check out this reference page.

I am working on a system to print the surface with its lines, hopefully in two colors. The two color part is the challenge right now. Because my surfaces and curves are computed using Bertini_real, they remain fully implicit, so they are represented for printing in terms of STL files. I have the lines and surface each in their own files, and want to be able to take the difference of the two meshes. However, I have been completely unable to take the boolean difference of two arbitrary printable meshes, using any existing software!

I've tried:
and nothing has succeeded. The closest was Meshmixer, but the results look atrocious.

Here are the two objects I am working with, as rendered from GLCPlayer on OSX:
Stacks Image 1644
Stacks Image 1647
Do you know how to compute the difference between two water-tight meshes? Send me an email if you do!
Bertini Classic split parser

8/19/15

As I write Bertini2, I am adding backwards compatibility for Bertini1. This means supporting every feature as it is currently accessed, a classic problem in software development.

As I am writing software to do some timing tests for b2 vs b1, I need to be able to run the same test in both program environments. This means that the path to system definition should probably be the Bertini classic input file, which at this time has more-or-less stood the test of time as a reasonably functional way to tell a computer a polynomial system.

The Bertini Classic input file consists of two parts:
  • the configuration for the tracker, and
  • the polynomial system
They are separated in the file by three keywords: CONFIG, INPUT, and END;. In various combinations, they are either valid or invalid. I just succeeded in writing a Boost.Spirit Qi parser to split the two parts into two distinct strings!

Spirit is a challenging system to use, but I overall find it more pleasant and adaptable than Flex/Bison, the main parser language which interfaces with C/C++. Fighting with the template error messages can be super challenging sometimes, but when it works, it really works. I hope to do some timing comparisons with Bertini1 and Bertini2's parsers sometime in the future!

I want to thank SO user sehe for his prolific support of the library by answering questions for the last few years. In particular, this post was what really got me there this time.
Thanks for a great visit, Korea

8/7/15

I conclude my second visit to Korea this evening, with dinner and a walk with some of my collaborators, Alan Liddell, Tim Hodges, Dan Bates, and my current postdoc mentor, Jon Hauenstein.
Stacks Image 1508
Stacks Image 1511
Joined AG activity group!

8/6/15

Today I joined the SIAM Algebraic Geometry activity group! Now I can participate in the leadership activities in my field, and work to advance the research of myself and my peers. Thanks for having me, SIAM.
Fun time presenting at AG15

8/4/15

My presentation at SIAM AG15 today was quite enjoyable to give. It was a summary overview on advancements in the field of Numerical Algebraic Geometry, and was the first overview talk I have given at a conference. I thought about presenting on the Burmester paper we recently submitted, but SIAM urges minisymposia organizers to use the first talk in a session to set the tone, so I gave such a talk myself.

I felt like I had good attendance, that the audience was attentive, and that the questions were more than surface level. James Davenport commented after that he enjoyed the fun reference to the paper which used Newton homotopies to compute combustion properties for fireworks.