From e9983296ef687a1da9c51d51c58b8c3f5f157f32 Mon Sep 17 00:00:00 2001 From: Silas Bartha Date: Wed, 19 Feb 2025 15:15:48 -0500 Subject: forum project page --- content/projects/forum/evil.png | Bin 0 -> 54467 bytes content/projects/forum/hills.png | Bin 0 -> 104620 bytes content/projects/forum/index.md | 46 +++++++++++++++++++++++++++++++++++++ content/projects/forum/pyramid.png | Bin 0 -> 172925 bytes 4 files changed, 46 insertions(+) create mode 100644 content/projects/forum/evil.png create mode 100644 content/projects/forum/hills.png create mode 100644 content/projects/forum/index.md create mode 100644 content/projects/forum/pyramid.png (limited to 'content/projects/forum') diff --git a/content/projects/forum/evil.png b/content/projects/forum/evil.png new file mode 100644 index 0000000..14047b0 Binary files /dev/null and b/content/projects/forum/evil.png differ diff --git a/content/projects/forum/hills.png b/content/projects/forum/hills.png new file mode 100644 index 0000000..c0c0e89 Binary files /dev/null and b/content/projects/forum/hills.png differ diff --git a/content/projects/forum/index.md b/content/projects/forum/index.md new file mode 100644 index 0000000..caa6288 --- /dev/null +++ b/content/projects/forum/index.md @@ -0,0 +1,46 @@ ++++ +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 new file mode 100644 index 0000000..5b7bfd7 Binary files /dev/null and b/content/projects/forum/pyramid.png differ -- cgit v1.2.3