For the most part this page is used to distribute SageMath notebooks used to illustrate key concepts. Students must during the course of the semester download and actually run these notebooks. It is not enough to passivly review them, it is essential to get into the examples, make changes, and learn from interaction.

There are links to the 'dead' HTML output of notebooks below. This is useful for a quick read through. However, to actually run the notebook, you must download the IPYNB file and upload it to a SageMath Jupyter Server. Server software is installed on the CS Department Machines - here are instructions - and you may also download SageMath to your own machine.

Lecture 3 Notebook 1
Notebook cs410lec03n01 illustrates the dot product as a projection operator in 2D. In other words, measuring the distance from the origin to a point in the direction of a vector u.
Zipped IPYNB Notebook File
Lecture 3 Notebook 2
Notebook cs410lec03n02 builds upon the previous notebood carrying through to illustrate 2D rotation as simply projection onto a pair of orthongonal unit length basis vectors.
Zipped IPYNB Notebook File
Lecture 3 Notebook 3
Notebook cs410lec03n03 illustrates the composition of 2D rotation, translation and scaling using 2D homogeneous transforms.
Zipped IPYNB Notebook File
Lecture 4 Notebook 1
Notebook cs410lec04n01 illustrates the construction of a three by three rotation matrix from an axis-angle specification.
Zipped IPYNB Notebook File
Lecture 5 Notebook 1
Notebook cs410lec05n01 illustrates the relative placement of a camera and a 3D model.
Zipped IPYNB Notebook File
Lecture 7 Notebook 1
Notebook cs410lec07n01 illustrates the enumeration of 3D rays from pixels.
Zipped IPYNB Notebook File
Lecture 7 Notebook 2
Notebook cs410lec07n02 illustrates with 3D the fast way to compute ray sphere intersections.
Zipped IPYNB Notebook File
Lecture 8 Notebook 1
Notebook cs410lec08n01 provides complete ray casting example for one sphere, ambient and diffuse illumination, and multiple light sources.
Zipped IPYNB Notebook File
Lecture 9 Notebook 1
Notebook cs410lec09n01 illustrates how to find the intersection of two 2D parametric lines.
Zipped IPYNB Notebook File
Lecture 9 Notebook 2
Notebook cs410lec09n02 presents the linear algebraic symbolic solution to the ray triangle intersection problem.
Zipped IPYNB Notebook File
Lecture 9 Notebook 3
Notebook cs410lec09n03 illustrates with 3D visualization examples of ray triangle intersections.
Zipped IPYNB Notebook File
Lecture 12 Notebook 1
Notebook cs410lec12n01 provides a recursive ray tracing example with three spheres and two light sources.
Zipped IPYNB Notebook File. Also, there is a 2048 by 2048 rendering from this notebook.
Lecture 15 Notebook 1
Notebook cs410lec15n01 provides a complete illustration of the geometric transformation from world coordinates to the Canonical View Volume.
Zipped IPYNB Notebook File PDF File.
Lecture 17 Notebook 1
Notebook cs410lec17n01 illustrates random sampling as a way to approximately compute the universal constant PI.
Zipped IPYNB Notebook File.
Lecture 17 Notebook 2
Notebook cs410lec17n02 illustrates a Monte Carlo ray tracing
Zipped IPYNB Notebook File. This 256 by 256 image with 1000 samples per pixel took over 10 hours to render on an 8 core MacBook Pro.
Lecture 21 Notebook 1
Notebook cs410lec21n01 illustrates reflection combined with refracion
.Zipped IPYNB Notebook File. This 1024 by 2014 image generated using this notebook.
Lecture 21 Notebook 2
Notebook cs410lec21n02 illustrates reflection combined with refracion on a more complicated scene.
Zipped IPYNB Notebook File. This 3200 by 1800 image generated using this notebook.
Lecture 22 Notebook 1
Notebook cs410lec22n01 illustrates the six degree of freedom transform used in texture mapping.
.Zipped IPYNB Notebook File.
Lecture 23 Notebook 1
Notebook cs410lec23n01 illustrates the non-lineariry of the depth term for a standard perspective projection pipeline.
.Zipped IPYNB Notebook File.
Lecture 24 Notebook 1
Notebook cs410lec24n01 illustrates Bezier Curves.
Zipped IPYNB Notebook File.
Lecture 25 Notebook 1
Notebook cs410lec25n01 illustratess a Bezier surface patch.
Zipped IPYNB Notebook File.
Lecture 25 Notebook 2
Notebook cs410lec25n02 illustrates BSpline curves.
Zipped IPYNB Notebook File.