# Experimental Geometer

Experimental Geometer was an hackathon idea by my friend Aaron1: GeoGebra but 3D and using VR because it’s really hard to work with 3D on a 2D screen. So, we teamed up and won Bluetooth speakers at the hackathon. The GitHub page for this project is pretty sad. As with most hackathon projects, development stopped as soon as the hackathon was over.

One really good idea I had for the project was writing a geometry-based scripting language so we wouldn’t have to code a bunch of different drawing tools using coordinate geometry. We called the language Euclid, but it turns out that name was already taken. Anyway, our Euclid had only a few basic constructs:

• Every value is a “figure,” i.e. a set of points in 3D space.
• line a b returns the line that contains points a and b.
• plane a b c returns the plane that contains points a, b, and c.
• sphere a b returns the sphere with center a that contains b.
• space returns all of 3D space.
• intersection a b returns the intersection of a and b.
• point_on a returns a point on a.
• User-defined constructions (what we decided to call functions).

I think there was a plan to add in something like if a b c, which returns b if a is nonempty or c otherwise, but we never got around to it. Anyway, this allows us to define straightedge-and-compass constructions, which is basically all we could want in a drawing tool. Also, since user-defined constructions can be recursive, Euclid is Turing-complete.

Doing this project also left me fascinated with Euclid’s Elements. I remember I read that textbook in art history class for one or two months.

1. Although, the name was my idea.