Old Python Projects

Overview and History

I got my first real start in programming around early high school, writing lots of code, learning a lot, and occasionally making something (I thought at the time was) worth sharing. Mostly, this was in the Python programming language. I often used Pygame, and later often combined it with PyOpenGL. My experience creating these examples contributed greatly to my programming skill and directly kickstarted my graphics career, even if I have drifted away from the PyGame community in the years since[1].

The overwhelming majority of this stuff is trash, provided for historical interest. Mostly, it is little demos showing the progress of a literal child trying to understand something. However, even as ancient and unrepresentative of my abilities as these programs are, a few of these programs are not just still useful, but are actually unrivaled in the Python graphics programming world, and have not been replicated before or since. They remain as examples of what PyGame and PyOpenGL are able to produce. Although few of these should be considered "supported", I later rewrote some of them to serve as teaching examples or bespoke tools. These are a much higher standard of quality, and so are indicated below (with a ⭐).

I enjoy hearing about where my code shows up! If you find something useful, feel free to contact me and say so! Note: everything here is free for use with attribution.


Projects List

Applications / Tools

2D Wave Interaction Simulator

Demonstrates 2D wave interference and plays the resulting waveform as a sound.

3D Wave Interaction Simulator

Demonstrates 3D wave interference on a mesh.

3D World (⭐)

Basic 3D visualization of the Earth, including plotted points.

Color Chooser

A standalone tool for picking sRGB colors.

Flash Cards

Simple flash card application.

Game of Life (⭐)

A GPU implementation of Conway's Game of Life.

ImplicitGrapher (⭐)

Grapher for 3D implicit functions.

Mandelbrot Set Generator

Generates a simple image of the Mandelbrot set.

Mandelbrot Set Viewer (⭐)

Interactive viewer for the Mandelbrot set.

Map Editor (⭐)

A rudimentary heightmap editor.

notepad-- (⭐)

A text editor so bad it can't even edit.

Off-Center Map Projections (⭐)

Generates maps centered / rotated around different points than usual.

Snowflake Generator

A simple editor for drawing six-sided snowflakes.

The Grapher

Basic function plotter.

Ray-Tracer

Basic triangle mesh raytracer.

Sphere Ray-Tracer

Basic sphere raytracer.

Slide Rule

A slide rule.

Games

3D Projective Tic Tac Toe (⭐)

A variant of 3D tic tac toe where the pieces project into 2D.

3D Tile Puzzle

3D sliding tile puzzle.

Asteroids I

A surprisingly decent Asteroids game.

Asteroids II - The Vector (⭐)

Another surprisingly decent Asteroids game.

Battle for Planet Vector

A vector space survival game.

bblock (⭐)

A simple game of tapping blocks.

Bridge

Cross the lava bridge.

Create (⭐)

A recursive art "game".

Finger Game Oracle (⭐)

An oracle for solving the "finger game" / "chopsticks" hand game.

Fission

A simple game about preventing runaway nuclear fission.

Marble Madness (⭐)

Let's face it—you're a marble.

MiniTank

Simple blob-destroying survival game.

Pente

An ancient and incomplete Pente game.

Ping Pang Pong (⭐)

Everyone needs a pong clone.

Robot War

Rudimentary tank driving game.

Spacewar

Bad spacewar clone.

Spacewar Multi

Online spacewar clone in a maze.

Libraries

OpenGL Library (glLib*)

My first attempt at a fixed-function OpenGL graphics library.

Shader OpenGL Library

Second-generation OpenGL library. Uses shaders.

glLib Reloaded

Advanced OpenGL graphics library.

Mastermind Networking Library (⭐)

A decent, basic networking library.

Perlin Noise

Perlin noise test.

Pygame Advanced Graphics Library (PAdLib) (⭐)

Library for 2D graphics effects.

Settings

Fake GUI for noobs, by noob.

Some libraries formerly here were C++ libraries, and have been moved here.


Physics / Collision / Simulation

Circle Refract

Refract a beam through a grid of spheres.

Field Intersections (⭐)

Visualization tool for 2D \(r^2\)-falloff fields.

Fracture

Basic physics simulation of breakable structures.

Gravity Simulation

A simple n-body simulation.

Gravity Situation

An n-body simulation where the central object suddenly explodes.

Circle Collisions

Test of circle collisions and response.

Sphere Collisions

Test of sphere collisions and response.

Effects / Tech Demos

Antialias

Fake antialiasing by filtering images.

MIDI Mandelbrot (⭐)

Converting the Mandelbrot Set to sound.

Realtime CPU Cloth (⭐)

CPU-based, basic cloth simulation.

Realtime Cubic Reflection Mapping

Fixed-function cubemapping.

Circles of Influence

When you don't know what Voronoi is.

3D Rotations

Testing 3D rotations.

Frustum Culling

Test to try to figure out frustum culling.

Miscellaneous

Hyperbola Bar (⭐)

Demonstration that a bar can be rotated through a hyperbola.

Parabola

Interactive parabola.

Countdown

Countdown timer demo.

Honeycomb

Just a 3D honeycomb.

Notes