portfolio: add category list, cvr-props link, formatting

This commit is contained in:
Crispy 2024-08-27 23:30:36 +02:00
parent 67f6c0fdf1
commit eff12deaea
2 changed files with 53 additions and 4 deletions

View file

@ -15,6 +15,14 @@
<p> <p>
Hi, this is a non-exhaustive list of my personal projects. It appears I like making things with computers. The dates listed are the last time any significant change was made, for projects that spanned several months.<br> Hi, this is a non-exhaustive list of my personal projects. It appears I like making things with computers. The dates listed are the last time any significant change was made, for projects that spanned several months.<br>
</p> </p>
<h2 id="categories">categories</h2>
<p>
- <a href="#hardware">hardware</a><br>
- <a href="#jam-games">game jam games</a><br>
- <a href="#shaders">shaders</a><br>
- <a href="#raymarching">raymarching shaders</a><br>
- <a href="#utilities">utilities</a><br>
</p>
<h1 id="hardware">hardware</h1> <h1 id="hardware">hardware</h1>
<h3 id="leko-pona">leko pona</h3> <h3 id="leko-pona">leko pona</h3>
<p> <p>
@ -43,6 +51,9 @@ source: <a href="https://git.crispypin.cc/CrispyPin/bad-apple/">git.crispypin.cc
<video loading="lazy" src="/media/musi_pi_soweli_tawa.mp4" alt="simple runner game, similar to the chrome dino game" title="simple runner game, similar to the chrome dino game" controls ></video> <video loading="lazy" src="/media/musi_pi_soweli_tawa.mp4" alt="simple runner game, similar to the chrome dino game" title="simple runner game, similar to the chrome dino game" controls ></video>
</p> </p>
<h2 id="rotary-encoder-keyboard">rotary encoder keyboard</h2> <h2 id="rotary-encoder-keyboard">rotary encoder keyboard</h2>
<p>
TODO<br>
</p>
<h1 id="jam-games">jam games</h1> <h1 id="jam-games">jam games</h1>
<p> <p>
LD is the <a href="https://ldjam.com/">Ludum Dare game jam</a>, where you have 3 days to create a game fitting to a theme that is revealed when the jam starts.<br> LD is the <a href="https://ldjam.com/">Ludum Dare game jam</a>, where you have 3 days to create a game fitting to a theme that is revealed when the jam starts.<br>
@ -66,19 +77,22 @@ All the below games except for <code>LD45: Mind the Gap</code> I made together w
<h3 id="ld43-the-robots-adventure">LD43: The robot's adventure</h3> <h3 id="ld43-the-robots-adventure">LD43: The robot's adventure</h3>
<h3 id="ld42-forklift-simulator">LD42: Forklift Simulator</h3> <h3 id="ld42-forklift-simulator">LD42: Forklift Simulator</h3>
<h1 id="shaders">shaders</h1> <h1 id="shaders">shaders</h1>
<p>
Most of my shaders are made in Unity and uplaoded as props for ChilloutVR. All my ChilloutVR props are in <a href="https://git.crispypin.cc/CrispyPin/cvr-props">this repository</a>.<br>
</p>
<h3 id="partial-qr-code">partial QR code</h3> <h3 id="partial-qr-code">partial QR code</h3>
<p> <p>
<code>2024-08</code><br> <code>2024-08</code><br>
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.<br> 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.<br>
<video loading="lazy" src="/media/shaders/qr_shader_bit_order.mp4" alt="" title="" controls ></video> <video loading="lazy" src="/media/shaders/qr_shader_bit_order.mp4" alt="" title="" controls ></video>
</p> </p>
<h3 id="quine">quine</h3> <h3 id="shader-quine">shader quine</h3>
<p> <p>
<code>2024-08</code><br> <code>2024-08</code><br>
A <a href="https://en.wikipedia.org/wiki/Self-reproducing_program">quine</a> 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.<br> A <a href="https://en.wikipedia.org/wiki/Self-reproducing_program">quine</a> 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.<br>
<img loading="lazy" src="/media/shaders/shader_quine_198x99.png" alt="a large square of shader code, being rendered by itself" title="a large square of shader code, being rendered by itself"></img> <img loading="lazy" src="/media/shaders/shader_quine_198x99.png" alt="a large square of shader code, being rendered by itself" title="a large square of shader code, being rendered by itself"></img>
</p> </p>
<h3 id="golfed-quines">golfed quines</h3> <h3 id="shader-quine-golf">shader quine golf</h3>
<p> <p>
<code>2024-08</code><br> <code>2024-08</code><br>
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.<br> 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.<br>
@ -91,6 +105,9 @@ This is a single fragment shader, which means you can put it on any mesh and it
<img loading="lazy" src="/media/shaders/sunset_shader.png" alt="sunset over a calm ocean, with stars visible in the purple sky" title="sunset over a calm ocean, with stars visible in the purple sky"></img> <img loading="lazy" src="/media/shaders/sunset_shader.png" alt="sunset over a calm ocean, with stars visible in the purple sky" title="sunset over a calm ocean, with stars visible in the purple sky"></img>
</p> </p>
<h3 id="julia-fractal">julia fractal</h3> <h3 id="julia-fractal">julia fractal</h3>
<p>
TODO<br>
</p>
<h2 id="andriod">andriod</h2> <h2 id="andriod">andriod</h2>
<p> <p>
<code>2024-05</code><br> <code>2024-05</code><br>

View file

@ -1,5 +1,11 @@
# Portfolio # Portfolio
Hi, this is a non-exhaustive list of my personal projects. It appears I like making things with computers. The dates listed are the last time any significant change was made, for projects that spanned several months. Hi, this is a non-exhaustive list of my personal projects. It appears I like making things with computers. The dates listed are the last time any significant change was made, for projects that spanned several months.
## categories
- [hardware](#hardware)
- [game jam games](#jam-games)
- [shaders](#shaders)
- [raymarching shaders](#raymarching)
- [utilities](#utilities)
# hardware # hardware
### leko pona ### leko pona
@ -9,27 +15,33 @@ Hi, this is a non-exhaustive list of my personal projects. It appears I like mak
## ch32v003 oled board ## ch32v003 oled board
project files: [git.crispypin.cc/CrispyPin/ch32_oled](https://git.crispypin.cc/CrispyPin/ch32_oled) project files: [git.crispypin.cc/CrispyPin/ch32_oled](https://git.crispypin.cc/CrispyPin/ch32_oled)
### bad apple ### bad apple
`2024-04` `2024-04`
source: [git.crispypin.cc/CrispyPin/bad-apple/](https://git.crispypin.cc/CrispyPin/bad-apple/) source: [git.crispypin.cc/CrispyPin/bad-apple/](https://git.crispypin.cc/CrispyPin/bad-apple/)
==youtube:G0eonL14tCQ ==youtube:G0eonL14tCQ
### Conways Game of Life ### Conways Game of Life
`2024-04` `2024-04`
==video:"/media/ch32_gol.mp4":"conways game of life on a tiny display" ==video:"/media/ch32_gol.mp4":"conways game of life on a tiny display"
### Runner game ### Runner game
`2024-04` `2024-04`
==video:"/media/musi_pi_soweli_tawa.mp4":"simple runner game, similar to the chrome dino game" ==video:"/media/musi_pi_soweli_tawa.mp4":"simple runner game, similar to the chrome dino game"
## rotary encoder keyboard ## rotary encoder keyboard
TODO
# jam games # jam games
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. 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. 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.
### LD50: Pixel Entropy ### LD50: Pixel Entropy
`2022-04` `2022-04`
[crispypin.itch.io/ld-50](https://crispypin.itch.io/ld-50) [crispypin.itch.io/ld-50](https://crispypin.itch.io/ld-50)
[github.com/CrispyPin/ld-50](https://github.com/CrispyPin/ld-50) [github.com/CrispyPin/ld-50](https://github.com/CrispyPin/ld-50)
==image:"/media/pixel_entropy.png":"a 2D pixel physics sandbox" ==image:"/media/pixel_entropy.png":"a 2D pixel physics sandbox"
### LD49: Shork Inc ### LD49: Shork Inc
### LD48: Shork ### LD48: Shork
### LD47: Dynamic Flux Entropy ### LD47: Dynamic Flux Entropy
@ -38,28 +50,38 @@ All the below games except for `LD45: Mind the Gap` I made together with [Erikbo
### Blackthornprod gamejam 2: Starship: Conquer Space ### Blackthornprod gamejam 2: Starship: Conquer Space
### LD43: The robot's adventure ### LD43: The robot's adventure
### LD42: Forklift Simulator ### LD42: Forklift Simulator
# shaders # shaders
Most of my shaders are made in Unity and uplaoded as props for ChilloutVR. All my ChilloutVR props are in [this repository](https://git.crispypin.cc/CrispyPin/cvr-props).
### partial QR code ### partial QR code
`2024-08` `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. 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.
==video:"/media/shaders/qr_shader_bit_order.mp4" ==video:"/media/shaders/qr_shader_bit_order.mp4"
### quine
### shader quine
`2024-08` `2024-08`
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. 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.
==image:"/media/shaders/shader_quine_198x99.png":"a large square of shader code, being rendered by itself" ==image:"/media/shaders/shader_quine_198x99.png":"a large square of shader code, being rendered by itself"
### golfed quines
### shader quine golf
`2024-08` `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. 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.
==image:"/media/shaders/shader_quine_2877.png":"a smaller wall of text, with a low-resolution font that is just barely readable" ==image:"/media/shaders/shader_quine_2877.png":"a smaller wall of text, with a low-resolution font that is just barely readable"
### sunset ### sunset
`2023-02` `2023-02`
This is a single fragment shader, which means you can put it on any mesh and it will look the same. This is a single fragment shader, which means you can put it on any mesh and it will look the same.
==image:"/media/shaders/sunset_shader.png":"sunset over a calm ocean, with stars visible in the purple sky" ==image:"/media/shaders/sunset_shader.png":"sunset over a calm ocean, with stars visible in the purple sky"
### julia fractal ### julia fractal
TODO
## andriod ## andriod
`2024-05` `2024-05`
source: [git.crispypin.cc/CrispyPin/android-shaders](https://git.crispypin.cc/CrispyPin/android-shaders) source: [git.crispypin.cc/CrispyPin/android-shaders](https://git.crispypin.cc/CrispyPin/android-shaders)
Using the app [Shader Editor](https://f-droid.org/en/packages/de.markusfisch.android.shadereditor/), I made some shaders for my phones' wallpaper. Using the app [Shader Editor](https://f-droid.org/en/packages/de.markusfisch.android.shadereditor/), I made some shaders for my phones' wallpaper.
### binary clock variants ### binary clock variants
`2024-05` `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. 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.
@ -67,38 +89,48 @@ The 4x4 version divides the day into 2^16 sections, each one about 1.3s long, an
This 3-row version uses the traditional division of hours, minutes and seconds, just displaying the three numbers in binary. This 3-row version uses the traditional division of hours, minutes and seconds, just displaying the three numbers in binary.
==image:"/media/shaders/binary_clock.png":"3 rows of 5, 6 and 6 circles" ==image:"/media/shaders/binary_clock.png":"3 rows of 5, 6 and 6 circles"
## raymarching ## raymarching
### libgarbage ### libgarbage
`2023-07` `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](https://git.crispypin.cc/CrispyPin/cvr-props/src/branch/main/Assets/raymarched/lib) 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)
### libgarbage demo ### libgarbage demo
`2023-09` `2023-09`
An example scene made for libgarbage, showing most of the primitive shapes available. An example scene made for libgarbage, showing most of the primitive shapes available.
==video:"/media/shaders/rm_demo_scene.mp4":"a collection of sdf primitives with a reflective material" ==video:"/media/shaders/rm_demo_scene.mp4":"a collection of sdf primitives with a reflective material"
### spinny thing ### spinny thing
`2023-07` `2023-07`
==video:"/media/shaders/rm_spinny_thing.mp4" ==video:"/media/shaders/rm_spinny_thing.mp4"
### flesh cube ### flesh cube
`2023-07` `2023-07`
==video:"/media/shaders/rm_flesh_cube.mp4":"disgusting pulsating fleshy cube" ==video:"/media/shaders/rm_flesh_cube.mp4":"disgusting pulsating fleshy cube"
### big nut ### big nut
`2023-09` `2023-09`
==video:"/media/shaders/rm_big_nut.mp4":"a spinning metallic bolt and nut continually screwing and unscrewing itself" ==video:"/media/shaders/rm_big_nut.mp4":"a spinning metallic bolt and nut continually screwing and unscrewing itself"
### loops ### loops
`2024-08` `2024-08`
==video:"/media/shaders/rm_looping_loops.mp4":"11 rectangular frames moving through each other smoothly":loop=true ==video:"/media/shaders/rm_looping_loops.mp4":"11 rectangular frames moving through each other smoothly":loop=true
### boxes ### boxes
`2024-08` `2024-08`
==video:"/media/shaders/rm_boxes.mp4" ==video:"/media/shaders/rm_boxes.mp4"
## cellular automata ## cellular automata
### game of life ### game of life
`2023-07` `2023-07`
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 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" ==image:"/media/shaders/game_of_life.png":"Conway's game of life"
### rule 110 ### rule 110
`2023-09` `2023-09`
See [Elementary cellular automaton (Wikipedia)](https://en.wikipedia.org/wiki/Elementary_cellular_automaton). See [Elementary cellular automaton (Wikipedia)](https://en.wikipedia.org/wiki/Elementary_cellular_automaton).
==image:"/media/shaders/rule_110.png":"elementary cellular automata 110" ==image:"/media/shaders/rule_110.png":"elementary cellular automata 110"
### WireWorld ### WireWorld
### Lenia/smoothlife ### Lenia/smoothlife
## godot ## godot