Graphing using C# shape libraries. Math for linear transformations is completely custom.
Space to move up, shift to move down, W,A,S,D for directional movement, arrow keys to control camera direction.
Most of my code is contained in Graphing3D/Graphing3D/3DBehaviors
Modify the function on line 66 of Graphing3D/Graphing3D/3DBehaviors/Graphing/GraphHandler.cs to change the function being graphed. Return a z value corresponding to x and y variables. timeElapsed can be used as an additional parameter to give the graph a time progression.