this page is a work in progress
Portfolio
Hi, this is a non-exhaustive list of my personal projects. It appears I like making things with computers.
For my 3D art see /blender and photography at /photos
The dates listed are generally the last time any significant change was made, for projects that spanned several months.
categories
- hardware
- game jam games
- shaders
- raymarching shaders
- utilities
- misc
hardware
leko pona
2022-08
source: https://git.crispypin.cc/CrispyPin/leko-pona
(The deskmat texture was created with my julia fractal renderer)
ch32v003 oled board
project files: git.crispypin.cc/CrispyPin/ch32_oled
bad apple
2024-04
source: git.crispypin.cc/CrispyPin/bad-apple
https://youtu.be/G0eonL14tCQ
Conways Game of Life
2024-04
Runner game
2024-04
rotary encoder keyboard
2022-05
github.com/CrispyPin/rotary-kb
A silly project making a terrible input device. You select a letter by rotating right and left moving down a tree, and press to type it.
jam games
LD is the Ludum Dare game jam, where you have 3 days to create a game fitting to a theme that is revealed when the jam starts.
All the below games except for LD45: Mind the Gap
I made together with Erikbot. I have done both art and programming for all of them.
LD50: Pixel Entropy
2022-04
crispypin.itch.io/ld-50
github.com/CrispyPin/ld-50
LD49: Shork Inc
2021-09
crispypin.itch.io/ld-49
github.com/CrispyPin/ld-49
LD48: Shork
2021-04
crispypin.itch.io/ld-48
github.com/CrispyPin/ld-48
LD47: Dynamic Flux Entropy
2020-10
crispypin.itch.io/ld-47
github.com/CrispyPin/ld-47
LD46: Tree Shroomulator
2020-04
crispypin.itch.io/ld-46
LD45: Mind the Gap
2019-10
crispypin.itch.io/ld-45
Blackthornprod gamejam 2: Starship: Conquer Space
2019-04
crispypin.itch.io/starship-conquer-space
LD43: The robot's adventure
2018-12
crispypin.itch.io/ld-43
LD42: Forklift Simulator
2018-08
crispypin.itch.io/ld-42
shaders
Most of my shaders are made in Unity and uploaded as props for ChilloutVR. All my ChilloutVR props are in this repository.
void sphere
2024-09
My first time making a vertex shader, it generally works on any simple mesh.
hilbert worms
2024-09
Little worms following the hilbert curve
partial QR code
2024-08
A shader that can display qr codes of any size, though it requires computing the error correction codes beforehand. Partially because it would be slow to do for every pixel every frame, but mostly because I couldn't find a resource explaining how to do it.
(I used https://www.nayuki.io/page/creating-a-qr-code-step-by-step as a reference, though the algorithm is very different because I'm using a shader)
shader quine
2024-08
A quine is a program that outputs its own source code. Since shaders don't have text or file outputs, a shader quine must render its own source code instead. This shader contains the font data required to be readable.
shader quine golf
2024-08
Code golf is the art of shortening a program as much as possible while still producing a required behavior. I made a tiny version of the quine, only 2877 bytes large. At the end it does render some random characters, but I still consider it valid. When code golfing, undefined behaviour is part of the fun.
sunset
2023-02
This is a single fragment shader, which means you can put it on any mesh and it will look the same.
julia fractal
2023-07
They are both animated slowly, but the second one has distortion based on world position.
andriod
2024-05
source: git.crispypin.cc/CrispyPin/android-shaders
Using the app Shader Editor, I made some shaders for my phones' wallpaper.
binary clock variants
2024-05
The 4x4 version divides the day into 2^16 sections, each one about 1.3s long, and displays the number of sections passed since midnight as a binary number.
This 3-row version uses the traditional division of hours, minutes and seconds, just displaying the three numbers in binary.
raymarching
libgarbage
2023-07
libgarbage is my raymarching shader library, with which all the following shaders are made with. It doesn't have its own repository right now, but can be found in git.crispypin.cc/CrispyPin/cvr-props
libgarbage demo
2023-09
An example scene made for libgarbage, showing most of the primitive shapes available.
spinny thing
2023-07
flesh cube
2023-07
big nut
2023-09
I am very mature.
loops
2024-08
boxes
2024-08
cellular automata
game of life
2023-07
I also made a web version of this in may 2021, see gol.crispypin.cc or github.com/CrispyPin/gol-wallpaper for the source
rule 110
2023-09
See Elementary cellular automaton (Wikipedia).
WireWorld
Lenia/smoothlife
godot
voxel raymarcher
utilities
These programs are less flashy and were made out of necessity. I don't expect anyone else to want to use them, but they are available if that was the case.
snoud
2023-02
source: https://git.crispypin.cc/CrispyPin/snoud
A simple terminal app that plays multiple audio files on loop, meant for background ambience. I use it for rain and wind sound and have it auto-start when I log in.
htmd
2024-09
source: https://git.crispypin.cc/CrispyPin/htmd
This is the markdown to html generator that this site is built with. It uses markdown as a base but is far from standard markdown, it has weird quirks and macros that I needed.
webserver
2024-07
source: https://git.crispypin.cc/CrispyPin/webserver
Made at first to learn, then to run this website. It seves files and supports partial requests, allowing you to watch videos without needing the whole file to be cached first. (videos are still partially broken, only some formats work properly)
julia fractal renderer
2023-07
source: https://git.crispypin.cc/CrispyPin/julia-fractal-renderer
I used this to generate the image printed on my deskmat, seen in the picture of my keyboard
(see source repo for more examples)
brainfuck debugger
2023-12
source: https://git.crispypin.cc/CrispyPin/bf-debugger
When I was solving some Advent of Code problems in Brainfuck, I found myself missing the ability to set breakpoints and step a number of iterations through the program, so I made an interactive brainfuck debugger.
I used this to develop solutions for part one of day 1 and 4, in advent of code 2023. These can be found here: https://git.crispypin.cc/CrispyPin/aoc-2023/src/branch/main/bf
text editor lili
2023-03
source: https://git.crispypin.cc/CrispyPin/lili
lili
is a terminal text editor that can keep multiple files open. It is far from perfect, it doesn't handle soft linebreaks well and lacks undo/redo. But wider characters at least work (tabs and emoji).
compiler-timer
2024-01
source: https://git.crispypin.cc/crispyPin/compiler-timer
At work, I was frustrated by 20-45 minute C++ compile times, so I made a compiler wrapper that keeps track of build times, and tells me the average time wasted per day.
Example output
(regular compiler output) Build took 18.025s Total wasted today: 44m 5s 5 day average: 35m 38s Overall average: 40m 22s Since 2023-09-07: 55h 11m 22s
GDVK godot virtual system input
SteamVR
OVR Utils
sinpin-vr
steamvr_status
misc
snad
worm lang
asetniop emulator for x11
june
neuralblender-mc
2021-09
https://github.com/crispypin/neuralblender-mc
This was before the "AI" hype bubble became as obnoxious as it is now. I found the website neuralblender.com (no they don't deserve a hyperlink), which generated quite terrible images from a text prompt. There was no information about the website anywhere.
I made a stupid input-emulating script that ran in a vm and generated textures for every texture in minecraft 1.17.
The cursed flowers in the picture below are poppies, which for some reason resulted in a blue-haired cryptid in the corner.