Patrick Martin

This site is a collection of my personal projects, from programming to art to construction


The logo for the game 'Cave Runner'

Cave Runner3/11/2023

A procedurally generated roguelike game, built in 7 days for 7DRL 2023. Race through levels before they are flooded with goblins, and grab as much loot as you can carry!

Play it on Itch.io
The logo for p5.js

Rainbow Clone 27/20/2022

This is a long-term work in progress. Inspired by my concept from 2019, I decided to expand on the engine and add more features. This game, and the engine it runs on, are built entirely in javascript. P5.js acts as a renderer and game loop.

Play the game
The logo for Vue.js

Rainbow Level Editor7/11/2022

I use JSON to define levels for a game I'm working on. Unfortunately, manually writing JSON is a terrible way to build levels. To make building and testing more efficient, I created this tool.

Try the editor
The logo for p5.js

P5 Tree Generator7/11/2022

When building a game in P5, I needed a lot of trees. So, I built an procedure to generate trees using a seeded randomizer. When I need a tree, I just run the randomizer until I find one I like, and then copy the seed. The same procedure will rebuild the tree at runtime.

Generate some trees
Vector art depicting a hammer

Mid-century Dazor Lamp Repair4/5/2022

My antique lamp blew up a light bulb, so I decided to replace the socket. No commercially available sockets would fit the old form factor, so I designed a new housing and modified a new socket to fit.

View project
Vector art depicting a hammer

"Just Mount it Over the Fireplace!"4/5/2022

Due to the odd layout of my living room, there's only one place for a TV to go: Above the fireplace. To hide the cables, I decided to embed a conduit in my walls. This project took only one day, and another hour's worth of painting.

View project
Vector art depicting a hammer

World's Longest Bathroom Renovation4/5/2022

After moving into a new house, I found a lot of issues with the main bathroom. I decided to tear it out and rebuild it from scratch. The more I dug into it, the worse it got. Four or five months later, It's finally done.

View project
The logo for D3.js

Metro Stations as Process Diagrams5/12/2021

A process to build reasonable "Metro Map" drawings from connected nodes. Uses data structures similar to classic force-based network diagrams, but with additional constraints. This process is not generally reasonable to perform live due to the sheer number of calculations for each diagram.

See Examples on Observable
The logo for D3.js

Zoomable, Pannable SVG Grids5/12/2021

Grid patterns can help users orient themselves in a large interface. For large D3 visualizations, where users can zoom and pan, a grid can help them feel grounded as they move.

See Examples on Observable
The logo for the game 'Dungeons of Bonk'

Dungeons of Bonk3/12/2021

A procedurally generated roguelike game, built in 7 days for 7DRL 2021. This game reconciles physics-based and turn-based gameplay by settling the physics environment into a grid between moves.

Play it on Itch.io
The logo for Vue.js

Straight Line Analysis Tool12/23/2020

A tool to calculate the accuracy of a path between two points. This tool accounts for the curvature of the earth when measuring, resulting in higher accuracy than many first-party tools.

Use the Tool View the Source Code
Vector art depicting a 3d box

Toy Gun - Cyberpunk 2077 Tamayura12/5/2020

A toy pistol, modelled after one from a video game. This 3d-printable prop was built from scratch, using only reference photos from the game. The slide can be pulled back, but no other parts are functional.

Download from Thingiverse
The logo for three.js

JetSlide5/7/2019

Slide across a procedurally generated 3D landscape, entirely in your browser. This is a relaxing, endless idle game, built to emulate the mechanics of Starsiege: Tribes (1998).

Play the game
The logo for p5.js

Rainbow Clone Prototype5/7/2019

A 2D Platforming puzzle game. Play as a color-changing ball and roll to the portal at the end of each level.

Play the game
The logo for p5.js

Orball1/14/2019

In this browser game, you use orbital mechanics to fling a ball through a hoop. Get bonus points for style!

Play the game
The logo for p5.js

Little Planet Generator10/7/2018

This demo procedurally generates a tiny planet and some little trees. Meant to be used as part of a Lunar Lander style game, which ended up too confusing for players.

See the demo
The logo for p5.js

N Body Simulation10/1/2018

This demo uses P5 to display a simulation of around 200 "planets" as they float around in space. Gravity pulls them into interesting patterns. Planets will change color as their velocity changes. Click and hold to create a gravity well.

See the demo