diff --git a/include/geometry.h b/include/geometry.h
new file mode 100644
index 0000000..274d5b0
--- /dev/null
+++ b/include/geometry.h
@@ -0,0 +1,100 @@
+#ifndef _GEOMETRY_H_
+#define _GEOMETRY_H_ 1
+#if defined(__cplusplus)
+extern "C" { 
+#endif
+
+
+AUTOLIB(geometry)
+
+typedef double Matrix[4][4];
+typedef struct Point3 Point3;
+typedef struct Quaternion Quaternion;
+typedef struct Space Space;
+struct Point3{
+	double x, y, z, w;
+};
+struct Quaternion{
+	double r, i, j, k;
+};
+struct Space{
+	Matrix t;
+	Matrix tinv;
+	Space *next;
+};
+/*
+ * 3-d point arithmetic
+ */
+Point3 add3(Point3 a, Point3 b);
+Point3 sub3(Point3 a, Point3 b);
+Point3 neg3(Point3 a);
+Point3 div3(Point3 a, double b);
+Point3 mul3(Point3 a, double b);
+int eqpt3(Point3 p, Point3 q);
+int closept3(Point3 p, Point3 q, double eps);
+double dot3(Point3 p, Point3 q);
+Point3 cross3(Point3 p, Point3 q);
+double len3(Point3 p);
+double dist3(Point3 p, Point3 q);
+Point3 unit3(Point3 p);
+Point3 midpt3(Point3 p, Point3 q);
+Point3 lerp3(Point3 p, Point3 q, double alpha);
+Point3 reflect3(Point3 p, Point3 p0, Point3 p1);
+Point3 nearseg3(Point3 p0, Point3 p1, Point3 testp);
+double pldist3(Point3 p, Point3 p0, Point3 p1);
+double vdiv3(Point3 a, Point3 b);
+Point3 vrem3(Point3 a, Point3 b);
+Point3 pn2f3(Point3 p, Point3 n);
+Point3 ppp2f3(Point3 p0, Point3 p1, Point3 p2);
+Point3 fff2p3(Point3 f0, Point3 f1, Point3 f2);
+Point3 pdiv4(Point3 a);
+Point3 add4(Point3 a, Point3 b);
+Point3 sub4(Point3 a, Point3 b);
+/*
+ * Quaternion arithmetic
+ */
+void qtom(Matrix, Quaternion);
+Quaternion mtoq(Matrix);
+Quaternion qadd(Quaternion, Quaternion);
+Quaternion qsub(Quaternion, Quaternion);
+Quaternion qneg(Quaternion);
+Quaternion qmul(Quaternion, Quaternion);
+Quaternion qdiv(Quaternion, Quaternion);
+Quaternion qunit(Quaternion);
+Quaternion qinv(Quaternion);
+double qlen(Quaternion);
+Quaternion slerp(Quaternion, Quaternion, double);
+Quaternion qmid(Quaternion, Quaternion);
+Quaternion qsqrt(Quaternion);
+void qball(Rectangle, Mouse *, Quaternion *, void (*)(void), Quaternion *);
+/*
+ * Matrix arithmetic
+ */
+void ident(Matrix);
+void matmul(Matrix, Matrix);
+void matmulr(Matrix, Matrix);
+double determinant(Matrix);
+void adjoint(Matrix, Matrix);
+double invertmat(Matrix, Matrix);
+/*
+ * Space stack routines
+ */
+Space *pushmat(Space *);
+Space *popmat(Space *);
+void rot(Space *, double, int);
+void qrot(Space *, Quaternion);
+void scale(Space *, double, double, double);
+void move(Space *, double, double, double);
+void xform(Space *, Matrix);
+void ixform(Space *, Matrix, Matrix);
+void look(Space *, Point3, Point3, Point3);
+int persp(Space *, double, double, double);
+void viewport(Space *, Rectangle, double);
+Point3 xformpoint(Point3, Space *, Space *);
+Point3 xformpointd(Point3, Space *, Space *);
+Point3 xformplane(Point3, Space *, Space *);
+#define	radians(d)	((d)*.01745329251994329572)
+#if defined(__cplusplus)
+}
+#endif
+#endif
