|
39092
|
My own site! by @wintagaim | Stardance
|
wintagaim
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My own site! by @wintagaim | Stardance
|
1792730947.530641
|
1793335747.530641
|
|
5565
|
Games, and Apps by @winstondperez92 | Stardance
|
winstondperez92
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Games, and Apps by @winstondperez92 | Stard Title: Games, and Apps by @winstondperez92 | Stardance...
|
1793238730.426978
|
1793843530.426978
|
|
34068
|
Untitled project by @winston_skold | Stardance
|
winston_skold
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled project by @winston_skold | Starda Title: Untitled project by @winston_skold | Stardance...
|
1793288868.648319
|
1793893668.648319
|
|
46677
|
My own site! by @winser | Stardance
|
winser
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My own site! by @winser | Stardance
|
1793144922.2089186
|
1793749722.2089186
|
|
20686
|
hello wrold by @winner_of_all | Stardance
|
winner_of_all
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: hello wrold by @winner_of_all | Stardance
|
1792738353.380263
|
1793343153.380263
|
|
20694
|
Frictionless by @winner_of_all | Stardance
|
winner_of_all
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Frictionless by @winner_of_all | Stardance
|
1792770763.9306927
|
1793375563.9306927
|
|
12486
|
My first slack bot! by @winner | Stardance
|
winner
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @winner | Stardance
|
1792796022.771649
|
1793400822.771649
|
|
37704
|
My own site! by @winmastt | Stardance
|
winmastt
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My own site! by @winmastt | Stardance
|
1793195565.6162107
|
1793800365.6162107
|
|
4556
|
IB Website by @wingnovel | Stardance
|
wingnovel
|
1
|
36.27
|
219
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-09T15:23:07Z", "hours": 36.0, "multiplier": 7.23, "payout": 219, "blessing": "neutral", "text": "What did you make? I have made a website that will help International Baccalaureate students study more effectively than just reading books What was challenging? The challenging part was to collect the data for the project, I used AI to get the questions for the quiz and flashcard sections and it was difficult to prompt it effectively. Another challenge was to learn to use GitHub Pages I tried nest it did not work, so I switched to GitHub Pages, however that too was not working due to the wrong settings being enabled however it is working properly now. What are you proud of? I am proud of the UX, I generally think of myself as the worst designer however with the help of some inspiration taken from the stardust theme I have been able to design this website in the purple space like theme. What should people know so they can test your project? All people need to do to test the project is open a link to the GitHub url", "repo": "https://github.com/raghav03102008/ibwebsite", "demo": "https://raghav03102008.github.io/ibwebsite/"}]...
|
[{"post_id": 6257, "ts": "2026 [{"post_id": 6257, "ts": "2026-06-10T14:50:31Z", "hours": 0.2667, "text": "Updating the Project AI declaration"}, {"post_id": 5651, "ts": "2026-06-09T15:05:46Z", "hours": 12.0064, "text": "Fully functional website concept with questions to give you active recall"}, {"post_id": 5067, "ts": "2026-06-08T18:54:16Z", "hours": 13.5667, "text": "Adding maths content to the website"}, {"post_id": 3250, "ts": "2026-06-06T03:00:07Z", "hours": 0.3575, "text": "Adding icons for the subjects"}, {"post_id": 2646, "ts": "2026-06-05T09:29:19Z", "hours": 9.94, "text": "UI of the page"}]...
|
Title: IB Website by @wingnovel | Stardance
Devlo Title: IB Website by @wingnovel | Stardance
Devlogs:
UI of the page
Adding icons for the subjects
Adding maths content to the website
Fully functional website concept with questions to give you active recall
Updating the Project AI declaration
Ships:
What did you make? I have made a website that will help International Baccalaureate students study more effectively than just reading books What was challenging? The challenging part was to collect the data for the project, I used AI to get the questions for the quiz and flashcard sections and it was difficult to prompt it effectively. Another challenge was to learn to use GitHub Pages I tried nest it did not work, so I switched to GitHub Pages, however that too was not working due to the wrong settings being enabled however it is working properly now. What are you proud of? I am proud of the UX, I generally think of myself as the worst designer however with the help of some inspiration taken from the stardust theme I have been able to design this website in the purple space like theme. What should people know so they can test your project? All people need to do to test the project is open a link to the GitHub url...
|
1793249644.0945504
|
1793336044.0945504
|
|
15569
|
Salon Management System by @wingnovel | Stardance
|
wingnovel
|
1
|
33.46
|
36
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-23T15:47:47Z", "hours": 18.0, "multiplier": 2.0, "payout": 36, "blessing": "neutral", "text": "This project is made to manage a hair salon. It has a variety of pages and features to help a hair salon manager to produce reports and to manage their finances and appointments at the salon", "repo": "https://github.com/raghav03102008/Computer-science-IA", "demo": "https://github.com/raghav03102008/Computer-science-IA/releases/latest"}]...
|
[{"post_id": 34499, "ts": "202 [{"post_id": 34499, "ts": "2026-07-25T08:25:22Z", "hours": 1.0408, "text": "Bug fixes. Making the order page functional."}, {"post_id": 25316, "ts": "2026-07-09T15:10:01Z", "hours": 13.9042, "text": "in this session i have worked on mainly testing. I altered the code slightly again and again to see if everything is functional. According to my test plan everything is functional bug free"}, {"post_id": 21316, "ts": "2026-07-03T05:35:13Z", "hours": 0.5117, "text": "I have tried to remove the dependancy of having ms access installed on your computer. So far i have been able to make it work. for some pages later I will fix the bugs for some of the pages to improve the SQL database reliant version to run smoothly as well"}, {"post_id": 14432, "ts": "2026-06-23T15:45:30Z", "hours": 9.1744, "text": "Bug fixing and making an exe file to run"}, {"post_id": 6348, "ts": "2026-06-10T18:04:53Z", "hours": 8.6256, "text": "Making the project deployable with an exe file along with the addtion of report generation and exporting files for spreadsheet analysis of the business data"}]...
|
Title: Salon Management System by @wingnovel | Sta Title: Salon Management System by @wingnovel | Stardance
Devlogs:
Making the project deployable with an exe file along with the addtion of report generation and exporting files for spreadsheet analysis of the business data
Bug fixing and making an exe file to run
I have tried to remove the dependancy of having ms access installed on your computer. So far i have been able to make it work. for some pages later I will fix the bugs for some of the pages to improve the SQL database reliant version to run smoothly as well
in this session i have worked on mainly testing. I altered the code slightly again and again to see if everything is functional. According to my test plan everything is functional bug free
Bug fixes. Making the order page functional.
Ships:
This project is made to manage a hair salon. It has a variety of pages and features to help a hair salon manager to produce reports and to manage their finances and appointments at the salon...
|
1793292958.462212
|
1793379358.462212
|
|
16826
|
Habit Tracker by @wingnovel | Stardance
|
wingnovel
|
1
|
22.0
|
38
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-06T17:35:22Z", "hours": 22.0, "multiplier": 2.19, "payout": 38, "blessing": "neutral", "text": "This project is a Habit tracker that helps you effectively understand your routine with smart insights to help you stay consistent in your habit formation. The challenging part in this project was figuring out how to make the UI look right. I struggle a lot with aesthetic choices. I am proud of the fact that all the code for this project was written by me even if to make the compiling more efficient i used AI to clump up my code into reusable functions for the repeated code scripts. All the requirements to run this program is install the exe file from the github repo.", "repo": "https://github.com/raghav03102008/habit_tracker", "demo": "https://github.com/raghav03102008/habit_tracker/releases/tag/v1"}]...
|
[{"post_id": 23594, "ts": "202 [{"post_id": 23594, "ts": "2026-07-06T17:23:22Z", "hours": 7.5383, "text": "In this session I fully completed the interface ready to ship. I have added all the pages. And ensured that all the pages store the data in the json file generated upon first launch of the app correctly."}, {"post_id": 7620, "ts": "2026-06-12T18:56:31Z", "hours": 14.7333, "text": "Building the sidebar and the dashboard with the right amount of padding and setting up the initial database. Deciding the colors and set up"}]...
|
Title: Habit Tracker by @wingnovel | Stardance
De Title: Habit Tracker by @wingnovel | Stardance
Devlogs:
Building the sidebar and the dashboard with the right amount of padding and setting up the initial database. Deciding the colors and set up
In this session I fully completed the interface ready to ship. I have added all the pages. And ensured that all the pages store the data in the json file generated upon first launch of the app correctly.
Ships:
This project is a Habit tracker that helps you effectively understand your routine with smart insights to help you stay consistent in your habit formation. The challenging part in this project was figuring out how to make the UI look right. I struggle a lot with aesthetic choices. I am proud of the fact that all the code for this project was written by me even if to make the compiling more efficient i used AI to clump up my code into reusable functions for the repeated code scripts. All the requirements to run this program is install the exe file from the github repo....
|
1793238567.2644033
|
1793324967.2644033
|
|
25157
|
youtubechromeextension by @wingnovel | Stardance
|
wingnovel
|
1
|
8.27
|
41
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-04T16:06:50Z", "hours": 8.0, "multiplier": 5.21, "payout": 41, "blessing": "neutral", "text": "My project is a chrome extension that permits its users to have a better YouTube notification system everything their favorite creators post something. My hardest challenge was to make the API key work and the notification system was not working since there was a problem with how my computer manages notifications from my browser. I am proud of the fact that the system works more consistently than what YouTube currently offers as the notifications from my extension every time a youtuber uploaded something would be faster than YouTube’s native notification system.", "repo": "https://github.com/raghav03102008/Youtubenotificationsystem", "demo": "https://github.com/raghav03102008/Youtubenotificationsystem/releases/tag/v1"}]...
|
[{"post_id": 26110, "ts": "202 [{"post_id": 26110, "ts": "2026-07-10T18:14:24Z", "hours": 0.2711, "text": "i have now updated the project to contain a default API that is made on a temp account for users who do not know how to generate their own API key or are not able to due to any constrains."}, {"post_id": 21625, "ts": "2026-07-03T17:44:02Z", "hours": 7.7775, "text": "This is a chrome extension that uses the google API for youtube to pull the information of youtube channels and sends a notification to my notification center everytime the selected youtubers post a video. Currently this extension checks every 15 min and I have tested it over two days and it successfully and reliably notifies the user when a new video is dropped. Youtube’s inbuilt notification sender is unreliable"}]...
|
Title: youtubechromeextension by @wingnovel | Star Title: youtubechromeextension by @wingnovel | Stardance
Devlogs:
This is a chrome extension that uses the google API for youtube to pull the information of youtube channels and sends a notification to my notification center everytime the selected youtubers post a video. Currently this extension checks every 15 min and I have tested it over two days and it successfully and reliably notifies the user when a new video is dropped. Youtube’s inbuilt notification sender is unreliable
i have now updated the project to contain a default API that is made on a temp account for users who do not know how to generate their own API key or are not able to due to any constrains.
Ships:
My project is a chrome extension that permits its users to have a better YouTube notification system everything their favorite creators post something. My hardest challenge was to make the API key work and the notification system was not working since there was a problem with how my computer manages notifications from my browser. I am proud of the fact that the system works more consistently than what YouTube currently offers as the notifications from my extension every time a youtuber uploaded something would be faster than YouTube’s native notification system....
|
1793246112.1481552
|
1793332512.1481552
|
|
30390
|
Attendance 2.0 by @wingnovel | Stardance
|
wingnovel
|
1
|
24.0
|
34
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-14T13:16:11Z", "hours": 24.0, "multiplier": 1.74, "payout": 34, "blessing": "neutral", "text": "This project helped me make my first tkinter software from an empty script. This is the first time I did not use claude or chatGPT to start the project, instead I only used it to find the bugs I had left after I was done. The system allows teachers to take attendance and to find out a simple report of the general school attendance.", "repo": "https://github.com/raghav03102008/Attendance-system", "demo": "https://github.com/raghav03102008/Attendance-system/releases/tag/v1"}]...
|
[{"post_id": 28279, "ts": "202 [{"post_id": 28279, "ts": "2026-07-14T13:04:00Z", "hours": 9.7156, "text": "This session I added the colour pallet and to fix all the bugs in the system."}, {"post_id": 24830, "ts": "2026-07-08T17:21:36Z", "hours": 13.8667, "text": "In this session i worked on the backend of the system. And some part of the front end without the colour themes"}]...
|
Title: Attendance 2.0 by @wingnovel | Stardance
D Title: Attendance 2.0 by @wingnovel | Stardance
Devlogs:
In this session i worked on the backend of the system. And some part of the front end without the colour themes
This session I added the colour pallet and to fix all the bugs in the system.
Ships:
This project helped me make my first tkinter software from an empty script. This is the first time I did not use claude or chatGPT to start the project, instead I only used it to find the bugs I had left after I was done. The system allows teachers to take attendance and to find out a simple report of the general school attendance....
|
1793234899.6112187
|
1793321299.6112187
|
|
41329
|
Instagram-collection-extractor by @wingnovel | Sta Instagram-collection-extractor by @wingnovel | Stardance...
|
wingnovel
|
1
|
36.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-01T12:29:21Z", "hours": 36.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "A lot of times we save reels to watch them later in collections on Instagram. Most of the times these reels never actually get watched by anyone. This is why I have created a tool that can help you extract all the urls of the instragram reels you save to then organise the reels yourself the way you please. This uses a tkinter page to ask for the inputs like the collection’s url and the file path of where you want to save the reels on your computer.", "repo": "https://github.com/raghav03102008/Insta-collection-extractor", "demo": "https://github.com/raghav03102008/Insta-collection-extractor/releases/tag/v1"}]...
|
[{"post_id": 38846, "ts": "202 [{"post_id": 38846, "ts": "2026-08-01T12:28:58Z", "hours": 0.8283, "text": "This session was mainly the UX designing and minor bug fixing"}, {"post_id": 38021, "ts": "2026-07-31T05:09:12Z", "hours": 19.2336, "text": "The problem with my previous design of code was that the program was searching for the wrong embedded urls in Instagram. Instagram doesn’t store the link as /reel/url-CODE/ in the saved grid in the app, it stores it as /p/url-CODE/. After fixing this the extractor for instagram collections is complete. Now all that’s left to do is to make a user interface so that anyone can use it without having any issues."}, {"post_id": 36937, "ts": "2026-07-29T10:48:49Z", "hours": 6.9, "text": "In this session i was able to build a working concept of how the scrolling through the instagram app is going to work. And identifying the packages required to make this work"}, {"post_id": 36799, "ts": "2026-07-29T02:48:25Z", "hours": 8.8694, "text": "This time was spent building a prototype of the concept of my project."}]...
|
Title: Instagram-collection-extractor by @wingnove Title: Instagram-collection-extractor by @wingnovel | Stardance
Devlogs:
This time was spent building a prototype of the concept of my project.
In this session i was able to build a working concept of how the scrolling through the instagram app is going to work. And identifying the packages required to make this work
The problem with my previous design of code was that the program was searching for the wrong embedded urls in Instagram. Instagram doesn’t store the link as /reel/url-CODE/ in the saved grid in the app, it stores it as /p/url-CODE/. After fixing this the extractor for instagram collections is complete. Now all that’s left to do is to make a user interface so that anyone can use it without having any issues.
This session was mainly the UX designing and minor bug fixing
Ships:
A lot of times we save reels to watch them later in collections on Instagram. Most of the times these reels never actually get watched by anyone. This is why I have created a tool that can help you extract all the urls of the instragram reels you save to then organise the reels yourself the way you please. This uses a tkinter page to ask for the inputs like the collection’s url and the file path of where you want to save the reels on your computer....
|
1793317673.1838753
|
1793404073.1838753
|
|
32323
|
Bloomington Streets Alliance by @wingedmolotov | S Bloomington Streets Alliance by @wingedmolotov | Stardance...
|
wingedmolotov
|
1
|
21.45
|
50
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-12T04:25:47Z", "hours": 11.0, "multiplier": 4.52, "payout": 50, "blessing": "neutral", "text": "A hub for a local alternative transportation action group. My goal was to include a short bio of the group, a guide to advocacy, and helpful links, but keep the main focus on actionable items. Proud of adding interactive animations and using flexbox for the first time, challenge was figuring out spacing.", "repo": "https://github.com/WingedMolotov/Bloomington-Streets-Alliance", "demo": "https://wingedmolotov.org/Bloomington-Streets-Alliance/"}]...
|
[{"post_id": 29922, "ts": "202 [{"post_id": 29922, "ts": "2026-07-17T03:03:16Z", "hours": 4.6853, "text": "Devlog #4 Hello all! Yesterday and today: Get Involved page Create mobile-friendly stacked version using @media filters Collapse initiatives row into a card slider in the mobile version. I was able to reuse some code from the home page (this involved a lot of troubleshooting to handle transitioning between desktop and mobile) Advocating page Create mobile-friendly stacked version using @media filters Switch from using <details> and <summary> to custom JavaScript-based smooth accordion About page Create mobile-friendly stacked version using @media filters (by far the easiest page to make responsive Other minor changes as necessary Including creating a second @media filter for even smaller screens for the footer Also… New initiative - Budget page Mostly reusing template from the 102nd Street page, with some tweaks as needed"}, {"post_id": 28693, "ts": "2026-07-15T03:12:50Z", "hours": 3.4625, "text": "Devlog #3 Hello all! Today: Resources page Create mobile-friendly version using @media filters, stacking everything vertically Use order: -1 to have images and text alternate positions in desktop version but have images appear above text in mobile version Create custom smooth dropdown (similar to HTML <detail> / <summary> , utilizing JS requestAnimationFrame() 102nd St (initiative) page Create mobile-friendly version using @media filters (vertical stacking) Clean up information bubbles using CSS Grid and overflow scrolling Other minor tweaks as needed"}, {"post_id": 28071, "ts": "2026-07-14T03:07:48Z", "hours": 0.425, "text": "Devlog #2 Hello all! Short devlog to round off the day. I made the main content of the homepage responsive by figuring out a good breakpoint (compressing until it looked bad), and then turning what were previously row flexboxes into columns. Some small tweaks to dimensions were added as necessary. I also experimented with max: in CSS, setting some margins and paddings using it to make sure a minimum threshold existed. I plan to repeat this process for other pages."}, {"post_id": 28001, "ts": "2026-07-13T23:35:39Z", "hours": 1.8753, "text": "Hello all! I realize I should probably be more in-depth with these devlogs, so consider this devlog #1. 1 - Responsive footer When the width of the page gets too narrow, I notice that the links in the footer overlap with the copyright notice. I determined that this was because the links were positioned and centered absolutely. To fix this, I squashed the page until just before this happened and made that my breakpoint for use in a @media filter. In the filter for smaller screens, I simply changed the footer from being a horizontal flexbox to a vertical one, and removed the absolute positioning and centering. I copied these changes to all of my website’s pages. (see image below) 2 - Responsive top navigation Similarly, I noticed that a narrow viewport caused the links at the top to become compressed and even extend past the yellow containing box. Tox fix this, I first squashed the page to find my @media breakpoint. Next, I used fa-solid fa-bars and fa-solid fa-rectangle-xmark in order to create a hamburger menu that would appear on the right, replacing the four links on the top. I used JavaScript event listeners to make the menu appear and disappear at the press of these icons. Creating this hamburger menu itself was fairly simple, as it only involved converting the <ul> that the links were in from a horizontal flexbox to a vertical one. Then, I added the gold background, changed the :hover underline to white, and used position: fixed to align it with the right-hand side. Originally, this navigation panel would simply appear when the hamburger button was pressed. I felt that this lacked an element of interactivity and was visually jarring. After trying unsucessfully to use CSS animations to achieve a smooth sliding effect, I asked ChatGPT for help. With that, I refactored my code to, instead of using display: none to hide the menu, use transform: translateX(100%) . This simplified my JavaScript and allowed me to use a trigger class and CSS transitions to smoothly animate the menu in and out. I then copied this to the other pages, using a new universal JavaScript file - dynamic top.js - to streamline the process somewhat. Using this, I was also able to easily make a change that applies overflow: hidden to the document body when the menu is active. dynamic_top.js const burger = document.getElementById('burger'); const toprow = document.querySelector('#toprow ul'); const close = document.getElementById('close'); burger.addEventListener('click', () => { toprow.classList.add('open'); body.style.overflow = 'hidden'; }); close.addEventListener('click', () => { toprow.classList.remove('open'); body.style.overflow = 'auto'; }); The results are in the second and third images. #3 - Small tweaks Add min-height: 225px to the card carousel on the hero section so it doesn’t get too squished Change the size and spacing of the indicator dots at the bottom of the card carousel to be in fixed units so it doesn’t get too small Next step - making the main content of each of the six pages responsive, starting with the home page. Thanks!"}, {"post_id": 27001, "ts": "2026-07-12T04:23:51Z", "hours": 0.3222, "text": "Fix spacing, link to custom bike map"}, {"post_id": 26983, "ts": "2026-07-12T03:35:04Z", "hours": 1.2358, "text": "finalize resources pg"}, {"post_id": 25706, "ts": "2026-07-10T04:16:22Z", "hours": 2.1311, "text": "initiative page and cards"}, {"post_id": 25534, "ts": "2026-07-09T21:04:47Z", "hours": 3.9158, "text": "created advocacy guide, expanded resources"}, {"post_id": 24524, "ts": "2026-07-08T03:54:21Z", "hours": 1.9747, "text": "created about and resources pages"}, {"post_id": 24415, "ts": "2026-07-07T23:20:59Z", "hours": 1.0206, "text": "added clickthrough action alert cards (placeholder) and set up newsletter thru buttondown"}, {"post_id": 24373, "ts": "2026-07-07T21:54:14Z", "hours": 0.535, "text": "Setting up a form for an email newsletter!"}]...
|
Title: Bloomington Streets Alliance by @wingedmolo Title: Bloomington Streets Alliance by @wingedmolotov | Stardance
Devlogs:
Setting up a form for an email newsletter!
added clickthrough action alert cards (placeholder) and set up newsletter thru buttondown
created about and resources pages
created advocacy guide, expanded resources
initiative page and cards
finalize resources pg
Fix spacing, link to custom bike map
Hello all! I realize I should probably be more in-depth with these devlogs, so consider this devlog #1. 1 - Responsive footer When the width of the page gets too narrow, I notice that the links in the footer overlap with the copyright notice. I determined that this was because the links were positioned and centered absolutely. To fix this, I squashed the page until just before this happened and made that my breakpoint for use in a @media filter. In the filter for smaller screens, I simply changed the footer from being a horizontal flexbox to a vertical one, and removed the absolute positioning and centering. I copied these changes to all of my website’s pages. (see image below) 2 - Responsive top navigation Similarly, I noticed that a narrow viewport caused the links at the top to become compressed and even extend past the yellow containing box. Tox fix this, I first squashed the page to find my @media breakpoint. Next, I used fa-solid fa-bars and fa-solid fa-rectangle-xmark in order to create a hamburger menu that would appear on the right, replacing the four links on the top. I used JavaScript event listeners to make the menu appear and disappear at the press of these icons. Creating this hamburger menu itself was fairly simple, as it only involved converting the <ul> that the links were in from a horizontal flexbox to a vertical one. Then, I added the gold background, changed the :hover underline to white, and used position: fixed to align it with the right-hand side. Originally, this navigation panel would simply appear when the hamburger button was pressed. I felt that this lacked an element of interactivity and was visually jarring. After trying unsucessfully to use CSS animations to achieve a smooth sliding effect, I asked ChatGPT for help. With that, I refactored my code to, instead of using display: none to hide the menu, use transform: translateX(100%) . This simplified my JavaScript and allowed me to use a trigger class and CSS transitions to smoothly animate the menu in and out. I then copied this to the other pages, using a new universal JavaScript file - dynamic top.js - to streamline the process somewhat. Using this, I was also able to easily make a change that applies overflow: hidden to the document body when the menu is active. dynamic_top.js const burger = document.getElementById('burger'); const toprow = document.querySelector('#toprow ul'); const close = document.getElementById('close'); burger.addEventListener('click', () => { toprow.classList.add('open'); body.style.overflow = 'hidden'; }); close.addEventListener('click', () => { toprow.classList.remove('open'); body.style.overflow = 'auto'; }); The results are in the second and third images. #3 - Small tweaks Add min-height: 225px to the card carousel on the hero section so it doesn’t get too squished Change the size and spacing of the indicator dots at the bottom of the card carousel to be in fixed units so it doesn’t get too small Next step - making the main content of each of the six pages responsive, starting with the home page. Thanks!
Devlog #2 Hello all! Short devlog to round off the day. I made the main content of the homepage responsive by figuring out a good breakpoint (compressing until it looked bad), and then turning what were previously row flexboxes into columns. Some small tweaks to dimensions were added as necessary. I also experimented with max: in CSS, setting some margins and paddings using it to make sure a minimum threshold existed. I plan to repeat this process for other pages.
Devlog #3 Hello all! Today: Resources page Create mobile-friendly version using @media filters, stacking everything vertically Use order: -1 to have images and text alternate positions in desktop version but have images appear above text in mobile version Create custom smooth dropdown (similar to HTML <detail> / <summary> , utilizing JS requestAnimationFrame() 102nd St (initiative) page Create mobile-friendly version using @media filters (vertical stacking) Clean up information bubbles using CSS Grid and overflow scrolling Other minor tweaks as needed
Devlog #4 Hello all! Yesterday and today: Get Involved page Create mobile-friendly stacked version using @media filters Collapse initiatives row into a card slider in the mobile version. I was able to reuse some code from the home page (this involved a lot of troubleshooting to handle transitioning between desktop and mobile) Advocating page Create mobile-friendly stacked version using @media filters Switch from using <details> and <summary> to custom JavaScript-based smooth accordion About page Create mobile-friendly stacked version using @media filters (by far the easiest page to make responsive Other minor changes as necessary Including creating a second @media filter for even smaller screens for the footer Also… New initiative - Budget page Mostly reusing template from the 102nd Street page, with some tweaks as needed
Ships:
A hub for a local alternative transportation action group. My goal was to include a short bio of the group, a guide to advocacy, and helpful links, but keep the main focus on actionable items. Proud of adding interactive animations and using flexbox for the first time, challenge was figuring out spacing....
|
1793278324.5084605
|
1793364724.5084605
|
|
245
|
Frictionless by @winf | Stardance
|
winf
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Frictionless by @winf | Stardance
|
1793288934.1642802
|
1793893734.1642802
|
|
30586
|
Untitled by @winf | Stardance
|
winf
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled by @winf | Stardance
|
1793364698.6916971
|
1793969498.6916971
|
|
8942
|
My first slack bot! by @winddoctor_bing | Stardanc My first slack bot! by @winddoctor_bing | Stardance...
|
winddoctor_bing
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @winddoctor_bing | S Title: My first slack bot! by @winddoctor_bing | Stardance...
|
1792781617.4001553
|
1793386417.4001553
|
|
9011
|
Untitled by @winddoctor_bing | Stardance
|
winddoctor_bing
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled by @winddoctor_bing | Stardance
|
1793216845.7320051
|
1793821645.7320051
|
|
6181
|
Food Analysis by @wincode | Stardance
|
wincode
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Food Analysis by @wincode | Stardance
|
1793210154.8911815
|
1793814954.8911815
|
|
6750
|
Ai Time Machine by @wincode | Stardance
|
wincode
|
0
|
0.8
|
0
|
[]
|
[{"post_id": 1706, "ts": "2026 [{"post_id": 1706, "ts": "2026-06-03T21:22:24Z", "hours": 0.7989, "text": "🚀 Built the first version of AI Time Machine today! AI Time Machine is a RAG-powered application that lets you “travel back” through your knowledge and reconstruct what you knew at different points in your life. ✨ Features I’m working on: Knowledge extraction from notes, PDFs, and journals Timeline-based memory retrieval AI-powered “What did I know then?” questions Personal knowledge evolution tracking Future knowledge predictions Beautiful futuristic time-travel themed UI 🛠 Tech Stack: Python Streamlit Groq API (Llama 3.1 8B Instant) LangChain ChromaDB RAG Pipeline Today’s progress: ✅ Designed the core concept ✅ Created the knowledge extraction engine ✅ Built memory record generation ✅ Started the Streamlit interface ✅ Connected Groq API for reasoning Next steps: 🔜 Memory timeline visualization 🔜 Time-travel chat experience 🔜 Knowledge DNA dashboard 🔜 Memory graph explorer The goal is to create an AI that can answer questions like: 🕰️ “What did I know about AI in January 2025?” 🕰️ “What projects was I working on six months ago?” 🕰️ “How has my knowledge evolved over time?” This is one of the most ambitious AI projects I’ve worked on so far. Excited to keep building! 🚀 #AI #Python #LangChain #Groq #RAG #Streamlit #HackClub #BuildInPublic #AITimeMachine"}]...
|
Title: Ai Time Machine by @wincode | Stardance
De Title: Ai Time Machine by @wincode | Stardance
Devlogs:
🚀 Built the first version of AI Time Machine today! AI Time Machine is a RAG-powered application that lets you “travel back” through your knowledge and reconstruct what you knew at different points in your life. ✨ Features I’m working on: Knowledge extraction from notes, PDFs, and journals Timeline-based memory retrieval AI-powered “What did I know then?” questions Personal knowledge evolution tracking Future knowledge predictions Beautiful futuristic time-travel themed UI 🛠 Tech Stack: Python Streamlit Groq API (Llama 3.1 8B Instant) LangChain ChromaDB RAG Pipeline Today’s progress: ✅ Designed the core concept ✅ Created the knowledge extraction engine ✅ Built memory record generation ✅ Started the Streamlit interface ✅ Connected Groq API for reasoning Next steps: 🔜 Memory timeline visualization 🔜 Time-travel chat experience 🔜 Knowledge DNA dashboard 🔜 Memory graph explorer The goal is to create an AI that can answer questions like: 🕰️ “What did I know about AI in January 2025?” 🕰️ “What projects was I working on six months ago?” 🕰️ “How has my knowledge evolved over time?” This is one of the most ambitious AI projects I’ve worked on so far. Excited to keep building! 🚀 #AI #Python #LangChain #Groq #RAG #Streamlit #HackClub #BuildInPublic #AITimeMachine...
|
1792752854.9239235
|
1793357654.9239235
|
|
25122
|
Writalot by @winatsa | Stardance
|
winatsa
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Writalot by @winatsa | Stardance
|
1792677102.9853127
|
1793281902.9853127
|
|
1507
|
Sub 100 Wh portable power station by @win7 | Stard Sub 100 Wh portable power station by @win7 | Stardance...
|
win7
|
0
|
232.03
|
0
|
[]
|
[{"post_id": 81818, "ts": "202 [{"post_id": 81818, "ts": "2026-10-22T16:59:23Z", "hours": 0.6336, "text": "Finally replaced the MDP1933 MOSFETs with beefier IRFB4110 MOSFETs, but boy was it expensive! Whenever we replace blown MOSFETs, its a good practice to replace the entire array even if one MOSFET is blown and the others work perfectly fine since you never know if the voltage spike or whatever calamity had partially destroyed it (it would fail to close properly, dropping a lot of voltage) Atleast the inverter’s been fixed now (or is it..?) and outputs a clean 230 V RMS. Tested with a 20 W lamp and it works well. Need to replace the 35 A automotive fuse on it as well since it was also blown due to the direct short that occurred, I’m using a piece of solder wire as a temporary substitute (not recommended btw) Need to test with bigger loads to ensure that its back at business and nothing else was damaged due to the overload. Also worked on the Instructable for the past two days while waiting to get the MOSFETs."}, {"post_id": 81032, "ts": "2026-10-19T16:53:58Z", "hours": 0.4167, "text": "Switching to daily devlogs from now on.. Worked on the broken inverter. Tried replacing the MOSFETS with a different ones. The original ones were MDP1933, with a drain to source resistance of less than 5 milliohms, while the ones I replaced with were IRFZ44N and featured a drain to source resistance of 15 milliohms. I need to find a stronger MOSFET than the original MDP1933 used in the build and also upgrade my table’s sticker to gray :D"}, {"post_id": 80699, "ts": "2026-10-18T15:31:28Z", "hours": 9.7653, "text": "After a full 2-week fever, I’m back into business :D. Things aren’t great to start off. To sum it up, the inverter died after I connected a chineese steamer apparently rated for “120 W”, when in reality, it drew around 500 W from my wall. My inverter tried to maintain its voltage and ended up killing its MOSFETS. I really hope the MOSFETS are the only ones damaged."}, {"post_id": 73669, "ts": "2026-09-25T17:07:41Z", "hours": 7.9381, "text": "Had to tear the unit down, do plastic welding since the screw mounting slots broke. Probably I would rate this as a 0/10 in the reparability scale by myself -_-. Also, bypassed the 10 V regulator on the charger boost converter module and now it can work from 9V. Planned to add another separate boost converter for the inverter to prevent inverter’s low voltage protection from kicking in. Bypassed the regulator here as well. I feel kinda lazy and tired, probably will log more time from tomorrow,,"}, {"post_id": 71826, "ts": "2026-09-21T16:47:09Z", "hours": 9.3172, "text": "Had to harvest a boost converter from my old bench power supply, fix it (it was dead shorted due to an internally shorted capacitor) Planning on adding a pre-boost converter for the inverter and the charger functions. They refuse to work below 10.2 V, disregarding 20~30% of battery capacity. Recorded the voltage, current, milliamp hours, power drawn along with time stamps. Gosh, my hands are numb now -_-."}, {"post_id": 71159, "ts": "2026-09-20T11:30:16Z", "hours": 9.6525, "text": "Welp, killed another boost converter. This one failed by having its output voltage always equal to the input voltage no matter what, unlike previously where the boost converter failed as a direct short. Other than this, I spent a lot of time troubleshooting the charging MPPT function, which seemed to not have proper limit and tripped whatever charger I had connected it to. Had to change the values quite a bit but nothing helped. In the end I noticed that the initial_in_voltage variable was set to the absolute minimum trigger point whenever the charger was connected, therefore the condition where the (initial_in_voltage - in_voltage variable <= 0.2) inequation is always held true and therefore the Arduino ramped up the PWM no matter what, it took a ton of time to figure out -_- In addition to this, I had also spent a around 2h in testing the power station regarding its thermals and max. power capability.."}, {"post_id": 70210, "ts": "2026-09-18T18:28:05Z", "hours": 3.8333, "text": "Successfully completed the soft started board in order to prevent the inrush current drawn by the XL4016 module from tripping certain chargers. It felt endless, I had to use 2 NPN transistors in an inverter configuration in order to not use a PNP transistor since I did not have one lol. Also 3D printed and replaced the old battery case for a newer one which has ventilation holes, helping in keeping the battery temperatures low.."}, {"post_id": 70113, "ts": "2026-09-18T14:21:50Z", "hours": 7.6569, "text": "In the process of making the soft starter circuit for the XL4016 module, since the inrush current trips some chargers, I’m set on using a 555 timer chip in order to turn on a relay 2s after powering on the relay. Anyways, tested the bare-bones version of the power station at around 100 W and/or 10A of current and it worked beautifully, though I was scared to my core when doing so, not wanting this setup to blow up like last time which killed the boost converter and both the charger modules."}, {"post_id": 69616, "ts": "2026-09-17T12:56:32Z", "hours": 9.4322, "text": "Printed the left side panel, tried to print the bottom panel but failed, also the BOM list final is ready!! Well, seems like the assembly process is going to be hard due to a ton of wires and obstacles :( Had to trim the direct source connector panel twice for it to fit in the right side panel Boost converter module is held under really high amount of tension probably due to 10mm bolt and nuts. Made orientation and placement mistakes while installing the chargers panel -_-"}, {"post_id": 69073, "ts": "2026-09-16T10:15:00Z", "hours": 9.6933, "text": "Looked through the designs and measurements, edited them when necessary, tested the charging circuit, not sure why but it trips my MacBook’s PD 30 W charger but not my Samsung PD power bank, probably due to inrush currents. After a long conflict, finally printed the right side panel, need to proceed with the left, top, bottom and back panel as well. I don’t know, I’m scared to waste ~100g of filament and ~10h of time over a failed print just because of a dimensional mistake or inaccuracy, I’m just looking through the final model in Fusion 360 countless times,!"}, {"post_id": 68037, "ts": "2026-09-14T12:41:01Z", "hours": 9.7931, "text": "Birthday devlog today🎉! Did a ton more of CAD work, including modification of slots and sketches, and boy was it painful!. I had to re-draw each sketch on top and repeat this once again since I need one for negative extrusion and one for filling the already existing slots. All caused by my poor judgement of the dimensions of the other parts But here I am! Also, had tweaked the code a little, did some power wire replacements and stuff"}, {"post_id": 66828, "ts": "2026-09-12T18:50:31Z", "hours": 7.2039, "text": "Working on the mainboard mount. The mainboard is planned to be mounted on top of the battery pack. Not sure how I’m gonna figure out how to make mounting holes on the bottom panel. Its 12:20 AM rn, need to go to bed,,,"}, {"post_id": 66084, "ts": "2026-09-11T17:35:16Z", "hours": 8.3944, "text": "Probably a really messy workbench right now. Anyways, once again, did quite a bit of working, especially in CAD and 3D printing. Finally, I’ve hit 100% of the program storage space in my Arduino Nano when uploading my code. Need to optimize the code. Had to snap off the screw mounts and the bottom section of the button mount cover for it to fit, fixed it in the later version though. Also, spent 5 full minutes troubleshooting, opening the mainboard out of its case only to find out that nothing was connected (power button, navigation buttons, etc.). Probably, late night fatigue kicking in,,"}, {"post_id": 65290, "ts": "2026-09-10T10:13:56Z", "hours": 9.3603, "text": "Printed out the front panel, got a ton of work to do on the other panels. Thinking of whether or not to add a fuse in series to the direct source connector.. I feel like fitting all of these components into their designated space might be a very tedious task. Its just a pain to measure and ensure everything is in its own designated region and every part seats in properly, and also, found a mini bug, which is to be fixed in the code,,"}, {"post_id": 64192, "ts": "2026-09-08T12:47:58Z", "hours": 7.145, "text": "Printed and assembled the chargers part And also, I’m in the middle of designing the right side panel, gonna take up a ton of time as I’m using hit and trial method"}, {"post_id": 63471, "ts": "2026-09-07T10:49:09Z", "hours": 8.2628, "text": "Completed the modelling part of the inverter case, charger panel and probably also the front panel. Did some minor bug tweaks in the code Also finished cutting the copper sheet for the inverter module"}, {"post_id": 62681, "ts": "2026-09-06T05:13:52Z", "hours": 9.9372, "text": "TERRIBLE NEWS: I lost 3D models of the main front panel, the inverter case AND the chargers panel to a power outage. I know I should’ve saved it but I either complete it and save it or just have them lying in my RAM overnight till it finishes and that power outages are rare for me, but here I am! Completed the bench power supply part, printed the front side in orange and screwed it on the gray bench power supply mount since I’m planning to use orange on gray as opposed to gray on orange. Also added an extra master XT60 connector for direct battery access connections."}, {"post_id": 62043, "ts": "2026-09-05T08:16:17Z", "hours": 5.7331, "text": "Officially over the 100h mark! 🎉 Designed the front plate of the chargers, designed a stencil to drill through the copper sheet that acts as a small ‘heatsoak’, soldered some cables and much more"}, {"post_id": 61095, "ts": "2026-09-03T20:18:00Z", "hours": 9.33, "text": "Did quite a bit of various work today, but the one that made me glad is the successfull printing of the bench power supply part after 5 devastating failed attempts. Designed the case in Fusion 360 Worked on the header connections Worked on the bench power supply part"}, {"post_id": 60231, "ts": "2026-09-02T13:52:59Z", "hours": 8.4903, "text": "Completed the case for the inverter part, switched to digital operation of the fan instead of analog due to never ending problems."}, {"post_id": 58861, "ts": "2026-08-31T13:16:28Z", "hours": 7.7978, "text": "Completed the addition fan and LED interface to the mainboard. I had to add a separate boost converter to the setup. Still the addition of fan causes fluctuation in time to empty readings, need to fix them in code,,"}, {"post_id": 57981, "ts": "2026-08-30T09:57:15Z", "hours": 9.0681, "text": "Finally completed the haptics part, there are still some areas that do not work like intended, but I cannot really do much about it. Designed as well as printed cases for the main board and batteries for enhanced safety. My streak has not extended for today despite 3h of work today.,"}, {"post_id": 56720, "ts": "2026-08-28T16:15:26Z", "hours": 8.8742, "text": "Worked on the haptics for quite a while, still need to add haptic feedback/notification for other messages displayed on the screen, though it is SOO BUGGY! I had to work on it for 3 full days, yet I still feel like the haptic patterns were inconsistent, gotta do more fixing tomorrow, or probably I might focus into something else for a while."}, {"post_id": 54409, "ts": "2026-08-25T12:36:45Z", "hours": 5.1358, "text": "Messed up and messed around using millis(), need more time to debug and fix it (I’m not an expert when it comes to dealing with millis(), open to suggestions), I don’t want to use delay() since it interferes with my mAh measurement in the code. Did a weird contraption of a capacitor, polarity protector diode on a perf board in order to act as a power distribution board since the boost converter had only 1 screw terminal.."}, {"post_id": 53145, "ts": "2026-08-23T16:06:15Z", "hours": 4.215, "text": "I have planned to integrate haptics to the power station too, though traditional ERMs felt too cheap and unreliable, therefore I made something called the “Haptic block”, an LRA (Linear Resonance Actuator)-based haptic actuator, similar to the ones found in flagship smartphones (I’m looking at you, iPhone 6S!). Used a 12V, 6N solenoid along with a MOSFET, resistor and a flyback diode for switching the solenoid with the Arduino board. It works great, started with the coding process, the timings have to be perfect, else, it feels like metal and plastic colliding (though that’s exactly what’s happening XD). With perfect timing though, it enhances the user experience by a lot!"}, {"post_id": 52310, "ts": "2026-08-22T12:55:48Z", "hours": 5.5439, "text": "Took quite a while to try various methods, debug, fix, etc. the MPPT charging. Finally, a transistor pulling the floating 100mV to ground along with an RC filter seems to work, works for now, though not the best way of doing this. (Literally screamed in joy when it finally worked lol :D)"}, {"post_id": 51662, "ts": "2026-08-21T13:48:01Z", "hours": 9.6022, "text": "A week’s worth of devlog, probably I’m gonna switch over to weekly devlogs cuz I’m a bit lazy. Anyways, once again, a ton of changes: First and foremost, replaced the charger modules and the boost converter (Boy was it expensive for me). Added ADS1115 ADC as I needed an extra analog pin for measuring input charging voltage, switched voltage, current and temperature measurement to there as well. Planning on adding 2 more temperature sensors, 1 for the battery and 1 for the charger modules. Working on charging part for now, gonna use MPPT. A mystery addition that I bet nobody can guess (its in the image btw), open to your guesses btw."}, {"post_id": 49024, "ts": "2026-08-17T16:46:02Z", "hours": 4.0364, "text": "A lot of changes and events. Spent almost an hour modifying/testing the charging lightning icon on top of the battery. Fixed the mAh counter Fixed the time to empty counter Edited the power value such that only positive values are shown Killed the boost converter and charger modules, still unsure what caused it but I suspect the boost converter overheating and then finally, a voltage spike killed the charger modules too. Any ideas/opinions are very helpful.."}, {"post_id": 46946, "ts": "2026-08-14T14:53:17Z", "hours": 2.3461, "text": "After 800 lines of code, I finally hit the 2kB RAM ceiling. Did some optimization work on the code. Had to take a backup of the flawless code, try new stuff, in split screen mode between 2 IDE screens"}, {"post_id": 46396, "ts": "2026-08-13T16:02:49Z", "hours": 2.4861, "text": "Completed the chargers part (mainly fixed the power measurement bugs). In addition to that, did the temperature controlled fan part for today, so far works perfectly."}, {"post_id": 45868, "ts": "2026-08-12T16:29:10Z", "hours": 4.4317, "text": "Finally completed the soft-latching power control part in the circuit. 2 Arduino nano(s) were k1lled during the process :*(. Used an N channel MOSFET at first in order to control power going to the Arduino, failed at it, switched to a relay (big mistake), driven by a transistor, finally got out, bought a P channel MOSFET, still driven by an NPN transistor, and in the end, it works flawlessly, gave me immense happiness watching it work flawlessly :D"}, {"post_id": 44056, "ts": "2026-08-09T16:02:34Z", "hours": 3.285, "text": "Did more soldering work, not the prettiest, has a ton of improvements to be made both on the hardware as well as the software side. So far, the charger and the inverter switching part works, need to add a transistor in between the system and the battery in order to turn it off completely when not in use.. Open to suggestions and improvements.."}, {"post_id": 42800, "ts": "2026-08-07T18:17:35Z", "hours": 3.3397, "text": "Burnt some midnight oil to disassemble the breadboard prototype and start with the actual circuitry, soldered a few components so far, yet there’s a lot more to do so, probably gonna take a month to complete -_-."}, {"post_id": 41956, "ts": "2026-08-06T14:15:24Z", "hours": 1.9422, "text": "Worked on the settings screen for a while. Added maximum power limit as well as basic RGB LED colour setting along with EEPROM memory to store the parameters"}, {"post_id": 40710, "ts": "2026-08-04T12:30:27Z", "hours": 1.1986, "text": "Completed drawing the sketch of the portable power station (sorry for the messy work, its the first sketch). Please let me know of any suggestions/improvements.."}, {"post_id": 38209, "ts": "2026-07-31T14:39:56Z", "hours": 1.9614, "text": "Did a lot of tidying and reposition work as well as addition of various controls toggles on and offs."}, {"post_id": 36412, "ts": "2026-07-28T14:57:38Z", "hours": 0.5439, "text": "Added 2 pages: Controls and Info, settings page is still pending.."}, {"post_id": 35897, "ts": "2026-07-27T16:59:50Z", "hours": 0.5722, "text": "Replaced the 20 A BMS with a 40 A one, in order to achieve the full 27 A capability"}, {"post_id": 21533, "ts": "2026-07-03T15:39:47Z", "hours": 0.7169, "text": "Started with the framework of the icons for turning the outputs on or off."}, {"post_id": 20828, "ts": "2026-07-02T15:07:41Z", "hours": 0.3336, "text": "Re-positioned the screen page indicator, fixed a bug that that was present since the start (fun fact: I thought that it was not possible to fix that till yesterday till I remembered “break” statement exists thanks to a dream I had last night using break statement to fix the same)"}, {"post_id": 20105, "ts": "2026-07-01T16:59:16Z", "hours": 0.3414, "text": "Added some adjustments, possibly also a framework of multiple screens."}, {"post_id": 19142, "ts": "2026-06-30T11:57:17Z", "hours": 1.2953, "text": "Completed the temperature reading, temperature warning, as well as temperature controlled fan pwm signal. Bugs: Temperature and PWM value fluctuate greatly when connecting an LED as a test for PWM regulation"}, {"post_id": 18287, "ts": "2026-06-29T12:00:09Z", "hours": 0.9761, "text": "Bare-bone version of the code is ready, works without any major bugs.. Next step: Continue coding of the remaining features and functions (Tested and verified on my trusty breadboard setup)"}]...
|
Title: Sub 100 Wh portable power station by @win7 Title: Sub 100 Wh portable power station by @win7 | Stardance
Devlogs:
Bare-bone version of the code is ready, works without any major bugs.. Next step: Continue coding of the remaining features and functions (Tested and verified on my trusty breadboard setup)
Completed the temperature reading, temperature warning, as well as temperature controlled fan pwm signal. Bugs: Temperature and PWM value fluctuate greatly when connecting an LED as a test for PWM regulation
Added some adjustments, possibly also a framework of multiple screens.
Re-positioned the screen page indicator, fixed a bug that that was present since the start (fun fact: I thought that it was not possible to fix that till yesterday till I remembered “break” statement exists thanks to a dream I had last night using break statement to fix the same)
Started with the framework of the icons for turning the outputs on or off.
Replaced the 20 A BMS with a 40 A one, in order to achieve the full 27 A capability
Added 2 pages: Controls and Info, settings page is still pending..
Did a lot of tidying and reposition work as well as addition of various controls toggles on and offs.
Completed drawing the sketch of the portable power station (sorry for the messy work, its the first sketch). Please let me know of any suggestions/improvements..
Worked on the settings screen for a while. Added maximum power limit as well as basic RGB LED colour setting along with EEPROM memory to store the parameters
Burnt some midnight oil to disassemble the breadboard prototype and start with the actual circuitry, soldered a few components so far, yet there’s a lot more to do so, probably gonna take a month to complete -_-.
Did more soldering work, not the prettiest, has a ton of improvements to be made both on the hardware as well as the software side. So far, the charger and the inverter switching part works, need to add a transistor in between the system and the battery in order to turn it off completely when not in use.. Open to suggestions and improvements..
Finally completed the soft-latching power control part in the circuit. 2 Arduino nano(s) were k1lled during the process :*(. Used an N channel MOSFET at first in order to control power going to the Arduino, failed at it, switched to a relay (big mistake), driven by a transistor, finally got out, bought a P channel MOSFET, still driven by an NPN transistor, and in the end, it works flawlessly, gave me immense happiness watching it work flawlessly :D
Completed the chargers part (mainly fixed the power measurement bugs). In addition to that, did the temperature controlled fan part for today, so far works perfectly.
After 800 lines of code, I finally hit the 2kB RAM ceiling. Did some optimization work on the code. Had to take a backup of the flawless code, try new stuff, in split screen mode between 2 IDE screens
A lot of changes and events. Spent almost an hour modifying/testing the charging lightning icon on top of the battery. Fixed the mAh counter Fixed the time to empty counter Edited the power value such that only positive values are shown Killed the boost converter and charger modules, still unsure what caused it but I suspect the boost converter overheating and then finally, a voltage spike killed the charger modules too. Any ideas/opinions are very helpful..
A week’s worth of devlog, probably I’m gonna switch over to weekly devlogs cuz I’m a bit lazy. Anyways, once again, a ton of changes: First and foremost, replaced the charger modules and the boost converter (Boy was it expensive for me). Added ADS1115 ADC as I needed an extra analog pin for measuring input charging voltage, switched voltage, current and temperature measurement to there as well. Planning on adding 2 more temperature sensors, 1 for the battery and 1 for the charger modules. Working on charging part for now, gonna use MPPT. A mystery addition that I bet nobody can guess (its in the image btw), open to your guesses btw.
Took quite a while to try various methods, debug, fix, etc. the MPPT charging. Finally, a transistor pulling the floating 100mV to ground along with an RC filter seems to work, works for now, though not the best way of doing this. (Literally screamed in joy when it finally worked lol :D)
I have planned to integrate haptics to the power station too, though traditional ERMs felt too cheap and unreliable, therefore I made something called the “Haptic block”, an LRA (Linear Resonance Actuator)-based haptic actuator, similar to the ones found in flagship smartphones (I’m looking at you, iPhone 6S!). Used a 12V, 6N solenoid along with a MOSFET, resistor and a flyback diode for switching the solenoid with the Arduino board. It works great, started with the coding process, the timings have to be perfect, else, it feels like metal and plastic colliding (though that’s exactly what’s happening XD). With perfect timing though, it enhances the user experience by a lot!
Messed up and messed around using millis(), need more time to debug and fix it (I’m not an expert when it comes to dealing with millis(), open to suggestions), I don’t want to use delay() since it interferes with my mAh measurement in the code. Did a weird contraption of a capacitor, polarity protector diode on a perf board in order to act as a power distribution board since the boost converter had only 1 screw terminal..
Worked on the haptics for quite a while, still need to add haptic feedback/notification for other messages displayed on the screen, though it is SOO BUGGY! I had to work on it for 3 full days, yet I still feel like the haptic patterns were inconsistent, gotta do more fixing tomorrow, or probably I might focus into something else for a while.
Finally completed the haptics part, there are still some areas that do not work like intended, but I cannot really do much about it. Designed as well as printed cases for the main board and batteries for enhanced safety. My streak has not extended for today despite 3h of work today.,
Completed the addition fan and LED interface to the mainboard. I had to add a separate boost converter to the setup. Still the addition of fan causes fluctuation in time to empty readings, need to fix them in code,,
Completed the case for the inverter part, switched to digital operation of the fan instead of analog due to never ending problems.
Did quite a bit of various work today, but the one that made me glad is the successfull printing of the bench power supply part after 5 devastating failed attempts. Designed the case in Fusion 360 Worked on the header connections Worked on the bench power supply part
Officially over the 100h mark! 🎉 Designed the front plate of the chargers, designed a stencil to drill through the copper sheet that acts as a small ‘heatsoak’, soldered some cables and much more
TERRIBLE NEWS: I lost 3D models of the main front panel, the inverter case AND the chargers panel to a power outage. I know I should’ve saved it but I either complete it and save it or just have them lying in my RAM overnight till it finishes and that power outages are rare for me, but here I am! Completed the bench power supply part, printed the front side in orange and screwed it on the gray bench power supply mount since I’m planning to use orange on gray as opposed to gray on orange. Also added an extra master XT60 connector for direct battery access connections.
Completed the modelling part of the inverter case, charger panel and probably also the front panel. Did some minor bug tweaks in the code Also finished cutting the copper sheet for the inverter module
Printed and assembled the chargers part And also, I’m in the middle of designing the right side panel, gonna take up a ton of time as I’m using hit and trial method
Printed out the front panel, got a ton of work to do on the other panels. Thinking of whether or not to add a fuse in series to the direct source connector.. I feel like fitting all of these components into their designated space might be a very tedious task. Its just a pain to measure and ensure everything is in its own designated region and every part seats in properly, and also, found a mini bug, which is to be fixed in the code,,
Probably a really messy workbench right now. Anyways, once again, did quite a bit of working, especially in CAD and 3D printing. Finally, I’ve hit 100% of the program storage space in my Arduino Nano when uploading my code. Need to optimize the code. Had to snap off the screw mounts and the bottom section of the button mount cover for it to fit, fixed it in the later version though. Also, spent 5 full minutes troubleshooting, opening the mainboard out of its case only to find out that nothing was connected (power button, navigation buttons, etc.). Probably, late night fatigue kicking in,,
Working on the mainboard mount. The mainboard is planned to be mounted on top of the battery pack. Not sure how I’m gonna figure out how to make mounting holes on the bottom panel. Its 12:20 AM rn, need to go to bed,,,
Birthday devlog today🎉! Did a ton more of CAD work, including modification of slots and sketches, and boy was it painful!. I had to re-draw each sketch on top and repeat this once again since I need one for negative extrusion and one for filling the already existing slots. All caused by my poor judgement of the dimensions of the other parts But here I am! Also, had tweaked the code a little, did some power wire replacements and stuff
Looked through the designs and measurements, edited them when necessary, tested the charging circuit, not sure why but it trips my MacBook’s PD 30 W charger but not my Samsung PD power bank, probably due to inrush currents. After a long conflict, finally printed the right side panel, need to proceed with the left, top, bottom and back panel as well. I don’t know, I’m scared to waste ~100g of filament and ~10h of time over a failed print just because of a dimensional mistake or inaccuracy, I’m just looking through the final model in Fusion 360 countless times,!
Printed the left side panel, tried to print the bottom panel but failed, also the BOM list final is ready!! Well, seems like the assembly process is going to be hard due to a ton of wires and obstacles :( Had to trim the direct source connector panel twice for it to fit in the right side panel Boost converter module is held under really high amount of tension probably due to 10mm bolt and nuts. Made orientation and placement mistakes while installing the chargers panel -_-
In the process of making the soft starter circuit for the XL4016 module, since the inrush current trips some chargers, I’m set on using a 555 timer chip in order to turn on a relay 2s after powering on the relay. Anyways, tested the bare-bones version of the power station at around 100 W and/or 10A of current and it worked beautifully, though I was scared to my core when doing so, not wanting this setup to blow up like last time which killed the boost converter and both the charger modules.
Successfully completed the soft started board in order to prevent the inrush current drawn by the XL4016 module from tripping certain chargers. It felt endless, I had to use 2 NPN transistors in an inverter configuration in order to not use a PNP transistor since I did not have one lol. Also 3D printed and replaced the old battery case for a newer one which has ventilation holes, helping in keeping the battery temperatures low..
Welp, killed another boost converter. This one failed by having its output voltage always equal to the input voltage no matter what, unlike previously where the boost converter failed as a direct short. Other than this, I spent a lot of time troubleshooting the charging MPPT function, which seemed to not have proper limit and tripped whatever charger I had connected it to. Had to change the values quite a bit but nothing helped. In the end I noticed that the initial_in_voltage variable was set to the absolute minimum trigger point whenever the charger was connected, therefore the condition where the (initial_in_voltage - in_voltage variable <= 0.2) inequation is always held true and therefore the Arduino ramped up the PWM no matter what, it took a ton of time to figure out -_- In addition to this, I had also spent a around 2h in testing the power station regarding its thermals and max. power capability..
Had to harvest a boost converter from my old bench power supply, fix it (it was dead shorted due to an internally shorted capacitor) Planning on adding a pre-boost converter for the inverter and the charger functions. They refuse to work below 10.2 V, disregarding 20~30% of battery capacity. Recorded the voltage, current, milliamp hours, power drawn along with time stamps. Gosh, my hands are numb now -_-.
Had to tear the unit down, do plastic welding since the screw mounting slots broke. Probably I would rate this as a 0/10 in the reparability scale by myself -_-. Also, bypassed the 10 V regulator on the charger boost converter module and now it can work from 9V. Planned to add another separate boost converter for the inverter to prevent inverter’s low voltage protection from kicking in. Bypassed the regulator here as well. I feel kinda lazy and tired, probably will log more time from tomorrow,,
After a full 2-week fever, I’m back into business :D. Things aren’t great to start off. To sum it up, the inverter died after I connected a chineese steamer apparently rated for “120 W”, when in reality, it drew around 500 W from my wall. My inverter tried to maintain its voltage and ended up killing its MOSFETS. I really hope the MOSFETS are the only ones damaged.
Switching to daily devlogs from now on.. Worked on the broken inverter. Tried replacing the MOSFETS with a different ones. The original ones were MDP1933, with a drain to source resistance of less than 5 milliohms, while the ones I replaced with were IRFZ44N and featured a drain to source resistance of 15 milliohms. I need to find a stronger MOSFET than the original MDP1933 used in the build and also upgrade my table’s sticker to gray :D
Finally replaced the MDP1933 MOSFETs with beefier IRFB4110 MOSFETs, but boy was it expensive! Whenever we replace blown MOSFETs, its a good practice to replace the entire array even if one MOSFET is blown and the others work perfectly fine since you never know if the voltage spike or whatever calamity had partially destroyed it (it would fail to close properly, dropping a lot of voltage) Atleast the inverter’s been fixed now (or is it..?) and outputs a clean 230 V RMS. Tested with a 20 W lamp and it works well. Need to replace the 35 A automotive fuse on it as well since it was also blown due to the direct short that occurred, I’m using a piece of solder wire as a temporary substitute (not recommended btw) Need to test with bigger loads to ensure that its back at business and nothing else was damaged due to the overload. Also worked on the Instructable for the past two days while waiting to get the MOSFETs....
|
1792702058.5845563
|
1793306858.5845563
|
|
22251
|
My first slack bot! by @wimbombugua | Stardance
|
wimbombugua
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @wimbombugua | Stard Title: My first slack bot! by @wimbombugua | Stardance...
|
1792738169.285556
|
1793342969.285556
|
|
24744
|
My very own WebOS by @wimbombugua | Stardance
|
wimbombugua
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My very own WebOS by @wimbombugua | Stardan Title: My very own WebOS by @wimbombugua | Stardance...
|
1792810052.4181552
|
1793414852.4181552
|
|
10338
|
Liable For Damages by @wilson_brunner | Stardance
|
wilson_brunner
|
2
|
223.0
|
2779
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-29T01:33:26Z", "hours": 12.0, "multiplier": 18.31, "payout": 219, "blessing": "neutral", "text": "This is a rerelease of my game, Liable for Damages, now in its second update. I did some major reworks of different game features, adding volume controls, some little secrets, and some bug fixes, really glad I could finish this fully and get all of this done! The Itch has Web, Windows, Linux, and Mac (D:) releases, but I’ve only tested for Web and Windows", "repo": "https://github.com/wilbot3000/Liable-For-Damages", "demo": "https://wilbot3000.itch.io/liable-for-damages"}, {"ship_num": 2, "ts": "2026-09-20T17:08:06Z", "hours": 211.0, "multiplier": 13.61, "payout": 2560, "blessing": "neutral", "text": "I made something! This was my first time coding outside of Arduinos, and one of the biggest learning experiences of my life. There was stress, time crunches, and pain, but it all came down to the wire. The most challenging part was drawing, of course, I’m never going to do this again JUST because of the assets. Thanks for playing", "repo": "https://github.com/wilbot3000/Liable-For-Damages", "demo": "https://wilbot3000.itch.io/liable-for-damages"}]...
|
[{"post_id": 83997, "ts": "202 [{"post_id": 83997, "ts": "2026-10-29T00:56:48Z", "hours": 0.415, "text": "Final log frfr This is just some boring stuff, just the time from me rereleasing"}, {"post_id": 83524, "ts": "2026-10-28T03:12:48Z", "hours": 7.6033, "text": "Final devlog frfr woah! Hello fellow stardancers, today I finsih game for good I’ve added 3 things, finishing the settings, updating fonts, and oooh secrets 1st SETTINGS ARE COMPLETED! -Made some more settings for volume, adjusted the busses and had to learn some new stuff -I had to map the variables from the sliders from -50, 50; to -62 to 8, which the busses can actually take (DON’T turn it up all the way) I also took the liberty to make save settings for each bus so you can save your ⭐ precious settings ⭐ -took me like an hour to figure out Godots stupid container settings, very annoying and bad (please fix) DOS FONTS -light work, just changed the font from my impossible-to-read 4x3 to an actually visible one el final… SEcrets! -don’t <- I mean it -enter the kunami code in the start menu, which is… up up down down left right left right b a start It does cool stuff Thanks for reading and supporting my game journey, hope you have a good school year, especially YOU , Franklin High in Iowa"}, {"post_id": 75085, "ts": "2026-09-29T03:15:45Z", "hours": 3.1931, "text": "Started working on Liable for Damages 2.0 Devlog #1 Started working on better settings, mostly just things for volume, fonhts, and scrolling things. Whipped up some basic sprites in aseprite and took a day to implement them and figure out bugs, which were very annoying, mostly just related to button sizing. Had to mess around with Godot’s “containers”, for the first time, and it was quite bad, I’ve got some more work to do before I can get the sliders to work, but I’m close! Next stuff’s: -format sliders -start creating settings related to different busses -create saves for the sliders -implement button to change font -make font-changed labels for all maps -do bum ahh drivers ed instead of W Stardance I’ll hopefully release 2.0 within October, and I’mma try and devlog more! ~Wil"}, {"post_id": 72459, "ts": "2026-09-23T00:48:57Z", "hours": 0.7572, "text": "devlog for projects i forgot to add, really just time from learning to export godot games, very annoying um, fun fact, if you create a web game, change the file to index.html, or it literally WON’T WORK!!! Play my game (now!)"}, {"post_id": 71208, "ts": "2026-09-20T13:27:09Z", "hours": 10.0756, "text": "Final Release (or close to it) Game will be out soon, I just gotta ship, but everythings done, I finished sounds, and the ending yesterday, like a 8 hour coding marathon, so i could get this out in time. PLEASE play it, it’s called Liable for Damages, I don’t know where I’ll post it yet, but It’ll probably be on Itch.io or just the game application file. It’s like 150,000 kilabytes, so it shouldn’t be too bad for any computer, hopefully (mines from like 2009 and it ran fine) P.S! Please, (if you do play), comment bugs, especially major things, EXCEPT: -Player dissapearing when opening menu in elevator (don’t try this, im not fixing it it’s funny) -Bugs on top of head, (js kill them) Anything else is bad and needs fix thanks. Also sorry no volume controls, I was crunching down to finish."}, {"post_id": 69943, "ts": "2026-09-18T03:13:43Z", "hours": 10.1883, "text": "SFX stuff, final thing before ending, just finishing sounds, really annoying though ngl. done soon, big update at end"}, {"post_id": 67708, "ts": "2026-09-13T22:09:54Z", "hours": 11.4017, "text": "FINAL STRETCH time to lock in please oh no Im finishing the last level, no time to talk, but got like 4 things to finish THINGS: -level -boss fight -sounds -ending -bugs"}, {"post_id": 59735, "ts": "2026-09-01T17:44:56Z", "hours": 10.84, "text": "WORKING ON MY FINAL STRETCH I’m going to be locked in for the next few days, school starts, so I’ll have less time, but I got a boss fight and then bug fixing and sound effects, hears a sneak peak and one of the many things ive worked on. Also, I came up for a name. Looked up the universal laws for space and saw something about how “Countries of Origin are Liable for Damages caused by their space debris” and said “dang, thas dope” so now i have a name. In my next log ill have a longer devlog like a lite trailer, but the games pretty short, more like a showcase of learning. Thanks!"}, {"post_id": 55339, "ts": "2026-08-27T02:45:42Z", "hours": 9.8842, "text": "quick stuff, nothing much Finished some updates, but I’m locked so don’t have time to write much"}, {"post_id": 53129, "ts": "2026-08-23T15:40:04Z", "hours": 10.67, "text": "Another devlog about levels. Started work on the second (this takes so long) I can’t say much for fear of spoilers, but just say this involves WAY to much code and sprites (I hate drawing so much)"}, {"post_id": 51334, "ts": "2026-08-20T22:46:55Z", "hours": 10.2436, "text": "quick devlog. I need to do this cause i got 10 hours, Im working on the level system and im so tired please why is htis so hard D: D: D: D: D: D: D: D: D: D: D: D:"}, {"post_id": 49718, "ts": "2026-08-18T17:06:16Z", "hours": 9.2325, "text": "keypads, doors, and beginning of the first level. Im actually making a game! contains spoilers First of many… keypads were really difficult, every button, when clicked, multiplies the correct number by a multiplier, and adds it to a “code” variable. the multiplier is chosen based on what step of the code you’re on, (e.g, 1: 10000, 2: 1000, 3: 100, 4: 10, 5: 1), when you click the green button, it cross checks another variable with the one you typed, and if they’re the same, it sends the function to open the doors, and if not, everything resets. The other terminals and what not just open things when clicked on, so it’s just an easier version of the keypad."}, {"post_id": 47241, "ts": "2026-08-15T01:07:13Z", "hours": 8.0058, "text": "Flying enemy is complete, in record time! wow, 8 hours for an enemy, how quick D: This was a challenge, but also really fun. This enemy is the flying one, which made it a little more difficult than just the copy and paste of old ones but still pretty cool. It works using a Navigation Agent, which is like Godot pathfinding. Fast forward three hours and a whole lot of troubleshooting, but that works. The enemy detects the player in the same fashion as the other enemies and then activates the nav-agent to being movement. It’ll follow the player through vents, passages and really anywhere. The fly has three main detection circles, the first one tells it to move towards the player, if the player enters the second one, it’ll freeze and stop moving, and if the player gets even closer, it’ll try to move away (by reversing the velocity var outputted by the nav-agent, iyc) the enemy’s one hit, acourse, but is really annoying to attack, (ill rework ground pounding to make this easier later). The enemy has a shooting attack, that is on a 6 second timer if it can see the player, otherwise it’s just on hold. its shots are pretty slow, so there easy to avoid, but in a crowded fight ya never know. The main quirk of this enemy is it has a really long forgetfulness timer, so even if it can’t see you, it’ll continue to follow for quite a long time, much longer than other enemies. Next:! -stationary, weird wall tentacle that shoots at you -egg spawner that hatches into 1 of three enemies (mystery ooh) -doors (ikr)"}, {"post_id": 44372, "ts": "2026-08-10T02:47:57Z", "hours": 2.9308, "text": "Enemy is complete: Chomper! Lot of work, but got it done. This is the, please avoid, very dangerous, you will die enemy. I haven’t balanced its health yet, and I’m not going to for a while, so it looks like an easy kill in the video. The weird quirks of this enemy are mostly in its charge attack, that rushes the player. It’s pretty easy to avoid, but once again i haven’t done attack balancing, so it may become harder later. The majority of the enemy works just like the lil guy, so idk read that devlog. But there is two major differences: LIST: gasp 1.!!!1! : idle stuff -really just a randomizer -if enemy is idling, starts a timer, and when it runs out of time, it does one of two things (using a randi() function) -if the outputs a 1, nothing happens, but if its a 2 it flips the enemy, thas all -the main reason for this is that since this enemy is so big, making it a tad more animated than the lil guy felt important to me, and also because the detection areas for the big guy are skewed towards the front, so him turning around makes the player sneaking up on him a little less common, it’s generally just for Q-O-l (slang btw) (only cool people understand) 2.!: dash -dear lord, why was hard so much D: -Wasn’t actually that difficult, I spent a lot of time trying stuff before realizing I just unleash my inner enginneer and do it step by step ’till it works, which it did. -first, theres three detection boxes, one for walking towards the player, one for the chomp, and one for dashing, if the player enters the dash-box, a timer will start -when the timer ends, the charge animation plays, which halfway through, activates a function too add velocity (actual charge part of charge) -If the enemy hits a wall, player, or box, it stops moving, but in the case of the player it plays a second animation (dash_hit) that looks like a chomp and kills the player if it hits them. Theres another If statement that sets velocity back to 0 when this happens also. OTHER CHANGES: -I removed the players health really, I like games that are one shot, because it’s subjectively more fun, I’ll make the player death a little more explosive if I have time. I’ll probably make them have three health but that’ll change when I do attack balancing -made the lil guys attack timer shorter, makes him more dangerous. NEXT TIME PLANS: -hopefully in one day (ima lock in rq) -gonna add a flying enemy, -literally just a tad fly, like 5x5 pixels, it’ll look at the player and fire acid that’ll kill you -i might change the death animation to be more BOOM (IYKWIM) :D -my goal is too complete the flying guy 100% tomorrow, but I got other stuff to do so we shall see -also it’ll be nice to not have to do major animating besides literally 6 pixels splaterring -if extra time, I’ll make a weird egg thing that turns into the fly THANKS FOR READING! as always (not really) go make some interesting, and uh learn something new every day please (P.S I made some changes after I took these videos so it still looks and feels kinda bad but not actually rn) ~Wilfred"}, {"post_id": 44000, "ts": "2026-08-09T14:18:20Z", "hours": 11.6767, "text": "Little enemy beginnings I haven’t actually finished anything yet, but I need to devlog anyways, but I have started to finish the second enemy, which is also the framework for more."}, {"post_id": 41460, "ts": "2026-08-05T17:57:18Z", "hours": 12.2908, "text": "player movement is complete!! went on vacation, so fell behind a bit, but finally got this done. I spent a lot of time thinking on how to make player movement good, and then thought of my BOTW playthroughs, where you can either hold your attack and have a powerful slash, or click fast and hit three in a row. First addition!: Ground pounds were pretty interesting, all it does is forces the player down hard if they attack in the air, decreases stamina, and then hits the ground, I added a dust cloud that explodes when he hits the ground, which just plays the animation and then disappears. I had to do some fenagling with this because the code knows when to start the animation because the player will be ground pounding and on the ground, which starts the poof and then stops ground pounding, which also keeps the animation from playing multiple times. SECOND: Annoying stupid player attacks. Tried to finish this in a day, so I was working till 11:00 at night, but I got the animations done and what not. When the player hits/holds the attack button, it starts a stopwatch that increases, when the player releases the button, depending on the time on this timer, it will either play the first of 3 quick attacks or the big attack, which does more damage. If the quick attacks are chosen, the first one will play, three things happen when thats starts, 2 timers start, and player velocity increases to 500. at the end of the attack, there are three things can happen, the player can wait until the animation ends, they can attack again, or they can walk to reset the attack earlier than waiting, the first timer forces the player to wait to cancel the attack by walking, and the second one stops their velocity so they jolt forward. at the end of the animation, a function is played that: starts the reset timer for the attack A variable increases that sets the next attack to be the second or third in the sequence, instead of the first and a if statement that resets the variable to 0 if it gets to 3. Theres some other details for weird situations, like falling off the edge and ground pounding while attacking, or the variable not resetting weirdly. But all of that was like an hour. Thanks for reading: Play my game when it comes out so I have a reason to finihs Also I need a name for the game (please, I suck at naming) and go play Legend of Zelda (or Just Cause 3) (or research operation Just Cause) #USinvadinglatinamericaAGAINfornoreason P.S (I was gonking on being up till eleven, but I did like 3 hours of animating and coding in like 30 minutes while being food deprived and barely awake because deadlines = lock in, so if you need to lock in just don’t sleep ig ) also, I’m technically not done ‘cause ma boy needs a sawed off before I’m done here Yee Haw"}, {"post_id": 35583, "ts": "2026-07-27T03:37:24Z", "hours": 1.1306, "text": "MOVEMENT PART # (3) les go took me short time, it’s ten o’clock im tired, pretty simple stuff. If player is sprinting and the crouch button is pressed, the normal function is overridden and a slide is activated, this just sets the animation to slide and the X velocity of the player to a high number. There’s some other code for just general quality of life, like stopping if you hit a wall and keeping you from changing directions, but the REALLLY cool part is jumping. Like in real life (trust), while sliding the player will jump further, which permits some cool movement combinations, like vaulting over gaps and climbing 4 block walls. I have to work out stamina changes depending on jump strength and stamina decrease for vaulting, but the movement getting pretty fleshed out. P.S, after I took the video, I changed the sprint stamina decrease to be a consistent decrease instead of being choppy like in the video, it’ll be in the next log, but it was just quality of life. NEXTS STUFFS: -dash -enemy lunge -stamina from hoisting and slide-jump stamina increase Thanks for reading!"}, {"post_id": 34965, "ts": "2026-07-26T03:00:51Z", "hours": 3.8936, "text": "Crouching! #2 in the player movement chronicles! Surprisingly, I also managed to create a whole new 5 animations! slide, crouch idle, crouch walk, and the sledge versions (not slide cause ya can’t sprint with sledge). I implemented all but the slide, which’ll take a long time, so I’m going to keep it off a bit. This was really straight forward to add, and for the first time in a long time, i had like only 1 problem . I really just had a piece of code that asks, “did ya click the crouch button?” and if so, it toggles crouch. IF (and only if!) the crouch is on (or “true”) the idle and walk animations are switched to their respective crouch variants, and the normal player hitbox is replaced by a shorter-er-est one. To bar the player from un-crouching in the midst of a tunnel, I added 2 new raycasts to the front and back of the players head facing up, these casts detect if there is a block above the player, and if either one of them detects anything, the player is unable to un-crouch until they are unshielded. Another quick thing I had to fix a bit was the raycasts detecting the player, which broke EVERYTHING so I just turned good ’ol collision mask/layer 20 into the super-cool (ALL-NEW !!) “player raycast collision!!!” which just only lets them interact with the floor and boxes, so yippee NEXT STEPeths!: -slide ): -enemy lunge -other player attacks (only hard attack right now which is bad)"}, {"post_id": 34347, "ts": "2026-07-24T23:18:41Z", "hours": 13.5214, "text": "Mantling and fixes Hi. I have had a very long week. I spent a lot of time working on sprites, mostly for the game 3rd level (no spoilers, (but that’s pretty boring) so heres the interesting part. I’ve been focusing on revamping player movement to make it feel more interesting and fun, and this is a good start. Mantling! if you don’t know what this is, it’s what you do when you get out of a pool without a ladder or staircase, pretty much just “pulling yourself up” The player does this by using raycasts, I added three, but one is for something else. One of them detects a wall in front of the player, and one detects a wall above. The code uses these casts to detect if the player is up against a wall, and if there is no wall above the player, pretty much checking if there is a mantalable ledge. If there is, the code says “you can mantle” Another line says: if you can mantle, and you are not on the ground, and if the player clicked space (Jump), then mantle. The annoying part was animations. When the player begins mantling, the hitbox and player position is frozen in space, and position is snapped to the nearest block to line up the animation. the only thing that moves during the animation is the player sprite, which means at the end of the animation, when the players position is finally changed, the player sprite needs to snap back at the EXACT same time, or it looks bad, which was hard. The other annoying part was the camera snapping randomly, as it moves with the player and not the sprite. I fixed this by just temporarily turning on the cameras position smoothing while the mantle is happening and then turning it off when the player moves again."}, {"post_id": 31003, "ts": "2026-07-19T01:34:03Z", "hours": 14.4064, "text": "sprites! done some stuff, mostly just game planning (sadly didn’t get time for because notes but I got a lot done, mostly just some serious drawing. I finished some tiles for the first and second levels, and some tiles for the next three."}, {"post_id": 26947, "ts": "2026-07-12T01:17:07Z", "hours": 4.2967, "text": "Quick hurt animations Main thing I added was animations for death and injury. I first added knockback when hit. It just takes the player’s scale.x (what i use for flipping the sprite) and multiplies it by 200 to the player velocity, since the scale is either 1 or -1, it changes the direction the player is thrown (in the future i’d like to make the scale the enemies direction, not the players, as if the player is flipped in the wrong direction, it could have knockback in the wrong direction (very bad) Theres was already a variable to detect if the player was being hit that was used for testing, so I just implemented that to play the injury animations. i also detected if the players health was zero or below after being hit, and if so it would make the player play the death animation instead of the injury. I have currently unimplemented animations for a before-death injured player, so after they are hit for the last time they will stand for a bit before collapsing. NEXT STUFF: (hast beeneth narrowed list) -add enemy knockback (only when injured, lok wierd when die) -fix player knockback thank yoh forth coming to my TED talk"}, {"post_id": 25010, "ts": "2026-07-08T22:32:29Z", "hours": 12.3911, "text": "I’m gonna start this by saying: I HATE animating! Aseprite made this so much easier, but GOD this was difficult… I think I had 5 situations this time around where the problem was the littlest change in the world, and I just needed to go to bed. I made 3 different walk cycles, before giving up and figuring out how to do it for real, it was only a little difficult after that. I have unused hurt, death, and push animations, and need to implement a shorter attack and smooth some things out still (jumping while attacking cough ) Almost all of these 12 hours was fixing stupid little problems and changing little pixels, probably some of the worst time ive spent on this project yet… (but still really interesting) NEXT STEPS::: -fix walk so it looks sensible (drifting) -make jumping illegal hwilst attacking -add short attack -customized tile map ????? Thank you for reading goodbye I want to stop animating"}, {"post_id": 21598, "ts": "2026-07-03T17:09:19Z", "hours": 4.0883, "text": "enemy attacks/better particles. This took some work, but not really… The enemy can now attack and hurt the player the codes really just the same as the player attacking the enemies. Theres a hurtbox in the player that gets hit by an area in the enemy that makes them take damage. The particles took some more difficult work. Godot has CPU and GPU particles, which apparently are different, it just depends on what in your computer renders them. I used GPU particles, because they run better and can collide with things. I whipped up a sprite sheet for the particles in Aseprite, which looked a lot better than the weird purple generic Godot things. The particles only collided with light occluders??, so I added an occlusion layer to the tile map, at some point I hope to create a better system for when they hit the ground, but thats not my priority right now. Next STEPS!!!!! -main thing is that the enemy has a lunge attack that I haven’t implemented yet, so thats next. -starting on the player sprites, this is a LOT of work, so its gonna take me a lot of time, but no time like the present"}, {"post_id": 20225, "ts": "2026-07-01T19:32:16Z", "hours": 5.3086, "text": "Some more enemy development! -first “enemy” in the game, a pretty basic little thing. -designed on Aseprite, took some time to set up with hakatime, but turns out I was using a version only used on Mac OS, so no kidding it was giving me trouble -I created unused animations for a lunge and whip attack animations that I will implement soon (?). NEXT STEPS :D : -stop the player from colliding with the enemy’s hitbox, it’s very annoying, and in the future will we a necessity for having many creatures in the same room -add the enemy attacks, I’ll probably just use a raycasy to see if the players close enough, and then make it hit, pretty simple… Also get Aseprite, it’s like 20 bucks but it’s a really good software, also it’s just really good for game making. gasp :D"}, {"post_id": 18857, "ts": "2026-06-30T01:51:26Z", "hours": 10.155, "text": "Basis of an enemy AI!!! the beginnings… I feel like ten hours is a little much for just this, but there was so much work to do. The main step began with a pretty simple area. It just detects if the player enters. The code uses the player position (or “target” position in the code), and subtracts it from the enemy position, if the numbers greater than 1 it moves one way and if less than -1 other. (The buffer in-between the 2 is just for smoothing) If the player is within the hitbox, the enemy shoots out a ray cast towards the player. If it touches the player, it lets the enemy move, if it hits a box or the ground first it doesn’t, pretty simple, till you realize what can go wrong… For clarification i have NO CLUE why any of what i did helped, but it did so yippee!!! The first problem was that the enemy would only detect the player if they were off the ground. I tried to fix this by forcing the ray cast to not interact with the Tile Map (which wouldn’t have worked anyways, because it still needs to so the objects can block the enemy’s sight). I set a piece of code to print what the enemy was interacting with, and it turns out it was the background? (I know, weird?) I seperated the background and collision ground into 2 tile layers, then turned of collisions for the back layer. After that there was some glitchy stuff which you can see in the video a bit, but I fixed almost all of it with literally one if statement that only lets the player become a target for the code (My code is a modified version from this website) / / / / / Godot 3.0: Visibility with Ray-casting · KCC Blog"}, {"post_id": 14832, "ts": "2026-06-24T02:59:54Z", "hours": 4.9869, "text": "Devlog #4? 3 big things this time, physics blocks, destructive blocks, and stamina upgrades. Physics!: -just a block but it’s a “rigid body”, so Godot gives it physics. -It uses some “borrowed code” to detect if the player is colliding with something and then add the players velocity to it.* -I had to change the hitbox of the floor to be a collision polygon, instead of one per block, which made the pushing kind of shotty.** Destruction!: -Really simple… just an enemy that can’t move or fight back. I added an animation so you can tell it’s getting hit but that’s the most complicated it got. Stamina! (it’s better): -I added 3 major things, though 2 of them are pretty small. First, I added a bar, Godot has a built-in progress bar node, so I just mapped the value from 0 - 10, and used the stamina value from the player as the value input -SECOND! I changed the recharge, instead of a variable that goes up when a timer ends, it now uses a move_toward() function to make the stamina tick up smoothly. -thirdibidily, a pause. Mainly because irl and in games you don’t just start recharging as soon as you stop moving. This uses a float that begins to tick up when the player starts moving, and when it surpasses a certain point, it allows the stamina to recharge. Final stuff!!! -I’ll start focusing on: -more indepth weapons -and maybe ai for enemies… probs something with raycasts……….."}, {"post_id": 13221, "ts": "2026-06-21T17:28:44Z", "hours": 1.7094, "text": "Sprinting! took a bit, but I finally got sprinting to work. Works pretty simply, the characters motion is determined by a speed variable, which just increases if the sprint button (shift) is held down. Here’s the code: if Input.is_action_just_pressed(“sprint”) and stamina >= 1: state_machine.travel(“sprint”) sprinting_timer.start() SPEED = 200 sprinting = true elif Input.is_action_just_released(“sprint”): SPEED = 75 sprinting = false sprinting_timer.stop() I’m using an animation_tree for my animations, instead of just a player, this helps the transitions from animations feel smoother, so thats what the “state_machine” is. The “sprinting” variable is used to force other animations (e.g, for idling and running) to check if the player is sprinting, and thus not override the animation (the sprinting animation currently is identical to running, but when I start designing the character i’ll change that). The timer is just on a .5 sec loop, and makes the stamina decrease when it ends, the second bit of code checks if you stopped sprinting, and returns the SPEED to normal and stops the timer loop. This code doesn’t actually fully work, as another if statement is needed. The extra “and” in the first check makes sure you can’t start sprinting if stamina is below one, but actually only checks once when you start sprinting, not constantly, so the sprinting doesn’t stop if stamina goes below 1 (like it should). if stamina < 1: SPEED = 75 sprinting_timer.stop() sprinting = false This code, unlike the first “if”, checks consistantly if stamina’s below one, and does the same job as if you let go of sprinting. This keeps stamina from going negative D: In the future I plan on adding a gradient to the effect, so the speed up isn’t as jarring, but this is a good start! Thanks to Brackeys for the current assets! (go watch his video on Godot, it’s very informative) ~wil"}, {"post_id": 12762, "ts": "2026-06-20T21:26:41Z", "hours": 13.1589, "text": "Finally started to develop a “game” made 3 things, Attacks, Stamina, and GUI Attacks: ->use hurtboxes detect if an area entered, if that area is_in_group(“attackarea”) the hurtbox takes a damage variable and applies it to the thing it’s attached too (Player, enemy, etc) Stamina: -> A timer slowly makes it tick upwards, starts at 10, and goes down if the player jumps or attacks, uses a Global Variable allow the GUI to display the stamina (there’s probably a better way but I’m lazy ¯ _ (ツ)_/¯) GUI: ->uses a canvas layer being displayed over a sub-viewport, which includes the coins and stamina, just displays text and then the quantities of each integer. next steps: ->destructible blocks ->physics blocks ->stamina bar (not integer) ->sprinting (and smoother movement. Thanks to Brackeys for the assets!"}, {"post_id": 5987, "ts": "2026-06-10T01:24:33Z", "hours": 4.8608, "text": "Finally done learning basic Godot!! My entire time has been dedicated to just learning how to use the software, and I’m glad to say I now have something to work off of. I still need to learn more, like GDscript, pixel art, and game design. Next Steps! -develop weapon (sledgehammer :D) -destructible terrain elements (fancy walls that get destroyed) -physics blocks -begin designing character and aliens"}]...
|
Title: Liable For Damages by @wilson_brunner | Sta Title: Liable For Damages by @wilson_brunner | Stardance
Devlogs:
Finally done learning basic Godot!! My entire time has been dedicated to just learning how to use the software, and I’m glad to say I now have something to work off of. I still need to learn more, like GDscript, pixel art, and game design. Next Steps! -develop weapon (sledgehammer :D) -destructible terrain elements (fancy walls that get destroyed) -physics blocks -begin designing character and aliens
Finally started to develop a “game” made 3 things, Attacks, Stamina, and GUI Attacks: ->use hurtboxes detect if an area entered, if that area is_in_group(“attackarea”) the hurtbox takes a damage variable and applies it to the thing it’s attached too (Player, enemy, etc) Stamina: -> A timer slowly makes it tick upwards, starts at 10, and goes down if the player jumps or attacks, uses a Global Variable allow the GUI to display the stamina (there’s probably a better way but I’m lazy ¯ _ (ツ)_/¯) GUI: ->uses a canvas layer being displayed over a sub-viewport, which includes the coins and stamina, just displays text and then the quantities of each integer. next steps: ->destructible blocks ->physics blocks ->stamina bar (not integer) ->sprinting (and smoother movement. Thanks to Brackeys for the assets!
Sprinting! took a bit, but I finally got sprinting to work. Works pretty simply, the characters motion is determined by a speed variable, which just increases if the sprint button (shift) is held down. Here’s the code: if Input.is_action_just_pressed(“sprint”) and stamina >= 1: state_machine.travel(“sprint”) sprinting_timer.start() SPEED = 200 sprinting = true elif Input.is_action_just_released(“sprint”): SPEED = 75 sprinting = false sprinting_timer.stop() I’m using an animation_tree for my animations, instead of just a player, this helps the transitions from animations feel smoother, so thats what the “state_machine” is. The “sprinting” variable is used to force other animations (e.g, for idling and running) to check if the player is sprinting, and thus not override the animation (the sprinting animation currently is identical to running, but when I start designing the character i’ll change that). The timer is just on a .5 sec loop, and makes the stamina decrease when it ends, the second bit of code checks if you stopped sprinting, and returns the SPEED to normal and stops the timer loop. This code doesn’t actually fully work, as another if statement is needed. The extra “and” in the first check makes sure you can’t start sprinting if stamina is below one, but actually only checks once when you start sprinting, not constantly, so the sprinting doesn’t stop if stamina goes below 1 (like it should). if stamina < 1: SPEED = 75 sprinting_timer.stop() sprinting = false This code, unlike the first “if”, checks consistantly if stamina’s below one, and does the same job as if you let go of sprinting. This keeps stamina from going negative D: In the future I plan on adding a gradient to the effect, so the speed up isn’t as jarring, but this is a good start! Thanks to Brackeys for the current assets! (go watch his video on Godot, it’s very informative) ~wil
Devlog #4? 3 big things this time, physics blocks, destructive blocks, and stamina upgrades. Physics!: -just a block but it’s a “rigid body”, so Godot gives it physics. -It uses some “borrowed code” to detect if the player is colliding with something and then add the players velocity to it.* -I had to change the hitbox of the floor to be a collision polygon, instead of one per block, which made the pushing kind of shotty.** Destruction!: -Really simple… just an enemy that can’t move or fight back. I added an animation so you can tell it’s getting hit but that’s the most complicated it got. Stamina! (it’s better): -I added 3 major things, though 2 of them are pretty small. First, I added a bar, Godot has a built-in progress bar node, so I just mapped the value from 0 - 10, and used the stamina value from the player as the value input -SECOND! I changed the recharge, instead of a variable that goes up when a timer ends, it now uses a move_toward() function to make the stamina tick up smoothly. -thirdibidily, a pause. Mainly because irl and in games you don’t just start recharging as soon as you stop moving. This uses a float that begins to tick up when the player starts moving, and when it surpasses a certain point, it allows the stamina to recharge. Final stuff!!! -I’ll start focusing on: -more indepth weapons -and maybe ai for enemies… probs something with raycasts………..
Basis of an enemy AI!!! the beginnings… I feel like ten hours is a little much for just this, but there was so much work to do. The main step began with a pretty simple area. It just detects if the player enters. The code uses the player position (or “target” position in the code), and subtracts it from the enemy position, if the numbers greater than 1 it moves one way and if less than -1 other. (The buffer in-between the 2 is just for smoothing) If the player is within the hitbox, the enemy shoots out a ray cast towards the player. If it touches the player, it lets the enemy move, if it hits a box or the ground first it doesn’t, pretty simple, till you realize what can go wrong… For clarification i have NO CLUE why any of what i did helped, but it did so yippee!!! The first problem was that the enemy would only detect the player if they were off the ground. I tried to fix this by forcing the ray cast to not interact with the Tile Map (which wouldn’t have worked anyways, because it still needs to so the objects can block the enemy’s sight). I set a piece of code to print what the enemy was interacting with, and it turns out it was the background? (I know, weird?) I seperated the background and collision ground into 2 tile layers, then turned of collisions for the back layer. After that there was some glitchy stuff which you can see in the video a bit, but I fixed almost all of it with literally one if statement that only lets the player become a target for the code (My code is a modified version from this website) / / / / / Godot 3.0: Visibility with Ray-casting · KCC Blog
Some more enemy development! -first “enemy” in the game, a pretty basic little thing. -designed on Aseprite, took some time to set up with hakatime, but turns out I was using a version only used on Mac OS, so no kidding it was giving me trouble -I created unused animations for a lunge and whip attack animations that I will implement soon (?). NEXT STEPS :D : -stop the player from colliding with the enemy’s hitbox, it’s very annoying, and in the future will we a necessity for having many creatures in the same room -add the enemy attacks, I’ll probably just use a raycasy to see if the players close enough, and then make it hit, pretty simple… Also get Aseprite, it’s like 20 bucks but it’s a really good software, also it’s just really good for game making. gasp :D
enemy attacks/better particles. This took some work, but not really… The enemy can now attack and hurt the player the codes really just the same as the player attacking the enemies. Theres a hurtbox in the player that gets hit by an area in the enemy that makes them take damage. The particles took some more difficult work. Godot has CPU and GPU particles, which apparently are different, it just depends on what in your computer renders them. I used GPU particles, because they run better and can collide with things. I whipped up a sprite sheet for the particles in Aseprite, which looked a lot better than the weird purple generic Godot things. The particles only collided with light occluders??, so I added an occlusion layer to the tile map, at some point I hope to create a better system for when they hit the ground, but thats not my priority right now. Next STEPS!!!!! -main thing is that the enemy has a lunge attack that I haven’t implemented yet, so thats next. -starting on the player sprites, this is a LOT of work, so its gonna take me a lot of time, but no time like the present
I’m gonna start this by saying: I HATE animating! Aseprite made this so much easier, but GOD this was difficult… I think I had 5 situations this time around where the problem was the littlest change in the world, and I just needed to go to bed. I made 3 different walk cycles, before giving up and figuring out how to do it for real, it was only a little difficult after that. I have unused hurt, death, and push animations, and need to implement a shorter attack and smooth some things out still (jumping while attacking cough ) Almost all of these 12 hours was fixing stupid little problems and changing little pixels, probably some of the worst time ive spent on this project yet… (but still really interesting) NEXT STEPS::: -fix walk so it looks sensible (drifting) -make jumping illegal hwilst attacking -add short attack -customized tile map ????? Thank you for reading goodbye I want to stop animating
Quick hurt animations Main thing I added was animations for death and injury. I first added knockback when hit. It just takes the player’s scale.x (what i use for flipping the sprite) and multiplies it by 200 to the player velocity, since the scale is either 1 or -1, it changes the direction the player is thrown (in the future i’d like to make the scale the enemies direction, not the players, as if the player is flipped in the wrong direction, it could have knockback in the wrong direction (very bad) Theres was already a variable to detect if the player was being hit that was used for testing, so I just implemented that to play the injury animations. i also detected if the players health was zero or below after being hit, and if so it would make the player play the death animation instead of the injury. I have currently unimplemented animations for a before-death injured player, so after they are hit for the last time they will stand for a bit before collapsing. NEXT STUFF: (hast beeneth narrowed list) -add enemy knockback (only when injured, lok wierd when die) -fix player knockback thank yoh forth coming to my TED talk
sprites! done some stuff, mostly just game planning (sadly didn’t get time for because notes but I got a lot done, mostly just some serious drawing. I finished some tiles for the first and second levels, and some tiles for the next three.
Mantling and fixes Hi. I have had a very long week. I spent a lot of time working on sprites, mostly for the game 3rd level (no spoilers, (but that’s pretty boring) so heres the interesting part. I’ve been focusing on revamping player movement to make it feel more interesting and fun, and this is a good start. Mantling! if you don’t know what this is, it’s what you do when you get out of a pool without a ladder or staircase, pretty much just “pulling yourself up” The player does this by using raycasts, I added three, but one is for something else. One of them detects a wall in front of the player, and one detects a wall above. The code uses these casts to detect if the player is up against a wall, and if there is no wall above the player, pretty much checking if there is a mantalable ledge. If there is, the code says “you can mantle” Another line says: if you can mantle, and you are not on the ground, and if the player clicked space (Jump), then mantle. The annoying part was animations. When the player begins mantling, the hitbox and player position is frozen in space, and position is snapped to the nearest block to line up the animation. the only thing that moves during the animation is the player sprite, which means at the end of the animation, when the players position is finally changed, the player sprite needs to snap back at the EXACT same time, or it looks bad, which was hard. The other annoying part was the camera snapping randomly, as it moves with the player and not the sprite. I fixed this by just temporarily turning on the cameras position smoothing while the mantle is happening and then turning it off when the player moves again.
Crouching! #2 in the player movement chronicles! Surprisingly, I also managed to create a whole new 5 animations! slide, crouch idle, crouch walk, and the sledge versions (not slide cause ya can’t sprint with sledge). I implemented all but the slide, which’ll take a long time, so I’m going to keep it off a bit. This was really straight forward to add, and for the first time in a long time, i had like only 1 problem . I really just had a piece of code that asks, “did ya click the crouch button?” and if so, it toggles crouch. IF (and only if!) the crouch is on (or “true”) the idle and walk animations are switched to their respective crouch variants, and the normal player hitbox is replaced by a shorter-er-est one. To bar the player from un-crouching in the midst of a tunnel, I added 2 new raycasts to the front and back of the players head facing up, these casts detect if there is a block above the player, and if either one of them detects anything, the player is unable to un-crouch until they are unshielded. Another quick thing I had to fix a bit was the raycasts detecting the player, which broke EVERYTHING so I just turned good ’ol collision mask/layer 20 into the super-cool (ALL-NEW !!) “player raycast collision!!!” which just only lets them interact with the floor and boxes, so yippee NEXT STEPeths!: -slide ): -enemy lunge -other player attacks (only hard attack right now which is bad)
MOVEMENT PART # (3) les go took me short time, it’s ten o’clock im tired, pretty simple stuff. If player is sprinting and the crouch button is pressed, the normal function is overridden and a slide is activated, this just sets the animation to slide and the X velocity of the player to a high number. There’s some other code for just general quality of life, like stopping if you hit a wall and keeping you from changing directions, but the REALLLY cool part is jumping. Like in real life (trust), while sliding the player will jump further, which permits some cool movement combinations, like vaulting over gaps and climbing 4 block walls. I have to work out stamina changes depending on jump strength and stamina decrease for vaulting, but the movement getting pretty fleshed out. P.S, after I took the video, I changed the sprint stamina decrease to be a consistent decrease instead of being choppy like in the video, it’ll be in the next log, but it was just quality of life. NEXTS STUFFS: -dash -enemy lunge -stamina from hoisting and slide-jump stamina increase Thanks for reading!
player movement is complete!! went on vacation, so fell behind a bit, but finally got this done. I spent a lot of time thinking on how to make player movement good, and then thought of my BOTW playthroughs, where you can either hold your attack and have a powerful slash, or click fast and hit three in a row. First addition!: Ground pounds were pretty interesting, all it does is forces the player down hard if they attack in the air, decreases stamina, and then hits the ground, I added a dust cloud that explodes when he hits the ground, which just plays the animation and then disappears. I had to do some fenagling with this because the code knows when to start the animation because the player will be ground pounding and on the ground, which starts the poof and then stops ground pounding, which also keeps the animation from playing multiple times. SECOND: Annoying stupid player attacks. Tried to finish this in a day, so I was working till 11:00 at night, but I got the animations done and what not. When the player hits/holds the attack button, it starts a stopwatch that increases, when the player releases the button, depending on the time on this timer, it will either play the first of 3 quick attacks or the big attack, which does more damage. If the quick attacks are chosen, the first one will play, three things happen when thats starts, 2 timers start, and player velocity increases to 500. at the end of the attack, there are three things can happen, the player can wait until the animation ends, they can attack again, or they can walk to reset the attack earlier than waiting, the first timer forces the player to wait to cancel the attack by walking, and the second one stops their velocity so they jolt forward. at the end of the animation, a function is played that: starts the reset timer for the attack A variable increases that sets the next attack to be the second or third in the sequence, instead of the first and a if statement that resets the variable to 0 if it gets to 3. Theres some other details for weird situations, like falling off the edge and ground pounding while attacking, or the variable not resetting weirdly. But all of that was like an hour. Thanks for reading: Play my game when it comes out so I have a reason to finihs Also I need a name for the game (please, I suck at naming) and go play Legend of Zelda (or Just Cause 3) (or research operation Just Cause) #USinvadinglatinamericaAGAINfornoreason P.S (I was gonking on being up till eleven, but I did like 3 hours of animating and coding in like 30 minutes while being food deprived and barely awake because deadlines = lock in, so if you need to lock in just don’t sleep ig ) also, I’m technically not done ‘cause ma boy needs a sawed off before I’m done here Yee Haw
Little enemy beginnings I haven’t actually finished anything yet, but I need to devlog anyways, but I have started to finish the second enemy, which is also the framework for more.
Enemy is complete: Chomper! Lot of work, but got it done. This is the, please avoid, very dangerous, you will die enemy. I haven’t balanced its health yet, and I’m not going to for a while, so it looks like an easy kill in the video. The weird quirks of this enemy are mostly in its charge attack, that rushes the player. It’s pretty easy to avoid, but once again i haven’t done attack balancing, so it may become harder later. The majority of the enemy works just like the lil guy, so idk read that devlog. But there is two major differences: LIST: gasp 1.!!!1! : idle stuff -really just a randomizer -if enemy is idling, starts a timer, and when it runs out of time, it does one of two things (using a randi() function) -if the outputs a 1, nothing happens, but if its a 2 it flips the enemy, thas all -the main reason for this is that since this enemy is so big, making it a tad more animated than the lil guy felt important to me, and also because the detection areas for the big guy are skewed towards the front, so him turning around makes the player sneaking up on him a little less common, it’s generally just for Q-O-l (slang btw) (only cool people understand) 2.!: dash -dear lord, why was hard so much D: -Wasn’t actually that difficult, I spent a lot of time trying stuff before realizing I just unleash my inner enginneer and do it step by step ’till it works, which it did. -first, theres three detection boxes, one for walking towards the player, one for the chomp, and one for dashing, if the player enters the dash-box, a timer will start -when the timer ends, the charge animation plays, which halfway through, activates a function too add velocity (actual charge part of charge) -If the enemy hits a wall, player, or box, it stops moving, but in the case of the player it plays a second animation (dash_hit) that looks like a chomp and kills the player if it hits them. Theres another If statement that sets velocity back to 0 when this happens also. OTHER CHANGES: -I removed the players health really, I like games that are one shot, because it’s subjectively more fun, I’ll make the player death a little more explosive if I have time. I’ll probably make them have three health but that’ll change when I do attack balancing -made the lil guys attack timer shorter, makes him more dangerous. NEXT TIME PLANS: -hopefully in one day (ima lock in rq) -gonna add a flying enemy, -literally just a tad fly, like 5x5 pixels, it’ll look at the player and fire acid that’ll kill you -i might change the death animation to be more BOOM (IYKWIM) :D -my goal is too complete the flying guy 100% tomorrow, but I got other stuff to do so we shall see -also it’ll be nice to not have to do major animating besides literally 6 pixels splaterring -if extra time, I’ll make a weird egg thing that turns into the fly THANKS FOR READING! as always (not really) go make some interesting, and uh learn something new every day please (P.S I made some changes after I took these videos so it still looks and feels kinda bad but not actually rn) ~Wilfred
Flying enemy is complete, in record time! wow, 8 hours for an enemy, how quick D: This was a challenge, but also really fun. This enemy is the flying one, which made it a little more difficult than just the copy and paste of old ones but still pretty cool. It works using a Navigation Agent, which is like Godot pathfinding. Fast forward three hours and a whole lot of troubleshooting, but that works. The enemy detects the player in the same fashion as the other enemies and then activates the nav-agent to being movement. It’ll follow the player through vents, passages and really anywhere. The fly has three main detection circles, the first one tells it to move towards the player, if the player enters the second one, it’ll freeze and stop moving, and if the player gets even closer, it’ll try to move away (by reversing the velocity var outputted by the nav-agent, iyc) the enemy’s one hit, acourse, but is really annoying to attack, (ill rework ground pounding to make this easier later). The enemy has a shooting attack, that is on a 6 second timer if it can see the player, otherwise it’s just on hold. its shots are pretty slow, so there easy to avoid, but in a crowded fight ya never know. The main quirk of this enemy is it has a really long forgetfulness timer, so even if it can’t see you, it’ll continue to follow for quite a long time, much longer than other enemies. Next:! -stationary, weird wall tentacle that shoots at you -egg spawner that hatches into 1 of three enemies (mystery ooh) -doors (ikr)
keypads, doors, and beginning of the first level. Im actually making a game! contains spoilers First of many… keypads were really difficult, every button, when clicked, multiplies the correct number by a multiplier, and adds it to a “code” variable. the multiplier is chosen based on what step of the code you’re on, (e.g, 1: 10000, 2: 1000, 3: 100, 4: 10, 5: 1), when you click the green button, it cross checks another variable with the one you typed, and if they’re the same, it sends the function to open the doors, and if not, everything resets. The other terminals and what not just open things when clicked on, so it’s just an easier version of the keypad.
quick devlog. I need to do this cause i got 10 hours, Im working on the level system and im so tired please why is htis so hard D: D: D: D: D: D: D: D: D: D: D: D:
Another devlog about levels. Started work on the second (this takes so long) I can’t say much for fear of spoilers, but just say this involves WAY to much code and sprites (I hate drawing so much)
quick stuff, nothing much Finished some updates, but I’m locked so don’t have time to write much
WORKING ON MY FINAL STRETCH I’m going to be locked in for the next few days, school starts, so I’ll have less time, but I got a boss fight and then bug fixing and sound effects, hears a sneak peak and one of the many things ive worked on. Also, I came up for a name. Looked up the universal laws for space and saw something about how “Countries of Origin are Liable for Damages caused by their space debris” and said “dang, thas dope” so now i have a name. In my next log ill have a longer devlog like a lite trailer, but the games pretty short, more like a showcase of learning. Thanks!
FINAL STRETCH time to lock in please oh no Im finishing the last level, no time to talk, but got like 4 things to finish THINGS: -level -boss fight -sounds -ending -bugs
SFX stuff, final thing before ending, just finishing sounds, really annoying though ngl. done soon, big update at end
Final Release (or close to it) Game will be out soon, I just gotta ship, but everythings done, I finished sounds, and the ending yesterday, like a 8 hour coding marathon, so i could get this out in time. PLEASE play it, it’s called Liable for Damages, I don’t know where I’ll post it yet, but It’ll probably be on Itch.io or just the game application file. It’s like 150,000 kilabytes, so it shouldn’t be too bad for any computer, hopefully (mines from like 2009 and it ran fine) P.S! Please, (if you do play), comment bugs, especially major things, EXCEPT: -Player dissapearing when opening menu in elevator (don’t try this, im not fixing it it’s funny) -Bugs on top of head, (js kill them) Anything else is bad and needs fix thanks. Also sorry no volume controls, I was crunching down to finish.
devlog for projects i forgot to add, really just time from learning to export godot games, very annoying um, fun fact, if you create a web game, change the file to index.html, or it literally WON’T WORK!!! Play my game (now!)
Started working on Liable for Damages 2.0 Devlog #1 Started working on better settings, mostly just things for volume, fonhts, and scrolling things. Whipped up some basic sprites in aseprite and took a day to implement them and figure out bugs, which were very annoying, mostly just related to button sizing. Had to mess around with Godot’s “containers”, for the first time, and it was quite bad, I’ve got some more work to do before I can get the sliders to work, but I’m close! Next stuff’s: -format sliders -start creating settings related to different busses -create saves for the sliders -implement button to change font -make font-changed labels for all maps -do bum ahh drivers ed instead of W Stardance I’ll hopefully release 2.0 within October, and I’mma try and devlog more! ~Wil
Final devlog frfr woah! Hello fellow stardancers, today I finsih game for good I’ve added 3 things, finishing the settings, updating fonts, and oooh secrets 1st SETTINGS ARE COMPLETED! -Made some more settings for volume, adjusted the busses and had to learn some new stuff -I had to map the variables from the sliders from -50, 50; to -62 to 8, which the busses can actually take (DON’T turn it up all the way) I also took the liberty to make save settings for each bus so you can save your ⭐ precious settings ⭐ -took me like an hour to figure out Godots stupid container settings, very annoying and bad (please fix) DOS FONTS -light work, just changed the font from my impossible-to-read 4x3 to an actually visible one el final… SEcrets! -don’t <- I mean it -enter the kunami code in the start menu, which is… up up down down left right left right b a start It does cool stuff Thanks for reading and supporting my game journey, hope you have a good school year, especially YOU , Franklin High in Iowa
Final log frfr This is just some boring stuff, just the time from me rereleasing
Ships:
I made something! This was my first time coding outside of Arduinos, and one of the biggest learning experiences of my life. There was stress, time crunches, and pain, but it all came down to the wire. The most challenging part was drawing, of course, I’m never going to do this again JUST because of the assets. Thanks for playing
This is a rerelease of my game, Liable for Damages, now in its second update. I did some major reworks of different game features, adding volume controls, some little secrets, and some bug fixes, really glad I could finish this fully and get all of this done! The Itch has Web, Windows, Linux, and Mac (D:) releases, but I’ve only tested for Web and Windows...
|
1793350542.608988
|
1793436942.608988
|
|
20015
|
Untitled by @wilson_brunner | Stardance
|
wilson_brunner
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled by @wilson_brunner | Stardance
|
1792907506.333675
|
1793771506.333675
|
|
6636
|
CHIPC-8 by @wilrakov | Stardance
|
wilrakov
|
0
|
1.1
|
0
|
[]
|
[{"post_id": 3371, "ts": "2026 [{"post_id": 3371, "ts": "2026-06-06T08:10:32Z", "hours": 1.0969, "text": "“Let’s strip away the layers of bloated complexity. Welcome to the CHIPC adventure.” You probably have an 8-core beast of a processor in your pocket and another one on your desk. But do you really know what happens inside the silicon at every single clock cycle? Driven by a pure love for bare-metal hardware and the KISS (Keep It Simple, Stupid) philosophy, I decided to build my own minimalist computer from scratch. Its beating heart? The legendary MOS 6502 (specifically, the Rockwell R65C02). No heavy OS, no high-level abstractions. Just pure logic, assembly, and raw silicon. The Backstory: A One-Year Hiatus To be completely honest, this project didn’t start yesterday. I actually designed and fully assembled the board a year ago. Back then, I was on fire: I spent hours mapping out the architecture, routing the PCB traces, and soldering the components. But right after assembling the board, the momentum dropped. The hardware went straight into a drawer, and the project stalled. I realized I had completed the visible part of the iceberg, but I completely missed the most important phase. A custom computer without firmware is just a beautiful, expensive paperweight. The real challenge starts now. The End Game: Running a Raycaster I’m digging the project out of its drawer to finally give it life. No more simulations. We are talking custom EEPROM flashing, memory mapping, and low-level bare-metal programming. But I’m not just aiming for a simple “Hello World” or a blinking LED. The ultimate, crazy goal of this project? Writing and running a 3D raycaster engine directly on this 8-bit machine. If you want to see how far we can push a 6502 processor with clever optimization and minimal resources, you’re in the right place. Here is what’s coming up in the next devlogs: EEPROM Programer: create a simple EEPROM programer based on a microcontroller. The First Boot: Writing the initial bootloader and basic I/O initialization. Memory Mapping: Figuring out how RAM, ROM, and peripherals will coexist cleanly on the bus. The Software Stack: Building the foundations to eventually support the raycaster graphics logic. If you love DIY electronics, retro-engineering, and optimization, stick around. **CHIPC 2.0 is officially alive. Stay tuned for the next post where we jump straight into the assembly code! **"}]...
|
Title: CHIPC-8 by @wilrakov | Stardance
Devlogs:
Title: CHIPC-8 by @wilrakov | Stardance
Devlogs:
“Let’s strip away the layers of bloated complexity. Welcome to the CHIPC adventure.” You probably have an 8-core beast of a processor in your pocket and another one on your desk. But do you really know what happens inside the silicon at every single clock cycle? Driven by a pure love for bare-metal hardware and the KISS (Keep It Simple, Stupid) philosophy, I decided to build my own minimalist computer from scratch. Its beating heart? The legendary MOS 6502 (specifically, the Rockwell R65C02). No heavy OS, no high-level abstractions. Just pure logic, assembly, and raw silicon. The Backstory: A One-Year Hiatus To be completely honest, this project didn’t start yesterday. I actually designed and fully assembled the board a year ago. Back then, I was on fire: I spent hours mapping out the architecture, routing the PCB traces, and soldering the components. But right after assembling the board, the momentum dropped. The hardware went straight into a drawer, and the project stalled. I realized I had completed the visible part of the iceberg, but I completely missed the most important phase. A custom computer without firmware is just a beautiful, expensive paperweight. The real challenge starts now. The End Game: Running a Raycaster I’m digging the project out of its drawer to finally give it life. No more simulations. We are talking custom EEPROM flashing, memory mapping, and low-level bare-metal programming. But I’m not just aiming for a simple “Hello World” or a blinking LED. The ultimate, crazy goal of this project? Writing and running a 3D raycaster engine directly on this 8-bit machine. If you want to see how far we can push a 6502 processor with clever optimization and minimal resources, you’re in the right place. Here is what’s coming up in the next devlogs: EEPROM Programer: create a simple EEPROM programer based on a microcontroller. The First Boot: Writing the initial bootloader and basic I/O initialization. Memory Mapping: Figuring out how RAM, ROM, and peripherals will coexist cleanly on the bus. The Software Stack: Building the foundations to eventually support the raycaster graphics logic. If you love DIY electronics, retro-engineering, and optimization, stick around. **CHIPC 2.0 is officially alive. Stay tuned for the next post where we jump straight into the assembly code! **...
|
1792950662.5785325
|
1793814662.5785325
|
|
9835
|
micro_os by @wilrakov | Stardance
|
wilrakov
|
1
|
15.76
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-17T18:33:06Z", "hours": 10.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "🚀 Shipped PicoOS! A minimalist, retro-styled OS for the Raspberry Pi Pico 2 (RP2350) written in MicroPython. Key elements: Combines MS-DOS simplicity with Unix-like control (CLI). True KISS/Suckless architecture: New commands are just modular scripts added to /bin . Implements custom piping ( | ) and redirections ( > , >> ) by elegantly overriding native print() and input() in RAM. 👉 Test it online with the Wokwi simulator! (Note: The simulator is a bit slow due to the RP2350 emulation, but it runs blazing fast on real hardware!)", "repo": "https://github.com/wilrak0v/PicoOS", "demo": "https://wokwi.com/projects/467100122244304897"}]...
|
[{"post_id": 17146, "ts": "202 [{"post_id": 17146, "ts": "2026-06-27T20:42:27Z", "hours": 2.1261, "text": "Abandoning LVGL After extensive testing aimed at achieving a smooth user experience, I unfortunately didn’t succeed. I believe the main issue stems from the fact that LVGL relies on significant abstraction layers designed to simplify and optimize UI creation. However, it isn’t optimized for a full-fledged graphical OS capable of handling video games. So, I decided to change my approach. WilUI After much thought, I decided to create my own graphics library: WilUI (yes, I’m a megalomaniac 😂). It uses double buffering in PSRAM (the ESP32’s external RAM, ranging from a few MBs to more, depending on the configuration). It then renders the screen using one or two internal RAM buffers; each of these buffers holds 48 lines of the display. Thanks to this, I managed to jump from under 10 fps to around 26 fps. I achieve this speed using full refreshes, so in theory, the actual performance should be smoother; I won’t be doing a full refresh every time, but rather partial refreshes on the areas that have changed. The library isn’t really fully underway yet—I’ve mostly handled the framebuffer management so far, while the UI components and other features still need to be built… But I wanted to say I’d created a UI library anyway 😅 The new TODO list dirty rects basic UI components text rendering basic window manager (SOWM) -> desktops + status bar + simple windows wilra0v, btw"}, {"post_id": 16201, "ts": "2026-06-26T10:15:22Z", "hours": 3.1658, "text": "A functional multitasking system!!! I coded the micro_os base, including FreeRTOS and LVGL to handle multitasking and provide a nice display. Everything went smoothly at first, adding LVGL and esp-idf to good tools for using a screen. The beginning of the problems Once the LVGL task was able to display text, I thought everything was ready to start the window manager and desktop for this OS. But… in the end, I had synchronization issues since the tasks run in parallel. Fortunately, I found the problem fairly quickly and was able to fix it. So, in the end, the base works without any problems. What’s already there For now, there’s almost nothing, just a status bar and 3 virtual workspaces with custom themes for the windows, etc. You can also switch between light and dark themes. What I’m going to do now I’m going to continue working on the basic display by dynamically showing and hiding the status bar. Next, I’d like to add a small dock like on macOS. Finally, I’d like to make the status bar dynamic so that it displays the name of the application in focus and also allows me to add and remove icons on the fly. Thanks for reading, wilrak0v, btw"}, {"post_id": 14494, "ts": "2026-06-23T17:06:54Z", "hours": 0.4694, "text": "🚀 Major Pivot: From PicoOS to micro_os I’m officially moving away from MicroPython for my OS development. While it was a great way to prototype, it’s time to get closer to the metal. Say hello to micro_os — a complete, lightweight, and graphical operating system built from scratch. To kick things off, I have just initialized the project entirely in C using the ESP-IDF framework. The goal is to build a fast, minimalist, and efficient system, focusing on the ESP32 first, with plans to port it to the Raspberry Pi Pico later on. Time to write some real firmware. Stay tuned for updates! 💻🛠️"}, {"post_id": 10799, "ts": "2026-06-17T18:29:35Z", "hours": 0.3575, "text": "Prepare to the first ship So I created the github repo, and I made a small test with wokwi simulator but it doesn´t work very well, I have to find a better way to run my OS on the Internet."}, {"post_id": 8041, "ts": "2026-06-13T12:33:20Z", "hours": 2.7528, "text": "Devlog PicoOS #3: Colors, SDK, and an Alternative C Kernel What is New Application Library (SDK) To stop rewriting core system code for every new feature, PicoOS now features a minimalist SDK. This application library standardizes how programs interface with the OS for rendering and input handling, making the codebase modular. ANSI Color Support PicoOS now supports standard ANSI color escape sequences. This brings color to the terminal interface without bloating the system, allowing for better visual hierarchy and cleaner error reporting. Technical Friction: Refactoring the ls Command Integrating older, hardcoded features into the new standardized SDK proved to be a real headache. The biggest friction happened while adapting the ls command to the new library. Originally, the file listing system was deeply intertwined with the main loop and bypassed any formal API. Forcing it to fit into the new application structure broke the output formatting and data piping. It took a lot of tedious refactoring to abstract the file system calls into the SDK so that ls could run as a standard, isolated application while maintaining its output format. Future Roadmap Text Editor: poe The next native tool will be poe (PicoOS Editor). This minimalist text editor will run directly on top of the SDK, allowing basic file editing on the go. Parallel Track: A C Version The MicroPython version is not going anywhere and will remain active. However, as a C developer who loves low-level programming, a parallel version of PicoOS written entirely in C will start soon. This alternative kernel will run closer to the metal, offering absolute memory control, optimal performance on the RP2350, and a pure bare-metal experience."}, {"post_id": 5699, "ts": "2026-06-09T16:16:34Z", "hours": 0.5569, "text": "Storage unlocked! Added SD card memory support for PicoOS today. The craziest part? It took me barely 20 minutes. The implementation was surprisingly straightforward, and the OS now effortlessly handles multiple SD cards simultaneously without any conflicts. Next on the roadmap: building a library to make custom command development easier, and adding a “Clippy”-style assistant right inside the terminal."}, {"post_id": 5004, "ts": "2026-06-08T17:31:43Z", "hours": 2.0094, "text": "PicoOS Devlog #2: Rounding Up Essential Commands Welcome to the second devlog! I’ve spent the last two days expanding the shell’s toolkit to make the environment much more usable. I am happy to announce that the core lineup of indispensable Unix utilities and I/O features is now complete! New Features & Commands Added echo : Prints text to the terminal—essential for verifying variables, scripting, and testing streams. clear : Clears the terminal screen (super satisfying when working over UART!). cat : Outputs the content of a file directly to the terminal. less : A lightweight pager to view content page by page. It dynamically handles input either directly from a specified file or piped on the fly from another command using the shell pipeline ( | ). help : Displays the description and usage of available commands. Stream Redirections are Live! I have successfully implemented basic I/O redirection operators into the shell parser: > : Redirects a command’s standard output to a file, overwriting its existing content. >> : Redirects standard output to a file, but appends the data to the end of the file instead of wiping it. How help works under the hood To keep things lightweight and modular, the help command doesn’t rely on a hardcoded dictionary. Instead, it dynamically parses an optional comment block placed right at the beginning of each command line inside /bin . Simple, effective, and completely decentralized. What’s next? With the fundamental CLI utilities and stream handling out of the way, I am shifting focus toward system architecture and usability: Memory & Storage Integration: Setting up proper management for SPI flash memories and mapping out the memory structure of the system. Developer Experience (DX): Building core Python modules to make writing custom apps for PicoOS as straightforward and clean as possible. Refactoring & Expansion: Polishing and simplifying the existing codebase while adding a few more handy utilities. Text Editing: Writing a lightweight, built-in text editor (a mini-clone of nano or vi) to modify files directly on the hardware. Community request! I feel like the most critical commands are now up and running, but a shell can always grow. What essential CLI utility or fun tool are you missing? If there is a specific command you’d love to see running natively on a Raspberry Pi Pico 2, drop it in the comments below! Until next time!"}, {"post_id": 4166, "ts": "2026-06-07T11:47:22Z", "hours": 3.5311, "text": "PicoOS Devlog #1 : Build the Shell Foundation Welcome to this very first devlog! After setting up the project description, it’s time to div into the actual code. Lately, I’ve been focusing on implementing the core shell environment. The goal is to build a familiar CLI experience by rewriting essential Unix/Linux commands from scratch, keeping them lightweight and stripped of bloat Anatomy of a Command In this OS, every command lives as a file or folder inside the /bin directory, with the exception of cd , which has to be built directly into the shell to modify the current working directory. Here is the standard structure for a basic command (e.g., hello ): def hello(args: list) -> int: print(\"Hello World\") return 0 Naming convention: The main function name must perfectly match the script’s filename. Arguments: Just like in standard C programs on Unix/Linux, args[0] always hold the name of the program itself, followed by the actual arguments. What’s Already Working I have successfully implemented a solid batch of core utilities: ls : Lists directory contents. Supported flags: -l (long format) and -a (show hidden files). cd : Changes the current working directory. mkdir : Creates one or multiple directories. touch : Creates one or multiple empty files. rm : Removes files or directories. Supported flag: -r (recursive). mv : Renames or moves files/directories. cp : Copies files/directories. Supported flag: -r (recursive). picofetch : A custom, lightweight system information tool (think neofetch / fastfetch) custom-tailored for PicoOS. What’s Next? The shell is alive, but there is still plenty of low-level work to do. My immediate milestones are: Expanding the toolbet: Implement the cat command along with a few other handy utilities. I/O Streams: Add basic shell redirection mechanisms, specifically output redirection ( > ) and piping ( | ). Hardware Storage: Write drivers to interface with and manage external SPI flash memories. The Endgame As a reminder, the final objective of this project is to build a functional mini-computer powered by a Raspberry Pi Pico 2. I’ll be handling networking, driving a graphical display purely over UART, and the ultimate test of fire: making DOOM run on it. Stay tuned for the next updates!"}, {"post_id": 3521, "ts": "2026-06-06T14:31:25Z", "hours": 0.93, "text": "🚀 Project: PicoOS (Retro CLI for RP2350) For this Stardance marathon, I’m building a minimalist, retro-styled operating system running entirely on the new Raspberry Pi Pico 2 (RP2350) using MicroPython! The goal is to blend the nostalgic command-line simplicity of MS-DOS with the modular design and philosophy of Unix/Linux. Everything is designed to be as close to the KISS (Keep It Simple, Stupid) and suckless principles as possible. What I’m shipping: A custom, fast interactive CLI shell over serial (USB/UART). A modular file system structure where commands are isolated scripts (like a real /bin directory). Direct low-level hardware poking (GPIO, PWM, I2C) right from the prompt. No bloated abstractions, just clean and simple code. Can’t wait to log hours on this and see how far I can push this little dual-core chip. Let’s build! 💻🔥"}]...
|
Title: micro_os by @wilrakov | Stardance
Devlogs: Title: micro_os by @wilrakov | Stardance
Devlogs:
🚀 Project: PicoOS (Retro CLI for RP2350) For this Stardance marathon, I’m building a minimalist, retro-styled operating system running entirely on the new Raspberry Pi Pico 2 (RP2350) using MicroPython! The goal is to blend the nostalgic command-line simplicity of MS-DOS with the modular design and philosophy of Unix/Linux. Everything is designed to be as close to the KISS (Keep It Simple, Stupid) and suckless principles as possible. What I’m shipping: A custom, fast interactive CLI shell over serial (USB/UART). A modular file system structure where commands are isolated scripts (like a real /bin directory). Direct low-level hardware poking (GPIO, PWM, I2C) right from the prompt. No bloated abstractions, just clean and simple code. Can’t wait to log hours on this and see how far I can push this little dual-core chip. Let’s build! 💻🔥
PicoOS Devlog #1 : Build the Shell Foundation Welcome to this very first devlog! After setting up the project description, it’s time to div into the actual code. Lately, I’ve been focusing on implementing the core shell environment. The goal is to build a familiar CLI experience by rewriting essential Unix/Linux commands from scratch, keeping them lightweight and stripped of bloat Anatomy of a Command In this OS, every command lives as a file or folder inside the /bin directory, with the exception of cd , which has to be built directly into the shell to modify the current working directory. Here is the standard structure for a basic command (e.g., hello ): def hello(args: list) -> int: print("Hello World") return 0 Naming convention: The main function name must perfectly match the script’s filename. Arguments: Just like in standard C programs on Unix/Linux, args[0] always hold the name of the program itself, followed by the actual arguments. What’s Already Working I have successfully implemented a solid batch of core utilities: ls : Lists directory contents. Supported flags: -l (long format) and -a (show hidden files). cd : Changes the current working directory. mkdir : Creates one or multiple directories. touch : Creates one or multiple empty files. rm : Removes files or directories. Supported flag: -r (recursive). mv : Renames or moves files/directories. cp : Copies files/directories. Supported flag: -r (recursive). picofetch : A custom, lightweight system information tool (think neofetch / fastfetch) custom-tailored for PicoOS. What’s Next? The shell is alive, but there is still plenty of low-level work to do. My immediate milestones are: Expanding the toolbet: Implement the cat command along with a few other handy utilities. I/O Streams: Add basic shell redirection mechanisms, specifically output redirection ( > ) and piping ( | ). Hardware Storage: Write drivers to interface with and manage external SPI flash memories. The Endgame As a reminder, the final objective of this project is to build a functional mini-computer powered by a Raspberry Pi Pico 2. I’ll be handling networking, driving a graphical display purely over UART, and the ultimate test of fire: making DOOM run on it. Stay tuned for the next updates!
PicoOS Devlog #2: Rounding Up Essential Commands Welcome to the second devlog! I’ve spent the last two days expanding the shell’s toolkit to make the environment much more usable. I am happy to announce that the core lineup of indispensable Unix utilities and I/O features is now complete! New Features & Commands Added echo : Prints text to the terminal—essential for verifying variables, scripting, and testing streams. clear : Clears the terminal screen (super satisfying when working over UART!). cat : Outputs the content of a file directly to the terminal. less : A lightweight pager to view content page by page. It dynamically handles input either directly from a specified file or piped on the fly from another command using the shell pipeline ( | ). help : Displays the description and usage of available commands. Stream Redirections are Live! I have successfully implemented basic I/O redirection operators into the shell parser: > : Redirects a command’s standard output to a file, overwriting its existing content. >> : Redirects standard output to a file, but appends the data to the end of the file instead of wiping it. How help works under the hood To keep things lightweight and modular, the help command doesn’t rely on a hardcoded dictionary. Instead, it dynamically parses an optional comment block placed right at the beginning of each command line inside /bin . Simple, effective, and completely decentralized. What’s next? With the fundamental CLI utilities and stream handling out of the way, I am shifting focus toward system architecture and usability: Memory & Storage Integration: Setting up proper management for SPI flash memories and mapping out the memory structure of the system. Developer Experience (DX): Building core Python modules to make writing custom apps for PicoOS as straightforward and clean as possible. Refactoring & Expansion: Polishing and simplifying the existing codebase while adding a few more handy utilities. Text Editing: Writing a lightweight, built-in text editor (a mini-clone of nano or vi) to modify files directly on the hardware. Community request! I feel like the most critical commands are now up and running, but a shell can always grow. What essential CLI utility or fun tool are you missing? If there is a specific command you’d love to see running natively on a Raspberry Pi Pico 2, drop it in the comments below! Until next time!
Storage unlocked! Added SD card memory support for PicoOS today. The craziest part? It took me barely 20 minutes. The implementation was surprisingly straightforward, and the OS now effortlessly handles multiple SD cards simultaneously without any conflicts. Next on the roadmap: building a library to make custom command development easier, and adding a “Clippy”-style assistant right inside the terminal.
Devlog PicoOS #3: Colors, SDK, and an Alternative C Kernel What is New Application Library (SDK) To stop rewriting core system code for every new feature, PicoOS now features a minimalist SDK. This application library standardizes how programs interface with the OS for rendering and input handling, making the codebase modular. ANSI Color Support PicoOS now supports standard ANSI color escape sequences. This brings color to the terminal interface without bloating the system, allowing for better visual hierarchy and cleaner error reporting. Technical Friction: Refactoring the ls Command Integrating older, hardcoded features into the new standardized SDK proved to be a real headache. The biggest friction happened while adapting the ls command to the new library. Originally, the file listing system was deeply intertwined with the main loop and bypassed any formal API. Forcing it to fit into the new application structure broke the output formatting and data piping. It took a lot of tedious refactoring to abstract the file system calls into the SDK so that ls could run as a standard, isolated application while maintaining its output format. Future Roadmap Text Editor: poe The next native tool will be poe (PicoOS Editor). This minimalist text editor will run directly on top of the SDK, allowing basic file editing on the go. Parallel Track: A C Version The MicroPython version is not going anywhere and will remain active. However, as a C developer who loves low-level programming, a parallel version of PicoOS written entirely in C will start soon. This alternative kernel will run closer to the metal, offering absolute memory control, optimal performance on the RP2350, and a pure bare-metal experience.
Prepare to the first ship So I created the github repo, and I made a small test with wokwi simulator but it doesn´t work very well, I have to find a better way to run my OS on the Internet.
🚀 Major Pivot: From PicoOS to micro_os I’m officially moving away from MicroPython for my OS development. While it was a great way to prototype, it’s time to get closer to the metal. Say hello to micro_os — a complete, lightweight, and graphical operating system built from scratch. To kick things off, I have just initialized the project entirely in C using the ESP-IDF framework. The goal is to build a fast, minimalist, and efficient system, focusing on the ESP32 first, with plans to port it to the Raspberry Pi Pico later on. Time to write some real firmware. Stay tuned for updates! 💻🛠️
A functional multitasking system!!! I coded the micro_os base, including FreeRTOS and LVGL to handle multitasking and provide a nice display. Everything went smoothly at first, adding LVGL and esp-idf to good tools for using a screen. The beginning of the problems Once the LVGL task was able to display text, I thought everything was ready to start the window manager and desktop for this OS. But… in the end, I had synchronization issues since the tasks run in parallel. Fortunately, I found the problem fairly quickly and was able to fix it. So, in the end, the base works without any problems. What’s already there For now, there’s almost nothing, just a status bar and 3 virtual workspaces with custom themes for the windows, etc. You can also switch between light and dark themes. What I’m going to do now I’m going to continue working on the basic display by dynamically showing and hiding the status bar. Next, I’d like to add a small dock like on macOS. Finally, I’d like to make the status bar dynamic so that it displays the name of the application in focus and also allows me to add and remove icons on the fly. Thanks for reading, wilrak0v, btw
Abandoning LVGL After extensive testing aimed at achieving a smooth user experience, I unfortunately didn’t succeed. I believe the main issue stems from the fact that LVGL relies on significant abstraction layers designed to simplify and optimize UI creation. However, it isn’t optimized for a full-fledged graphical OS capable of handling video games. So, I decided to change my approach. WilUI After much thought, I decided to create my own graphics library: WilUI (yes, I’m a megalomaniac 😂). It uses double buffering in PSRAM (the ESP32’s external RAM, ranging from a few MBs to more, depending on the configuration). It then renders the screen using one or two internal RAM buffers; each of these buffers holds 48 lines of the display. Thanks to this, I managed to jump from under 10 fps to around 26 fps. I achieve this speed using full refreshes, so in theory, the actual performance should be smoother; I won’t be doing a full refresh every time, but rather partial refreshes on the areas that have changed. The library isn’t really fully underway yet—I’ve mostly handled the framebuffer management so far, while the UI components and other features still need to be built… But I wanted to say I’d created a UI library anyway 😅 The new TODO list dirty rects basic UI components text rendering basic window manager (SOWM) -> desktops + status bar + simple windows wilra0v, btw
Ships:
🚀 Shipped PicoOS! A minimalist, retro-styled OS for the Raspberry Pi Pico 2 (RP2350) written in MicroPython. Key elements: Combines MS-DOS simplicity with Unix-like control (CLI). True KISS/Suckless architecture: New commands are just modular scripts added to /bin . Implements custom piping ( | ) and redirections ( > , >> ) by elegantly overriding native print() and input() in RAM. 👉 Test it online with the Wokwi simulator! (Note: The simulator is a bit slow due to the RP2350 emulation, but it runs blazing fast on real hardware!)...
|
1793314443.5000603
|
1793400843.5000603
|
|
18538
|
Rym by @wilrakov | Stardance
|
wilrakov
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Rym by @wilrakov | Stardance
|
1792918429.3153665
|
1793782429.3153665
|
|
22976
|
AstroOS by @wilrakov | Stardance
|
wilrakov
|
0
|
0.38
|
0
|
[]
|
[{"post_id": 12512, "ts": "202 [{"post_id": 12512, "ts": "2026-06-20T13:11:35Z", "hours": 0.3789, "text": "Devlog #1: Launching AstroOS – A Lightweight, Tiling WebOS Approach Hey everyone! For the past few days, I was having a hard time finding the motivation to code, feeling a bit stuck with my ideas. But looking at the incredible variety of WebOS projects built for Stardance inspired me to finally jump in and build my own. There are amazing, feature-rich web desktops out there, but for my specific setup and workflow, I wanted to explore a different architectural path. Running a minimalist setup on a Raspberry Pi 5 under dwm, I naturally lean toward simple, hardware-friendly, and lightweight tools. That is how AstroOS was born. The Vision & Goals My objective is to build a compact workspace centered around a minimalist philosophy: Offline-First (PWA): Designed to function entirely without an internet connection once loaded, keeping all processes local. Consistent Workspace: A unified environment that adapts cleanly whether I am working on a desktop PC or typing on an iPad on the go. Vanilla Foundations (KISS): Built using standard HTML, pure CSS (Grid/Flexbox), and Vanilla JavaScript to keep rendering overhead as low as possible. Tiling Window Management: While windows will start as floating elements, the long-term goal is to implement a native tiling system inspired by window managers like dwm. Modular Design: A simple virtual file system using IndexedDB to allow local app expanding down the road. First Steps (The 17-Minute Spark) To break the laziness, I forced myself to sit down and write the absolute baseline. In less than twenty minutes, the project officially started: Initialized the directory structure and the core files. Created a basic HTML with the base of the future style of windows. Time to build. Stay tuned!"}]...
|
Title: AstroOS by @wilrakov | Stardance
Devlogs:
Title: AstroOS by @wilrakov | Stardance
Devlogs:
Devlog #1: Launching AstroOS – A Lightweight, Tiling WebOS Approach Hey everyone! For the past few days, I was having a hard time finding the motivation to code, feeling a bit stuck with my ideas. But looking at the incredible variety of WebOS projects built for Stardance inspired me to finally jump in and build my own. There are amazing, feature-rich web desktops out there, but for my specific setup and workflow, I wanted to explore a different architectural path. Running a minimalist setup on a Raspberry Pi 5 under dwm, I naturally lean toward simple, hardware-friendly, and lightweight tools. That is how AstroOS was born. The Vision & Goals My objective is to build a compact workspace centered around a minimalist philosophy: Offline-First (PWA): Designed to function entirely without an internet connection once loaded, keeping all processes local. Consistent Workspace: A unified environment that adapts cleanly whether I am working on a desktop PC or typing on an iPad on the go. Vanilla Foundations (KISS): Built using standard HTML, pure CSS (Grid/Flexbox), and Vanilla JavaScript to keep rendering overhead as low as possible. Tiling Window Management: While windows will start as floating elements, the long-term goal is to implement a native tiling system inspired by window managers like dwm. Modular Design: A simple virtual file system using IndexedDB to allow local app expanding down the road. First Steps (The 17-Minute Spark) To break the laziness, I forced myself to sit down and write the absolute baseline. In less than twenty minutes, the project officially started: Initialized the directory structure and the core files. Created a basic HTML with the base of the future style of windows. Time to build. Stay tuned!...
|
1792716813.6514747
|
1793321613.6514747
|
|
28678
|
Micro_OS V2 by @wilrakov | Stardance
|
wilrakov
|
0
|
4.92
|
0
|
[]
|
[{"post_id": 19463, "ts": "202 [{"post_id": 19463, "ts": "2026-06-30T19:54:05Z", "hours": 4.9239, "text": "First day of coding Today, I started this new project in C++ with PlatformIO to get more comfortable with it. For now, it’s not really an OS, but we already have a Renderer class to handle rendering in an optimized way. The goal The goal is to create a complete desktop OS for ESP32 and various screens. Using an ESP32 allows network access, which is important on a computer in 2026. I’d also like to run small video games on this OS, which I think would be quite an achievement. I’m not trying to replace Windows or Linux XD, I just want to code a small retro system and have fun with it. Rendering So, this is what I worked on today, and I added a layer to the LovyanGFX library to have something optimized from the start. When an object is displayed using the Renderer class, I save the intention to display a specific object with specific parameters in a list. Each object has a rectangle to detect collisions with other objects and therefore redraw the object or not. When Renderer::render() is called, I check the areas to be displayed and only display what is necessary, which avoids flickering. This method has several advantages, the main one being low RAM usage, which is crucial on a microcontroller like an ESP32. The supported graphics are: Solid and non-solid rectangles Solid and non-solid rectangles with rounded corners Lines Circles Text Bitmap images or images without scaling In my opinion, these are the essential elements for creating a good UI and complete video games (yes, really). In the videos, you can see the rendering of Mario (the NES version), even though there’s an issue with the colors, it’s definitely him. He’s present as a bitmap image in a C array. Touchscreen This is the second thing I implemented. The calibration isn’t perfect yet, but it’s already pretty good. The touchscreen and stylus will allow for easy navigation of the OS without needing other peripherals, although I do plan to add joystick support to control the future mouse pointer. What’s next? Well, I’m not entirely sure. I’m thinking of creating UI components now, with the goal of building a window manager later on. But before that, I’ll probably code the foundations of the module that will handle inputs, to ensure an instant transition between touch and joystick. Anyway, I’ll keep doing a lot of graphics work! Thanks so much for reading, wilrakov, btw"}]...
|
Title: Micro_OS V2 by @wilrakov | Stardance
Devlo Title: Micro_OS V2 by @wilrakov | Stardance
Devlogs:
First day of coding Today, I started this new project in C++ with PlatformIO to get more comfortable with it. For now, it’s not really an OS, but we already have a Renderer class to handle rendering in an optimized way. The goal The goal is to create a complete desktop OS for ESP32 and various screens. Using an ESP32 allows network access, which is important on a computer in 2026. I’d also like to run small video games on this OS, which I think would be quite an achievement. I’m not trying to replace Windows or Linux XD, I just want to code a small retro system and have fun with it. Rendering So, this is what I worked on today, and I added a layer to the LovyanGFX library to have something optimized from the start. When an object is displayed using the Renderer class, I save the intention to display a specific object with specific parameters in a list. Each object has a rectangle to detect collisions with other objects and therefore redraw the object or not. When Renderer::render() is called, I check the areas to be displayed and only display what is necessary, which avoids flickering. This method has several advantages, the main one being low RAM usage, which is crucial on a microcontroller like an ESP32. The supported graphics are: Solid and non-solid rectangles Solid and non-solid rectangles with rounded corners Lines Circles Text Bitmap images or images without scaling In my opinion, these are the essential elements for creating a good UI and complete video games (yes, really). In the videos, you can see the rendering of Mario (the NES version), even though there’s an issue with the colors, it’s definitely him. He’s present as a bitmap image in a C array. Touchscreen This is the second thing I implemented. The calibration isn’t perfect yet, but it’s already pretty good. The touchscreen and stylus will allow for easy navigation of the OS without needing other peripherals, although I do plan to add joystick support to control the future mouse pointer. What’s next? Well, I’m not entirely sure. I’m thinking of creating UI components now, with the goal of building a window manager later on. But before that, I’ll probably code the foundations of the module that will handle inputs, to ensure an instant transition between touch and joystick. Anyway, I’ll keep doing a lot of graphics work! Thanks so much for reading, wilrakov, btw...
|
1792914477.1857197
|
1793778477.1857197
|
|
57569
|
nano_code by @wilrakov | Stardance
|
wilrakov
|
1
|
17.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-23T13:06:28Z", "hours": 17.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I did a small bytecode in pure x64 assembly. I am proud of it since it was my first assembly project. It only works on Linux, and you should know a little about asm to test it. I mean, the programming language for my bytecode is really close to assembly. It’s complex to test, I know, but I hope you’ll find out! Thanks a lot for all the event!!!", "repo": "https://github.com/wilrak0v/nano_code", "demo": "https://github.com/wilrak0v/nano_code/releases/tag/Stardance"}]...
|
[{"post_id": 72653, "ts": "202 [{"post_id": 72653, "ts": "2026-09-23T12:56:37Z", "hours": 2.2403, "text": "I think I am done with this project… I hope it´s fine to ship it."}, {"post_id": 69148, "ts": "2026-09-16T14:06:41Z", "hours": 3.0778, "text": "Okay so I finished the bytecode, all is working great! I started a language for it which is closer to assembly. I do it with customASM. On the image you can see the Fibonacci algorithm"}, {"post_id": 66681, "ts": "2026-09-12T15:34:32Z", "hours": 1.4653, "text": "Okay so I added memory operations from 8 bits to 32 bits. I also did the syscall system but for now I just have one syscall which is print (the same as the write syscall on linux)."}, {"post_id": 66448, "ts": "2026-09-12T08:56:33Z", "hours": 2.4089, "text": "All operations on registers are done. It´s faster than JVM for 100 numbers of Fibonacci. So now I just have to make the memory operations and the syscall system. Then the core will be done."}, {"post_id": 64895, "ts": "2026-09-09T16:31:19Z", "hours": 3.5192, "text": "Last three days I added a lot of instructions. We can perform arithmetic expressions and jump with and without conditions. So I think my VM is turing complete isn´t it? Today I did a fibonacci test and I beat the JVM."}, {"post_id": 60307, "ts": "2026-09-02T16:15:17Z", "hours": 4.63, "text": "First devlog Last days I worked on a small and simple project called nano_code. It´s a bytecode written in pure assembly and designed to be fast. I hope I can beat the JVM on modern PC. So what did I do? Actually I did the hardest part of this project by making the loop (fetch-decode-execute). Now I just need to implement the instructions one by one. Oh and I don´t load bytecode from a file for now so I have to implement it later. I already implemented movr and movi (r = register and i = immediate), and I am currently making the arithmetic operations like add, sub, mul, div, and mod which is modulo of course. All of these instructions have two version : one with a register and an immediate value and the other one with two register as the operands. Of course in the future I will need to make a small assembler to write easily code for that VM. Thanks for reading, see you soon."}]...
|
Title: nano_code by @wilrakov | Stardance
Devlogs Title: nano_code by @wilrakov | Stardance
Devlogs:
First devlog Last days I worked on a small and simple project called nano_code. It´s a bytecode written in pure assembly and designed to be fast. I hope I can beat the JVM on modern PC. So what did I do? Actually I did the hardest part of this project by making the loop (fetch-decode-execute). Now I just need to implement the instructions one by one. Oh and I don´t load bytecode from a file for now so I have to implement it later. I already implemented movr and movi (r = register and i = immediate), and I am currently making the arithmetic operations like add, sub, mul, div, and mod which is modulo of course. All of these instructions have two version : one with a register and an immediate value and the other one with two register as the operands. Of course in the future I will need to make a small assembler to write easily code for that VM. Thanks for reading, see you soon.
Last three days I added a lot of instructions. We can perform arithmetic expressions and jump with and without conditions. So I think my VM is turing complete isn´t it? Today I did a fibonacci test and I beat the JVM.
All operations on registers are done. It´s faster than JVM for 100 numbers of Fibonacci. So now I just have to make the memory operations and the syscall system. Then the core will be done.
Okay so I added memory operations from 8 bits to 32 bits. I also did the syscall system but for now I just have one syscall which is print (the same as the write syscall on linux).
Okay so I finished the bytecode, all is working great! I started a language for it which is closer to assembly. I do it with customASM. On the image you can see the Fibonacci algorithm
I think I am done with this project… I hope it´s fine to ship it.
Ships:
I did a small bytecode in pure x64 assembly. I am proud of it since it was my first assembly project. It only works on Linux, and you should know a little about asm to test it. I mean, the programming language for my bytecode is really close to assembly. It’s complex to test, I know, but I hope you’ll find out! Thanks a lot for all the event!!!...
|
1793350179.4846725
|
1793436579.4846725
|
|
68482
|
Picogame by @wilrakov | Stardance
|
wilrakov
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Picogame by @wilrakov | Stardance
|
1793123285.43624
|
1793728085.43624
|
|
69453
|
DevPad by @wilrakov | Stardance
|
wilrakov
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: DevPad by @wilrakov | Stardance
|
1792842640.4170513
|
1793447440.4170513
|
|
41517
|
Jar designer web by @wilmerBailon | Stardance
|
wilmerBailon
|
1
|
11.74
|
142
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-16T08:53:02Z", "hours": 8.0, "multiplier": 16.81, "payout": 142, "blessing": "neutral", "text": "Hello there! This is my first Hack Club proyect. I am proud of been part of the community. I usually do small proyects just for entretainment in my free time and I found this initiative incredible. I am open for any suggestion and new ideas. The proyect is a jar designer web application (ClayForge). My aim was to generate parametrized vase models (.stl) through an instant visual input in 2D that I could print in my 3D printer. The most difficult part was adding the spins only to the external surface, at first it changed all the design. Thanks for your time, I hope you like it.", "repo": "https://github.com/w7714218-sys/ClayForge-Jar-project", "demo": "https://clayforge.dino.icu/"}]...
|
[{"post_id": 64995, "ts": "202 [{"post_id": 64995, "ts": "2026-09-09T19:23:46Z", "hours": 2.7364, "text": "Today I worked on ClayForge based on the feedback I received.I made several changes to simplify the project and make the codebase cleaner and easier to understand. I also reorganized some of the JavaScript, cleaned up the CSS and removed some unnecessary files and configuration.I updated the README as well so it is more concise and focused on the project itself.Overall, today’s work was mainly about taking the feedback into account and cleaning up the project without changing its main functionality.Hope it gets accepted.=)"}, {"post_id": 64809, "ts": "2026-09-09T14:17:06Z", "hours": 1.0067, "text": "I took the feedback into account and spent some time reworking the styling and parts of the logic. I changed the layout, spacing and visual details. I’ll keep refining it as I continue working on it.Hope it gets accepted =)."}, {"post_id": 41587, "ts": "2026-08-05T21:41:17Z", "hours": 0.2703, "text": "It worked!!! :)"}, {"post_id": 41353, "ts": "2026-08-05T14:43:00Z", "hours": 0.56, "text": "I added a spiral effect to the vase generator and spent some time testing different shapes and parameters. The results are looking pretty interesting so far. Next step is to print one on my 3D printer and see how it turns out in real life. Hopefully everything works as expected! :)"}, {"post_id": 41307, "ts": "2026-08-05T13:34:34Z", "hours": 5.4686, "text": "Spent a good amount of time working on ClayForge these days. The project is starting to feel much more solid and usable. I improved the overall interface, cleaned up the design panel, added more controls and kept refining the vase editor.I had some problems with the initial structure of the project but I was able to solve them with a little help of copilot. There’s still plenty to do, but it’s coming together nicely and feels much closer to the tool I have in mind. Looking forward to building on this in the next sessions."}, {"post_id": 40166, "ts": "2026-08-03T15:54:30Z", "hours": 1.7781, "text": "Today I spent some time improving ClayForge and making the project feel more like a real application. I reorganized the code into different files to keep everything cleaner and easier to maintain. I also finished the profile editor on the left side of the screen. It now shows the grid, the vase profile and the control points. The best part is that the control points are now interactive. I can drag them with the mouse and the 3D vase updates instantly, which makes it much easier to experiment with different shapes. Most of today was spent cleaning up the code and fixing small issues after splitting everything into modules, but now the project has a much better foundation for adding more features. Next, I want to add wall thickness, smoother curves and STL export so the vases can be 3D printed."}, {"post_id": 39571, "ts": "2026-08-02T17:03:37Z", "hours": 0.345, "text": "Hello there!!, this is my first project on the community which seems to be a really engaging initiative. Today I started the project and set up the development environment. I created the initial project structure, installed Node.js, and configured npm together with Vite. After that, I added Three.js and built a simple interactive 3D scene with a cube to make sure everything was working as expected. For the next stage of the project, I want to replace the cube with a procedurally generated vase and start working on the main object of the application."}]...
|
Title: Jar designer web by @wilmerBailon | Stardan Title: Jar designer web by @wilmerBailon | Stardance
Devlogs:
Hello there!!, this is my first project on the community which seems to be a really engaging initiative. Today I started the project and set up the development environment. I created the initial project structure, installed Node.js, and configured npm together with Vite. After that, I added Three.js and built a simple interactive 3D scene with a cube to make sure everything was working as expected. For the next stage of the project, I want to replace the cube with a procedurally generated vase and start working on the main object of the application.
Today I spent some time improving ClayForge and making the project feel more like a real application. I reorganized the code into different files to keep everything cleaner and easier to maintain. I also finished the profile editor on the left side of the screen. It now shows the grid, the vase profile and the control points. The best part is that the control points are now interactive. I can drag them with the mouse and the 3D vase updates instantly, which makes it much easier to experiment with different shapes. Most of today was spent cleaning up the code and fixing small issues after splitting everything into modules, but now the project has a much better foundation for adding more features. Next, I want to add wall thickness, smoother curves and STL export so the vases can be 3D printed.
Spent a good amount of time working on ClayForge these days. The project is starting to feel much more solid and usable. I improved the overall interface, cleaned up the design panel, added more controls and kept refining the vase editor.I had some problems with the initial structure of the project but I was able to solve them with a little help of copilot. There’s still plenty to do, but it’s coming together nicely and feels much closer to the tool I have in mind. Looking forward to building on this in the next sessions.
I added a spiral effect to the vase generator and spent some time testing different shapes and parameters. The results are looking pretty interesting so far. Next step is to print one on my 3D printer and see how it turns out in real life. Hopefully everything works as expected! :)
It worked!!! :)
I took the feedback into account and spent some time reworking the styling and parts of the logic. I changed the layout, spacing and visual details. I’ll keep refining it as I continue working on it.Hope it gets accepted =).
Today I worked on ClayForge based on the feedback I received.I made several changes to simplify the project and make the codebase cleaner and easier to understand. I also reorganized some of the JavaScript, cleaned up the CSS and removed some unnecessary files and configuration.I updated the README as well so it is more concise and focused on the project itself.Overall, today’s work was mainly about taking the feedback into account and cleaning up the project without changing its main functionality.Hope it gets accepted.=)
Ships:
Hello there! This is my first Hack Club proyect. I am proud of been part of the community. I usually do small proyects just for entretainment in my free time and I found this initiative incredible. I am open for any suggestion and new ideas. The proyect is a jar designer web application (ClayForge). My aim was to generate parametrized vase models (.stl) through an instant visual input in 2D that I could print in my 3D printer. The most difficult part was adding the spins only to the external surface, at first it changed all the design. Thanks for your time, I hope you like it....
|
1792878538.4503243
|
1793742538.4503243
|
|
51798
|
WebOS by @wilmerBailon | Stardance
|
wilmerBailon
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: WebOS by @wilmerBailon | Stardance
|
1792925433.3266292
|
1793789433.3266292
|
|
12467
|
High Powered Rocket by @willyW | Stardance
|
willyW
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: High Powered Rocket by @willyW | Stardance
|
1792655445.5238717
|
1793260245.5238717
|
|
15501
|
My first slack bot! by @willw1034 | Stardance
|
willw1034
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @willw1034 | Stardan Title: My first slack bot! by @willw1034 | Stardance...
|
1792695273.5663083
|
1793300073.5663083
|
|
15963
|
My very own WebOS by @willw1034 | Stardance
|
willw1034
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My very own WebOS by @willw1034 | Stardance
|
1793242569.5394554
|
1793847369.5394554
|
|
7524
|
My first slack bot! by @willsbuilds | Stardance
|
willsbuilds
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @willsbuilds | Stard Title: My first slack bot! by @willsbuilds | Stardance...
|
1792666417.9417999
|
1793271217.9417999
|
|
18018
|
Punctuality Punisher by @willsbuilds | Stardance
|
willsbuilds
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Punctuality Punisher by @willsbuilds | Star Title: Punctuality Punisher by @willsbuilds | Stardance...
|
1793318204.4963863
|
1793923004.4963863
|
|
24074
|
Jared Isaacman Tracker by @willsbuilds | Stardance
|
willsbuilds
|
0
|
2.55
|
0
|
[]
|
[{"post_id": 13944, "ts": "202 [{"post_id": 13944, "ts": "2026-06-22T21:48:59Z", "hours": 2.5456, "text": "It’s done! I started and finished it today :) The backend is in Node JS, and the frontend is in HTML. I used ai for a lot of debugging and to understand the language because I’d never used JS or HTML before. It’s super simple because I don’t know anything about website creation. This is actually my first website! Not to brag or anything. You can visit it at https://whereisjaredisaacmanrightnowatthis-moment.hackclub.com"}]...
|
Title: Jared Isaacman Tracker by @willsbuilds | St Title: Jared Isaacman Tracker by @willsbuilds | Stardance
Devlogs:
It’s done! I started and finished it today :) The backend is in Node JS, and the frontend is in HTML. I used ai for a lot of debugging and to understand the language because I’d never used JS or HTML before. It’s super simple because I don’t know anything about website creation. This is actually my first website! Not to brag or anything. You can visit it at https://whereisjaredisaacmanrightnowatthis-moment.hackclub.com...
|
1792770890.4313557
|
1793375690.4313557
|
|
24754
|
Untitled by @willsbuilds | Stardance
|
willsbuilds
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled by @willsbuilds | Stardance
|
1792691305.6805515
|
1793296105.6805515
|
|
24755
|
Untitled by @willsbuilds | Stardance
|
willsbuilds
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled by @willsbuilds | Stardance
|
1793195258.109944
|
1793800058.109944
|
|
24756
|
Untitled by @willsbuilds | Stardance
|
willsbuilds
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled by @willsbuilds | Stardance
|
1792712963.624212
|
1793317763.624212
|
|
17429
|
My very own WebOS by @willowmovit | Stardance
|
willowmovit
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My very own WebOS by @willowmovit | Stardan Title: My very own WebOS by @willowmovit | Stardance...
|
1793264009.7316039
|
1793868809.7316039
|
|
65155
|
snowglobe by @willowmovit | Stardance
|
willowmovit
|
1
|
5.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-26T17:05:25Z", "hours": 5.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "It’s a website, it was really hard because I tried to add a feature that didn’t end up working, so I had to start over.", "repo": "", "demo": ""}]...
|
[{"post_id": 72744, "ts": "202 [{"post_id": 72744, "ts": "2026-09-23T17:09:59Z", "hours": 5.1292, "text": "I got it working finally"}]...
|
Title: snowglobe by @willowmovit | Stardance
Devl Title: snowglobe by @willowmovit | Stardance
Devlogs:
I got it working finally
Ships:
It’s a website, it was really hard because I tried to add a feature that didn’t end up working, so I had to start over....
|
1793213706.9037101
|
1793300106.9037101
|
|
66107
|
Cassette beasts wiki by @willowmovit | Stardance
|
willowmovit
|
0
|
1.55
|
0
|
[]
|
[{"post_id": 74122, "ts": "202 [{"post_id": 74122, "ts": "2026-09-26T18:32:11Z", "hours": 1.5536, "text": "I got it to be editable!"}]...
|
Title: Cassette beasts wiki by @willowmovit | Star Title: Cassette beasts wiki by @willowmovit | Stardance
Devlogs:
I got it to be editable!...
|
1793094693.6088083
|
1793699493.6088083
|
|
16766
|
My first slack bot! by @willowbellows | Stardance
|
willowbellows
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @willowbellows | Sta Title: My first slack bot! by @willowbellows | Stardance...
|
1793300172.0337822
|
1793904972.0337822
|