LD is the [Ludum Dare game jam](https://ldjam.com/), 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](https://github.com/ErikBot42). I have done both art and programming for all of them.
Most of my shaders are made in Unity and uploaded as props for ChilloutVR. All my ChilloutVR props are in [this repository](https://git.crispypin.cc/CrispyPin/cvr-props).
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](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)
A [quine](https://en.wikipedia.org/wiki/Self-reproducing_program) 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.
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.
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.
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](https://git.crispypin.cc/CrispyPin/cvr-props/src/branch/main/Assets/raymarched/lib)
I also made a web version of this in may 2021, see [gol.crispypin.cc](https://gol.crispypin.cc/?cellsize=10&time=2) or [github.com/CrispyPin/gol-wallpaper](https://github.com/CrispyPin/gol-wallpaper) for the source
==image:"/media/shaders/game_of_life.png":"Conway's game of life"
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.
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.
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.
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)
When I was solving some [Advent of Code](https://adventofcode.com/2023) problems in [Brainfuck](https://esolangs.org/wiki/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.
==image:"/media/bf_debugger.png"
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](https://git.crispypin.cc/CrispyPin/aoc-2023/src/branch/main/bf)
`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).
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.
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.
==image:"/media/neuralblender_minecraft.png":"minecraft with very weird textures. Poppy flowers are cursed"