summaryrefslogtreecommitdiff
path: root/content/projects
diff options
context:
space:
mode:
Diffstat (limited to 'content/projects')
-rw-r--r--content/projects/_index.md5
-rw-r--r--content/projects/bevy_blacklight_material/index.md16
-rw-r--r--content/projects/bevy_dither_post_process/index.md29
-rw-r--r--content/projects/bevy_dither_post_process/level_2.pngbin59120 -> 0 bytes
-rw-r--r--content/projects/bevy_dither_post_process/level_3.pngbin60434 -> 0 bytes
-rw-r--r--content/projects/bevy_dither_post_process/level_4.pngbin59292 -> 0 bytes
-rw-r--r--content/projects/bevy_headless_render/index.md13
-rw-r--r--content/projects/bevy_outline_post_process/index.md28
-rw-r--r--content/projects/bevy_outline_post_process/threshold_10.pngbin166203 -> 0 bytes
-rw-r--r--content/projects/bevy_outline_post_process/threshold_10_adaptive.pngbin169214 -> 0 bytes
-rw-r--r--content/projects/bevy_outline_post_process/threshold_10_thick.pngbin127530 -> 0 bytes
-rw-r--r--content/projects/bevy_outline_post_process/threshold_10_thin.pngbin194280 -> 0 bytes
-rw-r--r--content/projects/bevy_rustysynth/index.md12
-rw-r--r--content/projects/bevy_terminal_display/dialog.pngbin38779 -> 0 bytes
-rw-r--r--content/projects/bevy_terminal_display/index.md28
-rw-r--r--content/projects/bevy_terminal_display/sponza.pngbin40621 -> 0 bytes
-rw-r--r--content/projects/forum/evil.pngbin54467 -> 0 bytes
-rw-r--r--content/projects/forum/hills.pngbin104620 -> 0 bytes
-rw-r--r--content/projects/forum/index.md46
-rw-r--r--content/projects/forum/pyramid.pngbin172925 -> 0 bytes
-rw-r--r--content/projects/mons/index.md20
-rw-r--r--content/projects/piss_daemon/index.md35
-rw-r--r--content/projects/piss_daemon/statusbar.pngbin4546 -> 0 bytes
-rw-r--r--content/projects/pomd/index.md31
-rw-r--r--content/projects/pomd/statusbar.pngbin9883 -> 0 bytes
25 files changed, 0 insertions, 263 deletions
diff --git a/content/projects/_index.md b/content/projects/_index.md
deleted file mode 100644
index 8448ec5..0000000
--- a/content/projects/_index.md
+++ /dev/null
@@ -1,5 +0,0 @@
-+++
-title = "projects"
-template = "projects.html"
-page_template = "project-page.html"
-+++
diff --git a/content/projects/bevy_blacklight_material/index.md b/content/projects/bevy_blacklight_material/index.md
deleted file mode 100644
index fb6b0c0..0000000
--- a/content/projects/bevy_blacklight_material/index.md
+++ /dev/null
@@ -1,16 +0,0 @@
-+++
-title = "bevy_blacklight_material"
-[taxonomies]
-categories = ["bevy plugin"]
-languages = ["rust", "wgsl"]
-[extra]
-github = ["soaos/bevy_blacklight_material"]
-crates = ["bevy_blacklight_material"]
-git = ["bevy_blacklight_material"]
-+++
-
-this plugin for the [bevy](https://bevyengine.org) engine provides a "blacklight" material which is visible based on the properties of specially-marked spotlights.
-
-i wrote this one day, i kind of forget why.
-
-probably for a puzzle in my upcoming game project.
diff --git a/content/projects/bevy_dither_post_process/index.md b/content/projects/bevy_dither_post_process/index.md
deleted file mode 100644
index 1357766..0000000
--- a/content/projects/bevy_dither_post_process/index.md
+++ /dev/null
@@ -1,29 +0,0 @@
-+++
-title = "bevy_dither_post_process"
-[taxonomies]
-categories = ["bevy plugin"]
-languages = ["rust", "wgsl"]
-[extra]
-github = ["soaosdev/bevy_dither_post_process"]
-crates = ["bevy_dither_post_process"]
-+++
-
-this plugin allows you to add a "monochromatic ordered dithering" post-processing effect to cameras in your bevy engine application
-
-![level 3](level_3.png)
-
-the dithering is monochromatic (black & white) and ordered (using the bayer method) (i'm gonna write a blog post about this soon)
-
-it can be configured with the "level" of dithering to perform (i.e. the size of the bayer matrix to use, where level *n* results in a matrix of size *2^(n+1)*)
-
-![level 2](level_2.png)
-![level 4](level_4.png)
-
-i wrote this plugin to enhance the performance of my ongoing game project
-
-originally i did all the dithering on the CPU, and while it was not a huge performance drain due to the screen size being relatively small in the terminal, i figured it would be a good idea to convert it into a shader to take advantage of the GPU and parallelism
-
-since i was using ordered dithering anyways it was pretty easy to port over, since that kind of dithering is super parallelizable on account of not needing to know anything about any other fragment on the screen unlike some methods that provide superior visual quality
-
-the reason i chose ordered dithering though was that other methods produced too much "jitter" when applied to moving objects which was pretty disorienting
-
diff --git a/content/projects/bevy_dither_post_process/level_2.png b/content/projects/bevy_dither_post_process/level_2.png
deleted file mode 100644
index a6104ff..0000000
--- a/content/projects/bevy_dither_post_process/level_2.png
+++ /dev/null
Binary files differ
diff --git a/content/projects/bevy_dither_post_process/level_3.png b/content/projects/bevy_dither_post_process/level_3.png
deleted file mode 100644
index 28cb461..0000000
--- a/content/projects/bevy_dither_post_process/level_3.png
+++ /dev/null
Binary files differ
diff --git a/content/projects/bevy_dither_post_process/level_4.png b/content/projects/bevy_dither_post_process/level_4.png
deleted file mode 100644
index acc4d2c..0000000
--- a/content/projects/bevy_dither_post_process/level_4.png
+++ /dev/null
Binary files differ
diff --git a/content/projects/bevy_headless_render/index.md b/content/projects/bevy_headless_render/index.md
deleted file mode 100644
index 3113ef9..0000000
--- a/content/projects/bevy_headless_render/index.md
+++ /dev/null
@@ -1,13 +0,0 @@
-+++
-title = "bevy_headless_render"
-[taxonomies]
-categories = ["bevy plugin"]
-languages = ["rust"]
-[extra]
-github = ["soaosdev/bevy_headless_render"]
-crates = ["bevy_headless_render"]
-+++
-
-this plugin is pretty simple, it just allows you to set up a render texture to be extracted for use on the CPU every frame
-
-i made this plugin as part of a game project super early on when i needed a copy of the rendered frame in the main world to be rendered as braille to the screen
diff --git a/content/projects/bevy_outline_post_process/index.md b/content/projects/bevy_outline_post_process/index.md
deleted file mode 100644
index 3c828e6..0000000
--- a/content/projects/bevy_outline_post_process/index.md
+++ /dev/null
@@ -1,28 +0,0 @@
-+++
-title = "bevy_outline_post_process"
-[taxonomies]
-categories = ["bevy plugin"]
-languages = ["rust", "wgsl"]
-[extra]
-github = ["soaosdev/bevy_outline_post_process"]
-crates = ["bevy_outline_post_process"]
-+++
-
-this plugin allows you to add outlines to a camera as a post-processing effect in the bevy engine
-
-![0.1 threshold, 2.0 thickness](threshold_10.png)
-
-the effect makes use of a normal prepass to determine surface normals of objects in view, and then uses the differences between those normal values to determine where outlines should occur
-
-the effect is configurable, you can change the thickness of the outlines and the threshold (how significant the difference between normals need to be for an outline to appear)
-
-![0.1 threshold, 1.0 thickness](threshold_10_thin.png)
-![0.1 threshold, 4.0 thickness](threshold_10_thick.png)
-
-there's also an option to enable *adaptive outlines*, so that darker areas get outlined with white and brighter areas are outlined with black
-
-![adaptive](threshold_10_adaptive.png)
-
-i created this effect to improve visual contrast in my game project, which is why i haven't added support for different colors
-
-you're free to add it yourself though, probably wouldn't be too hard
diff --git a/content/projects/bevy_outline_post_process/threshold_10.png b/content/projects/bevy_outline_post_process/threshold_10.png
deleted file mode 100644
index 4490bd5..0000000
--- a/content/projects/bevy_outline_post_process/threshold_10.png
+++ /dev/null
Binary files differ
diff --git a/content/projects/bevy_outline_post_process/threshold_10_adaptive.png b/content/projects/bevy_outline_post_process/threshold_10_adaptive.png
deleted file mode 100644
index 6ad93d9..0000000
--- a/content/projects/bevy_outline_post_process/threshold_10_adaptive.png
+++ /dev/null
Binary files differ
diff --git a/content/projects/bevy_outline_post_process/threshold_10_thick.png b/content/projects/bevy_outline_post_process/threshold_10_thick.png
deleted file mode 100644
index 85eaaf0..0000000
--- a/content/projects/bevy_outline_post_process/threshold_10_thick.png
+++ /dev/null
Binary files differ
diff --git a/content/projects/bevy_outline_post_process/threshold_10_thin.png b/content/projects/bevy_outline_post_process/threshold_10_thin.png
deleted file mode 100644
index fbb867e..0000000
--- a/content/projects/bevy_outline_post_process/threshold_10_thin.png
+++ /dev/null
Binary files differ
diff --git a/content/projects/bevy_rustysynth/index.md b/content/projects/bevy_rustysynth/index.md
deleted file mode 100644
index 12ae97e..0000000
--- a/content/projects/bevy_rustysynth/index.md
+++ /dev/null
@@ -1,12 +0,0 @@
-+++
-title = "bevy_rustysynth"
-draft = true
-[taxonomies]
-categories = ["bevy plugin"]
-languages = ["rust", "wgsl"]
-[extra]
-github = ["soaosdev/bevy_rustysynth"]
-crates = ["bevy_rustysynth"]
-git = ["bevy_rustysynth"]
-+++
-
diff --git a/content/projects/bevy_terminal_display/dialog.png b/content/projects/bevy_terminal_display/dialog.png
deleted file mode 100644
index d9281f2..0000000
--- a/content/projects/bevy_terminal_display/dialog.png
+++ /dev/null
Binary files differ
diff --git a/content/projects/bevy_terminal_display/index.md b/content/projects/bevy_terminal_display/index.md
deleted file mode 100644
index 2aab246..0000000
--- a/content/projects/bevy_terminal_display/index.md
+++ /dev/null
@@ -1,28 +0,0 @@
-+++
-title = "bevy_terminal_display"
-[taxonomies]
-categories = ["bevy plugin"]
-languages = ["rust"]
-[extra]
-very_cool = true
-github = ["soaosdev/bevy_terminal_display"]
-crates = ["bevy_terminal_display"]
-+++
-
-this plugin allows you to render from a camera to the terminal using [unicode braille characters](https://en.wikipedia.org/wiki/Braille_Patterns)
-
-![sponza](sponza.png)
-
-it makes use of the [bevy_headless_render](@/projects/bevy_headless_render/index.md) plugin for headless rendering, and then uses the [bevy_dither_post_process](@/projects/bevy_dither_post_process/index.md) plugin to dither the captured frame before converting the black and white pixels into the appropriate characters and printing them to the terminal
-
-this plugin uses the [ratatui](https://crates.io/crates/ratatui) and [crossterm](https://crates.io/crates/crossterm) for rendering to the terminal
-
-this plugin manages a `TerminalInput` resource which keeps track of pressed keys
-
-this plugin also has facilities for creating and rendering ratatui widgets
-
-here's an example of a dialog box and option selection widget i've implemented in one of my WIP projects
-
-![dialog widget](dialog.png)
-
-in that project, i also make use of the [bevy_outline_post_process](@/projects/bevy_outline_post_process/index.md) for additional visual contrast
diff --git a/content/projects/bevy_terminal_display/sponza.png b/content/projects/bevy_terminal_display/sponza.png
deleted file mode 100644
index 6568cf3..0000000
--- a/content/projects/bevy_terminal_display/sponza.png
+++ /dev/null
Binary files differ
diff --git a/content/projects/forum/evil.png b/content/projects/forum/evil.png
deleted file mode 100644
index 14047b0..0000000
--- a/content/projects/forum/evil.png
+++ /dev/null
Binary files differ
diff --git a/content/projects/forum/hills.png b/content/projects/forum/hills.png
deleted file mode 100644
index c0c0e89..0000000
--- a/content/projects/forum/hills.png
+++ /dev/null
Binary files differ
diff --git a/content/projects/forum/index.md b/content/projects/forum/index.md
deleted file mode 100644
index caa6288..0000000
--- a/content/projects/forum/index.md
+++ /dev/null
@@ -1,46 +0,0 @@
-+++
-title = "forum"
-[taxonomies]
-categories = ["game"]
-languages = ["jsx", "sass", "python"]
-[extra]
-wip = true
-git = ["forum"]
-+++
-
-this is a little CRUD project i wrote when trying to refresh my full stack skills
-
-i used react and three.js (via [react three fiber](https://r3f.docs.pmnd.rs/getting-started/introduction)) for the frontend and flask for the backend
-
-i was originally using mongodb for the database but ran into issues with it being unsupported on the raspberry pi 4's architecture so i had to rewrite the backend to use sqlite instead
-
-you can play it in your browser (on desktop): [https://forum.soaos.dev](https://forum.soaos.dev)
-
-it's a game where you can walk around a 3D environment and place text notes around for others to read
-
-you can edit and remove notes that you wrote as well
-
-![image of the forum's rolling hills](./hills.png)
-
-i was inspired by this one minigame from [the beginner's guide](https://en.wikipedia.org/wiki/The_Beginner%27s_Guide) where you walk around and read notes that were supposedly left by other users
-
-there was some point in the game about it really just being one guy talking to himself or something but i just thought it would be a really cool thing if it was real
-
-![image of looming pyramid](./pyramid.png)
-
-my friends had a lot of fun defacing the place
-
-some people got a bit clever and started making manual api requests to put messages in impossible places
-
-![image of unspeakable evil](./evil.png)
-
-i had to implement server-side validation of message positions which was less of a pain in the ass than i had hoped
-
-i went the naive route of just loading the terrain model into the backend and using the open3d library to do a distance check
-
-there's still a fair amount of polish to put on this project but people seemed to enjoy it a lot
-
-it would be cool if someone stumbled on this project a long time from now and saw what people were writing
-
-i know i would be fascinated
-
diff --git a/content/projects/forum/pyramid.png b/content/projects/forum/pyramid.png
deleted file mode 100644
index 5b7bfd7..0000000
--- a/content/projects/forum/pyramid.png
+++ /dev/null
Binary files differ
diff --git a/content/projects/mons/index.md b/content/projects/mons/index.md
deleted file mode 100644
index 2a57777..0000000
--- a/content/projects/mons/index.md
+++ /dev/null
@@ -1,20 +0,0 @@
-+++
-title = "mons"
-[taxonomies]
-categories = ["misc"]
-languages = ["c"]
-[extra]
-wip = true
-git = ["mons"]
-+++
-
-mons is a big repo of c stuff i'm writing "from scratch"
-
-it's an ever-expanding collection of filth, including:
-
-- linear algebra
-- data structures
-- a json de/serializer
-- a qoi image decoder
-- a (non-compliant) gltf parser
-- an opengl-based 3d graphics library
diff --git a/content/projects/piss_daemon/index.md b/content/projects/piss_daemon/index.md
deleted file mode 100644
index c409332..0000000
--- a/content/projects/piss_daemon/index.md
+++ /dev/null
@@ -1,35 +0,0 @@
-+++
-title = "piss daemon"
-[taxonomies]
-categories = ["utility"]
-languages = ["rust"]
-[extra]
-finished = "december 2024"
-git = ["piss-daemon"]
-+++
-this is a dbus daemon (`pissd`) and client (`piss-level`) that monitor the international space station's urine tank level
-
-i have it integrated into my status bar (X version):
-
-![](./statusbar.png)
-
-```bash
-#...
-
-function piss {
- PISS_LEVEL="$(piss-level)";
- if [ -n "$PISS_LEVEL" ]; then
- echo "  ${PISS_LEVEL}%";
- fi;
-}
-
-#...
-
-while true; do
- xsetroot -name "$(piss)$(batt)$(datetime)";
- sleep 1;
-done;
-```
-
-i made this pretty much entirely so that i could call a program "piss daemon"
-
diff --git a/content/projects/piss_daemon/statusbar.png b/content/projects/piss_daemon/statusbar.png
deleted file mode 100644
index b98e021..0000000
--- a/content/projects/piss_daemon/statusbar.png
+++ /dev/null
Binary files differ
diff --git a/content/projects/pomd/index.md b/content/projects/pomd/index.md
deleted file mode 100644
index 93bc734..0000000
--- a/content/projects/pomd/index.md
+++ /dev/null
@@ -1,31 +0,0 @@
-+++
-title = "pomd"
-description = "pomodoro timer daemon"
-[taxonomies]
-categories = ["utility"]
-languages = ["rust"]
-[extra]
-finished = "november 2023"
-github = ["soaosdev/pomd", "soaosdev/pomc"]
-crates = ["pomd", "pomc"]
-+++
-
-this was a pretty simple rust project i did over the course of a couple days
-
-i had been wanting to experiment with d-bus on linux for a while and figured that writing a pomodoro daemon and client would be a good way to understand the basics of how d-bus interfaces work
-
-luckily i found the wonderful [zbus](https://crates.io/crates/zbus) crate which made everything for hooking up interface super simple
-
-i think the hardest thing about this project was trying to figure out how to accurately keep the time left in the timer
-
-as with many problems in rust the solution ended up being to find a [crate](https://crates.io/crates/pausable_clock) that implemented a "pausable clock" that worked similarly to a normal rust `std::time::Instant`
-
-it's pretty configurable from what i remember
-
-i used this program when i was using [dwm](https://dwm.suckless.org) and wanted a daemon to integrate into my statusbar
-
-![pomd segment in my dwm statusbar](statusbar.png)
-
-now i use KDE plasma which has a pretty good pomodoro applet available, maybe in the future i could make some kind of widget that communicates with the daemon
-
-
diff --git a/content/projects/pomd/statusbar.png b/content/projects/pomd/statusbar.png
deleted file mode 100644
index 6ca820a..0000000
--- a/content/projects/pomd/statusbar.png
+++ /dev/null
Binary files differ