|
30202
|
My first slack bot! by @Hamna2009 | Stardance
|
Hamna2009
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @Hamna2009 | Stardan Title: My first slack bot! by @Hamna2009 | Stardance...
|
1793339857.086266
|
1793944657.086266
|
|
33880
|
SDR by @Assassin | Stardance
|
Assassin
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: SDR by @Assassin | Stardance
|
1793339856.1664329
|
1793944656.1664329
|
|
44309
|
SnowPad by @leonjohns | Stardance
|
leonjohns
|
1
|
0.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-30T02:53:28Z", "hours": 0.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I have made a macropad named the snowpad, which consists of 12 keys, an OLED display and an RGB backlight. The challenging part of this project was definitely getting the measurement right the first time; I had to check the measurement of screws, switches and other components through many sources. I am proud to have gained valuable experience in KiCad and Fusion 360 while working on this project. After shipping this project, I plan to expand the firmware to support a built in timer.", "repo": "https://github.com/leonjohns-dev/SnowPad", "demo": ""}]...
|
[{"post_id": 75436, "ts": "202 [{"post_id": 75436, "ts": "2026-09-30T02:44:18Z", "hours": 0.4161, "text": "Finished After week of waiting my parts came through and I have finished assembling it, it was a bit bad as my MCU that came with the kit stopped working half way through so I had to switch to another one but it turned out pretty cool."}, {"post_id": 45934, "ts": "2026-08-12T18:37:04Z", "hours": 1.0503, "text": "Entry #4 -I am finally done with the PCB and the CAD for the pad -I tried creating the code for the pad. I first tried using QMK, which proved really difficult since there is no keyboard layout that matches my board -Now I am switching to KMK, but KMK through the POG configurator requires a board with CircuitPython, which I currently don’t have"}, {"post_id": 45522, "ts": "2026-08-12T02:04:06Z", "hours": 10.9767, "text": "Entry #3 I have continued my work on the macro pad, in these hours I have redone the wiring for the pcb as I had not used the copper pour for gnd, now the wiring is not that messy I have also started on my case on fusion 360"}, {"post_id": 42356, "ts": "2026-08-07T01:11:30Z", "hours": 6.6561, "text": "Entry #2 I have finished the pcb"}, {"post_id": 41539, "ts": "2026-08-05T20:12:32Z", "hours": 1.4022, "text": "Entry #1 I have made the schematic for my hackpad. I have come to a setup with a 4 by 3 switch matrix, RGB light, OLED display and a rotary encoder. This setup uses the max GPIO available on the Xiao, now onto the PCB"}]...
|
Title: SnowPad by @leonjohns | Stardance
Devlogs: Title: SnowPad by @leonjohns | Stardance
Devlogs:
Entry #1 I have made the schematic for my hackpad. I have come to a setup with a 4 by 3 switch matrix, RGB light, OLED display and a rotary encoder. This setup uses the max GPIO available on the Xiao, now onto the PCB
Entry #2 I have finished the pcb
Entry #3 I have continued my work on the macro pad, in these hours I have redone the wiring for the pcb as I had not used the copper pour for gnd, now the wiring is not that messy I have also started on my case on fusion 360
Entry #4 -I am finally done with the PCB and the CAD for the pad -I tried creating the code for the pad. I first tried using QMK, which proved really difficult since there is no keyboard layout that matches my board -Now I am switching to KMK, but KMK through the POG configurator requires a board with CircuitPython, which I currently don’t have
Finished After week of waiting my parts came through and I have finished assembling it, it was a bit bad as my MCU that came with the kit stopped working half way through so I had to switch to another one but it turned out pretty cool.
Ships:
I have made a macropad named the snowpad, which consists of 12 keys, an OLED display and an RGB backlight. The challenging part of this project was definitely getting the measurement right the first time; I had to check the measurement of screws, switches and other components through many sources. I am proud to have gained valuable experience in KiCad and Fusion 360 while working on this project. After shipping this project, I plan to expand the firmware to support a built in timer....
|
1793339854.9513898
|
1793426254.9513898
|
|
39014
|
My own site! by @kerlo | Stardance
|
kerlo
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My own site! by @kerlo | Stardance
|
1793339853.9765182
|
1793944653.9765182
|
|
10475
|
Untitled project by @ | Stardance
|
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled project by @ | Stardance
|
1793339853.074159
|
1793944653.074159
|
|
50499
|
Tung Tung Bot by @Harnav | Stardance
|
Harnav
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Tung Tung Bot by @Harnav | Stardance
|
1793339852.1441734
|
1793944652.1441734
|
|
44293
|
Frictionless by @vanshikagera | Stardance
|
vanshikagera
|
1
|
3.5
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-18T15:35:28Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "What did I make? I made Deadline Decider , aka AM I COOKED? XD — a little web app for those moments when you look at your workload and have absolutely no idea if you’re actually going to finish it 😭. You put in how much work you have, how much you’ve already done, how much time you have left, how many hours you can work, and your usual speed. It then does the math for you and tells you how much you need to do per day/hour, how long you’d need at your current pace, and whether you’re fine, getting tight, in crunch time, or… yeah… cooked 💀. I also made it work with different units like pages, problems, chapters, words, etc. :) What was challenging? Honestly, getting the actual calculator logic right was probably the hardest part because there are SO many little things that can go wrong 😭. I had to think about things like what happens if someone enters zero, finishes more work than they started with, has basically no time left, or puts in unrealistic numbers. Then there was the whole process of making the UI actually feel good instead of looking like a random calculator from 2008 XD. Getting everything to build, deploy, and actually work on Vercel also gave me a few ✨character development✨ moments. What am I proud of? I’m probably most proud that I actually took a random “wait… what if I made a thing for this?” idea and turned it into a real, usable project :D. It’s not just a calculator that spits out numbers — it turns a vague “omg I have SO MUCH TO DO” into something you can actually understand and act on. I’m also really happy with how the UI turned out because I wanted it to feel fun and slightly unserious while still being something you’d genuinely use. Anddd seeing it actually live on the internet after all the debugging was definitely a moment 😭 :) What should people know so they can test my project? Please actually try to break it XD . Enter some normal numbers first, like 100 total, 20 completed, 5 days left, 4 hours/day, and a speed of 5 per hour, then hit Calculate my fate . Try different units, change the numbers around, and definitely try weird/invalid inputs too because I built validation for those. You can also hit Reset to start over. Basically, give it your most chaotic deadline situation and see whether you’re fine, getting tight, in crunch time, or completely cooked 💀.", "repo": "https://github.com/Vanshika-Gera/deadline-decider", "demo": "https://deadline-decider.vercel.app/?utm_source=chatgpt.com"}]...
|
[{"post_id": 71607, "ts": "202 [{"post_id": 71607, "ts": "2026-09-21T04:51:01Z", "hours": 0.5036, "text": "3 QOL IMPROVEMENTS Daily workload calculationIt takes the amount of work left and deadline and tells the student how much they need to complete per day.Hourly workload calculationIt converts that workload into how much they need to complete per hour, based on the hours they can work each day.Pace/feasibility verdictIt compares the student’s required pace with their estimated normal pace and tells them whether they’re fine, getting tight, in crunch time, or cooked."}, {"post_id": 70133, "ts": "2026-09-18T15:12:09Z", "hours": 1.0067, "text": "Built and polished Deadline Decider, a small web app that turns deadline panic into actual numbers.The idea came from a simple problem: when students have a lot of work left and not much time, “I have so much to do” isn’t very useful. I wanted a tool that could take the workload, time available, and working speed and immediately tell you what pace you’d actually need.HOPE YOU GUYS LIKE IT :0"}, {"post_id": 69190, "ts": "2026-09-16T15:49:27Z", "hours": 0.3575, "text": "added four possible responses you can get! (though there might be more if you try to find then ;)) trying to make the site more elaborate!"}, {"post_id": 68997, "ts": "2026-09-16T05:52:01Z", "hours": 0.5164, "text": "here’s the initial interface :) you can put your work and pace and find out how you can improve your pace accordingly! :)"}, {"post_id": 68562, "ts": "2026-09-15T10:12:22Z", "hours": 0.8522, "text": "AM I COOKED? 🍳Started building a little tool that takes your workload + deadline and tells you whether you’re actually going to finish or you’re cooked"}]...
|
Title: Frictionless by @vanshikagera | Stardance
Title: Frictionless by @vanshikagera | Stardance
Devlogs:
AM I COOKED? 🍳Started building a little tool that takes your workload + deadline and tells you whether you’re actually going to finish or you’re cooked
here’s the initial interface :) you can put your work and pace and find out how you can improve your pace accordingly! :)
added four possible responses you can get! (though there might be more if you try to find then ;)) trying to make the site more elaborate!
Built and polished Deadline Decider, a small web app that turns deadline panic into actual numbers.The idea came from a simple problem: when students have a lot of work left and not much time, “I have so much to do” isn’t very useful. I wanted a tool that could take the workload, time available, and working speed and immediately tell you what pace you’d actually need.HOPE YOU GUYS LIKE IT :0
3 QOL IMPROVEMENTS Daily workload calculationIt takes the amount of work left and deadline and tells the student how much they need to complete per day.Hourly workload calculationIt converts that workload into how much they need to complete per hour, based on the hours they can work each day.Pace/feasibility verdictIt compares the student’s required pace with their estimated normal pace and tells them whether they’re fine, getting tight, in crunch time, or cooked.
Ships:
What did I make? I made Deadline Decider , aka AM I COOKED? XD — a little web app for those moments when you look at your workload and have absolutely no idea if you’re actually going to finish it 😭. You put in how much work you have, how much you’ve already done, how much time you have left, how many hours you can work, and your usual speed. It then does the math for you and tells you how much you need to do per day/hour, how long you’d need at your current pace, and whether you’re fine, getting tight, in crunch time, or… yeah… cooked 💀. I also made it work with different units like pages, problems, chapters, words, etc. :) What was challenging? Honestly, getting the actual calculator logic right was probably the hardest part because there are SO many little things that can go wrong 😭. I had to think about things like what happens if someone enters zero, finishes more work than they started with, has basically no time left, or puts in unrealistic numbers. Then there was the whole process of making the UI actually feel good instead of looking like a random calculator from 2008 XD. Getting everything to build, deploy, and actually work on Vercel also gave me a few ✨character development✨ moments. What am I proud of? I’m probably most proud that I actually took a random “wait… what if I made a thing for this?” idea and turned it into a real, usable project :D. It’s not just a calculator that spits out numbers — it turns a vague “omg I have SO MUCH TO DO” into something you can actually understand and act on. I’m also really happy with how the UI turned out because I wanted it to feel fun and slightly unserious while still being something you’d genuinely use. Anddd seeing it actually live on the internet after all the debugging was definitely a moment 😭 :) What should people know so they can test my project? Please actually try to break it XD . Enter some normal numbers first, like 100 total, 20 completed, 5 days left, 4 hours/day, and a speed of 5 per hour, then hit Calculate my fate . Try different units, change the numbers around, and definitely try weird/invalid inputs too because I built validation for those. You can also hit Reset to start over. Basically, give it your most chaotic deadline situation and see whether you’re fine, getting tight, in crunch time, or completely cooked 💀....
|
1793339850.8845758
|
1793426250.8845758
|
|
22503
|
Kairo by @NullClock | Stardance
|
NullClock
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Kairo by @NullClock | Stardance
|
1793339849.9364922
|
1793944649.9364922
|
|
50498
|
My awesome macropad! by @jc | Stardance
|
jc
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @jc | Stardance
|
1793339849.0181296
|
1793944649.0181296
|
|
40537
|
London Directions by @Tallini | Stardance
|
Tallini
|
1
|
10.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-26T06:55:29Z", "hours": 10.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "This is my website to calculate the fastest route and travel time between 2 stations on the London Underground", "repo": "https://github.com/leotallini/London-Tube-Directions", "demo": "https://london-tube-directions-rrhx.onrender.com/"}]...
|
[{"post_id": 55525, "ts": "202 [{"post_id": 55525, "ts": "2026-08-27T13:04:20Z", "hours": 7.0789, "text": "Finished UI for Website"}, {"post_id": 35919, "ts": "2026-07-27T17:50:16Z", "hours": 2.5117, "text": "Initial Journey Planner finished"}, {"post_id": 35747, "ts": "2026-07-27T11:54:44Z", "hours": 0.3217, "text": "Started work on using the TfL API"}]...
|
Title: London Directions by @Tallini | Stardance
Title: London Directions by @Tallini | Stardance
Devlogs:
Started work on using the TfL API
Initial Journey Planner finished
Finished UI for Website
Ships:
This is my website to calculate the fastest route and travel time between 2 stations on the London Underground...
|
1793339847.7972567
|
1793426247.7972567
|
|
50497
|
My awesome macropad! by @Etilia | Stardance
|
Etilia
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @Etilia | Stardance
|
1793339846.8884094
|
1793944646.8884094
|
|
2974
|
Untitled project by @andylin1476 | Stardance
|
andylin1476
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled project by @andylin1476 | Stardanc Title: Untitled project by @andylin1476 | Stardance...
|
1793339845.9117262
|
1793944645.9117262
|
|
50496
|
My first slack bot! by @Parth074K | Stardance
|
Parth074K
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @Parth074K | Stardan Title: My first slack bot! by @Parth074K | Stardance...
|
1793339844.9966056
|
1793944644.9966056
|
|
34521
|
StarTV by @Zaloguj12 | Stardance
|
Zaloguj12
|
1
|
7.0
|
24
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-22T19:49:50Z", "hours": 7.0, "multiplier": 2.81, "payout": 24, "blessing": "neutral", "text": "StarTV is a basic video streaming site, it uses direct file serving using FastAPI with an R2 Bucket Storage, it is deployed using Vercel. For now there are only 12 videos with more coming in the future, since it serves the videos directly it can be worse on slower internet or metered connections. It is a fun simple project to learn how APIs work and to learn how video streaming works. This was a fun project. I will maintain this for as long as I will be able to.", "repo": "https://github.com/zaloguj12/StarTV", "demo": "https://star-tv-ten.vercel.app/"}]...
|
[{"post_id": 72372, "ts": "202 [{"post_id": 72372, "ts": "2026-09-22T19:37:40Z", "hours": 0.4114, "text": "added a few videos"}, {"post_id": 63033, "ts": "2026-09-06T16:34:07Z", "hours": 0.58, "text": "i added a button to view every video as a json, and i updated the readme"}, {"post_id": 49950, "ts": "2026-08-18T22:57:06Z", "hours": 0.56, "text": "i added a quick fox section to the side to fill in the space that was left on the right. i added the invertocat github icon leading to the source. will probably focus on adding more videos before shipping"}, {"post_id": 49933, "ts": "2026-08-18T22:03:10Z", "hours": 0.3319, "text": "i scrapped the like and dislike buttons, i replaced them with a suggest button leading to my github pages issues. i added a few more videos to the site from my yt homepage. if you have any ideas to add as the videos then feel free to drop them in the comments or at https://github.com/zaloguj12/StarTV/issues"}, {"post_id": 44772, "ts": "2026-08-10T19:30:38Z", "hours": 0.5736, "text": "so dont have any reveleant screenshots, but moved storage to r2 and deployment is now by vercel"}, {"post_id": 42622, "ts": "2026-08-07T13:20:49Z", "hours": 2.3411, "text": "another dev log? i decided to use fastapi static files to “send” the videos to the users, now also each video and info about it is stored in a videos.json having its own id, title and file path, an http GET is sent to the api, to fetch a video selected with random.choice , the json is loaded and then serves valuable info that JS uses to update the src of the video player, but also to update <p></p> for title displaying, now also the whole server can be started from a single terminal so no need for 2 anymore. next up i think about implementing a system for liking/disliking videos, based on the reddit upvote/downvote system, so instead of two counters, there will be one. the little problem is still the videos/ folder being local which means, each user has to get their own .mp4 files but also update the videos.json with any new/updated info, i will look forward to making this system easier in the future"}, {"post_id": 30427, "ts": "2026-07-17T23:21:59Z", "hours": 2.2364, "text": "i started with a basic site, just a logo, and a video player. basic test are going good so far. but im not looking forward to implementing the random video feature as it will require JS🤢"}]...
|
Title: StarTV by @Zaloguj12 | Stardance
Devlogs:
Title: StarTV by @Zaloguj12 | Stardance
Devlogs:
i started with a basic site, just a logo, and a video player. basic test are going good so far. but im not looking forward to implementing the random video feature as it will require JS🤢
another dev log? i decided to use fastapi static files to “send” the videos to the users, now also each video and info about it is stored in a videos.json having its own id, title and file path, an http GET is sent to the api, to fetch a video selected with random.choice , the json is loaded and then serves valuable info that JS uses to update the src of the video player, but also to update <p></p> for title displaying, now also the whole server can be started from a single terminal so no need for 2 anymore. next up i think about implementing a system for liking/disliking videos, based on the reddit upvote/downvote system, so instead of two counters, there will be one. the little problem is still the videos/ folder being local which means, each user has to get their own .mp4 files but also update the videos.json with any new/updated info, i will look forward to making this system easier in the future
so dont have any reveleant screenshots, but moved storage to r2 and deployment is now by vercel
i scrapped the like and dislike buttons, i replaced them with a suggest button leading to my github pages issues. i added a few more videos to the site from my yt homepage. if you have any ideas to add as the videos then feel free to drop them in the comments or at https://github.com/zaloguj12/StarTV/issues
i added a quick fox section to the side to fill in the space that was left on the right. i added the invertocat github icon leading to the source. will probably focus on adding more videos before shipping
i added a button to view every video as a json, and i updated the readme
added a few videos
Ships:
StarTV is a basic video streaming site, it uses direct file serving using FastAPI with an R2 Bucket Storage, it is deployed using Vercel. For now there are only 12 videos with more coming in the future, since it serves the videos directly it can be worse on slower internet or metered connections. It is a fun simple project to learn how APIs work and to learn how video streaming works. This was a fun project. I will maintain this for as long as I will be able to....
|
1793339843.7537162
|
1793426243.7537162
|
|
32905
|
My own site! by @ashrith | Stardance
|
ashrith
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My own site! by @ashrith | Stardance
|
1793339842.792356
|
1793944642.792356
|
|
50494
|
OrbitBoard by @zeroto1 | Stardance
|
zeroto1
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: OrbitBoard by @zeroto1 | Stardance
|
1793339841.8856688
|
1793944641.8856688
|
|
44244
|
Lost&Found by @yeagerist | Stardance
|
yeagerist
|
3
|
23.0
|
262
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-24T03:44:47Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "this is a tribute to my lost&found with a dead last ship with small update", "repo": "https://github.com/Aarjal/The_Bug", "demo": "https://the-bug.vercel.app/"}, {"ship_num": 2, "ts": "2026-09-25T10:20:33Z", "hours": 5.0, "multiplier": 11.08, "payout": 59, "blessing": "neutral", "text": "This is my second ship to my project lost&found with little css tweaks and UI/UX enhancements as per the reviews from first ship. This web app is basically a platform for people to perform actions regarding lost items. (either seek their lost item or post a found item) The basic workflow is : -Sign up with a random acc and post a lost item in feed -Sign up with a diff random acc and post a related found item in feed -The system will create a match between those two items and let you choose wat to do furthur with it. As per last ship reviews, One important suggestion i found was to include a demo video of whole workflow in my README and this time I’ve not missed that out dw. That might help yall a lot in this ship since signing in and our repeatedly is troublesome. Looking forward to hear from you guys. (Suggestions are immensely appreciated😋)", "repo": "https://github.com/Aarjal/The_Bug", "demo": "https://the-bug.vercel.app/"}, {"ship_num": 3, "ts": "2026-09-14T09:31:21Z", "hours": 16.0, "multiplier": 12.39, "payout": 203, "blessing": "neutral", "text": "I built Lost&Found mainly with the aim to make finding lost belongings a little less painful. Yes, it was a result of some disappointing personal experience. Instead of having to search through different media groups or hope someone sees your post, you can report a lost or found item here and let the system look for possible matches. The main part I’m proud of is the matching system. Lost and found posts are compared using things like category, description, location and dates to find possible matches, and users can get notified when one is found. I also added the usual stuff around it like authentication, notifications, resolving recovered cases, an admin dashboard, and as always a light/dark mode. It might seem quite like “Okay now how the hell am i supposed to use it then?” Here’s something important. A quick way to test it: create an account → make a Lost Item post → create another account →create a matching Found Item post with similar details → check the notifications/matches → if it’s the right item, you can resolve the case. (You can also try the flow the other way around by posting a found item first.) The backend is hosted through render and may take a LITTLE time to load but please be patient for a few seconds and the flow’s gonna go as mentioned above", "repo": "https://github.com/Aarjal/The_Bug", "demo": "https://the-bug.vercel.app/"}]...
|
[{"post_id": 80173, "ts": "202 [{"post_id": 80173, "ts": "2026-10-16T15:34:34Z", "hours": 1.5981, "text": "I got idea from some other open source web-app and added a new “Recent activity feature in my admin dashboard”. Here’s also the recent data of what ya’ll have been doing ><"}, {"post_id": 73264, "ts": "2026-09-24T18:16:20Z", "hours": 1.6661, "text": "Rewrote the READMe from sctrach and tuned up the CSS a bit cus they asked ¯ _ (ツ)_/¯"}, {"post_id": 70220, "ts": "2026-09-18T18:51:33Z", "hours": 0.8733, "text": "it seems the css wasnt responding well in feed page after the hosting. took me some time but i’ve fixed the code and it works as expected now :)"}, {"post_id": 68774, "ts": "2026-09-15T18:48:39Z", "hours": 0.4542, "text": "just improved the Readme a bit nothing much nothing more showed for review and now adjusted as per the recommendations. Now the next thing is finally the shipping of project Optimistic to hear your says on this😄😄"}, {"post_id": 68246, "ts": "2026-09-14T19:27:07Z", "hours": 2.3539, "text": "I spent some time cleaning up the frontend code and styles to make the app faster and easier to maintain. Split up bloated pages: Broke down massive files like Item Detail, Recovery Requests, Feed, and Navbar into smaller subcomponents (modals, media previews, contact info, filters). Now editing one UI block won’t risk breaking the whole page. Fixed React state quirks: Switched Feed categories to derive directly with useMemo to skip extra re-renders, fixed initial edit form state, and added cleanup guards on API calls so navigating away doesn’t trigger memory leak warnings. Cleaned up the CSS: Replaced duplicated skeleton loaders and empty-state styles across 5 files with shared rules in index.css. Swapped hardcoded colors and overlays across all stylesheets for theme tokens so dark and light modes behave properly everywhere."}, {"post_id": 67507, "ts": "2026-09-13T17:04:49Z", "hours": 1.1086, "text": "Finally got the main workflow of Lost&Found working! The posting flow and matching system are connected now, so users can actually post lost or found items and the backend can go through the matching logic to find possible matches. I also finished up the remaining bits around resolving cases, notifications, and the other backend connections. I’ve now made the project deployable too. The frontend is hosted on Vercel and the backend is running on Render, and I’ve connected the two so the live app can actually communicate with the backend. There are obviously still things I can improve later, but for now the main workflow is working properly and the project is finally ready to ship."}, {"post_id": 66169, "ts": "2026-09-11T20:27:49Z", "hours": 1.7531, "text": "Been working on connecting the rest of the backend now. I got the resolving part done so when someone gets their item back, they can mark the case as resolved and it gets taken out of the active feed instead of sitting there like it’s still available. I also worked on the privacy policy agreement during signup, making sure that gets properly handled instead of just being a checkbox that does nothing. Apart from that I’ve connected the remaining reports, notifications, matching and user posts so they all actually talk to the backend properly. Most of the main stuff is pretty much done now, just a few small things left to fix and test. After that it should finally be ready to ship. Next devlog is basically going to be getting everything ready for deployment😋"}, {"post_id": 66062, "ts": "2026-09-11T17:05:13Z", "hours": 2.1011, "text": "FINALLLLYY I’ve worked on the matching system. This is what the whole app was all about tbh. The backend compares lost and found posts instead of just showing everything as a possible match. It looks at things like the item category, description/details, location, and dates, so a lost wallet and a found wallet in a completely different place or with an impossible date won’t just get treated the same. I’m also working on the backend logic that calculates these matches and sends the relevant results back to the frontend. A certain kinda post and match is successfully tested and its GREEN > < but there’s still some testing to do with different combinations of posts and I’m not confident about it yet :’("}, {"post_id": 65444, "ts": "2026-09-10T16:08:19Z", "hours": 0.9175, "text": "I’ve started working more on the backend! This time I focused on the lost and found reporting system, making sure the reports actually get sent through the API and saved properly in MongoDB. Each report is linked to the user who created it, along with things like the category, description, location, date, and image info. I also added some validation so the backend doesn’t just accept whatever the frontend sends. There were a few annoying little issues between the form, authentication, API and database, but I’ve got the main flow working now."}, {"post_id": 64928, "ts": "2026-09-09T17:25:26Z", "hours": 1.2067, "text": "This time I worked on adding light and dark mode. Previously the button was just sitting there doing nothing. Now the app can adapt to the user’s system theme instead of forcing them to pick one manually. If someone has their device set to dark mode, Lost&Found can follow that preference, while still giving them the option to switch between light and dark mode themselves. Still doing some small tweaks here and there, but this might be the final goodbye to frontend now"}, {"post_id": 64676, "ts": "2026-09-09T08:28:09Z", "hours": 1.2125, "text": "Today I worked on the admin dashboard. The idea behind it is to give me a simple overview of what’s happening across the platform instead of having to dig through individual reports. It includes stats for total lost reports, found reports, resolved cases, recovery rate, average resolution time, and the most common item categories. It doesn’t look the best but works for now.."}, {"post_id": 64320, "ts": "2026-09-08T16:38:23Z", "hours": 1.1492, "text": "Okay the progress is I made a few changes and improvements across the app to make the main user flow feel more complete. Up untill now was just the frontend part. I’ve also started working on the backend side of things, connecting the frontend features with the actual application logic and getting the necessary API functionality in place. There’s still quite a bit to connect and test, but the project is gradually moving from just having separate features to having everything work together as one proper application."}, {"post_id": 50954, "ts": "2026-08-20T12:54:52Z", "hours": 0.9122, "text": "I spent this session working on more of the Lost&Found frontend. I worked on the news feed, the UI for reporting both lost and found items, and the notifications frontend. One thing I also noticed with Stardance: when I linked my other Hackatime projects (i was working on separate directories for client and server side) to this project, their tracked time got added to the time shown on my previous devlog. My first devlog originally showed around 1 hour, but after linking those projects it changed to 6h . It didn’t work like that previously on Flavortown. Other than that, the frontend is coming together and I’m getting closer to having the main Lost → Match → Notification flow fully connected."}, {"post_id": 41398, "ts": "2026-08-05T16:21:00Z", "hours": 6.0625, "text": "I’m working on a web-app which I’ve named ‘Lost&Found’. As the name suggests, it’s a community help oriented, supportive, efficient and easy to use application which people can hop onto to search for their lost belongings. The idea is to create match between lost items and found items based on their descriptions and filters to finally get a confidence match score of whether the item is actually the one the user is looking for ( basically checking if lost-item = found-item ) For now, the actual countable work i’ve done is created a few icons for the web_app and finalised on one which is followed by same favicon."}]...
|
Title: Lost&Found by @yeagerist | Stardance
D Title: Lost&Found by @yeagerist | Stardance
Devlogs:
I’m working on a web-app which I’ve named ‘Lost&Found’. As the name suggests, it’s a community help oriented, supportive, efficient and easy to use application which people can hop onto to search for their lost belongings. The idea is to create match between lost items and found items based on their descriptions and filters to finally get a confidence match score of whether the item is actually the one the user is looking for ( basically checking if lost-item = found-item ) For now, the actual countable work i’ve done is created a few icons for the web_app and finalised on one which is followed by same favicon.
I spent this session working on more of the Lost&Found frontend. I worked on the news feed, the UI for reporting both lost and found items, and the notifications frontend. One thing I also noticed with Stardance: when I linked my other Hackatime projects (i was working on separate directories for client and server side) to this project, their tracked time got added to the time shown on my previous devlog. My first devlog originally showed around 1 hour, but after linking those projects it changed to 6h . It didn’t work like that previously on Flavortown. Other than that, the frontend is coming together and I’m getting closer to having the main Lost → Match → Notification flow fully connected.
Okay the progress is I made a few changes and improvements across the app to make the main user flow feel more complete. Up untill now was just the frontend part. I’ve also started working on the backend side of things, connecting the frontend features with the actual application logic and getting the necessary API functionality in place. There’s still quite a bit to connect and test, but the project is gradually moving from just having separate features to having everything work together as one proper application.
Today I worked on the admin dashboard. The idea behind it is to give me a simple overview of what’s happening across the platform instead of having to dig through individual reports. It includes stats for total lost reports, found reports, resolved cases, recovery rate, average resolution time, and the most common item categories. It doesn’t look the best but works for now..
This time I worked on adding light and dark mode. Previously the button was just sitting there doing nothing. Now the app can adapt to the user’s system theme instead of forcing them to pick one manually. If someone has their device set to dark mode, Lost&Found can follow that preference, while still giving them the option to switch between light and dark mode themselves. Still doing some small tweaks here and there, but this might be the final goodbye to frontend now
I’ve started working more on the backend! This time I focused on the lost and found reporting system, making sure the reports actually get sent through the API and saved properly in MongoDB. Each report is linked to the user who created it, along with things like the category, description, location, date, and image info. I also added some validation so the backend doesn’t just accept whatever the frontend sends. There were a few annoying little issues between the form, authentication, API and database, but I’ve got the main flow working now.
FINALLLLYY I’ve worked on the matching system. This is what the whole app was all about tbh. The backend compares lost and found posts instead of just showing everything as a possible match. It looks at things like the item category, description/details, location, and dates, so a lost wallet and a found wallet in a completely different place or with an impossible date won’t just get treated the same. I’m also working on the backend logic that calculates these matches and sends the relevant results back to the frontend. A certain kinda post and match is successfully tested and its GREEN > < but there’s still some testing to do with different combinations of posts and I’m not confident about it yet :’(
Been working on connecting the rest of the backend now. I got the resolving part done so when someone gets their item back, they can mark the case as resolved and it gets taken out of the active feed instead of sitting there like it’s still available. I also worked on the privacy policy agreement during signup, making sure that gets properly handled instead of just being a checkbox that does nothing. Apart from that I’ve connected the remaining reports, notifications, matching and user posts so they all actually talk to the backend properly. Most of the main stuff is pretty much done now, just a few small things left to fix and test. After that it should finally be ready to ship. Next devlog is basically going to be getting everything ready for deployment😋
Finally got the main workflow of Lost&Found working! The posting flow and matching system are connected now, so users can actually post lost or found items and the backend can go through the matching logic to find possible matches. I also finished up the remaining bits around resolving cases, notifications, and the other backend connections. I’ve now made the project deployable too. The frontend is hosted on Vercel and the backend is running on Render, and I’ve connected the two so the live app can actually communicate with the backend. There are obviously still things I can improve later, but for now the main workflow is working properly and the project is finally ready to ship.
I spent some time cleaning up the frontend code and styles to make the app faster and easier to maintain. Split up bloated pages: Broke down massive files like Item Detail, Recovery Requests, Feed, and Navbar into smaller subcomponents (modals, media previews, contact info, filters). Now editing one UI block won’t risk breaking the whole page. Fixed React state quirks: Switched Feed categories to derive directly with useMemo to skip extra re-renders, fixed initial edit form state, and added cleanup guards on API calls so navigating away doesn’t trigger memory leak warnings. Cleaned up the CSS: Replaced duplicated skeleton loaders and empty-state styles across 5 files with shared rules in index.css. Swapped hardcoded colors and overlays across all stylesheets for theme tokens so dark and light modes behave properly everywhere.
just improved the Readme a bit nothing much nothing more showed for review and now adjusted as per the recommendations. Now the next thing is finally the shipping of project Optimistic to hear your says on this😄😄
it seems the css wasnt responding well in feed page after the hosting. took me some time but i’ve fixed the code and it works as expected now :)
Rewrote the READMe from sctrach and tuned up the CSS a bit cus they asked ¯ _ (ツ)_/¯
I got idea from some other open source web-app and added a new “Recent activity feature in my admin dashboard”. Here’s also the recent data of what ya’ll have been doing ><
Ships:
I built Lost&Found mainly with the aim to make finding lost belongings a little less painful. Yes, it was a result of some disappointing personal experience. Instead of having to search through different media groups or hope someone sees your post, you can report a lost or found item here and let the system look for possible matches. The main part I’m proud of is the matching system. Lost and found posts are compared using things like category, description, location and dates to find possible matches, and users can get notified when one is found. I also added the usual stuff around it like authentication, notifications, resolving recovered cases, an admin dashboard, and as always a light/dark mode. It might seem quite like “Okay now how the hell am i supposed to use it then?” Here’s something important. A quick way to test it: create an account → make a Lost Item post → create another account →create a matching Found Item post with similar details → check the notifications/matches → if it’s the right item, you can resolve the case. (You can also try the flow the other way around by posting a found item first.) The backend is hosted through render and may take a LITTLE time to load but please be patient for a few seconds and the flow’s gonna go as mentioned above
This is my second ship to my project lost&found with little css tweaks and UI/UX enhancements as per the reviews from first ship. This web app is basically a platform for people to perform actions regarding lost items. (either seek their lost item or post a found item) The basic workflow is : -Sign up with a random acc and post a lost item in feed -Sign up with a diff random acc and post a related found item in feed -The system will create a match between those two items and let you choose wat to do furthur with it. As per last ship reviews, One important suggestion i found was to include a demo video of whole workflow in my README and this time I’ve not missed that out dw. That might help yall a lot in this ship since signing in and our repeatedly is troublesome. Looking forward to hear from you guys. (Suggestions are immensely appreciated😋)
this is a tribute to my lost&found with a dead last ship with small update...
|
1793339840.6166046
|
1793426240.6166046
|
|
13485
|
Untitled project by @drew_reasons | Stardance
|
drew_reasons
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled project by @drew_reasons | Stardan Title: Untitled project by @drew_reasons | Stardance...
|
1793339839.6791863
|
1793944639.6791863
|
|
12171
|
Solar Sonar by @timurski3 | Stardance
|
timurski3
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Solar Sonar by @timurski3 | Stardance
|
1793339838.7771213
|
1793944638.7771213
|
|
50492
|
My first slack bot! by @Dreamthe2nd | Stardance
|
Dreamthe2nd
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @Dreamthe2nd | Stard Title: My first slack bot! by @Dreamthe2nd | Stardance...
|
1793339837.829291
|
1793944637.829291
|
|
16554
|
Untitled project by @praji29 | Stardance
|
praji29
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled project by @praji29 | Stardance
|
1793339836.9165905
|
1793944636.9165905
|
|
25672
|
NeoOS by @WilGulf | Stardance
|
WilGulf
|
1
|
130.63
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-07T16:36:40Z", "hours": 118.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "So I made my own os “NeoOS”, this project was started not long after the release of the macbook neo and cause of that the os got it’s name. Testing is pretty easy, just make sure you have qemu installed with the correct cpu architecture. The project has become much bigger than I thought when I started it, I just could not stop implementing more features. And the most challenging part must be the hardware interaction, like reading from a disk by sending commands in hex. The documentation found for how cpus/ata disks/ram and all works are so hard to understand but that may be because it is not a simple thing. So when testing I want you to know that even though there aren’t many commands the kernel is still doing so much work not seen and the kernel is also what took most hours on this project. Lastly I hope that someone with all documentation provided writes their own program for NeoOS, I would love to see what other people could do with my OS.", "repo": "https://github.com/WilGulf/NeoOS", "demo": "https://github.com/WilGulf/NeoOS/releases/tag/1.1.0"}]...
|
[{"post_id": 74057, "ts": "202 [{"post_id": 74057, "ts": "2026-09-26T16:34:52Z", "hours": 9.7725, "text": "Devblog 22 The review of NeoOS found some problems with the filesystem commands and I took some time to fix them. Now the commands know where they are run and you can move around with cd. The second thing for this devblog is that I got multi disk support so now you can have up to 4 harddrives attached with writing/reading working on all of them , and that took some interractions with the ata ports but I finally got it working. –WilGulf"}, {"post_id": 69740, "ts": "2026-09-17T18:05:34Z", "hours": 2.8608, "text": "Devblog 21 The review is taking ages, and I couldn’t leave NeoOS. So I of course continued with fixes and features. The big new thing in this devblog is the filesystem: NeoFS, I have done major changes to the design like how a free block is found which greatly improves performance. And many safeguards were added to reading/writing to the filesystem. I also updated the host fstools used to create the filesystem on a drive to support arguments with options, easier to use now. – WilGulf"}, {"post_id": 63661, "ts": "2026-09-07T16:18:42Z", "hours": 1.5858, "text": "Devblog 20 Final touches and logging the remaining time before shipping. I hope I have fixed all small bugs and made the libraries easy to use in new C programs. I also created some small new programs to show all functions in the kernel. Thats all for now and I hope to get to ship soon. –WilGulf"}, {"post_id": 63163, "ts": "2026-09-06T20:16:36Z", "hours": 1.6142, "text": "Devblog 19 Not as big of a update now, but I just wanted to show of my new readdir implementation. That is then used by list with some coloring, all are green cause there is only executables in /execs. – WilGulf"}, {"post_id": 63079, "ts": "2026-09-06T17:50:19Z", "hours": 9.9825, "text": "Devblog 18 So close to going over 10h however I managed to fix the bug. So a missing feature has been writing to the disk and not only read it. But the current file system was fat16 and the attempts I have made to implement writing has failed. What is the logical thing to do in this scenario, well I wrote my own filesystem: NeoFS. It is not feature rich compared to fat16 but that was why I could make it write. And the performance may be horibble when having larger files. But if it works I will keep it! So the test just shows writing/reading of a file. – WilGulf"}, {"post_id": 60414, "ts": "2026-09-02T18:32:35Z", "hours": 3.4125, "text": "Devblog 17 I have developed my own ramfs. The old filesystem only supported fat16 with only reading capabilities which maded it feel very limited with what you could do with it. So the first step I dicided to do with adding reading was to implement filesystem that lives in ram which is really easy to write to. Now the D: drive is used for the ramfs (D as in dev used by linux). In the screenshot test.elf creates a file: D:/test.txt and writes HELLO FROM RAMFS to it. Then read.elf (linux cat) can read that file. – WilGulf"}, {"post_id": 58085, "ts": "2026-08-30T13:12:46Z", "hours": 7.1003, "text": "Devblog 16 I wanted more programs for NeoOS but I felt really limited to just the print and getkey functions. So I rewrite ncurses (not with all ncurses functions) into my own curses for NeoOS. This allowed me to write programs that update the terminal like a screen. Here I shouw the NeoOS logo being displayed with a CRT-screen effect. Now I am In the decision of what game to make with this new library. – WilGulf"}, {"post_id": 56739, "ts": "2026-08-28T16:47:26Z", "hours": 4.86, "text": "Devblog 15 I have now added colored printing that I showcase here in the fetch program. The printing made me redo how the writer works to support the decoding of the default ascii sequence used to change color: \\033[xxm , where xx is the color. It follows the standard C way which makes it pretty easy to use colored printing. – WilGulf"}, {"post_id": 53943, "ts": "2026-08-24T17:27:07Z", "hours": 13.1097, "text": "Devblog 14 I have worked on multiple commands for the shell but the one that i want to showcase now is the process management. Running.elf lists all running processes (including itself) with their name, pid and privilege level. Then I execute kill.elf with “1” as a argument which is the id of the shell. That kills the shell which leaves the os with just the blinking underscore cause there is no longer a shell running. Other commands are the sysinfo (uname) and updating fetch.elf with some new info."}, {"post_id": 49143, "ts": "2026-08-17T19:33:20Z", "hours": 9.0397, "text": "Devblog 13 Not much to show on the screen, however in the background i have worked on a security feature. So it is kind of like the pledge feature in open-bsd: so the kernel first need to know from the program what it wants to do, like print to the screen. Not until it has told what it will do it won’t be able to do anything. And if the program ever does anything it hasn’t told it would do the kernel will just kill the process. The program promise to not use any other functions except the one it has specified. And the kernel won’t let it break it’s promise. That is why the c function is called promise. –WilGulf"}, {"post_id": 48037, "ts": "2026-08-16T10:16:51Z", "hours": 9.1672, "text": "Devblog 12 A shell This is the first shell for NeoOS, it only has the clear command and a fetch program to display the logo. It took some time implementing all syscalls it needed, i needed to make many kernel functions available in the userprogram and that took most my time. I have yet to implement a way to terminate the program so now when fetch is called it never ends and you never get back to the shell again. – WilGulf"}, {"post_id": 46769, "ts": "2026-08-14T08:19:44Z", "hours": 4.0228, "text": "Devblog 11 NeoOS has now got ps2 keyboard drivers! So now I have implemented a driver for the US layout on ps2 keyboards. I am also looking into changing it to support my keyboards (Swedish layout), but that would take some time to map the right keys to the right number when the US layout can be found right on the os dev wiki. So this keyboard writing is also done the real way, the kernel boots, the kernel starts a program, that program asks for keyboard input, when it gets a input it asks the kernel to print that input. Now you can see how this could later change into a shell: you write the name of a command and it runs it. –WilGulf"}, {"post_id": 44096, "ts": "2026-08-09T17:04:23Z", "hours": 7.8719, "text": "Devblog 10 Now a binary file is able to be loaded AND executed. So from that qemu picture you can see the “Hello from a binary program” message, that message is printed by that print.s code. This is a huge milestone. There are still some functions to implement. But after that it is just writing all the userland programs. I must say none of this was easy, and choosing to develop a OS for stardance has so far been a really big challange. And now I need to push through coding the last bit so i can get this shipped before the end of stardance. –WilGulf"}, {"post_id": 43351, "ts": "2026-08-08T15:42:07Z", "hours": 7.6778, "text": "Devblog 9 I found a course for os development to follow and it really helped me with this. With the course explaining, I got my kernel to read a fat16 disk and print the content of hello.txt. This was a lot of debugging, first the file did open but couldn’t be read, then later the file was read but the data was just wierd characters. Now this is a huge step, the reading is done and now I only need it to be able to understand executables and read them. – WilGulf"}, {"post_id": 42494, "ts": "2026-08-07T08:16:16Z", "hours": 3.1131, "text": "Devblog 8 The real malloc and free is implemented. And if you know C you may understand what is going on in the image. All ptr are allocated using malloc and the first one is free’d before allocating ptr4, that is why their values are the same: ptr4 reuses ptr1 because ptr1 is free’d. Now that I don’t only have the allocation but also freeing which means I can safely implement a filesystem driver without worrying about the memory overflowing. – WilGulf"}, {"post_id": 42122, "ts": "2026-08-06T18:15:14Z", "hours": 4.8756, "text": "Devblog 7 I got to usermode, there I could run all the programs like a shell. But when jumping to usermode you need somewhere to land, some address where the cpu can start executing code. I don’t have that. So the next thing would be to implement a filesystem driver to read a disk and execute an executable. But my memory management is to simple to do it in a good way, I can only allocate and never delocate. So now I am going to revamp my memory management. –WilGulf"}, {"post_id": 26450, "ts": "2026-07-11T08:03:23Z", "hours": 11.1347, "text": "10h I don’t have anything to show right now, but as you can see i have 11 more hours on this project. I have both been working on fixes and some new things needed for the next big thing being: getting to ring 3/usermode. –WilGulf"}, {"post_id": 24029, "ts": "2026-07-07T09:45:52Z", "hours": 4.8494, "text": "Now we got progress! The kernel now has my implementation of paging working. If you don’t know what paging is, it is basically a way of managing the memory that is used by most x86 operating systems. The paging implementation took some C files and some updates to the assembly files but now it is done! Now I have many ways to go with what to implement next. We’ll see what i choose. –WilGulf"}, {"post_id": 19092, "ts": "2026-06-30T09:33:07Z", "hours": 7.1717, "text": "IDT Done! Now I got the IDT working. You can see it is working cause when that “Divide By Zero” message appears the kernel does a division with a zero. Normally that would make the kernel start bootlooping but now the interrupt handler handles the divide by zero and stops the kernel instead. Interrupt handling does not only stop crashes but also allow keyboards or syscalls to invoke interrupts that the kernel can process. Next step may be to use that interrupt handler to implement syscalls. – WilGulf"}, {"post_id": 18225, "ts": "2026-06-29T09:29:17Z", "hours": 2.5817, "text": "Hello Yes we got it, hello world on the screen. Turns out the loading of the kernel set up the stack wrong. One line of assembly was in the wrong section. I also continued with the GDT. It isnt something you can see but in the background the GDT has been initialized. That is my progress so far, now after GDT comes some interrupt handling. –WilGulf"}, {"post_id": 17849, "ts": "2026-06-28T19:51:48Z", "hours": 3.3697, "text": "HELP What is wrong? Well as I said, I would continue with getting Hello World on the screen. Well that wasn’t hard to do the “simple” way, just pasting several lines for each letter. But I wanted to do it the real way, implement a writer function. I started with making a function to clear the framebuffer from that “Booting…” message. And also moving the cursor to the start. Then I continued with the writer. The writer took two parameters: (char *buf, unsigned int len). Both arguments needed. The function i began testing with calling it from kmain like this: writer(“hello”, 5) . Then in the function i processed it like this: unsigned char *bytes = (unsigned char *)buf; for (unsigned int i = 0; i < len; i++) { fb_write_cell(pos * 2, bytes[i], 0x0F, 0x00); pos++; } But thats where it went wrong. When compiling and booting after adding that function content it wouldn’t boot. And that is wierd cause when i removed the bytes[i] line it booted. Somehow my kernel cant handle it. I don’t know what could currently be causing this. What now? Well i will of course try to solve this myself or find a way to make the writer work. And if you have any knowledge in C and os development please help me. The projects current code can be found on my github. – WilGulf"}, {"post_id": 15860, "ts": "2026-06-25T19:46:32Z", "hours": 1.8089, "text": "I got my OS booting without entering a bootloop!!! I wanted to leave assembly and start to use C. But to do that I need to call the main function in C from assembly. Much googling and testing later I got it to actually use the main functions while loop to keep itself from bootlooping. Never thought i would be so happy about completing the first and easiest task in os development. I will comeback with another post when i get ‘hello world’ on the screen."}]...
|
Title: NeoOS by @WilGulf | Stardance
Devlogs:
I g Title: NeoOS by @WilGulf | Stardance
Devlogs:
I got my OS booting without entering a bootloop!!! I wanted to leave assembly and start to use C. But to do that I need to call the main function in C from assembly. Much googling and testing later I got it to actually use the main functions while loop to keep itself from bootlooping. Never thought i would be so happy about completing the first and easiest task in os development. I will comeback with another post when i get ‘hello world’ on the screen.
HELP What is wrong? Well as I said, I would continue with getting Hello World on the screen. Well that wasn’t hard to do the “simple” way, just pasting several lines for each letter. But I wanted to do it the real way, implement a writer function. I started with making a function to clear the framebuffer from that “Booting…” message. And also moving the cursor to the start. Then I continued with the writer. The writer took two parameters: (char *buf, unsigned int len). Both arguments needed. The function i began testing with calling it from kmain like this: writer(“hello”, 5) . Then in the function i processed it like this: unsigned char *bytes = (unsigned char *)buf; for (unsigned int i = 0; i < len; i++) { fb_write_cell(pos * 2, bytes[i], 0x0F, 0x00); pos++; } But thats where it went wrong. When compiling and booting after adding that function content it wouldn’t boot. And that is wierd cause when i removed the bytes[i] line it booted. Somehow my kernel cant handle it. I don’t know what could currently be causing this. What now? Well i will of course try to solve this myself or find a way to make the writer work. And if you have any knowledge in C and os development please help me. The projects current code can be found on my github. – WilGulf
Hello Yes we got it, hello world on the screen. Turns out the loading of the kernel set up the stack wrong. One line of assembly was in the wrong section. I also continued with the GDT. It isnt something you can see but in the background the GDT has been initialized. That is my progress so far, now after GDT comes some interrupt handling. –WilGulf
IDT Done! Now I got the IDT working. You can see it is working cause when that “Divide By Zero” message appears the kernel does a division with a zero. Normally that would make the kernel start bootlooping but now the interrupt handler handles the divide by zero and stops the kernel instead. Interrupt handling does not only stop crashes but also allow keyboards or syscalls to invoke interrupts that the kernel can process. Next step may be to use that interrupt handler to implement syscalls. – WilGulf
Now we got progress! The kernel now has my implementation of paging working. If you don’t know what paging is, it is basically a way of managing the memory that is used by most x86 operating systems. The paging implementation took some C files and some updates to the assembly files but now it is done! Now I have many ways to go with what to implement next. We’ll see what i choose. –WilGulf
10h I don’t have anything to show right now, but as you can see i have 11 more hours on this project. I have both been working on fixes and some new things needed for the next big thing being: getting to ring 3/usermode. –WilGulf
Devblog 7 I got to usermode, there I could run all the programs like a shell. But when jumping to usermode you need somewhere to land, some address where the cpu can start executing code. I don’t have that. So the next thing would be to implement a filesystem driver to read a disk and execute an executable. But my memory management is to simple to do it in a good way, I can only allocate and never delocate. So now I am going to revamp my memory management. –WilGulf
Devblog 8 The real malloc and free is implemented. And if you know C you may understand what is going on in the image. All ptr are allocated using malloc and the first one is free’d before allocating ptr4, that is why their values are the same: ptr4 reuses ptr1 because ptr1 is free’d. Now that I don’t only have the allocation but also freeing which means I can safely implement a filesystem driver without worrying about the memory overflowing. – WilGulf
Devblog 9 I found a course for os development to follow and it really helped me with this. With the course explaining, I got my kernel to read a fat16 disk and print the content of hello.txt. This was a lot of debugging, first the file did open but couldn’t be read, then later the file was read but the data was just wierd characters. Now this is a huge step, the reading is done and now I only need it to be able to understand executables and read them. – WilGulf
Devblog 10 Now a binary file is able to be loaded AND executed. So from that qemu picture you can see the “Hello from a binary program” message, that message is printed by that print.s code. This is a huge milestone. There are still some functions to implement. But after that it is just writing all the userland programs. I must say none of this was easy, and choosing to develop a OS for stardance has so far been a really big challange. And now I need to push through coding the last bit so i can get this shipped before the end of stardance. –WilGulf
Devblog 11 NeoOS has now got ps2 keyboard drivers! So now I have implemented a driver for the US layout on ps2 keyboards. I am also looking into changing it to support my keyboards (Swedish layout), but that would take some time to map the right keys to the right number when the US layout can be found right on the os dev wiki. So this keyboard writing is also done the real way, the kernel boots, the kernel starts a program, that program asks for keyboard input, when it gets a input it asks the kernel to print that input. Now you can see how this could later change into a shell: you write the name of a command and it runs it. –WilGulf
Devblog 12 A shell This is the first shell for NeoOS, it only has the clear command and a fetch program to display the logo. It took some time implementing all syscalls it needed, i needed to make many kernel functions available in the userprogram and that took most my time. I have yet to implement a way to terminate the program so now when fetch is called it never ends and you never get back to the shell again. – WilGulf
Devblog 13 Not much to show on the screen, however in the background i have worked on a security feature. So it is kind of like the pledge feature in open-bsd: so the kernel first need to know from the program what it wants to do, like print to the screen. Not until it has told what it will do it won’t be able to do anything. And if the program ever does anything it hasn’t told it would do the kernel will just kill the process. The program promise to not use any other functions except the one it has specified. And the kernel won’t let it break it’s promise. That is why the c function is called promise. –WilGulf
Devblog 14 I have worked on multiple commands for the shell but the one that i want to showcase now is the process management. Running.elf lists all running processes (including itself) with their name, pid and privilege level. Then I execute kill.elf with “1” as a argument which is the id of the shell. That kills the shell which leaves the os with just the blinking underscore cause there is no longer a shell running. Other commands are the sysinfo (uname) and updating fetch.elf with some new info.
Devblog 15 I have now added colored printing that I showcase here in the fetch program. The printing made me redo how the writer works to support the decoding of the default ascii sequence used to change color: \033[xxm , where xx is the color. It follows the standard C way which makes it pretty easy to use colored printing. – WilGulf
Devblog 16 I wanted more programs for NeoOS but I felt really limited to just the print and getkey functions. So I rewrite ncurses (not with all ncurses functions) into my own curses for NeoOS. This allowed me to write programs that update the terminal like a screen. Here I shouw the NeoOS logo being displayed with a CRT-screen effect. Now I am In the decision of what game to make with this new library. – WilGulf
Devblog 17 I have developed my own ramfs. The old filesystem only supported fat16 with only reading capabilities which maded it feel very limited with what you could do with it. So the first step I dicided to do with adding reading was to implement filesystem that lives in ram which is really easy to write to. Now the D: drive is used for the ramfs (D as in dev used by linux). In the screenshot test.elf creates a file: D:/test.txt and writes HELLO FROM RAMFS to it. Then read.elf (linux cat) can read that file. – WilGulf
Devblog 18 So close to going over 10h however I managed to fix the bug. So a missing feature has been writing to the disk and not only read it. But the current file system was fat16 and the attempts I have made to implement writing has failed. What is the logical thing to do in this scenario, well I wrote my own filesystem: NeoFS. It is not feature rich compared to fat16 but that was why I could make it write. And the performance may be horibble when having larger files. But if it works I will keep it! So the test just shows writing/reading of a file. – WilGulf
Devblog 19 Not as big of a update now, but I just wanted to show of my new readdir implementation. That is then used by list with some coloring, all are green cause there is only executables in /execs. – WilGulf
Devblog 20 Final touches and logging the remaining time before shipping. I hope I have fixed all small bugs and made the libraries easy to use in new C programs. I also created some small new programs to show all functions in the kernel. Thats all for now and I hope to get to ship soon. –WilGulf
Devblog 21 The review is taking ages, and I couldn’t leave NeoOS. So I of course continued with fixes and features. The big new thing in this devblog is the filesystem: NeoFS, I have done major changes to the design like how a free block is found which greatly improves performance. And many safeguards were added to reading/writing to the filesystem. I also updated the host fstools used to create the filesystem on a drive to support arguments with options, easier to use now. – WilGulf
Devblog 22 The review of NeoOS found some problems with the filesystem commands and I took some time to fix them. Now the commands know where they are run and you can move around with cd. The second thing for this devblog is that I got multi disk support so now you can have up to 4 harddrives attached with writing/reading working on all of them , and that took some interractions with the ata ports but I finally got it working. –WilGulf
Ships:
So I made my own os “NeoOS”, this project was started not long after the release of the macbook neo and cause of that the os got it’s name. Testing is pretty easy, just make sure you have qemu installed with the correct cpu architecture. The project has become much bigger than I thought when I started it, I just could not stop implementing more features. And the most challenging part must be the hardware interaction, like reading from a disk by sending commands in hex. The documentation found for how cpus/ata disks/ram and all works are so hard to understand but that may be because it is not a simple thing. So when testing I want you to know that even though there aren’t many commands the kernel is still doing so much work not seen and the kernel is also what took most hours on this project. Lastly I hope that someone with all documentation provided writes their own program for NeoOS, I would love to see what other people could do with my OS....
|
1793339835.4886718
|
1793426235.4886718
|
|
50491
|
My own site! by @pranav25141 | Stardance
|
pranav25141
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My own site! by @pranav25141 | Stardance
|
1793339834.3117113
|
1793944634.3117113
|
|
16795
|
MAGNUS: DIY chess playing robot by @Leo_Zannoni | MAGNUS: DIY chess playing robot by @Leo_Zannoni | Stardance...
|
Leo_Zannoni
|
1
|
8.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-26T04:59:59Z", "hours": 8.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "What I made MAGNUS is a robot that plays chess against you on a real wooden board that was recycled like most of the parts of the project and says every move out loud in Spanish. You play your move by hand. A phone camera above the board (through Iriun) reads the ArUco marker on top of each piece and works out what you played. Stockfish picks the reply, and a 2-joint arm picks up the piece with a magnet and puts it on its new square. It handles captures, castling, en passant and promotion, and when it finishes it moves out of the way so it doesn’t block your view or the camera’s. The problem it solves Playing chess on a real board usually means you need another person sitting in front of you. Chess apps solve that, but then you’re staring at a screen, which is hard for people with low vision, older players who don’t get along with phones, and anyone who just learns better with real pieces in their hands. I wanted something in between: a physical opponent that’s always available and doesn’t make you look at a screen. The QoL improvements You can play a real-board game alone. The robot moves its own pieces, so you never have to make its moves for it or check a screen to see what it played. It talks. Every robot move is spoken in Spanish, so you can follow the game by ear. It also warns you if you made an illegal move and reminds you when it’s your turn if you take too long. This is the main accessibility part: someone with low vision or someone who can’t read chess notation can still follow what’s happening. It adapts to you. There are 10 difficulty levels, from a beginner level that makes mistakes on purpose up to full Stockfish, and you can change them in the middle of a game from a simple web panel. It also comments on how good or bad a move was, so beginners get feedback while they play, kind of like a coach. What was challenging The arm, by far. The mBot2 encoder motors don’t remember where they are when they turn on, so the arm has to find its zero against physical stops every time it starts. I tried a 3:1 reduction on the shoulder, couldn’t get it to work, and ended up with direct drive. Instead of inverse kinematics I recorded the motor angles for all 64 squares with the motors powered, because the arm bends differently when you move it by hand. The gripper went through several versions until I added a lift step. Without it, the magnet dragged pieces across the board and knocked over the neighbors. Smaller things also cost me hours: magnet holes printed at exactly 10 mm were too tight, so I made them 10.1 to 10.2 mm. The CyberPi only sees 2.4 GHz WiFi and doesn’t report its IP, so my Mac runs a TCP server and the board connects to it. And mBlock’s mlink kept locking the serial port. What I’m proud of It plays full games by itself and narrates them. I’m also happy with the magnet system: a 12x3 mm N52 on the arm, two 10x2 mm magnets in each piece (one on top for the arm, one underneath for the board) and a 6x3 mm magnet under every square. The arm grabs one piece and the ones next to it stay where they are. Almost all of the physical parts I designed and printed myself on a Bambu Lab A1 mini.", "repo": "https://github.com/LeoZ24/MAGNUS_Chess_Robot/tree/master", "demo": ""}]...
|
[{"post_id": 81134, "ts": "202 [{"post_id": 81134, "ts": "2026-10-20T01:00:50Z", "hours": 8.3128, "text": "What MAGNUS is MAGNUS is a robot that plays chess on a real board against a person and says its moves out loud in Spanish. I’m building it for PRONAFECYT 2026, Costa Rica’s national science fair, and the voice is there for accessibility: you can follow the game without looking at a screen. I started on february with my first 3D models. Today it plays full games by itself and narrates them. About the hours Hackatime only logged about 8.5 h, because it only counts time in the code editor when i downloaded the app. Most of the work was CAD, printing, assembling and testing the arm. My log puts the real total at 350+ hours Vision Every piece is a 22.5 mm disc with an ArUco 4x4_50 marker and a white ring around it for contrast. The four board corners have their own markers, so the board is found from any camera angle. The camera is my phone through Iriun. A piece only counts after 5 detections in a row, and a GameTracker compares what the camera sees against every legal move to work out what the human played, including castling and en passant. Engine Stockfish runs through python-chess with 10 difficulty levels. Stockfish can’t play below about 1320 Elo, so the four easiest levels choose worse moves on purpose. Every move comes with metadata for captures, castling, en passant and promotion, so the arm never has to know any chess. The arm Shoulder and elbow use the encoder motors from the mBot2 kit on a CyberPi, with a LEGO Technic frame plus printed parts. I tried a 3:1 reduction on the shoulder, couldn’t make it work, and direct drive turned out to be enough. Instead of inverse kinematics I recorded the motor angles for all 64 squares once (teach and playback), with the motors powered, because the arm bends differently when you move it by hand. The encoders are incremental, so the arm homes against physical stops every time it starts. Magnets and the gripper The arm carries a 12x3 mm N52 magnet that grabs a piece from about 8 mm away. Each piece has two 10x2 mm magnets, one on top for the arm and one underneath for the board, and every square has a 6x3 mm magnet below it. Neighboring pieces 32 mm away don’t move. A servo lowers the magnet, lifts the piece and releases it. Without the lift step the arm dragged pieces and knocked over the neighbors. Problems I had to solve Magnet holes modeled at exactly 10 mm were too tight, so I made them 10.1 to 10.2 mm to allow for FDM tolerance. The CyberPi doesn’t report its IP, so my Mac runs a TCP server and the CyberPi connects to it as a client. The CyberPi only sees 2.4 GHz WiFi. mBlock’s mlink kept the serial port locked until I ran pkill -f mlink. How the software is organized There are three nodes (vision, engine and arm) that talk through typed messages, ROS2 style. Each hardware part has a fake backend, so the 482 tests run without the robot, and there’s a fully simulated pipeline for testing a whole game. What’s next Tuning arm precision: re-recording the squares where the magnet doesn’t land centered and testing the robot more with people with blind people. Also im working on a demo video with the robot working coming soon"}, {"post_id": 7867, "ts": "2026-06-13T03:49:51Z", "hours": 0.4319, "text": "Added the 3d chess models for the project"}]...
|
Title: MAGNUS: DIY chess playing robot by @Leo_Zan Title: MAGNUS: DIY chess playing robot by @Leo_Zannoni | Stardance
Devlogs:
Added the 3d chess models for the project
What MAGNUS is MAGNUS is a robot that plays chess on a real board against a person and says its moves out loud in Spanish. I’m building it for PRONAFECYT 2026, Costa Rica’s national science fair, and the voice is there for accessibility: you can follow the game without looking at a screen. I started on february with my first 3D models. Today it plays full games by itself and narrates them. About the hours Hackatime only logged about 8.5 h, because it only counts time in the code editor when i downloaded the app. Most of the work was CAD, printing, assembling and testing the arm. My log puts the real total at 350+ hours Vision Every piece is a 22.5 mm disc with an ArUco 4x4_50 marker and a white ring around it for contrast. The four board corners have their own markers, so the board is found from any camera angle. The camera is my phone through Iriun. A piece only counts after 5 detections in a row, and a GameTracker compares what the camera sees against every legal move to work out what the human played, including castling and en passant. Engine Stockfish runs through python-chess with 10 difficulty levels. Stockfish can’t play below about 1320 Elo, so the four easiest levels choose worse moves on purpose. Every move comes with metadata for captures, castling, en passant and promotion, so the arm never has to know any chess. The arm Shoulder and elbow use the encoder motors from the mBot2 kit on a CyberPi, with a LEGO Technic frame plus printed parts. I tried a 3:1 reduction on the shoulder, couldn’t make it work, and direct drive turned out to be enough. Instead of inverse kinematics I recorded the motor angles for all 64 squares once (teach and playback), with the motors powered, because the arm bends differently when you move it by hand. The encoders are incremental, so the arm homes against physical stops every time it starts. Magnets and the gripper The arm carries a 12x3 mm N52 magnet that grabs a piece from about 8 mm away. Each piece has two 10x2 mm magnets, one on top for the arm and one underneath for the board, and every square has a 6x3 mm magnet below it. Neighboring pieces 32 mm away don’t move. A servo lowers the magnet, lifts the piece and releases it. Without the lift step the arm dragged pieces and knocked over the neighbors. Problems I had to solve Magnet holes modeled at exactly 10 mm were too tight, so I made them 10.1 to 10.2 mm to allow for FDM tolerance. The CyberPi doesn’t report its IP, so my Mac runs a TCP server and the CyberPi connects to it as a client. The CyberPi only sees 2.4 GHz WiFi. mBlock’s mlink kept the serial port locked until I ran pkill -f mlink. How the software is organized There are three nodes (vision, engine and arm) that talk through typed messages, ROS2 style. Each hardware part has a fake backend, so the 482 tests run without the robot, and there’s a fully simulated pipeline for testing a whole game. What’s next Tuning arm precision: re-recording the squares where the magnet doesn’t land centered and testing the robot more with people with blind people. Also im working on a demo video with the robot working coming soon
Ships:
What I made MAGNUS is a robot that plays chess against you on a real wooden board that was recycled like most of the parts of the project and says every move out loud in Spanish. You play your move by hand. A phone camera above the board (through Iriun) reads the ArUco marker on top of each piece and works out what you played. Stockfish picks the reply, and a 2-joint arm picks up the piece with a magnet and puts it on its new square. It handles captures, castling, en passant and promotion, and when it finishes it moves out of the way so it doesn’t block your view or the camera’s. The problem it solves Playing chess on a real board usually means you need another person sitting in front of you. Chess apps solve that, but then you’re staring at a screen, which is hard for people with low vision, older players who don’t get along with phones, and anyone who just learns better with real pieces in their hands. I wanted something in between: a physical opponent that’s always available and doesn’t make you look at a screen. The QoL improvements You can play a real-board game alone. The robot moves its own pieces, so you never have to make its moves for it or check a screen to see what it played. It talks. Every robot move is spoken in Spanish, so you can follow the game by ear. It also warns you if you made an illegal move and reminds you when it’s your turn if you take too long. This is the main accessibility part: someone with low vision or someone who can’t read chess notation can still follow what’s happening. It adapts to you. There are 10 difficulty levels, from a beginner level that makes mistakes on purpose up to full Stockfish, and you can change them in the middle of a game from a simple web panel. It also comments on how good or bad a move was, so beginners get feedback while they play, kind of like a coach. What was challenging The arm, by far. The mBot2 encoder motors don’t remember where they are when they turn on, so the arm has to find its zero against physical stops every time it starts. I tried a 3:1 reduction on the shoulder, couldn’t get it to work, and ended up with direct drive. Instead of inverse kinematics I recorded the motor angles for all 64 squares with the motors powered, because the arm bends differently when you move it by hand. The gripper went through several versions until I added a lift step. Without it, the magnet dragged pieces across the board and knocked over the neighbors. Smaller things also cost me hours: magnet holes printed at exactly 10 mm were too tight, so I made them 10.1 to 10.2 mm. The CyberPi only sees 2.4 GHz WiFi and doesn’t report its IP, so my Mac runs a TCP server and the board connects to it. And mBlock’s mlink kept locking the serial port. What I’m proud of It plays full games by itself and narrates them. I’m also happy with the magnet system: a 12x3 mm N52 on the arm, two 10x2 mm magnets in each piece (one on top for the arm, one underneath for the board) and a 6x3 mm magnet under every square. The arm grabs one piece and the ones next to it stay where they are. Almost all of the physical parts I designed and printed myself on a Bambu Lab A1 mini....
|
1793339830.6677194
|
1793426230.6677194
|
|
44186
|
Flask Othello by @vindognz | Stardance
|
vindognz
|
1
|
26.0
|
446
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-23T11:43:27Z", "hours": 26.0, "multiplier": 17.32, "payout": 446, "blessing": "neutral", "text": "I made a full Othello game you can simply play in the browser, using vanilla JS and Flask! It features online multiplayer, a CPU opponent, replays, spectating and much more. My biggest challenge was definitely the countless hours of debugging, and chasing AI optimisations which actually made it perform worse. I am super proud of how the entire project came together, but especially happy with how satisfying the tile flip animation + sound cascading effect turned out.", "repo": "https://github.com/vindognz/flask-othello", "demo": "https://othello.vindognz.hackclub.app/"}]...
|
[{"post_id": 72575, "ts": "202 [{"post_id": 72575, "ts": "2026-09-23T08:20:47Z", "hours": 3.1811, "text": "MY EIGHTH AND (hopefully) FINAL DEVLOG I THINK WE’RE SHIP READY. I spent these 3 hours doing a bunch of final polish. The AI now has three difficulty levels to pick from (Easy, Medium and Impossible). I also added some actual juice to the game. Pieces now make sounds when placed and captured, and buttons make a little click sound. I also added a little rules popup with a tiny board showing how the game works for those who don’t know :) I finally updated the README from my initial commit too! It now has the full project info, as well as instructions for running FlaskOthello locally. Everything else was just minor fixes / cleanup. FlaskOthello is officially feature complete. Time to ship! 🚢"}, {"post_id": 71670, "ts": "2026-09-21T08:46:58Z", "hours": 3.4522, "text": "My seventh devloggg I replaced the AI search that was array based with a full bitboard implementation. This means that the board state is now stored as two 64-bit integers instead of nested lists. We also now have transposition tables and alpha-beta with move ordering based on the TT too! This was lowkey not THAT much work, but there were SOOOO many bugs to fix. I tried a bunch of ‘optimisations’ that actually made the AI ~27% worse… In the end, we scored a 36% decrease in search time though! During this time, I did some test deployments to NEST for playtesting with my girlfriend. Turns out, running a Flask dev server in production is a bad idea 💀 I had WebSockets, hints, undo, and UI redesign in my todo list, but decided to scratch those to make sure I ship in time."}, {"post_id": 68874, "ts": "2026-09-15T22:43:34Z", "hours": 3.7547, "text": "Sixth Devlog! (IM LOWKEY REMEMBERING TO DO THESE) This one was heavy on AI modifications, but I also implemented a replay system! I added transposition tables to the AI, which allows it to reuse positions it has already searched, along with a BUNCH of benchmarking for comparing. I also changed the AI’s minimax search to make and undo moves in-place instead of constantly creating new OthelloBoard objects which was a BIG optimization. Now, about that replay system! Games now keep a full move history which allows you to rewatch your game after play. You can jump to the start/end, step through moves one by one, and hold the buttons to scrub through the game. Lastly, I improve the piece flip animations so captured pieces do a proper flip + many minor bug fixes / refactors."}, {"post_id": 67923, "ts": "2026-09-14T07:13:46Z", "hours": 5.91, "text": "Fifth devlog! (I KEEP FORGETTING TO DO THESE) SO much has happened. I added full Player vs CPU support, fixed a major bug where if the AI was black it never made a starting move + a crash from the AI “make a move” loop firing every 1.5s 💀 Draw offers and resignation have been added. For draws, either player can offer and the other can accept/decline, and the AI automatically responds to draw requests based on piece count. Resignation has a confirm dialog to prevent accidents. Games are now automatically archived when they conclude (read only game copy at /archive/<id> which you’re automatically redirected to if on a stale /game/<id> URL). I also added piece ‘flip’ animations for the tiles that just got captured, so you can easily tell which tiles have just been captured. And alongside all this, TONS of refactoring and bug fixes, including extracing common code into resolve_player() and serialize_game() functions, and a strings.js module for game status strings."}, {"post_id": 61156, "ts": "2026-09-03T22:37:30Z", "hours": 3.305, "text": "Fourth devlog!! Today I built the actual frontend with a landing page (pick black/white, creates a game and redirects you), a live board page which polls the backend every 1.5s, click to play on legal squares, and CSS of course (green board, yellow legal move outlines). Previously, when the player had no legal moves, the game would just stop and you’d be stuck. Now, your turn is automatically passed if you have no legal moves. Added last-move highlighting (red outline on the most recently placed piece, so it’s obvious where your opponent just played) and a proper game-over screen showing the winning colour and final tile count."}, {"post_id": 56245, "ts": "2026-08-27T22:32:56Z", "hours": 3.8075, "text": "Third devlog! (I forgot to devlog…) I fixed a bunch of serious bugs in the engine (illegal moves overwriting occupied tiles, allowing negative indexing of the board, and more). The minimax now scores wins/loses by token count, not positional advantage at the end of the game, and some documentation cleanup. I also started working on the Flask backend, which now features 4 API routes for creating and joining games, making your move, and calling for AI moves. I tested this thoroughly with cURL, so hopefully there aren’t any significant bugs!"}, {"post_id": 44584, "ts": "2026-08-10T13:20:11Z", "hours": 1.0883, "text": "My second devlog! It’s 1:17am right now, but I just finished implementing the most basic minimax algorithm possible, and it (miraculously) works! I even hacked together a quick CPU vs CPU prototype, and it plays all the way through without any bugs, crashes or other breakage. Goodnight 💀"}, {"post_id": 41886, "ts": "2026-08-06T11:58:03Z", "hours": 1.2464, "text": "First Devlog! I have a really bad habit of starting 12 projects and never shipping any of them… so I started yet another project! I loved playing Othello with my brother growing up, but we haven’t been able to play much anymore since I moved to uni. To solve this, I’m developing FlaskOthello in my free time, and I plan to add a minimax algorithm with alpha-beta pruning. The plan is a Python Flask backend, and a vanilla HTML + CSS + JS frontend, probably hosted on Github Pages. So far, I’ve made an OthelloBoard class, with a basic board representation, and most of the fundamental game logic (making moves, flipping opponent tiles, validity checks, etc.), and since my COSC class forces me to, I wrote a bunch of doctests out of habit… Next up: minimax algorithm + alpha-beta pruning!"}]...
|
Title: Flask Othello by @vindognz | Stardance
Dev Title: Flask Othello by @vindognz | Stardance
Devlogs:
First Devlog! I have a really bad habit of starting 12 projects and never shipping any of them… so I started yet another project! I loved playing Othello with my brother growing up, but we haven’t been able to play much anymore since I moved to uni. To solve this, I’m developing FlaskOthello in my free time, and I plan to add a minimax algorithm with alpha-beta pruning. The plan is a Python Flask backend, and a vanilla HTML + CSS + JS frontend, probably hosted on Github Pages. So far, I’ve made an OthelloBoard class, with a basic board representation, and most of the fundamental game logic (making moves, flipping opponent tiles, validity checks, etc.), and since my COSC class forces me to, I wrote a bunch of doctests out of habit… Next up: minimax algorithm + alpha-beta pruning!
My second devlog! It’s 1:17am right now, but I just finished implementing the most basic minimax algorithm possible, and it (miraculously) works! I even hacked together a quick CPU vs CPU prototype, and it plays all the way through without any bugs, crashes or other breakage. Goodnight 💀
Third devlog! (I forgot to devlog…) I fixed a bunch of serious bugs in the engine (illegal moves overwriting occupied tiles, allowing negative indexing of the board, and more). The minimax now scores wins/loses by token count, not positional advantage at the end of the game, and some documentation cleanup. I also started working on the Flask backend, which now features 4 API routes for creating and joining games, making your move, and calling for AI moves. I tested this thoroughly with cURL, so hopefully there aren’t any significant bugs!
Fourth devlog!! Today I built the actual frontend with a landing page (pick black/white, creates a game and redirects you), a live board page which polls the backend every 1.5s, click to play on legal squares, and CSS of course (green board, yellow legal move outlines). Previously, when the player had no legal moves, the game would just stop and you’d be stuck. Now, your turn is automatically passed if you have no legal moves. Added last-move highlighting (red outline on the most recently placed piece, so it’s obvious where your opponent just played) and a proper game-over screen showing the winning colour and final tile count.
Fifth devlog! (I KEEP FORGETTING TO DO THESE) SO much has happened. I added full Player vs CPU support, fixed a major bug where if the AI was black it never made a starting move + a crash from the AI “make a move” loop firing every 1.5s 💀 Draw offers and resignation have been added. For draws, either player can offer and the other can accept/decline, and the AI automatically responds to draw requests based on piece count. Resignation has a confirm dialog to prevent accidents. Games are now automatically archived when they conclude (read only game copy at /archive/<id> which you’re automatically redirected to if on a stale /game/<id> URL). I also added piece ‘flip’ animations for the tiles that just got captured, so you can easily tell which tiles have just been captured. And alongside all this, TONS of refactoring and bug fixes, including extracing common code into resolve_player() and serialize_game() functions, and a strings.js module for game status strings.
Sixth Devlog! (IM LOWKEY REMEMBERING TO DO THESE) This one was heavy on AI modifications, but I also implemented a replay system! I added transposition tables to the AI, which allows it to reuse positions it has already searched, along with a BUNCH of benchmarking for comparing. I also changed the AI’s minimax search to make and undo moves in-place instead of constantly creating new OthelloBoard objects which was a BIG optimization. Now, about that replay system! Games now keep a full move history which allows you to rewatch your game after play. You can jump to the start/end, step through moves one by one, and hold the buttons to scrub through the game. Lastly, I improve the piece flip animations so captured pieces do a proper flip + many minor bug fixes / refactors.
My seventh devloggg I replaced the AI search that was array based with a full bitboard implementation. This means that the board state is now stored as two 64-bit integers instead of nested lists. We also now have transposition tables and alpha-beta with move ordering based on the TT too! This was lowkey not THAT much work, but there were SOOOO many bugs to fix. I tried a bunch of ‘optimisations’ that actually made the AI ~27% worse… In the end, we scored a 36% decrease in search time though! During this time, I did some test deployments to NEST for playtesting with my girlfriend. Turns out, running a Flask dev server in production is a bad idea 💀 I had WebSockets, hints, undo, and UI redesign in my todo list, but decided to scratch those to make sure I ship in time.
MY EIGHTH AND (hopefully) FINAL DEVLOG I THINK WE’RE SHIP READY. I spent these 3 hours doing a bunch of final polish. The AI now has three difficulty levels to pick from (Easy, Medium and Impossible). I also added some actual juice to the game. Pieces now make sounds when placed and captured, and buttons make a little click sound. I also added a little rules popup with a tiny board showing how the game works for those who don’t know :) I finally updated the README from my initial commit too! It now has the full project info, as well as instructions for running FlaskOthello locally. Everything else was just minor fixes / cleanup. FlaskOthello is officially feature complete. Time to ship! 🚢
Ships:
I made a full Othello game you can simply play in the browser, using vanilla JS and Flask! It features online multiplayer, a CPU opponent, replays, spectating and much more. My biggest challenge was definitely the countless hours of debugging, and chasing AI optimisations which actually made it perform worse. I am super proud of how the entire project came together, but especially happy with how satisfying the tile flip animation + sound cascading effect turned out....
|
1793339828.2461064
|
1793426228.2461064
|
|
50490
|
another ass website by @dayandnightgooner | Starda another ass website by @dayandnightgooner | Stardance...
|
dayandnightgooner
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: another ass website by @dayandnightgooner | Title: another ass website by @dayandnightgooner | Stardance...
|
1793339827.2612648
|
1793944627.2612648
|
|
13612
|
My very own WebOS by @Joey | Stardance
|
Joey
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My very own WebOS by @Joey | Stardance
|
1793339826.3013027
|
1793944626.3013027
|
|
8549
|
Verizuke by @rishwithgharshakurthi | Stardance
|
rishwithgharshakurthi
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Verizuke by @rishwithgharshakurthi | Starda Title: Verizuke by @rishwithgharshakurthi | Stardance...
|
1793339822.4335139
|
1793944622.4335139
|
|
50486
|
pa by @zainkassam25 | Stardance
|
zainkassam25
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: pa by @zainkassam25 | Stardance
|
1793339821.5175226
|
1793944621.5175226
|
|
38707
|
My own site! by @Snoopsawg | Stardance
|
Snoopsawg
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My own site! by @Snoopsawg | Stardance
|
1793339820.5867856
|
1793944620.5867856
|
|
1108
|
Porpholio by @charliebthomas | Stardance
|
charliebthomas
|
1
|
12.44
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-30T14:20:18Z", "hours": 11.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Porpholio is my personal portfolio website, built from scratch in HTML, CSS. I’m teaching myself to code through tutorials. It has pages about me, my coding, my hat business, my Toylander kit car build, my hobbies and my poems. It’s hosted on Vercel, and the code is on GitHub. The site isn’t finished yet. Photos and a few pages are still to come. I’m dyslexic and have ADHD, so spelling mistakes and unfinished sections are something I’m working on as I go.", "repo": "https://github.com/charliebthomas-source/portpholio.github.io", "demo": "https://portpholio-omega.vercel.app"}]...
|
[{"post_id": 77401, "ts": "202 [{"post_id": 77401, "ts": "2026-10-06T19:59:35Z", "hours": 0.8036, "text": "Most of the pages are now built: horses and volunteering, knitting, baking and cooking, climbing, soap and candle making, and the caning page. I added alt text to the photos so the site is more accessible, and I’ve been tweaking the styles so every page has its own look but still feels like the same site. I’ve also made the whole thing look nicer.Still to do: finish the hobbies page, swap the filler photos for real ones, and fix a few broken links and typos."}, {"post_id": 76145, "ts": "2026-10-02T14:21:09Z", "hours": 0.6347, "text": "i have made it look nicer"}, {"post_id": 75581, "ts": "2026-09-30T14:11:23Z", "hours": 0.41, "text": "i have added in the cane page and the styles to it and all i have to do now is do the hobbies page."}, {"post_id": 75361, "ts": "2026-09-29T20:52:10Z", "hours": 0.5214, "text": "Adding in more styles to the soap and candle making page ignore the photos"}, {"post_id": 74991, "ts": "2026-09-28T19:44:26Z", "hours": 1.4511, "text": "i have started on the candle and soap making page and climbing page. i have also added in quite a bit of alt text to make it more acsessable for people and more legable."}, {"post_id": 74631, "ts": "2026-09-27T20:24:41Z", "hours": 0.7764, "text": "I have now made the clibing page and will finish the rest of it tomorrow when i get time to do so. i think it looks ok but i need to work out what layout i want. i also need to try and keep styles diffrent but simular if that makes sense"}, {"post_id": 74146, "ts": "2026-09-26T19:32:32Z", "hours": 0.6239, "text": "i have made the baking and cooking page need to add info and photos to it"}, {"post_id": 73751, "ts": "2026-09-25T21:08:36Z", "hours": 1.0169, "text": "Dont know if i like the colors of this new page or not but giving it a go none the less i think i might rever to the og colors. spent 30 mins trying to make the progress bar work still havnt made it 100 percent work"}, {"post_id": 73727, "ts": "2026-09-25T19:53:55Z", "hours": 0.8333, "text": "I have know completed the Knitting page. i have put in filler photos for the time being but other wise it all pritty much works. -f"}, {"post_id": 73244, "ts": "2026-09-24T17:32:42Z", "hours": 0.8514, "text": "I have now soterd out the styles for the horses and voununterring page and made it look a bit nicer. it is done enough for the moment so i going to move onto the nect pages now to try and get it kinda workings"}, {"post_id": 73207, "ts": "2026-09-24T16:33:04Z", "hours": 2.3631, "text": "after many hours of work i have finnaly added some photos. - I now need to add css for the photo sizing. neaten up the exsting pages. add the remaining pages."}, {"post_id": 4831, "ts": "2026-06-08T10:53:50Z", "hours": 1.9589, "text": "Inproving it"}]...
|
Title: Porpholio by @charliebthomas | Stardance
D Title: Porpholio by @charliebthomas | Stardance
Devlogs:
Inproving it
after many hours of work i have finnaly added some photos. - I now need to add css for the photo sizing. neaten up the exsting pages. add the remaining pages.
I have now soterd out the styles for the horses and voununterring page and made it look a bit nicer. it is done enough for the moment so i going to move onto the nect pages now to try and get it kinda workings
I have know completed the Knitting page. i have put in filler photos for the time being but other wise it all pritty much works. -f
Dont know if i like the colors of this new page or not but giving it a go none the less i think i might rever to the og colors. spent 30 mins trying to make the progress bar work still havnt made it 100 percent work
i have made the baking and cooking page need to add info and photos to it
I have now made the clibing page and will finish the rest of it tomorrow when i get time to do so. i think it looks ok but i need to work out what layout i want. i also need to try and keep styles diffrent but simular if that makes sense
i have started on the candle and soap making page and climbing page. i have also added in quite a bit of alt text to make it more acsessable for people and more legable.
Adding in more styles to the soap and candle making page ignore the photos
i have added in the cane page and the styles to it and all i have to do now is do the hobbies page.
i have made it look nicer
Most of the pages are now built: horses and volunteering, knitting, baking and cooking, climbing, soap and candle making, and the caning page. I added alt text to the photos so the site is more accessible, and I’ve been tweaking the styles so every page has its own look but still feels like the same site. I’ve also made the whole thing look nicer.Still to do: finish the hobbies page, swap the filler photos for real ones, and fix a few broken links and typos.
Ships:
Porpholio is my personal portfolio website, built from scratch in HTML, CSS. I’m teaching myself to code through tutorials. It has pages about me, my coding, my hat business, my Toylander kit car build, my hobbies and my poems. It’s hosted on Vercel, and the code is on GitHub. The site isn’t finished yet. Photos and a few pages are still to come. I’m dyslexic and have ADHD, so spelling mistakes and unfinished sections are something I’m working on as I go....
|
1793339819.3150494
|
1793426219.3150494
|
|
33889
|
Frictionless by @taha_justanieah | Stardance
|
taha_justanieah
|
0
|
0.75
|
0
|
[]
|
[{"post_id": 27266, "ts": "202 [{"post_id": 27266, "ts": "2026-07-12T18:02:20Z", "hours": 0.7453, "text": "Devlog #1 Fixing Formatting Issues"}]...
|
Title: Frictionless by @taha_justanieah | Stardanc Title: Frictionless by @taha_justanieah | Stardance
Devlogs:
Devlog #1 Fixing Formatting Issues...
|
1793339818.3610015
|
1793944618.3610015
|
|
50483
|
Simple Kernel by @ig0r | Stardance
|
ig0r
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Simple Kernel by @ig0r | Stardance
|
1793339817.4647412
|
1793944617.4647412
|
|
33779
|
Odyssey by @bluecorexux | Stardance
|
bluecorexux
|
1
|
14.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-23T19:11:20Z", "hours": 14.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a minigame based on the Story of odysseus - there are three levels where each represents the challenges faced by him ( not exact a game ishhh analogy ) Navigativing throught the buttons and options of godot was challenging but pretty easy once I started making the third minigame ,as i got used to the method of using the common stuffs for making a scene in Godot I learnt how game dev works in a beginner level with a base project that is prety awesome", "repo": "https://github.com/bluecore7/GameOfOdyssey", "demo": "https://bluecore7.itch.io/the-game-of-odyssey"}]...
|
[{"post_id": 72792, "ts": "202 [{"post_id": 72792, "ts": "2026-09-23T19:03:51Z", "hours": 5.355, "text": "Devlog - 4 ITS’ OVER GUYZZZ…… THE GAME IS READY!!!!! Finally finished the game and completed the entire journey from those first pixelated screens to an actual playable game T_TDeveloped three mini games based on stories from Odyssey — not a direct adaptation or anything, just taking inspiration from the stories and turning them into games. Guys come onnn, it’s a game >_< The frustrating all-nighters, debugging, breaking things, fixing them, breaking them again…… somehow I loved all of it. I learned wayyyy more by actually building the game than I expected. Every bug was painful at that moment, but finally it felt soooo good. 2D games are good……BUT 3D IS AWESOME. NEXT ONTO ITTTTTT."}, {"post_id": 71752, "ts": "2026-09-21T13:33:30Z", "hours": 6.1611, "text": "Devlog 3 Finally I am into the real game GUYZZZ….. The minigame -2 took a lot of time there was much to learn - caz i got stuck in a bug where my button click signals are not captured. But the mission stuffs are done for now! I have started to create the real game. Added some animations - made the title wavy just by turning on BBCode and using the [wave] tag in RichTextLabel, which is dope . For the subtitle I wanted a typewriter effect . At first I tried doing it with a quick Tween on visible_characters, but it can’t trigger a sound for each single letter . So I changed it to a loop with visible_characters and a tiny timer delay, and added a proper mechanical typewriter key sound that clicks on every single letter as it types out. And that blip sound - wired it up to play whenever you hit Start, Settings, or Quit buttons so the menu click feelzzz . The same refactor has to be done for other scenes as well. I am onto that journey to Ithica………"}, {"post_id": 71398, "ts": "2026-09-20T19:09:59Z", "hours": 1.1572, "text": "Devlog-2 Developed a mini game according to the guide but i am placing only placeholders for now . As i have a plan to develop a game based on Odyssey but the the guide is about garlics >_< ."}, {"post_id": 70804, "ts": "2026-09-19T19:48:21Z", "hours": 1.36, "text": "Devlog - 1 Yupppp, finally started my game dev journey on the last laps of Stardance Done the routine stuffs → watched some intro and basic game dev videos from YouTube (still the pixelated Art stuffs are remaining ) and started the mission following the guide provided . Designed the Title Screen and Level Screen. Development took around 1/4th of the entire time spent, and the rest was spent debugging . Finally found out it was just a name mismatch in the button press function. Happy that I found it, but also frustrated that I couldn’t figure it out earlier than this ;_; A good start, I guess……"}]...
|
Title: Odyssey by @bluecorexux | Stardance
Devlog Title: Odyssey by @bluecorexux | Stardance
Devlogs:
Devlog - 1 Yupppp, finally started my game dev journey on the last laps of Stardance Done the routine stuffs → watched some intro and basic game dev videos from YouTube (still the pixelated Art stuffs are remaining ) and started the mission following the guide provided . Designed the Title Screen and Level Screen. Development took around 1/4th of the entire time spent, and the rest was spent debugging . Finally found out it was just a name mismatch in the button press function. Happy that I found it, but also frustrated that I couldn’t figure it out earlier than this ;_; A good start, I guess……
Devlog-2 Developed a mini game according to the guide but i am placing only placeholders for now . As i have a plan to develop a game based on Odyssey but the the guide is about garlics >_< .
Devlog 3 Finally I am into the real game GUYZZZ….. The minigame -2 took a lot of time there was much to learn - caz i got stuck in a bug where my button click signals are not captured. But the mission stuffs are done for now! I have started to create the real game. Added some animations - made the title wavy just by turning on BBCode and using the [wave] tag in RichTextLabel, which is dope . For the subtitle I wanted a typewriter effect . At first I tried doing it with a quick Tween on visible_characters, but it can’t trigger a sound for each single letter . So I changed it to a loop with visible_characters and a tiny timer delay, and added a proper mechanical typewriter key sound that clicks on every single letter as it types out. And that blip sound - wired it up to play whenever you hit Start, Settings, or Quit buttons so the menu click feelzzz . The same refactor has to be done for other scenes as well. I am onto that journey to Ithica………
Devlog - 4 ITS’ OVER GUYZZZ…… THE GAME IS READY!!!!! Finally finished the game and completed the entire journey from those first pixelated screens to an actual playable game T_TDeveloped three mini games based on stories from Odyssey — not a direct adaptation or anything, just taking inspiration from the stories and turning them into games. Guys come onnn, it’s a game >_< The frustrating all-nighters, debugging, breaking things, fixing them, breaking them again…… somehow I loved all of it. I learned wayyyy more by actually building the game than I expected. Every bug was painful at that moment, but finally it felt soooo good. 2D games are good……BUT 3D IS AWESOME. NEXT ONTO ITTTTTT.
Ships:
I made a minigame based on the Story of odysseus - there are three levels where each represents the challenges faced by him ( not exact a game ishhh analogy ) Navigativing throught the buttons and options of godot was challenging but pretty easy once I started making the third minigame ,as i got used to the method of using the common stuffs for making a scene in Godot I learnt how game dev works in a beginner level with a base project that is prety awesome...
|
1793339816.3088386
|
1793426216.3088386
|
|
451
|
My first slack bot! by @diya-deepak | Stardance
|
diya-deepak
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @diya-deepak | Stard Title: My first slack bot! by @diya-deepak | Stardance...
|
1793339815.3539836
|
1793944615.3539836
|
|
25522
|
My awesome macropad! by @collindmurphy09 | Stardan My awesome macropad! by @collindmurphy09 | Stardance...
|
collindmurphy09
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @collindmurphy09 | Title: My awesome macropad! by @collindmurphy09 | Stardance...
|
1793339814.3534403
|
1793944614.3534403
|
|
44129
|
My own site! by @mons_reinus | Stardance
|
mons_reinus
|
1
|
2.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-16T18:27:22Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made my own personal website, including my hobbies, current projects ect", "repo": "https://github.com/eestigamer69/personal_site", "demo": "https://eestigamer69.github.io/personal_site/"}]...
|
[{"post_id": 69271, "ts": "202 [{"post_id": 69271, "ts": "2026-09-16T18:25:14Z", "hours": 0.85, "text": "I basically finished what I wanted to accomplish. If I get any ideas I might add them in the future"}, {"post_id": 49065, "ts": "2026-08-17T17:38:48Z", "hours": 0.7472, "text": "I initalized making the site"}]...
|
Title: My own site! by @mons_reinus | Stardance
D Title: My own site! by @mons_reinus | Stardance
Devlogs:
I initalized making the site
I basically finished what I wanted to accomplish. If I get any ideas I might add them in the future
Ships:
I made my own personal website, including my hobbies, current projects ect...
|
1793339813.1805162
|
1793426213.1805162
|
|
50481
|
abhi so by @borahhabhinav | Stardance
|
borahhabhinav
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: abhi so by @borahhabhinav | Stardance
|
1793339812.2488458
|
1793944612.2488458
|
|
25061
|
Frictionless by @thesuryakalyan | Stardance
|
thesuryakalyan
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Frictionless by @thesuryakalyan | Stardance
|
1793339811.2505493
|
1793944611.2505493
|
|
41829
|
Koshi's Bookshelf by @koshi | Stardance
|
koshi
|
2
|
32.0
|
234
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-29T12:10:54Z", "hours": 4.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "This is my second ship with a lot of new reviews and some not so major changes. This is my bookshelf where i display the books I’ve read and write a review about it along with my thoughts. The admin page is not working for now.", "repo": "https://github.com/gotcha-khushi/koshi-bookshelf", "demo": "https://gotcha-khushi.github.io/koshi-bookshelf/"}, {"ship_num": 2, "ts": "2026-10-22T18:34:42Z", "hours": 28.0, "multiplier": 8.38, "payout": 234, "blessing": "neutral", "text": "I made my own Bookshelf, where I can keep track of the books I read and write down my thoughts about them. One of the things I really enjoyed working on was getting the book interactions and animations to work, because I wanted the website to feel alive rather than just look pretty. I’m really happy with how it turned out. Please try it out. (˶ᵔ ᵕ ᵔ˶)", "repo": "https://github.com/gotcha-khushi/koshi-bookshelf", "demo": "https://gotcha-khushi.github.io/koshi-bookshelf/"}]...
|
[{"post_id": 84282, "ts": "202 [{"post_id": 84282, "ts": "2026-10-29T12:06:08Z", "hours": 0.5411, "text": "I’ve changed the rating scale of the books from out of 5 to out of 10 and added few more reviews, I have a lot of pending assignment so book review writing is taking time. I always wanted to develop the habit of writing reviews I guess it’ll finally happen now."}, {"post_id": 83324, "ts": "2026-10-27T18:15:17Z", "hours": 0.9589, "text": "more reviews added, more to go."}, {"post_id": 82952, "ts": "2026-10-26T11:10:37Z", "hours": 2.0083, "text": "I added more reviews, most of these books I read a long time ago so to write a review I had to go through them again that’s why it’s taking so much time, I also changed the color of the green sidebar a little."}, {"post_id": 81844, "ts": "2026-10-22T18:20:56Z", "hours": 1.8303, "text": "I’ve added a few reviews some reviews are still left but my website is ready for shipping!!"}, {"post_id": 80454, "ts": "2026-10-17T17:54:19Z", "hours": 0.9964, "text": "i also made a header logo for my wesite"}, {"post_id": 80390, "ts": "2026-10-17T14:20:26Z", "hours": 3.245, "text": "today i worked on the ‘about me’ section and made it actually working also added my github link to the website and i gave it a dark mode too but it looking too empty so i added a sun and moon icon to change modes."}, {"post_id": 79714, "ts": "2026-10-15T06:14:41Z", "hours": 1.3931, "text": "I finally got all the real book covers rendering perfectly on the 3D shelf for Stardance Hack Club. I had a frustrating bug earlier where the whole shelf vanished because my JavaScript was trying to apply color math to the spine text before the text element even existed, but I reordered the logic and fixed the crash. I also stripped out the heavy CSS filters so the cover art looks exactly like the original image files now instead of being artificially darkened. Since I am manually coloring the spines in my JSON data, I wrote a quick script that calculates the brightness of those hex codes and automatically flips the title text to black or white so it never gets lost in the background. I wrapped it up by cleaning up the CSS for the metadata so the author and rating stats stay in a neat, straight line above the reviews."}, {"post_id": 78825, "ts": "2026-10-11T18:13:51Z", "hours": 9.2222, "text": "i made a lot of progress last couple of days cleaning up my bookshelf code by moving the book generation logic into a new book.js file, which made it way easier to load real cover images directly from my JSON data. I had to use AI to figure out the 3D book animation because the math was really hard, but now the spine and cover finally open naturally without clipping through each other. To make the books look more realistic, I also blended the paper texture right into the cover art and added a crease shadow that fades in inside the spine when a book is clicked open. I wrapped it up by building a continuous hover-scroll loop for the navigation arrows, so the shelf just pans smoothly the whole time my mouse is resting on them."}, {"post_id": 58744, "ts": "2026-08-31T09:32:09Z", "hours": 5.8228, "text": "i wanted to add this paper like texture in the books which took a lot of time, im thinking of changing the overall color palate of the website to make it look more vintage. also took a lot of time off, gotta continue working now."}, {"post_id": 44116, "ts": "2026-08-09T17:53:16Z", "hours": 4.3197, "text": "The basic structure of my bookshelf along with some css styling is done, a lot of work is still left"}, {"post_id": 37713, "ts": "2026-07-30T16:50:17Z", "hours": 1.1361, "text": "I started working on a new project today, an interactive bookshelf where i can share books I’ve read and my reviews. Today I got the project setup done, created the Github repo and finished the HTML layout. Tomorrow I’ll start working on CSS file and will start building the actual bookshelf and the first book. Hopefully I’ll have something to show tomorrow."}]...
|
Title: Koshi's Bookshelf by @koshi | Stardance Title: Koshi's Bookshelf by @koshi | Stardance
Devlogs:
I started working on a new project today, an interactive bookshelf where i can share books I’ve read and my reviews. Today I got the project setup done, created the Github repo and finished the HTML layout. Tomorrow I’ll start working on CSS file and will start building the actual bookshelf and the first book. Hopefully I’ll have something to show tomorrow.
The basic structure of my bookshelf along with some css styling is done, a lot of work is still left
i wanted to add this paper like texture in the books which took a lot of time, im thinking of changing the overall color palate of the website to make it look more vintage. also took a lot of time off, gotta continue working now.
i made a lot of progress last couple of days cleaning up my bookshelf code by moving the book generation logic into a new book.js file, which made it way easier to load real cover images directly from my JSON data. I had to use AI to figure out the 3D book animation because the math was really hard, but now the spine and cover finally open naturally without clipping through each other. To make the books look more realistic, I also blended the paper texture right into the cover art and added a crease shadow that fades in inside the spine when a book is clicked open. I wrapped it up by building a continuous hover-scroll loop for the navigation arrows, so the shelf just pans smoothly the whole time my mouse is resting on them.
I finally got all the real book covers rendering perfectly on the 3D shelf for Stardance Hack Club. I had a frustrating bug earlier where the whole shelf vanished because my JavaScript was trying to apply color math to the spine text before the text element even existed, but I reordered the logic and fixed the crash. I also stripped out the heavy CSS filters so the cover art looks exactly like the original image files now instead of being artificially darkened. Since I am manually coloring the spines in my JSON data, I wrote a quick script that calculates the brightness of those hex codes and automatically flips the title text to black or white so it never gets lost in the background. I wrapped it up by cleaning up the CSS for the metadata so the author and rating stats stay in a neat, straight line above the reviews.
today i worked on the ‘about me’ section and made it actually working also added my github link to the website and i gave it a dark mode too but it looking too empty so i added a sun and moon icon to change modes.
i also made a header logo for my wesite
I’ve added a few reviews some reviews are still left but my website is ready for shipping!!
I added more reviews, most of these books I read a long time ago so to write a review I had to go through them again that’s why it’s taking so much time, I also changed the color of the green sidebar a little.
more reviews added, more to go.
I’ve changed the rating scale of the books from out of 5 to out of 10 and added few more reviews, I have a lot of pending assignment so book review writing is taking time. I always wanted to develop the habit of writing reviews I guess it’ll finally happen now.
Ships:
I made my own Bookshelf, where I can keep track of the books I read and write down my thoughts about them. One of the things I really enjoyed working on was getting the book interactions and animations to work, because I wanted the website to feel alive rather than just look pretty. I’m really happy with how it turned out. Please try it out. (˶ᵔ ᵕ ᵔ˶)
This is my second ship with a lot of new reviews and some not so major changes. This is my bookshelf where i display the books I’ve read and write a review about it along with my thoughts. The admin page is not working for now....
|
1793339809.9747
|
1793426209.9747
|
|
50480
|
Zoom MacroPad by @Bobby-Html | Stardance
|
Bobby-Html
|
0
|
5.54
|
0
|
[]
|
[{"post_id": 51993, "ts": "202 [{"post_id": 51993, "ts": "2026-08-22T00:32:39Z", "hours": 0.6247, "text": "I experienced Fusion 360 and other things and man are they hard to get a hang on there is a learning Curve for sure"}, {"post_id": 51269, "ts": "2026-08-20T20:07:03Z", "hours": 2.7014, "text": "Well….I like things that look good you know feel good and my previous design was nothing like that so I edited it some for some I mean I cratched the whole thing and started from the beginning. I am happy how this new design turned out. I quite like it I also imported some 3D models. So to get a better understanding of the structure. I also added some screw holes dont know if they are necessary or not."}, {"post_id": 49832, "ts": "2026-08-18T19:39:07Z", "hours": 0.6833, "text": "So…..I messed up bad. I heard from a guy that it is easy if we just make the Copper plates GND without necessarily connecting everything. Yahhh and I did that and none of my ground were connected. I suck at connections. So I used a whole lotta vias hopefully they dont have any disadvantage. Well that is what happens when a person gets too cocky. So the next hour after these logged ones I spent with AI fixing my mistakes and it was paiiinnnnnnnn. You guys do this as beginners salute man saluteeeee. Yah in the end all the errors are solved there are some warnings but we dont talk about those. But this thing is fun beside the routes and vias"}, {"post_id": 49730, "ts": "2026-08-18T17:18:36Z", "hours": 1.0, "text": "Sooo many lines. I thought of finishing my PCB making connections, creating a copper GND filled zone and all that neat stuff and by far the hardes thing was connecting everything. I didnt have a design I wished to follow nor did I planned the layout. I just went with it and it took an hour"}, {"post_id": 49654, "ts": "2026-08-18T15:21:30Z", "hours": 0.5333, "text": "It was my first experience with KiCad ofcourse after the tutorials I watched. I was well kinda confused the software is hard to get familiar to for me. But I got the hang of it and build the schematic. Still I get confused ith all the footprints and stuff and I will admit I do use AI for those parts."}]...
|
Title: Zoom MacroPad by @Bobby-Html | Stardance
D Title: Zoom MacroPad by @Bobby-Html | Stardance
Devlogs:
It was my first experience with KiCad ofcourse after the tutorials I watched. I was well kinda confused the software is hard to get familiar to for me. But I got the hang of it and build the schematic. Still I get confused ith all the footprints and stuff and I will admit I do use AI for those parts.
Sooo many lines. I thought of finishing my PCB making connections, creating a copper GND filled zone and all that neat stuff and by far the hardes thing was connecting everything. I didnt have a design I wished to follow nor did I planned the layout. I just went with it and it took an hour
So…..I messed up bad. I heard from a guy that it is easy if we just make the Copper plates GND without necessarily connecting everything. Yahhh and I did that and none of my ground were connected. I suck at connections. So I used a whole lotta vias hopefully they dont have any disadvantage. Well that is what happens when a person gets too cocky. So the next hour after these logged ones I spent with AI fixing my mistakes and it was paiiinnnnnnnn. You guys do this as beginners salute man saluteeeee. Yah in the end all the errors are solved there are some warnings but we dont talk about those. But this thing is fun beside the routes and vias
Well….I like things that look good you know feel good and my previous design was nothing like that so I edited it some for some I mean I cratched the whole thing and started from the beginning. I am happy how this new design turned out. I quite like it I also imported some 3D models. So to get a better understanding of the structure. I also added some screw holes dont know if they are necessary or not.
I experienced Fusion 360 and other things and man are they hard to get a hang on there is a learning Curve for sure...
|
1793339808.779237
|
1793944608.779237
|
|
16040
|
My first slack bot! by @nirekthakkar | Stardance
|
nirekthakkar
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @nirekthakkar | Star Title: My first slack bot! by @nirekthakkar | Stardance...
|
1793339807.8641222
|
1793944607.8641222
|
|
44109
|
Cozy Farm by @Irtaza | Stardance
|
Irtaza
|
1
|
18.0
|
264
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-20T14:13:05Z", "hours": 18.0, "multiplier": 14.58, "payout": 264, "blessing": "neutral", "text": "I made a cozy farming simulation game! Raise chickens, collect eggs, and sell them for money! And repeat. You can also hire workers to collect eggs for you! And expand your farm using the money you make!", "repo": "https://github.com/Irtaza2009/Cozy-Farm", "demo": "https://irtaza.itch.io/cozy-farm"}]...
|
[{"post_id": 71217, "ts": "202 [{"post_id": 71217, "ts": "2026-09-20T13:57:58Z", "hours": 0.3767, "text": "Decided to finally ship the game! And updated the itch.io page! Also manually updated the index.html build file produced by Unity to remove the footer and make the fullscreen button an overlay. BTW, the game looks best in full screen, so try it in full screen when playing it!"}, {"post_id": 65797, "ts": "2026-09-11T05:29:35Z", "hours": 2.1333, "text": "I added bridges between islands! I also tried to play around with colliders and physics shapes in the Unity Sprite Editor, and I tried to automate the boundary colliders of a tilemap, but it didn’t work. I guess I will have to manually place objects around the islands to make a boundary… Also, I have disabled boat movement for now. I am thinking of just adding bridges between the islands…"}, {"post_id": 61567, "ts": "2026-09-04T15:25:33Z", "hours": 1.4067, "text": "I added a player which you can control to move around the island. And made a boat controller and manager, and now you can board, and control the boat and sail! Also a text pops up when you go near the boat, telling the player to press enter to board ship."}, {"post_id": 60242, "ts": "2026-09-02T14:19:04Z", "hours": 1.6783, "text": "Created a new home island! Also added some objects like rocks and weeds in the water, and improved the water animations. And added an animated docked boat! I am planning for this to be the main scene of the game, and then you use the boat to get to the chicken farm and other farms that I might add in the future. Will add sailing in the boat next!"}, {"post_id": 58816, "ts": "2026-08-31T12:17:59Z", "hours": 1.2, "text": "Added icons to the left menu for eggs, coins and chickens!! Also updated the shapes of the chicken, worker and hen house colliders, (so they aren’t exactly the size of the characters, but a bit smaller)"}, {"post_id": 57283, "ts": "2026-08-29T12:06:20Z", "hours": 3.5225, "text": "Made an auto controller for the worker rabbit. Now you can hire the worker, and it can auto-collect eggs. It detects and moves towards an egg (only up, down, left or right movement. No diagonal, as it didn’t look good), and collects it on collision. Also, when there is no egg nearby, it can randomly choose between wandering or idle behaviour/animations! Also revamped the shop UI to make space for the hire button, and changed the button sizes and layout."}, {"post_id": 44473, "ts": "2026-08-10T07:50:50Z", "hours": 3.1283, "text": "I added a worker (rabbit), with 4 idle animations and 4 move animations! It ignores collisions with chickens and eggs, and has a sorting layer script so it can appear behind or in front of other sprites correctly. Will make it move automatically in the next update so you don’t have to control it, and also make it auto-collect eggs."}, {"post_id": 42895, "ts": "2026-08-07T21:02:29Z", "hours": 2.9161, "text": "Added zoom functionality! Now you can zoom in or out using the scroll wheel or pinching. And added some islands spelling out “IRT” (just for fun!). Also made the tutorial only load on the player’s first time playing. I also found out that eggs weren’t spawning on the expanded island, so I fixed that by updating the boundaries I had hard-coded."}, {"post_id": 41163, "ts": "2026-08-05T06:11:23Z", "hours": 1.7208, "text": "Started working on making an interactive tutorial! Made 4 steps: it teaches the player how to collect eggs, open the shop, sell the eggs, and get more chickens."}]...
|
Title: Cozy Farm by @Irtaza | Stardance
Devlogs:
Title: Cozy Farm by @Irtaza | Stardance
Devlogs:
Started working on making an interactive tutorial! Made 4 steps: it teaches the player how to collect eggs, open the shop, sell the eggs, and get more chickens.
Added zoom functionality! Now you can zoom in or out using the scroll wheel or pinching. And added some islands spelling out “IRT” (just for fun!). Also made the tutorial only load on the player’s first time playing. I also found out that eggs weren’t spawning on the expanded island, so I fixed that by updating the boundaries I had hard-coded.
I added a worker (rabbit), with 4 idle animations and 4 move animations! It ignores collisions with chickens and eggs, and has a sorting layer script so it can appear behind or in front of other sprites correctly. Will make it move automatically in the next update so you don’t have to control it, and also make it auto-collect eggs.
Made an auto controller for the worker rabbit. Now you can hire the worker, and it can auto-collect eggs. It detects and moves towards an egg (only up, down, left or right movement. No diagonal, as it didn’t look good), and collects it on collision. Also, when there is no egg nearby, it can randomly choose between wandering or idle behaviour/animations! Also revamped the shop UI to make space for the hire button, and changed the button sizes and layout.
Added icons to the left menu for eggs, coins and chickens!! Also updated the shapes of the chicken, worker and hen house colliders, (so they aren’t exactly the size of the characters, but a bit smaller)
Created a new home island! Also added some objects like rocks and weeds in the water, and improved the water animations. And added an animated docked boat! I am planning for this to be the main scene of the game, and then you use the boat to get to the chicken farm and other farms that I might add in the future. Will add sailing in the boat next!
I added a player which you can control to move around the island. And made a boat controller and manager, and now you can board, and control the boat and sail! Also a text pops up when you go near the boat, telling the player to press enter to board ship.
I added bridges between islands! I also tried to play around with colliders and physics shapes in the Unity Sprite Editor, and I tried to automate the boundary colliders of a tilemap, but it didn’t work. I guess I will have to manually place objects around the islands to make a boundary… Also, I have disabled boat movement for now. I am thinking of just adding bridges between the islands…
Decided to finally ship the game! And updated the itch.io page! Also manually updated the index.html build file produced by Unity to remove the footer and make the fullscreen button an overlay. BTW, the game looks best in full screen, so try it in full screen when playing it!
Ships:
I made a cozy farming simulation game! Raise chickens, collect eggs, and sell them for money! And repeat. You can also hire workers to collect eggs for you! And expand your farm using the money you make!...
|
1793339806.5949605
|
1793426206.5949605
|
|
18766
|
sub 250g RC plane by @Gibson | Stardance
|
Gibson
|
0
|
1.85
|
0
|
[]
|
[{"post_id": 10772, "ts": "202 [{"post_id": 10772, "ts": "2026-06-17T18:02:46Z", "hours": 0.6, "text": "I have made a cradle that the plane can sit on during take off and the cradle will be left behind after take off to minimise weight and drag during flight. The cradle is quite simple and chunky because it will be discarded after take off so there is no point making it aero, and I don’t want it to break so it is designed to be chunky."}, {"post_id": 9950, "ts": "2026-06-16T14:06:17Z", "hours": 1.2522, "text": "resoldered a faulty servo and built the wings . I have been working on this project before I joined hackclub, so here is some background info on my plane. . I designed this plane on fusion 360, it took probably at least 60ish hours including all the tests and iterations, but I don’t know how to upload that so that 60 hours down the drain. This is the 7th iteration after doing countless tests on cfd. . My initial goal was 100kph, but I decided to go even bigger after doing cfd testing (that took absolutely ages on my laptop). I designed the wings to be printed in spiral vase mode which was also a pain cuz the slicer just kept putting holes in my wing which is super annoying. There are still some jagged edges on the trailing edge, but I have given up with trying to fix that. The fixed model to hair loss ratio was just not worth it. . The tail was designed to have built in hinges which worked surprisingly well with just PLA. they just need a bit of a wiggle and they worked fine (slightly stiff but still usable). . I printed the whole plane in LW PLA and the wing root plus the tail in normal PLA for a bit more strength, but looking at it; I think the wing root would work just fine in LW PLA and that would save another 10 grams. . The motor I am using right now is not great for the purpose of this aircraft, because it is designed for efficiency, but it is the only one I have lying around right now. I will swap it out with something more suitable for this aircraft in the future when further developing this plane."}]...
|
Title: sub 250g RC plane by @Gibson | Stardance
D Title: sub 250g RC plane by @Gibson | Stardance
Devlogs:
resoldered a faulty servo and built the wings . I have been working on this project before I joined hackclub, so here is some background info on my plane. . I designed this plane on fusion 360, it took probably at least 60ish hours including all the tests and iterations, but I don’t know how to upload that so that 60 hours down the drain. This is the 7th iteration after doing countless tests on cfd. . My initial goal was 100kph, but I decided to go even bigger after doing cfd testing (that took absolutely ages on my laptop). I designed the wings to be printed in spiral vase mode which was also a pain cuz the slicer just kept putting holes in my wing which is super annoying. There are still some jagged edges on the trailing edge, but I have given up with trying to fix that. The fixed model to hair loss ratio was just not worth it. . The tail was designed to have built in hinges which worked surprisingly well with just PLA. they just need a bit of a wiggle and they worked fine (slightly stiff but still usable). . I printed the whole plane in LW PLA and the wing root plus the tail in normal PLA for a bit more strength, but looking at it; I think the wing root would work just fine in LW PLA and that would save another 10 grams. . The motor I am using right now is not great for the purpose of this aircraft, because it is designed for efficiency, but it is the only one I have lying around right now. I will swap it out with something more suitable for this aircraft in the future when further developing this plane.
I have made a cradle that the plane can sit on during take off and the cradle will be left behind after take off to minimise weight and drag during flight. The cradle is quite simple and chunky because it will be discarded after take off so there is no point making it aero, and I don’t want it to break so it is designed to be chunky....
|
1793339805.661299
|
1793944605.661299
|
|
50479
|
My awesome macropad! by @AlanNguyen | Stardance
|
AlanNguyen
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @AlanNguyen | Stard Title: My awesome macropad! by @AlanNguyen | Stardance...
|
1793339804.7503502
|
1793944604.7503502
|
|
37737
|
Voxelium by @notryaan | Stardance
|
notryaan
|
1
|
51.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-10T10:50:01Z", "hours": 51.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Voxelium 1.0 First release!! Voxelium is a voxel game I built from scratch in C++ and OpenGL, no engine, just a lot of code. Endless worlds with real seas, mountain ranges, caves, weather and animals, and you can break and build whatever you want. What’s in it Endless worlds from a seed: seas with islands, wide beaches, mountain ranges with snow on top, big deserts and forests, and you can see about 5 km out Caves with huge caverns, tunnels and ravines, old mineshafts running through them, and it’s actually dark down there so bring lamps Lighthouses, shipwrecks, desert ruins and pyramids (there’s something under the pyramids) Water that flows, waves that go crazy in storms, coral reefs and kelp forests Weather that does its own thing: rain, snow that piles up and melts, thunderstorms with real lightning, mist over the water at sunrise Crabs, turtles, fish, jellyfish that glow at night, birds, butterflies and fireflies. You can punch them, they will run Every block has its own sounds and every biome has its own ambience Break and place blocks, 25 lamp colours, no height limit, save as many worlds as you want Low / Medium / High / Ultra presets so it runs on more than just my PC Controls WASD + mouse, space to jump, F5 walk/fly, hold left click to break, middle click to place, F4 hotbar, ESC settings, F3 debug stuff Tips Hit New World on the title screen and type a seed or roll one. Save from the ESC menu if you want to keep a world If Ultra is laggy, turn down detail dist in the settings first, it’s the biggest cost by far Big thanks to everyone on opengameart.org whose textures and sounds are in here, they’re all credited in the readme.", "repo": "https://github.com/UltimaCodes/Voxelium", "demo": "https://github.com/UltimaCodes/Voxelium/releases/tag/v1.0"}]...
|
[{"post_id": 78298, "ts": "202 [{"post_id": 78298, "ts": "2026-10-10T10:44:33Z", "hours": 0.5822, "text": "OK FINAL DEVLOG ACTUALLY There were a few bugs from the previous one which I had to fix before release Tree tops looked unlit and forests looked really gloomy, even in full sun. The light was reaching them fine, the auto exposure was measuring the whole screen including the bright sky and darkening everything under it. It only measures the world now, so trees actually look lit Every new world had an old glowing test room carved underground in the same spot. It’s gone from new worlds, old worlds keep it so nothing in them changes- The game was running one of my internal tests every single time it launched, it doesn’t anymore There was a hidden launch option that crashed the game on purpose, left over from testing the crash reporter, removed"}, {"post_id": 78292, "ts": "2026-10-10T09:50:27Z", "hours": 14.1283, "text": "Final devlog (probably) Terrain & World Gen The old terrain was hills everywhere with puddles in between, and the mountains were random spikes shooting straight up out of flat ground like something was stabbing the map from underneath. So I rewrote the whole generator. There’s real seas now with islands and deep water, and coasts start with a proper wide beach before the land slowly rises. Mountains come in long ranges with foothills, bare rock on the steep parts, a treeline and snow on top, and deserts are one big desert instead of a sand patch in the middle of nowhere. Getting the mountains right took way longer than I want to admit. First they went up like walls, then there were 40 block deep trenches running in perfectly straight lines for hundreds of blocks through the hills. Turned out the math that works out how far you are from the coast completely loses it deep inland, so now it looks out in eight directions for the actual coast instead of guessing. Old worlds keep their old terrain so nothing you built gets new ground under it. Caves & Structures Caves are actual caves now: huge caverns, long winding tunnels, ravines, water pooled at the bottom, and stalactites. They also don’t break out of the side of every hill anymore, which is where all those random gaps and chasms were coming from. Old mineshafts run through them with lamps and plank bridges over the drops, and there’s pyramids out in the desert with a lit room inside. There’s also something hidden under the pyramids but I’m not telling you what. Water & Animals Water has actual waves now, flat at the beach, bigger out in deep water, and way bigger in a storm. Also fixed far away water reflections breaking into lines. The animals were ghosts this whole time; you could walk straight through a turtle. Now they’re solid, punching one knocks it back and it runs off, and swimming into a school of fish scatters them. The fish were also translucent, fixed that. And the black squares that flashed on screen when it rained are gone (funny NaN issue). Lighting & Performance Caves are properly dark now unless something lights them, and lamp light hangs in the air a bit so lamps actually glow instead of just painting the wall. Lighting runs on its own thread now so it doesn’t eat into your frame, and sun shafts and lamp glow render at half resolution, which made them way cheaper and you can’t tell. Also fixed a bunch of random bugs: Game freezing for a few seconds when you broke a block somewhere new. The world sometimes thinking it was still loading forever. Memory getting corrupted when you closed the game. The settings back button hiding off the bottom of the screen at 720p."}, {"post_id": 74371, "ts": "2026-09-27T08:18:33Z", "hours": 4.6833, "text": "Hallo, audio and the settings menu are in like I said last time, plus a mountain of bugs I only found by actually sitting down and playing it TLDR; The game has sound now, a real title screen, settings with quality presets, and I fixed a ton of stuff that only showed up during long play sessions Audio: The world was dead silent so I added a bunch of CC0 sounds. Every block has its own break, place and footstep sound based on what it’s made of now instead of almost everything falling back to one generic clip. Jumping, landing (heavier sound if you fall from high up), getting in and out of water, all of that. Funniest part is the audio test was passing the whole time while the game made zero sound, it only checked that sounds were “playing”, not that anything came out of the speakers, so now it actually listens to the output. Also added ambience for every biome, birds, cicadas, frogs, desert wind, waves, gulls and cave drips. Some I generated myself from noise and some are real recordings. Menus: Proper settings menu with tabs and Low/Medium/High/Ultra presets. The presets actually change how much work the shaders do instead of just flipping effects on and off. Render scale got a sharpening pass so running it below 1 doesn’t look like mush anymore, and a few settings were quietly resetting every time you launched which is fixed. Made a real title screen too, you can type a seed or load a saved world and it shows the actual world behind the menu, it even previews the terrain as you type a seed. First version of it had buttons that did literally nothing when you clicked them lol. Also added a screenshot key, crash dumps and an app icon. Bugs (so many): The first block you broke after launching froze the game for like 10 seconds and every edit after that for another second or two. Sometimes the area you spawned in just never loaded and you had to fly to the nearest chunk. Flying fast made it look like the whole world was reloading. Ultra was loading a smaller world behind the loading screen and then doubling it the second you spawned, so the start was super laggy. Hard black blotches all over the terrain in the day turned out to be cloud shadows aliasing, and the checkered pattern on grassy slopes was ambient occlusion getting applied twice. Water had black spots at certain angles from the reflections freaking out, and weird streaks across lakes that turned out to be the ambient occlusion using the lake bed under the water instead of the surface. Caves were getting lit by the time of day which makes no sense, light fading off in visible rings is gone, and the leaf texture had no transparency so every tree was a solid blob this entire time. Did a lighting pass to make it look more like a shader pack, overdid it and everything was way too bright, so I dialed it back. Also killed contact shadows completely, they caused more problems than they fixed. Next up is making the world more interesting, new biomes, animals and better weather"}, {"post_id": 65910, "ts": "2026-09-11T11:20:25Z", "hours": 8.0572, "text": "Hallo pretty big changelog because I didn’t do anything for a bit oops TLDR; Cleaned out old bugs, did a performance pass, built actual world simulation and did a full graphics overhaul Bugs : Chunks were silently vanishing past a hardcoded cap that was way too low for default settings, no draw, no shadow, which turned out to be that “chunks glitch out while moving” bug. Fixed it plus streaky stars, a moon that looked like a tiny sun, and water growing phantom walls at chunk borders from an earlier fix. Teleporting somewhere far caused a 1004ms freeze. Profiled it instead of guessing and found the GPU arena was doing a full reset every time. Fixed properly and worst case is under 12ms now. Performance : Frame time was 15.5ms. Turned out shadows were re-rendering every single frame for no reason, only redrawing a cascade when it actually needs to cut that down 89% and dropped the whole frame in half to about 2.3ms. Built a couple things expecting wins that turned out to be losses when actually measured (one was 28% slower), and almost built a whole defrag system for the arena before realizing it wasn’t fragmentation, it was just too small so I bumped it up and the problem vanished on its own. Real world woahh : Flowing water, colored block light, ore veins that actually clump instead of speckling everywhere. Rewrote falling sand and gravel, the old version was doing 118k lookups a tick and never even stopped. Rebuilt caves properly using two noise fields overlapping instead of one, actual tunnels now instead of flat noodles. Also chunks exist at any height now, no ceiling at all. Building that surfaced 3 old bugs that had been broken this whole time. Graphicss : Water got reflections, caustics, underwater god rays. Found an evil ass NaN bug doing the caustics where the seabed was rendering as solid black rectangles until I caught it. Rain and snow are generated entirely in the vertex shader, so 30k drops cost one draw call and zero buffer uploads. Volumetric clouds and cloud shadows now share the same noise field so they can’t disagree with each other. Also fake normal maps with zero authored art, the pixel art textures already have the detail baked into their own shading so I just reused that as the normal map, completely free. Built and killed an atmosphere LUT after measuring it three separate times, kept losing to the simple hand tuned sky. Also fixed emitters like lamps flickering their own glow depending on the angle you looked at them. Next up is audio, a settings menu, and makign the game look better somehow"}, {"post_id": 43979, "ts": "2026-08-09T13:45:27Z", "hours": 8.1175, "text": "voxel engine devlog #3 Shadows, post processing, save files, and actual trees. GPU arena overflow funny moments it was not pleasant to deal with + graphics overhaul (added water) Forward HDR & Shadows: Built a full pipeline with 3 cascade shadow maps, half-res SSAO, and Jimenez bloom. Shadows were super vertex-bound at first (5.12ms), but tightening the cascade splits chopped that straight down to 3.5ms. Saving to Disk (.vxr Region Files): Chunks now compress using varints (a cave chunk shrinks from 65 KB down to 5.7 KB). We now only save edited chunks as a diff against the noise seed while everything else regenerates on the fly. I tested it by blowing up a wall, flying a few thousand blocks away to evict it, flying back, and it reloaded intact from disk. Trees without neighbor lookups: Solved tree canopy generation across chunk borders by making them deferred. Each chunk calculates what parts of nearby tree roots fall inside its bounding box, avoiding goofy crossthread neighbor lookups. Water meshing: Added water as a second mesh layer. Opaque faces draw against air or water (so you see the seabed), while water faces only emit against air. Performance upgrades: High render distances were causing massive frame stalls because the GPU arena buffer was running at 92% capacity and triggering full GPU resets. Bumped the arena from 8M to 16M quads (128 MB) and nuked a hidden O(N) chunk scan sooooo hopefully smooth sailing from now . What now?: Full pipeline runs at ~4.5ms (~0.9ms with shaders off). Up next: smoothing out face lighting with per-corner ambient occlusion (AO) baked into the greedy mesh and looking into SSR for water."}, {"post_id": 33323, "ts": "2026-07-23T04:07:54Z", "hours": 5.7403, "text": "voxel engine devlog #2 Threading turned into rendering turned into lighting turned into an actual world with caves in it, all in one sitting. This was NOT the plan but here we are lol. Threading: got gen + meshing off the main thread onto a real worker pool. Workers are just pure functions, voxels in results out through queues, so the only actual cross-thread headache was stopping a chunk from getting unloaded while another job was still reading it (fixed with a refcount). World output came out byte-identical to before which is exactly what I wanted, just moved where the work happens not what it produces. Worst case frame during a full re-stream is under 1ms now. One draw call: this was the fun one. Went from 349 draw calls (one per chunk, kind of wacko ngl) down to 1. GPU buffer stays persistently mapped, culling got moved into a compute shader, and the indirect draw pulls its own visible count straight off the GPU so it never even touches the CPU. Same exact pixels as before, just the CPU isn’t sitting there doing a bunch of pointless work anymore. Cave culling: engine now figures out which chunks you could actually see air through and just doesn’t draw the rest. Above ground that’s about 40% fewer chunks. My sealed test room underground was cutting 98%+ but that number came back down once real caves existed instead of one clean sealed box, which makes sense since it’s following actual connectivity now instead of a best case demo. Lighting: sky + block light through BFS, baked straight into the mesh so there’s no separate lighting pass at render time. Threw in a glow block to test with. Removing a light source zeroes it out exactly and adding it back restores it exactly, verified both instead of assuming it just works. Terrain + you can hit stuff now: swapped the flat test world for actual noise based terrain, caves carved with 3D noise instead of flat tunnels. Added raycasting so you can break/place blocks. Player movement runs on a fixed timestep so framerate literally cannot change how fast you move. Next up: lighting is flat per face right now, want that smoothed per corner eventually. also got one frame time spike during heavy cave streaming I need to go check out before it turns into an actual problem once flying through caves is a thing."}, {"post_id": 33131, "ts": "2026-07-22T19:16:08Z", "hours": 9.4881, "text": "voxel engine first devlog yayyyyyy!!!!!! Deadahh just wanted to put everything from the last few days into one initial devlog so I don’t have to keep yap too much. Started with basic OpenGL 4.6 and GLFW, instead of using string lookups for shaders which is clown behavior, everything uses explicit locations. I also set up a headless smoke test so the CI can render offscreen, check its own pixels, and pass without popping up a window and being too goofy. For debugging, I threw in an ImGui menu to track frames, draw calls, and memory without making the heap allocator crash out. Steady-state heap allocations are at zero right now + also flipped the depth buffer to reversed-D because standard depth buffers kaboom at long distances and make the textures Z-fight. The Mesher thingy The first mesher I built was literally just a mesher. A regular mesher. There was nothing special about it. It just emitted 6 expanded vertices per face which took up way too much space (615 KB a chunk) and was slow. I improved it and made a binary greedy mesher that packs an entire quad into a single 64-bit integer. It uses 64-bit bitwise column ops to merge faces instantly. 2.7x fewer triangles and 33x less memory. It’s so fast it takes like 0.05ms and I also ripped out VBOs completely for SSBO vertex pulling, meaning the GPU just reconstructs the geometry on the fly. There was one issue where the greedy mesher left microscopic sub-pixel holes everywhere so I kept seeing pinhole cracks, so I just bloated every quad by 0.001 so they overlap and cover it up (surely this works well enough). Chunks & Compressing Having raw voxel arrays was eating my RAM alive, so I used palette compression. If a chunk is entirely air or entirely stone, it just stores one ID now. If it’s mixed, it bit-packs the indices, this dropped voxel memory by 20x. We’re streaming a 21x21x4 chunk radius (like 2,100 chunks) and it only takes 6.6 MB. Added a chunk streaming manager so it loads in a ring around you. I had to put strict budgets on generation and meshing per frame, otherwise the game just freezes when you move too fast + CPU frustum culling means we only actually draw the chunks you’re looking at. What’s Next? Right now the engine is in the state of being too good and being too bad at the same time. It’s doing like 349 individual draw calls per frame (one for every visible chunk). It works, but it’s got some quirks that I need to kaboom first. Next up is building a persistent arena buffer and GPU-driven culling so we can collapse the entire world into ONE single draw call using indirect drawing."}]...
|
Title: Voxelium by @notryaan | Stardance
Devlogs: Title: Voxelium by @notryaan | Stardance
Devlogs:
voxel engine first devlog yayyyyyy!!!!!! Deadahh just wanted to put everything from the last few days into one initial devlog so I don’t have to keep yap too much. Started with basic OpenGL 4.6 and GLFW, instead of using string lookups for shaders which is clown behavior, everything uses explicit locations. I also set up a headless smoke test so the CI can render offscreen, check its own pixels, and pass without popping up a window and being too goofy. For debugging, I threw in an ImGui menu to track frames, draw calls, and memory without making the heap allocator crash out. Steady-state heap allocations are at zero right now + also flipped the depth buffer to reversed-D because standard depth buffers kaboom at long distances and make the textures Z-fight. The Mesher thingy The first mesher I built was literally just a mesher. A regular mesher. There was nothing special about it. It just emitted 6 expanded vertices per face which took up way too much space (615 KB a chunk) and was slow. I improved it and made a binary greedy mesher that packs an entire quad into a single 64-bit integer. It uses 64-bit bitwise column ops to merge faces instantly. 2.7x fewer triangles and 33x less memory. It’s so fast it takes like 0.05ms and I also ripped out VBOs completely for SSBO vertex pulling, meaning the GPU just reconstructs the geometry on the fly. There was one issue where the greedy mesher left microscopic sub-pixel holes everywhere so I kept seeing pinhole cracks, so I just bloated every quad by 0.001 so they overlap and cover it up (surely this works well enough). Chunks & Compressing Having raw voxel arrays was eating my RAM alive, so I used palette compression. If a chunk is entirely air or entirely stone, it just stores one ID now. If it’s mixed, it bit-packs the indices, this dropped voxel memory by 20x. We’re streaming a 21x21x4 chunk radius (like 2,100 chunks) and it only takes 6.6 MB. Added a chunk streaming manager so it loads in a ring around you. I had to put strict budgets on generation and meshing per frame, otherwise the game just freezes when you move too fast + CPU frustum culling means we only actually draw the chunks you’re looking at. What’s Next? Right now the engine is in the state of being too good and being too bad at the same time. It’s doing like 349 individual draw calls per frame (one for every visible chunk). It works, but it’s got some quirks that I need to kaboom first. Next up is building a persistent arena buffer and GPU-driven culling so we can collapse the entire world into ONE single draw call using indirect drawing.
voxel engine devlog #2 Threading turned into rendering turned into lighting turned into an actual world with caves in it, all in one sitting. This was NOT the plan but here we are lol. Threading: got gen + meshing off the main thread onto a real worker pool. Workers are just pure functions, voxels in results out through queues, so the only actual cross-thread headache was stopping a chunk from getting unloaded while another job was still reading it (fixed with a refcount). World output came out byte-identical to before which is exactly what I wanted, just moved where the work happens not what it produces. Worst case frame during a full re-stream is under 1ms now. One draw call: this was the fun one. Went from 349 draw calls (one per chunk, kind of wacko ngl) down to 1. GPU buffer stays persistently mapped, culling got moved into a compute shader, and the indirect draw pulls its own visible count straight off the GPU so it never even touches the CPU. Same exact pixels as before, just the CPU isn’t sitting there doing a bunch of pointless work anymore. Cave culling: engine now figures out which chunks you could actually see air through and just doesn’t draw the rest. Above ground that’s about 40% fewer chunks. My sealed test room underground was cutting 98%+ but that number came back down once real caves existed instead of one clean sealed box, which makes sense since it’s following actual connectivity now instead of a best case demo. Lighting: sky + block light through BFS, baked straight into the mesh so there’s no separate lighting pass at render time. Threw in a glow block to test with. Removing a light source zeroes it out exactly and adding it back restores it exactly, verified both instead of assuming it just works. Terrain + you can hit stuff now: swapped the flat test world for actual noise based terrain, caves carved with 3D noise instead of flat tunnels. Added raycasting so you can break/place blocks. Player movement runs on a fixed timestep so framerate literally cannot change how fast you move. Next up: lighting is flat per face right now, want that smoothed per corner eventually. also got one frame time spike during heavy cave streaming I need to go check out before it turns into an actual problem once flying through caves is a thing.
voxel engine devlog #3 Shadows, post processing, save files, and actual trees. GPU arena overflow funny moments it was not pleasant to deal with + graphics overhaul (added water) Forward HDR & Shadows: Built a full pipeline with 3 cascade shadow maps, half-res SSAO, and Jimenez bloom. Shadows were super vertex-bound at first (5.12ms), but tightening the cascade splits chopped that straight down to 3.5ms. Saving to Disk (.vxr Region Files): Chunks now compress using varints (a cave chunk shrinks from 65 KB down to 5.7 KB). We now only save edited chunks as a diff against the noise seed while everything else regenerates on the fly. I tested it by blowing up a wall, flying a few thousand blocks away to evict it, flying back, and it reloaded intact from disk. Trees without neighbor lookups: Solved tree canopy generation across chunk borders by making them deferred. Each chunk calculates what parts of nearby tree roots fall inside its bounding box, avoiding goofy crossthread neighbor lookups. Water meshing: Added water as a second mesh layer. Opaque faces draw against air or water (so you see the seabed), while water faces only emit against air. Performance upgrades: High render distances were causing massive frame stalls because the GPU arena buffer was running at 92% capacity and triggering full GPU resets. Bumped the arena from 8M to 16M quads (128 MB) and nuked a hidden O(N) chunk scan sooooo hopefully smooth sailing from now . What now?: Full pipeline runs at ~4.5ms (~0.9ms with shaders off). Up next: smoothing out face lighting with per-corner ambient occlusion (AO) baked into the greedy mesh and looking into SSR for water.
Hallo pretty big changelog because I didn’t do anything for a bit oops TLDR; Cleaned out old bugs, did a performance pass, built actual world simulation and did a full graphics overhaul Bugs : Chunks were silently vanishing past a hardcoded cap that was way too low for default settings, no draw, no shadow, which turned out to be that “chunks glitch out while moving” bug. Fixed it plus streaky stars, a moon that looked like a tiny sun, and water growing phantom walls at chunk borders from an earlier fix. Teleporting somewhere far caused a 1004ms freeze. Profiled it instead of guessing and found the GPU arena was doing a full reset every time. Fixed properly and worst case is under 12ms now. Performance : Frame time was 15.5ms. Turned out shadows were re-rendering every single frame for no reason, only redrawing a cascade when it actually needs to cut that down 89% and dropped the whole frame in half to about 2.3ms. Built a couple things expecting wins that turned out to be losses when actually measured (one was 28% slower), and almost built a whole defrag system for the arena before realizing it wasn’t fragmentation, it was just too small so I bumped it up and the problem vanished on its own. Real world woahh : Flowing water, colored block light, ore veins that actually clump instead of speckling everywhere. Rewrote falling sand and gravel, the old version was doing 118k lookups a tick and never even stopped. Rebuilt caves properly using two noise fields overlapping instead of one, actual tunnels now instead of flat noodles. Also chunks exist at any height now, no ceiling at all. Building that surfaced 3 old bugs that had been broken this whole time. Graphicss : Water got reflections, caustics, underwater god rays. Found an evil ass NaN bug doing the caustics where the seabed was rendering as solid black rectangles until I caught it. Rain and snow are generated entirely in the vertex shader, so 30k drops cost one draw call and zero buffer uploads. Volumetric clouds and cloud shadows now share the same noise field so they can’t disagree with each other. Also fake normal maps with zero authored art, the pixel art textures already have the detail baked into their own shading so I just reused that as the normal map, completely free. Built and killed an atmosphere LUT after measuring it three separate times, kept losing to the simple hand tuned sky. Also fixed emitters like lamps flickering their own glow depending on the angle you looked at them. Next up is audio, a settings menu, and makign the game look better somehow
Hallo, audio and the settings menu are in like I said last time, plus a mountain of bugs I only found by actually sitting down and playing it TLDR; The game has sound now, a real title screen, settings with quality presets, and I fixed a ton of stuff that only showed up during long play sessions Audio: The world was dead silent so I added a bunch of CC0 sounds. Every block has its own break, place and footstep sound based on what it’s made of now instead of almost everything falling back to one generic clip. Jumping, landing (heavier sound if you fall from high up), getting in and out of water, all of that. Funniest part is the audio test was passing the whole time while the game made zero sound, it only checked that sounds were “playing”, not that anything came out of the speakers, so now it actually listens to the output. Also added ambience for every biome, birds, cicadas, frogs, desert wind, waves, gulls and cave drips. Some I generated myself from noise and some are real recordings. Menus: Proper settings menu with tabs and Low/Medium/High/Ultra presets. The presets actually change how much work the shaders do instead of just flipping effects on and off. Render scale got a sharpening pass so running it below 1 doesn’t look like mush anymore, and a few settings were quietly resetting every time you launched which is fixed. Made a real title screen too, you can type a seed or load a saved world and it shows the actual world behind the menu, it even previews the terrain as you type a seed. First version of it had buttons that did literally nothing when you clicked them lol. Also added a screenshot key, crash dumps and an app icon. Bugs (so many): The first block you broke after launching froze the game for like 10 seconds and every edit after that for another second or two. Sometimes the area you spawned in just never loaded and you had to fly to the nearest chunk. Flying fast made it look like the whole world was reloading. Ultra was loading a smaller world behind the loading screen and then doubling it the second you spawned, so the start was super laggy. Hard black blotches all over the terrain in the day turned out to be cloud shadows aliasing, and the checkered pattern on grassy slopes was ambient occlusion getting applied twice. Water had black spots at certain angles from the reflections freaking out, and weird streaks across lakes that turned out to be the ambient occlusion using the lake bed under the water instead of the surface. Caves were getting lit by the time of day which makes no sense, light fading off in visible rings is gone, and the leaf texture had no transparency so every tree was a solid blob this entire time. Did a lighting pass to make it look more like a shader pack, overdid it and everything was way too bright, so I dialed it back. Also killed contact shadows completely, they caused more problems than they fixed. Next up is making the world more interesting, new biomes, animals and better weather
Final devlog (probably) Terrain & World Gen The old terrain was hills everywhere with puddles in between, and the mountains were random spikes shooting straight up out of flat ground like something was stabbing the map from underneath. So I rewrote the whole generator. There’s real seas now with islands and deep water, and coasts start with a proper wide beach before the land slowly rises. Mountains come in long ranges with foothills, bare rock on the steep parts, a treeline and snow on top, and deserts are one big desert instead of a sand patch in the middle of nowhere. Getting the mountains right took way longer than I want to admit. First they went up like walls, then there were 40 block deep trenches running in perfectly straight lines for hundreds of blocks through the hills. Turned out the math that works out how far you are from the coast completely loses it deep inland, so now it looks out in eight directions for the actual coast instead of guessing. Old worlds keep their old terrain so nothing you built gets new ground under it. Caves & Structures Caves are actual caves now: huge caverns, long winding tunnels, ravines, water pooled at the bottom, and stalactites. They also don’t break out of the side of every hill anymore, which is where all those random gaps and chasms were coming from. Old mineshafts run through them with lamps and plank bridges over the drops, and there’s pyramids out in the desert with a lit room inside. There’s also something hidden under the pyramids but I’m not telling you what. Water & Animals Water has actual waves now, flat at the beach, bigger out in deep water, and way bigger in a storm. Also fixed far away water reflections breaking into lines. The animals were ghosts this whole time; you could walk straight through a turtle. Now they’re solid, punching one knocks it back and it runs off, and swimming into a school of fish scatters them. The fish were also translucent, fixed that. And the black squares that flashed on screen when it rained are gone (funny NaN issue). Lighting & Performance Caves are properly dark now unless something lights them, and lamp light hangs in the air a bit so lamps actually glow instead of just painting the wall. Lighting runs on its own thread now so it doesn’t eat into your frame, and sun shafts and lamp glow render at half resolution, which made them way cheaper and you can’t tell. Also fixed a bunch of random bugs: Game freezing for a few seconds when you broke a block somewhere new. The world sometimes thinking it was still loading forever. Memory getting corrupted when you closed the game. The settings back button hiding off the bottom of the screen at 720p.
OK FINAL DEVLOG ACTUALLY There were a few bugs from the previous one which I had to fix before release Tree tops looked unlit and forests looked really gloomy, even in full sun. The light was reaching them fine, the auto exposure was measuring the whole screen including the bright sky and darkening everything under it. It only measures the world now, so trees actually look lit Every new world had an old glowing test room carved underground in the same spot. It’s gone from new worlds, old worlds keep it so nothing in them changes- The game was running one of my internal tests every single time it launched, it doesn’t anymore There was a hidden launch option that crashed the game on purpose, left over from testing the crash reporter, removed
Ships:
Voxelium 1.0 First release!! Voxelium is a voxel game I built from scratch in C++ and OpenGL, no engine, just a lot of code. Endless worlds with real seas, mountain ranges, caves, weather and animals, and you can break and build whatever you want. What’s in it Endless worlds from a seed: seas with islands, wide beaches, mountain ranges with snow on top, big deserts and forests, and you can see about 5 km out Caves with huge caverns, tunnels and ravines, old mineshafts running through them, and it’s actually dark down there so bring lamps Lighthouses, shipwrecks, desert ruins and pyramids (there’s something under the pyramids) Water that flows, waves that go crazy in storms, coral reefs and kelp forests Weather that does its own thing: rain, snow that piles up and melts, thunderstorms with real lightning, mist over the water at sunrise Crabs, turtles, fish, jellyfish that glow at night, birds, butterflies and fireflies. You can punch them, they will run Every block has its own sounds and every biome has its own ambience Break and place blocks, 25 lamp colours, no height limit, save as many worlds as you want Low / Medium / High / Ultra presets so it runs on more than just my PC Controls WASD + mouse, space to jump, F5 walk/fly, hold left click to break, middle click to place, F4 hotbar, ESC settings, F3 debug stuff Tips Hit New World on the title screen and type a seed or roll one. Save from the ESC menu if you want to keep a world If Ultra is laggy, turn down detail dist in the settings first, it’s the biggest cost by far Big thanks to everyone on opengameart.org whose textures and sounds are in here, they’re all credited in the readme....
|
1793339803.4922302
|
1793426203.4922302
|
|
21296
|
My very own WebOS by @xaviermoore | Stardance
|
xaviermoore
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My very own WebOS by @xaviermoore | Stardan Title: My very own WebOS by @xaviermoore | Stardance...
|
1793339802.5904417
|
1793944602.5904417
|
|
50478
|
My own site! by @Aarohan_Roy | Stardance
|
Aarohan_Roy
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My own site! by @Aarohan_Roy | Stardance
|
1793339801.6057754
|
1793944601.6057754
|
|
8006
|
My first slack bot! by @riadh_ammari | Stardance
|
riadh_ammari
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @riadh_ammari | Star Title: My first slack bot! by @riadh_ammari | Stardance...
|
1793339800.6903524
|
1793944600.6903524
|
|
37706
|
FormulaOS by @Stellar | Stardance
|
Stellar
|
1
|
26.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-25T14:51:27Z", "hours": 26.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a Formula One web-based operating system! I started this project forever ago and just never had the time to actually work on it. It is currently very simple and I wish I had the time to actually make it better, but unfortunately Stardance is coming to an end soon. This project was built using React JS (more so Typescript than Javascript) which is a simple Javascript framework. It features three apps: notes, calculator, and terminal. It has a (static/non-movable) clock widget along with the time and date being displayed in the top-right corner. This project wasn’t very hard to make with probably the most difficult part being deploying the project itself.", "repo": "https://github.com/Ansh2021/FormulaOS", "demo": "https://ansh2021.github.io/FormulaOS/"}]...
|
[{"post_id": 73460, "ts": "202 [{"post_id": 73460, "ts": "2026-09-25T04:13:29Z", "hours": 10.9867, "text": "Finished (hopefully) Devlog #3 It’s been way too long since I’ve worked on this project. I decided to make it simpler for myself so I could actually get this project shipped. This is the main reason why I decided to remove part of the topbar (it didn’t really have much purpose anyway). I added a useable terminal filled with commands and fixed window ordering when clicking on multiple windows in any order. That’s really it for this devlog. I’ll probably ship this project very soon."}, {"post_id": 38900, "ts": "2026-08-01T14:11:31Z", "hours": 8.7997, "text": "Notes App & Clock Devlog #2 I added a simple notes app that is heavily inspired by the Apple Notes app (right now at least). I also added an analog clock drawn through JS graphics. Notes App The notes app is currently very simple and only has the capability to create and edit notes (no delete functionality yet). The first line in your note determines its title and the rest is considered its content (similar to Apple Notes). The Clock The analog clock is drawn through simple JavaScript graphics. It is repeatedly drawn over and over again to update the clock’s hands by using the the requestAnimationFrame() function which automatically synchronizes repeated updates to the refresh rate of the user’s display. This is taking way too long for WebOS 1. I’ll try to finish the first ship by the next devlog."}, {"post_id": 33087, "ts": "2026-07-22T17:55:59Z", "hours": 6.3911, "text": "Frontend Skeleton Devlog #1 FormulaOS, a little OS for F1 lovers. Progress I really just added a lot of the skeleton/components I will be using throughout this project. For example, I made a reusable window component. It currently has a full screen button working but isn’t freely resizable by the user like actual OS windows typically are. Next Steps Find a better color scheme? Add wallpapers (although I might save this for later) Add a bottom bar Clock and maybe calendar widget(s) Add more apps (I’ll decide which ones to add later) F1 themed fonts?"}]...
|
Title: FormulaOS by @Stellar | Stardance
Devlogs: Title: FormulaOS by @Stellar | Stardance
Devlogs:
Frontend Skeleton Devlog #1 FormulaOS, a little OS for F1 lovers. Progress I really just added a lot of the skeleton/components I will be using throughout this project. For example, I made a reusable window component. It currently has a full screen button working but isn’t freely resizable by the user like actual OS windows typically are. Next Steps Find a better color scheme? Add wallpapers (although I might save this for later) Add a bottom bar Clock and maybe calendar widget(s) Add more apps (I’ll decide which ones to add later) F1 themed fonts?
Notes App & Clock Devlog #2 I added a simple notes app that is heavily inspired by the Apple Notes app (right now at least). I also added an analog clock drawn through JS graphics. Notes App The notes app is currently very simple and only has the capability to create and edit notes (no delete functionality yet). The first line in your note determines its title and the rest is considered its content (similar to Apple Notes). The Clock The analog clock is drawn through simple JavaScript graphics. It is repeatedly drawn over and over again to update the clock’s hands by using the the requestAnimationFrame() function which automatically synchronizes repeated updates to the refresh rate of the user’s display. This is taking way too long for WebOS 1. I’ll try to finish the first ship by the next devlog.
Finished (hopefully) Devlog #3 It’s been way too long since I’ve worked on this project. I decided to make it simpler for myself so I could actually get this project shipped. This is the main reason why I decided to remove part of the topbar (it didn’t really have much purpose anyway). I added a useable terminal filled with commands and fixed window ordering when clicking on multiple windows in any order. That’s really it for this devlog. I’ll probably ship this project very soon.
Ships:
I made a Formula One web-based operating system! I started this project forever ago and just never had the time to actually work on it. It is currently very simple and I wish I had the time to actually make it better, but unfortunately Stardance is coming to an end soon. This project was built using React JS (more so Typescript than Javascript) which is a simple Javascript framework. It features three apps: notes, calculator, and terminal. It has a (static/non-movable) clock widget along with the time and date being displayed in the top-right corner. This project wasn’t very hard to make with probably the most difficult part being deploying the project itself....
|
1793339799.4661794
|
1793426199.4661794
|