Experimental Geometer
Experimental Geometer was an hackathon idea by 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 pointsa
andb
.plane a b c
returns the plane that contains pointsa
,b
, andc
.sphere a b
returns the sphere with centera
that containsb
.space
returns all of 3D space.intersection a b
returns the intersection ofa
andb
.point_on a
returns a point ona
.- 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.
-
Although, the name was my idea. ↩
24 October 2022