|
38039
|
tạo môt AI by @buianhnhat | Stardance
|
buianhnhat
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: tạo môt AI by @buianhnhat | Stardance
|
1792515107.778375
|
1793119907.778375
|
|
7258
|
tyse by @tawhidulh1 | Stardance
|
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: tyse by @tawhidulh1 | Stardance
|
1792684398.0886316
|
1793289198.0886316
|
|
10440
|
tyse by @Tawhidulh | Stardance
|
Tawhidulh
|
1
|
18.0
|
135
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-08T05:40:51Z", "hours": 18.0, "multiplier": 7.46, "payout": 135, "blessing": "neutral", "text": "I created a meta search-engine. Initially I wanted it to have a full fledged crawler, but I realized I needed lots of resources (money) t make it actually usable. Instead, I decided to transition to a searxng wrapper. I am proud that I was able to make the backend work as I had very little knowledge of spring and spring-boot.", "repo": "https://github.com/Tawhidulh1/tyse", "demo": "https://tyse.tea.hackclub.app/"}]...
|
[{"post_id": 64044, "ts": "202 [{"post_id": 64044, "ts": "2026-09-08T05:30:33Z", "hours": 6.3647, "text": "The basic search engine is complete, I added css and made it look nicer. Still need to polish the backend and add more features."}, {"post_id": 38542, "ts": "2026-08-01T00:28:03Z", "hours": 6.6828, "text": "The backend for the search engine is mostly done, I need to fix some issues with elasticsearch database and make it look good. The current index is being fetched and saved into elasticsearch through searxng as I do not have the resources to run the crawler/fetch the indexes myself, though I did add a prototype crawler. Currently this is how it works: User searches a query -> find the best results with the given query through elasticsearch, if it does not exist it fallbacks to searxng from port 8888 -> then display the result to user. This is so that I could save the search results as continue to use it, I plan on adding some sort of timer or something to update the index for outdated searches. As seen in the video, there are clearly some issues with overlapping searches."}, {"post_id": 14326, "ts": "2026-06-23T12:42:05Z", "hours": 5.0281, "text": "I added a single threaded basic web crawler for my search engine. I have yet to implement a queue system to act as the Url Frontier, instead it is a single List of String(s) to represent Url’s. This was my first time making a web crawler as well as my first time working with JSoup."}]...
|
Title: tyse by @Tawhidulh | Stardance
Devlogs:
I Title: tyse by @Tawhidulh | Stardance
Devlogs:
I added a single threaded basic web crawler for my search engine. I have yet to implement a queue system to act as the Url Frontier, instead it is a single List of String(s) to represent Url’s. This was my first time making a web crawler as well as my first time working with JSoup.
The backend for the search engine is mostly done, I need to fix some issues with elasticsearch database and make it look good. The current index is being fetched and saved into elasticsearch through searxng as I do not have the resources to run the crawler/fetch the indexes myself, though I did add a prototype crawler. Currently this is how it works: User searches a query -> find the best results with the given query through elasticsearch, if it does not exist it fallbacks to searxng from port 8888 -> then display the result to user. This is so that I could save the search results as continue to use it, I plan on adding some sort of timer or something to update the index for outdated searches. As seen in the video, there are clearly some issues with overlapping searches.
The basic search engine is complete, I added css and made it look nicer. Still need to polish the backend and add more features.
Ships:
I created a meta search-engine. Initially I wanted it to have a full fledged crawler, but I realized I needed lots of resources (money) t make it actually usable. Instead, I decided to transition to a searxng wrapper. I am proud that I was able to make the backend work as I had very little knowledge of spring and spring-boot....
|
1793004683.4630544
|
1793091083.4630544
|
|
15889
|
typing speed test by @manuraj | Stardance
|
manuraj
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: typing speed test by @manuraj | Stardance
|
1792547245.9018736
|
1793152045.9018736
|
|
71226
|
typiboard by @Shaww | Stardance
|
Shaww
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: typiboard by @Shaww | Stardance
|
1792874829.0798864
|
1793479629.0798864
|
|
18526
|
typecoder by @tosterabgx | Stardance
|
tosterabgx
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: typecoder by @tosterabgx | Stardance
|
1792946910.4764235
|
1793810910.4764235
|
|
4335
|
typebot-k8s by @dv | Stardance
|
dv
|
0
|
1.63
|
0
|
[]
|
[{"post_id": 2355, "ts": "2026 [{"post_id": 2355, "ts": "2026-06-04T20:05:21Z", "hours": 0.9844, "text": "auth works. but the stuff after that is still cooked"}, {"post_id": 673, "ts": "2026-06-02T06:58:23Z", "hours": 0.6486, "text": "trying to get it to work!!"}]...
|
Title: typebot-k8s by @dv | Stardance
Devlogs:
tr Title: typebot-k8s by @dv | Stardance
Devlogs:
trying to get it to work!!
auth works. but the stuff after that is still cooked...
|
1792514876.692764
|
1793119676.692764
|
|
12202
|
type password for oppening an website by @eshanfav type password for oppening an website by @eshanfavu67 | Stardance...
|
eshanfavu67
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: type password for oppening an website by @e Title: type password for oppening an website by @eshanfavu67 | Stardance...
|
1792554828.2271008
|
1793159628.2271008
|
|
55206
|
tyler-n-portfolio by @tyleruploads | Stardance
|
tyleruploads
|
1
|
4.0
|
28
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-31T20:36:23Z", "hours": 4.0, "multiplier": 6.73, "payout": 28, "blessing": "neutral", "text": "I made my very own personal portfolio website to showcase my life and skills. It features 4 sections: a home section, which users see once they open the website and gives them a brief overview of me; an about section, which contains my mini biography; a projects section, which contains many of my best projects in a grid layout; and a contact page, which lets users either directly contact me or view my professional services. Before I started this project, I was already comparing myself to awesome personal portfolio sites made by Hack Club members. I was worried that if one single thing didn’t look right, or even if my very first commit wasn’t in a viable state, it would make my project terrible and infinitely worse than other similar projects. After I decided I would do the project, I looked through the guide for the basic personal portfolio mission on Stardance, realized it didn’t help me at all, and eventually detached from the mission. I researched exactly what a personal portfolio website is, and planned out how my site would look. Instead of trying to make every single thing perfect as I added it, I made sections look better after they already had an archetype. I am proud that I was able to go from the state I described at the start of this paragraph to an awesome personal portfolio website!", "repo": "https://github.com/tyleruploads/tyler-n-portfolio", "demo": "https://tyler.is-a.dev"}]...
|
[{"post_id": 57615, "ts": "202 [{"post_id": 57615, "ts": "2026-08-29T20:31:08Z", "hours": 0.9636, "text": "Today, I completed the Projects section of my personal portfolio website! It features a grid of my best projects, each with its title doubling as its link, a description, and tags that show its technical stack. I kept accidentally pasting the project cards outside of their div, which caused some styling issues that took me a while to figure out. Take a look and tell me which project you like best!"}, {"post_id": 56989, "ts": "2026-08-29T01:34:51Z", "hours": 0.7147, "text": "I recently just stepped up the game of my About page! Now, it looks a lot more professional, has my logo in it, and has a nice button at the bottom to get in contact with me!"}, {"post_id": 56910, "ts": "2026-08-28T22:31:31Z", "hours": 0.4717, "text": "Today has been a great day for my personal portfolio so far. I got a nice domain for my portfolio, tyler.is-a.dev. I made the pull request last night, but I made it work today, after it was accepted. I also made a basic About section in my portfolio, focusing on my timeline of coding and some other hobbies I do. I plan to expand on my About section and possibly start the Projects section today. I may also write an X post about my portfolio in the next couple of days."}, {"post_id": 56329, "ts": "2026-08-28T01:50:46Z", "hours": 1.9403, "text": "In the 1 hour and 56 minutes of making this project, I converted a blank slate of mind and code into a basic portfolio website that actually looks pretty good, and got a nice Cloudflare Pages domain (tyler-n.pages.dev). At the start, I was thinking “Portfolios have to be perfect! I can’t make it! What if the geometry is off! What if it’s not a perfect portfolio like I’ve seen before, with a bunch of intricate and small details!” But, as I started making it, I realized that all that matters is the final product. The people with those awesome personal portfolio websites always start somewhere. No one will be scrutinizing your commit history to say things like “This person didn’t have a completely functional, beautiful website on his first commit!” I am planning on filling in the About page and the Projects page the next time I work on this."}]...
|
Title: tyler-n-portfolio by @tyleruploads | Starda Title: tyler-n-portfolio by @tyleruploads | Stardance
Devlogs:
In the 1 hour and 56 minutes of making this project, I converted a blank slate of mind and code into a basic portfolio website that actually looks pretty good, and got a nice Cloudflare Pages domain (tyler-n.pages.dev). At the start, I was thinking “Portfolios have to be perfect! I can’t make it! What if the geometry is off! What if it’s not a perfect portfolio like I’ve seen before, with a bunch of intricate and small details!” But, as I started making it, I realized that all that matters is the final product. The people with those awesome personal portfolio websites always start somewhere. No one will be scrutinizing your commit history to say things like “This person didn’t have a completely functional, beautiful website on his first commit!” I am planning on filling in the About page and the Projects page the next time I work on this.
Today has been a great day for my personal portfolio so far. I got a nice domain for my portfolio, tyler.is-a.dev. I made the pull request last night, but I made it work today, after it was accepted. I also made a basic About section in my portfolio, focusing on my timeline of coding and some other hobbies I do. I plan to expand on my About section and possibly start the Projects section today. I may also write an X post about my portfolio in the next couple of days.
I recently just stepped up the game of my About page! Now, it looks a lot more professional, has my logo in it, and has a nice button at the bottom to get in contact with me!
Today, I completed the Projects section of my personal portfolio website! It features a grid of my best projects, each with its title doubling as its link, a description, and tags that show its technical stack. I kept accidentally pasting the project cards outside of their div, which caused some styling issues that took me a while to figure out. Take a look and tell me which project you like best!
Ships:
I made my very own personal portfolio website to showcase my life and skills. It features 4 sections: a home section, which users see once they open the website and gives them a brief overview of me; an about section, which contains my mini biography; a projects section, which contains many of my best projects in a grid layout; and a contact page, which lets users either directly contact me or view my professional services. Before I started this project, I was already comparing myself to awesome personal portfolio sites made by Hack Club members. I was worried that if one single thing didn’t look right, or even if my very first commit wasn’t in a viable state, it would make my project terrible and infinitely worse than other similar projects. After I decided I would do the project, I looked through the guide for the basic personal portfolio mission on Stardance, realized it didn’t help me at all, and eventually detached from the mission. I researched exactly what a personal portfolio website is, and planned out how my site would look. Instead of trying to make every single thing perfect as I added it, I made sections look better after they already had an archetype. I am proud that I was able to go from the state I described at the start of this paragraph to an awesome personal portfolio website!...
|
1793116398.1465526
|
1793202798.1465526
|
|
63413
|
ty by @rishabhs | Stardance
|
rishabhs
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: ty by @rishabhs | Stardance
|
1793051433.876263
|
1793656233.876263
|
|
63414
|
ty by @rishabhs | Stardance
|
rishabhs
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: ty by @rishabhs | Stardance
|
1793051434.6945438
|
1793656234.6945438
|
|
63918
|
ty by @HONDA | Stardance
|
HONDA
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: ty by @HONDA | Stardance
|
1793055190.0148013
|
1793659990.0148013
|
|
63919
|
ty by @HONDA | Stardance
|
HONDA
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: ty by @HONDA | Stardance
|
1793055192.397787
|
1793659992.397787
|
|
17480
|
twinboard by @ionicbond | Stardance
|
ionicbond
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: twinboard by @ionicbond | Stardance
|
1792652055.1281335
|
1793256855.1281335
|
|
18350
|
twig by @anshulm1669 | Stardance
|
anshulm1669
|
0
|
101.99
|
0
|
[]
|
[{"post_id": 47800, "ts": "202 [{"post_id": 47800, "ts": "2026-08-16T00:21:41Z", "hours": 10.2053, "text": "Documentation and fixing minor things"}, {"post_id": 35504, "ts": "2026-07-26T23:53:25Z", "hours": 10.3725, "text": "will edit later"}, {"post_id": 33259, "ts": "2026-07-23T00:55:51Z", "hours": 10.6828, "text": "This was 50% started in the last devlog but I decided to only write about it here. I ran into a major issue with the github REST API - rate limits. If your project had 200+ files, then it would run into the rate limit for sure. And while I could’ve let this limit stay and make it easier on myself, I decided that I didn’t want to live within this limit, and it was time to look for a new git solution. The solution: isomoprhic-git. Its a library that gives FULL git compatibility and features but its written completely in javascript. The only bummer was that it was a git clone, meaning it created a .git folder and operated out of that. I really dont like the idea of having a .git folder shadow a twig user, because then what is the point of someone using my version control, right? so heres how github pushing/pulling works with twig and isomorphic git. when you use the github push command, twig creates a folder called “twig-engine” within the “.twig” folder and that twig-engine folder is basically a “.git” folder renamed. Then, twig does its needed treeWrite operations in that twig engine folder, pushes it to github, and then deletes the twig engine folder. Basically, it is never seen by the user and only appears when needed."}, {"post_id": 30557, "ts": "2026-07-18T07:16:19Z", "hours": 10.5367, "text": "this coding session is filled with a lot of small different things. I’ve come back to a lot of features and added touch ups / fixes to things I said I would come back later to. Something important is the main bin.js file, which is now approaching 2000 lines of code, is being split up into multiple files to make it easier to understand and for me to debug/make changes. Another thing is that I’ve started the documentation for twig and its commands / how it works."}, {"post_id": 28796, "ts": "2026-07-15T09:20:40Z", "hours": 9.4461, "text": "for the last 10 hours i’ve been trying to make twig compatible with github. but this is much much much harder than i ever thought it would’ve been. the git smart http protocol is how git communicates to any service like github/gitlab etc. The problem for me is this protocol has had 20 years of development and improvement and it is extremely difficult to understand let alone recreate. Github only knows this form of communication (packfiles and delta compression) so I have to find a library that can communicate to github. But it doesn’t get a lot better… there are of course git libraries but none of them are for ONLY uploading / pulling things from github. Furthermore, they are all git clones meaning they operate within a .git folder and they aren’t met to be used as a SDK in another version control client. So, heres what I went with: the github REST API! it lets you create commits / trees / blobs and then push them to repositories. So thats exactly what I used"}, {"post_id": 27453, "ts": "2026-07-13T01:03:19Z", "hours": 12.3458, "text": "Twig can now merge branches with its own merging algorithm. This was a really really hard command to get working. It was ALOT of debugging and trial/error but in the end it works really well and im super proud of it. At the moment, if there is a merge conflict, you have to pick which branch’s changes you want to keep."}, {"post_id": 24532, "ts": "2026-07-08T04:39:20Z", "hours": 23.5617, "text": "So… I kinda forgot to write dev logs because I got extremely carried away with the coding. Once the ideas started coming, I was just adding command after command. So, i’ve decided to write docs for twig so you can see the list of commands AND in the docs will be a much better explanation of how a version control client works because it is pretty hard to understand. I’ll use devlogs just to briefly summarize the progress ive made but not describe how things work etc. twig can have branches now twig can switch between branches with checkout (twig reads the tree for the branches latest commit and automatically adds/deletes/modifies files to match the branches state) twig has a really ugly server page it runs with the GUI command so you can view the projects branches then commits then what the files looked like at that commit in time. login - this is really special. login to my own custom auth server and store a user token. this token will be used to authenticate to my server. push - push your project files to my server so you can access them anywhere. it stores them successfully but i haven’t gotten the view part down yet."}, {"post_id": 16757, "ts": "2026-06-27T06:38:12Z", "hours": 5.5014, "text": "twig now can handle as many commits as you want, and then read them back to you in order with the history command. on top of that, you can compare two commits using their commit hashes (added, deleted, modified) something cool about the compare command is that you can input the commit hashes in any order, not which came first, because twig automatically finds which comes first."}, {"post_id": 10319, "ts": "2026-06-16T23:57:21Z", "hours": 1.3383, "text": "Commits now generate a new tree, and that tree captures the current working directory. If someone commits and only changes one file very close to the root folder (not deep inside folders) then only that root tree is going to change, and the rest of the subfolder trees wont. Also, I am officially renaming this project! I picked chimp because i wanted it to fit the theme with another tool I built that was monkey related. However, it doesnt fit well to me so rename coming soon…"}, {"post_id": 9772, "ts": "2026-06-16T06:40:17Z", "hours": 1.0411, "text": "Added commit feature. It takes a message and hashes any new files or any files with changes made. Next session, I need to make it so it also generates a new tree per commit."}, {"post_id": 9723, "ts": "2026-06-16T04:38:17Z", "hours": 3.1181, "text": "chimp now stores the file tree of which hash is which file in a sqllite database!"}, {"post_id": 9002, "ts": "2026-06-15T00:28:35Z", "hours": 1.6083, "text": "Wrapped up the initialize command: it now follows through the entire directory, all subfolders and files and hashes them. next step is to make a tree map that tells you which hash is what file. For that next step, i spent some time messing around with sqllite which is what i will be using to store that tree map."}, {"post_id": 8493, "ts": "2026-06-14T03:50:03Z", "hours": 2.2314, "text": "The goal: build a version control client just like git. Maybe even a custom website to store users code online? I started with the first command for my “git” clone, which is “init” and then also test hashing + file writing abilities. The name is “chimp”"}]...
|
Title: twig by @anshulm1669 | Stardance
Devlogs:
Title: twig by @anshulm1669 | Stardance
Devlogs:
The goal: build a version control client just like git. Maybe even a custom website to store users code online? I started with the first command for my “git” clone, which is “init” and then also test hashing + file writing abilities. The name is “chimp”
Wrapped up the initialize command: it now follows through the entire directory, all subfolders and files and hashes them. next step is to make a tree map that tells you which hash is what file. For that next step, i spent some time messing around with sqllite which is what i will be using to store that tree map.
chimp now stores the file tree of which hash is which file in a sqllite database!
Added commit feature. It takes a message and hashes any new files or any files with changes made. Next session, I need to make it so it also generates a new tree per commit.
Commits now generate a new tree, and that tree captures the current working directory. If someone commits and only changes one file very close to the root folder (not deep inside folders) then only that root tree is going to change, and the rest of the subfolder trees wont. Also, I am officially renaming this project! I picked chimp because i wanted it to fit the theme with another tool I built that was monkey related. However, it doesnt fit well to me so rename coming soon…
twig now can handle as many commits as you want, and then read them back to you in order with the history command. on top of that, you can compare two commits using their commit hashes (added, deleted, modified) something cool about the compare command is that you can input the commit hashes in any order, not which came first, because twig automatically finds which comes first.
So… I kinda forgot to write dev logs because I got extremely carried away with the coding. Once the ideas started coming, I was just adding command after command. So, i’ve decided to write docs for twig so you can see the list of commands AND in the docs will be a much better explanation of how a version control client works because it is pretty hard to understand. I’ll use devlogs just to briefly summarize the progress ive made but not describe how things work etc. twig can have branches now twig can switch between branches with checkout (twig reads the tree for the branches latest commit and automatically adds/deletes/modifies files to match the branches state) twig has a really ugly server page it runs with the GUI command so you can view the projects branches then commits then what the files looked like at that commit in time. login - this is really special. login to my own custom auth server and store a user token. this token will be used to authenticate to my server. push - push your project files to my server so you can access them anywhere. it stores them successfully but i haven’t gotten the view part down yet.
Twig can now merge branches with its own merging algorithm. This was a really really hard command to get working. It was ALOT of debugging and trial/error but in the end it works really well and im super proud of it. At the moment, if there is a merge conflict, you have to pick which branch’s changes you want to keep.
for the last 10 hours i’ve been trying to make twig compatible with github. but this is much much much harder than i ever thought it would’ve been. the git smart http protocol is how git communicates to any service like github/gitlab etc. The problem for me is this protocol has had 20 years of development and improvement and it is extremely difficult to understand let alone recreate. Github only knows this form of communication (packfiles and delta compression) so I have to find a library that can communicate to github. But it doesn’t get a lot better… there are of course git libraries but none of them are for ONLY uploading / pulling things from github. Furthermore, they are all git clones meaning they operate within a .git folder and they aren’t met to be used as a SDK in another version control client. So, heres what I went with: the github REST API! it lets you create commits / trees / blobs and then push them to repositories. So thats exactly what I used
this coding session is filled with a lot of small different things. I’ve come back to a lot of features and added touch ups / fixes to things I said I would come back later to. Something important is the main bin.js file, which is now approaching 2000 lines of code, is being split up into multiple files to make it easier to understand and for me to debug/make changes. Another thing is that I’ve started the documentation for twig and its commands / how it works.
This was 50% started in the last devlog but I decided to only write about it here. I ran into a major issue with the github REST API - rate limits. If your project had 200+ files, then it would run into the rate limit for sure. And while I could’ve let this limit stay and make it easier on myself, I decided that I didn’t want to live within this limit, and it was time to look for a new git solution. The solution: isomoprhic-git. Its a library that gives FULL git compatibility and features but its written completely in javascript. The only bummer was that it was a git clone, meaning it created a .git folder and operated out of that. I really dont like the idea of having a .git folder shadow a twig user, because then what is the point of someone using my version control, right? so heres how github pushing/pulling works with twig and isomorphic git. when you use the github push command, twig creates a folder called “twig-engine” within the “.twig” folder and that twig-engine folder is basically a “.git” folder renamed. Then, twig does its needed treeWrite operations in that twig engine folder, pushes it to github, and then deletes the twig engine folder. Basically, it is never seen by the user and only appears when needed.
will edit later
Documentation and fixing minor things...
|
1792511368.666198
|
1793116168.666198
|
|
15091
|
tv-pad by @ThaoVi | Stardance
|
ThaoVi
|
1
|
4.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-12T21:36:32Z", "hours": 4.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a a 9-key macropad with an OLED display used for note taking on a 2 in 1 laptop. Default keymap includes copy, cut, paste shortcuts as well as music control. My first hardware project! The designing part was manageable with the guide but the building part was very hard since the assembly guide is incomplete. I realized that my pcb made it so that my oled pins went through the xiao so the xiao is floating haha. Sadly only three keys out of nine work right now, but the oled display works so i plan to make fun animations on it!", "repo": "https://github.com/TVDVT/Macropad-for-2-in-1-laptop-notetaking", "demo": ""}]...
|
[{"post_id": 79165, "ts": "202 [{"post_id": 79165, "ts": "2026-10-12T21:04:57Z", "hours": 3.6883, "text": "BUILDING I was working in 5 min intervals for the sticky streak but gave up today and decided to finish everything today :D. While building I realized that my oled display pins went through the XIAO.. so i had to improvise a bit and make the xiao float. I flashed the xiao and i have only 3 out of 9 keys working oops. The hole in my case for the display was also too small so i had to use my soldering iron to melt it and expand it im a bit worried for my lungs tbh Now ima try to figure out how to make the other keys and the oled display work wee Update The screen and all my keys work! I was using qmk keycodes that didn’t work on windows that’s why 6 of the keys weren’t working :D"}, {"post_id": 42785, "ts": "2026-08-07T17:49:47Z", "hours": 0.8653, "text": "Firmware I finished my case so I have been trying to figure out how to do the firmware on QMK, so I thought about switching to KMK since I already know how to code in Python. In the end I just stuck with QMK since I was already almost done. Here is my layout:"}, {"post_id": 26294, "ts": "2026-07-11T00:31:02Z", "hours": 2.3172, "text": "Case I have been working on Onshape to make the case. Getting famiiliar with the platform took a long time before I could do something. I finished the case but I should adjust the USB port, it can be done later. I had to adjust it because I figured that I had flipped XIAO on my PCB but didn’t do it on my 3D model so I wasted a little bit of time. Right now my switches are in place but there still is a strange gap between the key holes and the switches so I have to fix that. I also have to add the LED screen in the assembly. I think I will be done after that!"}, {"post_id": 10762, "ts": "2026-06-17T17:39:20Z", "hours": 0.7964, "text": "I think I’m done we ith the PCB, I moved the XIAO so that it wouldn’t bother the oled display while keeping the OLED centered. For the OLED dimensions I downloaded the footprint from the ressources page, I didn’t see it before."}, {"post_id": 10621, "ts": "2026-06-17T14:00:46Z", "hours": 1.2981, "text": "PCB routing I had to spend a long time trying to fix rounting errors all because I didn’t see two connections.. I’m almost done routing the PCB now. I just need to find the right measurements for the OLED and then get it centered at the top. Then I’ll start the case!"}, {"post_id": 10019, "ts": "2026-06-16T15:45:45Z", "hours": 0.3514, "text": "I added 9 switches for basic keyboard shortcuts and used the matrix layout as recommended in the guide. I also added an OLED display but I don’t know what it will be for yet."}, {"post_id": 6412, "ts": "2026-06-10T19:47:10Z", "hours": 0.2517, "text": "i finished the macropad guide , something went wrong at the end but i will figure it out another time how do i log time for that on hackatime though i have no idea, i’ve been trying to figure it out but i’m so lost"}]...
|
Title: tv-pad by @ThaoVi | Stardance
Devlogs:
i f Title: tv-pad by @ThaoVi | Stardance
Devlogs:
i finished the macropad guide , something went wrong at the end but i will figure it out another time how do i log time for that on hackatime though i have no idea, i’ve been trying to figure it out but i’m so lost
I added 9 switches for basic keyboard shortcuts and used the matrix layout as recommended in the guide. I also added an OLED display but I don’t know what it will be for yet.
PCB routing I had to spend a long time trying to fix rounting errors all because I didn’t see two connections.. I’m almost done routing the PCB now. I just need to find the right measurements for the OLED and then get it centered at the top. Then I’ll start the case!
I think I’m done we ith the PCB, I moved the XIAO so that it wouldn’t bother the oled display while keeping the OLED centered. For the OLED dimensions I downloaded the footprint from the ressources page, I didn’t see it before.
Case I have been working on Onshape to make the case. Getting famiiliar with the platform took a long time before I could do something. I finished the case but I should adjust the USB port, it can be done later. I had to adjust it because I figured that I had flipped XIAO on my PCB but didn’t do it on my 3D model so I wasted a little bit of time. Right now my switches are in place but there still is a strange gap between the key holes and the switches so I have to fix that. I also have to add the LED screen in the assembly. I think I will be done after that!
Firmware I finished my case so I have been trying to figure out how to do the firmware on QMK, so I thought about switching to KMK since I already know how to code in Python. In the end I just stuck with QMK since I was already almost done. Here is my layout:
BUILDING I was working in 5 min intervals for the sticky streak but gave up today and decided to finish everything today :D. While building I realized that my oled display pins went through the XIAO.. so i had to improvise a bit and make the xiao float. I flashed the xiao and i have only 3 out of 9 keys working oops. The hole in my case for the display was also too small so i had to use my soldering iron to melt it and expand it im a bit worried for my lungs tbh Now ima try to figure out how to make the other keys and the oled display work wee Update The screen and all my keys work! I was using qmk keycodes that didn’t work on windows that’s why 6 of the keys weren’t working :D
Ships:
I made a a 9-key macropad with an OLED display used for note taking on a 2 in 1 laptop. Default keymap includes copy, cut, paste shortcuts as well as music control. My first hardware project! The designing part was manageable with the guide but the building part was very hard since the assembly guide is incomplete. I realized that my pcb made it so that my oled pins went through the xiao so the xiao is floating haha. Sadly only three keys out of nine work right now, but the oled display works so i plan to make fun animations on it!...
|
1792997806.2237964
|
1793084206.2237964
|
|
25275
|
tuxiclick by @Tuxilio | Stardance
|
Tuxilio
|
2
|
8.0
|
26
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-07T07:45:00Z", "hours": 2.0, "multiplier": 8.04, "payout": 12, "blessing": "neutral", "text": "I made a penguin-themed cookie clicker! It is really basic for now, but I think it is quite nice :) I am really proud of the penguin animation which I have done by myself. You can buy “git commit” to save your state using cookies ;) I think the shopitems are now more equally distributed. Thanks for the feedback! If you have bought the console, you can set the var count to anything you want, for example count = 10000 . It’s just a javascript console. Don’t forget to sync the UI by clicking the penguin or running the function sync() :)", "repo": "https://codeberg.org/Tuxilio/tuxiclick", "demo": "https://tuxilio.codeberg.page/tuxiclick"}, {"ship_num": 2, "ts": "2026-06-28T21:22:09Z", "hours": 6.0, "multiplier": 4.57, "payout": 14, "blessing": "neutral", "text": "I made a penguin-themed cookie clicker! It is really basic for now, but I think it is quite nice :) I am really proud of the penguin animation which I have done by myself. If you have bought the console, you can set the var count to anything you want, for example count = 1000 . It’s just a javascript console. Don’t forget to sync the UI by clicking the penguin or running the function sync() :)", "repo": "https://codeberg.org/Tuxilio/tuxiclick", "demo": "https://tuxilio.codeberg.page/tuxiclick"}]...
|
[{"post_id": 23982, "ts": "202 [{"post_id": 23982, "ts": "2026-07-07T07:42:32Z", "hours": 0.5797, "text": "I added the new shopitems CI/CD Pipeline, Code Optimizer and API Integration and Git Commit and also fixed the rm-rf shopitem. I also added a multiplier when you rm -rf everything 🎉"}, {"post_id": 23379, "ts": "2026-07-06T09:39:14Z", "hours": 0.4186, "text": "I added a function to save the current count and owned items in a cookie so your game gets restored when reloading :)"}, {"post_id": 23366, "ts": "2026-07-06T09:10:21Z", "hours": 0.5197, "text": "I added a better readme and a new shopitem: a confetti animation when you click 🎉"}, {"post_id": 17921, "ts": "2026-06-28T21:15:24Z", "hours": 2.3664, "text": "I created a terminal you can drag around, a panel with your owned items and nice new shop items :)"}, {"post_id": 16282, "ts": "2026-06-26T14:05:59Z", "hours": 2.035, "text": "I added a shop! It isn’t really done yet, but it is built modular so I can just specify what action to run when you buy it, how many of these you can buy, and I added a mobile view!"}, {"post_id": 15232, "ts": "2026-06-24T18:49:26Z", "hours": 0.6347, "text": "I added an image to click on with a nice selfmade click animation (based on an svg) 🎉 🎉 🎉"}, {"post_id": 15179, "ts": "2026-06-24T17:38:23Z", "hours": 0.8894, "text": "I’m working on a funny clicker game written in javascript with some html and css. I finished the basic page with just a simple button and counter. The whole thing is deployed on Codeberg Pages: https://tuxilio.codeberg.page/tuxiclick/"}]...
|
Title: tuxiclick by @Tuxilio | Stardance
Devlogs: Title: tuxiclick by @Tuxilio | Stardance
Devlogs:
I’m working on a funny clicker game written in javascript with some html and css. I finished the basic page with just a simple button and counter. The whole thing is deployed on Codeberg Pages: https://tuxilio.codeberg.page/tuxiclick/
I added an image to click on with a nice selfmade click animation (based on an svg) 🎉 🎉 🎉
I added a shop! It isn’t really done yet, but it is built modular so I can just specify what action to run when you buy it, how many of these you can buy, and I added a mobile view!
I created a terminal you can drag around, a panel with your owned items and nice new shop items :)
I added a better readme and a new shopitem: a confetti animation when you click 🎉
I added a function to save the current count and owned items in a cookie so your game gets restored when reloading :)
I added the new shopitems CI/CD Pipeline, Code Optimizer and API Integration and Git Commit and also fixed the rm-rf shopitem. I also added a multiplier when you rm -rf everything 🎉
Ships:
I made a penguin-themed cookie clicker! It is really basic for now, but I think it is quite nice :) I am really proud of the penguin animation which I have done by myself. If you have bought the console, you can set the var count to anything you want, for example count = 1000 . It’s just a javascript console. Don’t forget to sync the UI by clicking the penguin or running the function sync() :)
I made a penguin-themed cookie clicker! It is really basic for now, but I think it is quite nice :) I am really proud of the penguin animation which I have done by myself. You can buy “git commit” to save your state using cookies ;) I think the shopitems are now more equally distributed. Thanks for the feedback! If you have bought the console, you can set the var count to anything you want, for example count = 10000 . It’s just a javascript console. Don’t forget to sync the UI by clicking the penguin or running the function sync() :)...
|
1793087571.6677036
|
1793173971.6677036
|
|
42061
|
turtle_crossing by @mrpeng | Stardance
|
mrpeng
|
0
|
0.29
|
0
|
[]
|
[{"post_id": 37809, "ts": "202 [{"post_id": 37809, "ts": "2026-07-30T19:14:12Z", "hours": 0.2861, "text": "this a a simple a single person arcade style game made in python using the turtle library. it features unlimited levels with increasing difficulties and a time movement of left, right and up no down or else it will be too easy hope you enjoy it and it was one on my projects to learn inheritance, oop and instances hope you enjoy it regards, pillu :) this one of my many projects which I created in my holidays of may 2026 and I will upload all the projects."}]...
|
Title: turtle_crossing by @mrpeng | Stardance
Dev Title: turtle_crossing by @mrpeng | Stardance
Devlogs:
this a a simple a single person arcade style game made in python using the turtle library. it features unlimited levels with increasing difficulties and a time movement of left, right and up no down or else it will be too easy hope you enjoy it and it was one on my projects to learn inheritance, oop and instances hope you enjoy it regards, pillu :) this one of my many projects which I created in my holidays of may 2026 and I will upload all the projects....
|
1792496939.7278273
|
1793101739.7278273
|
|
56654
|
turnt by @shailesh | Stardance
|
|
0
|
4.15
|
0
|
[]
|
[{"post_id": 58943, "ts": "202 [{"post_id": 58943, "ts": "2026-08-31T14:43:26Z", "hours": 0.8656, "text": "worked on the readme, bom and wiring"}, {"post_id": 58829, "ts": "2026-08-31T12:34:56Z", "hours": 1.2833, "text": "finished the arm design"}, {"post_id": 58779, "ts": "2026-08-31T11:02:45Z", "hours": 0.7003, "text": "arm parts are done, only the gripper mechanism Is to be built, I’ve also added a bearing balls for smoother movement between base mount and the base top parts"}, {"post_id": 58759, "ts": "2026-08-31T10:07:45Z", "hours": 1.3003, "text": "made the base of the turntable mechanism and made the arm mount where the arm Is attached to a servo, and rotates while resting the load on the top part of the base"}]...
|
Title: turnt by @shailesh | Stardance
Devlogs:
ma Title: turnt by @shailesh | Stardance
Devlogs:
made the base of the turntable mechanism and made the arm mount where the arm Is attached to a servo, and rotates while resting the load on the top part of the base
arm parts are done, only the gripper mechanism Is to be built, I’ve also added a bearing balls for smoother movement between base mount and the base top parts
finished the arm design
worked on the readme, bom and wiring...
|
1792922046.8037195
|
1793786046.8037195
|
|
14995
|
turbo velocity racer by @Himanshu | Stardance
|
Himanshu
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: turbo velocity racer by @Himanshu | Stardan Title: turbo velocity racer by @Himanshu | Stardance...
|
1792936259.0982237
|
1793800259.0982237
|
|
71239
|
tungOS by @ramenuno | Stardance
|
ramenuno
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: tungOS by @ramenuno | Stardance
|
1792892822.2766213
|
1793497622.2766213
|
|
45143
|
tuner by @Fishdawg | Stardance
|
Fishdawg
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: tuner by @Fishdawg | Stardance
|
1792612393.2674105
|
1793217193.2674105
|
|
35875
|
tundra by @pinetree182 | Stardance
|
pinetree182
|
2
|
21.0
|
205
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-07T01:39:49Z", "hours": 18.0, "multiplier": 11.42, "payout": 205, "blessing": "neutral", "text": "tundra OS i made a web OS called tundra. visually, it’s really similar to Serenity OS and it was a whole lot of fun to make. features lots of apps, like a browser, text editor, and file browser a working(ish) filesystem a whole dialog system 3d graphics elite references", "repo": "https://github.com/annaxiomm/tundra", "demo": "https://annaxiomm.github.io/tundra"}, {"ship_num": 2, "ts": "2026-07-17T08:46:49Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "tundra v0.1.0 (alpha) tundra is finally ready to release! it’s currently very much in its infancy and doesn’t have very many features but it meets the requirements of the ship and i’m proud of it! so far we have: multiple draggable windows that are instanceable and defined as classes in javascript (so you can open more than one of the same app!) a welcome message, notes app (which is really an editable changelog), and a nice assortment of images for you to look at a status bar with the date and a handy app drawer so you can access all (3 of) the cool apps on display! a beautiful font (cozette by the-moonwitch) i hope you all like it so far, and plenty more features will follow in the coming weeks", "repo": "https://github.com/annaxiomm/tundra", "demo": "https://annaxiomm.github.io/tundra"}]...
|
[{"post_id": 63300, "ts": "202 [{"post_id": 63300, "ts": "2026-09-07T01:36:33Z", "hours": 3.1278, "text": "devlog #12 - the end? (for now) this is going to be my last devlog before I ship tundra, i’m really proud of how far it’s come and the fact that i’ve actually managed to finish a project for once! I didn’t quite get to add everything I wanted but most of it is there text editor time! i added a real simple text editor that can save and load files from the “disk”. i don’t really have anything else to say about it rated D for dialogs in order for the text editor to work properly, I had to make save and open dialog boxes. these are basically an unholy frankenstein of the normal dialog box and the file browser app, and they work well enough object permanence using JSON and the world’s jankiest serialization/deserialization system I was able to save the user’s filesystem state to localStorage so that even of you reload or close the page, your precious writing will be preserved you’re getting the boot real operating systems don’t open straight to the desktop - theres a whole boot sequence that leads to this (and if you’re cool and use linux it’s all on display for you). inspired by @cooki ’s FPS-OS (go check it out it’s really cool) i added a boot screen that looks pretty alright I guess. visual imagery finally, I got around to adding icons for each app. they’re 16x16, made in aseprite over the course of about 10 minutes, and work just enough that I don’t need to redesign them constantly. next steps ship it!"}, {"post_id": 61451, "ts": "2026-09-04T11:45:40Z", "hours": 0.8858, "text": "devlog #11 - ctrl+alt+delete this is a bit of a shorter devlog since I basically only added one thing - a functioning shutdown sequence! first a little dialog pops up asking if you’re sure, and then the whole screen goes black and says “shutting down…”, finally followed by an elite reference (Progressbar95 players rise up!)"}, {"post_id": 57784, "ts": "2026-08-30T02:28:02Z", "hours": 3.5117, "text": "devlog #10 - new apps after like a month-long hiatus i thought that i ought to add a few more apps - this is meant to be somewhat useful after all! calculator this is a really basic calculator app, basically when you press a button it adds its value (like 2 or + or . ) to an expression, and when you hit the = button it evaluates the expression with eval() . yes, i know its not the safest but it works. colo(u)r picker this one is also really simple: every time you press a key on your keyboard, a new random colour is generated and the rgb and hex values are shown in the bottom. need i say more? file explorer once again, this is really basic. all it does is gets the contents of the current directory (i had to make a new fs function to return each path’s type as well) and then makes a new element for each path with an icon corresponding to what it is. there’s also a back button if you need to… well.. go back next steps file opening from the file explorer text editor more functions in the calculator / better calculator"}, {"post_id": 41048, "ts": "2026-08-05T00:17:34Z", "hours": 3.0744, "text": "devlog #9 - files! what’s an operating system if you can’t have files? so, i decided to write a basic filesystem for tundra. paired with a simple terminal and now tundra is actually kind of cool! the filesystem tundra uses a really simple filesystem model: there’s a File and a Directory class that both inherit from FSNode, Files have names and contents and Directories have names and children. tundra uses a traditional unix file layout (/home, /bin, /etc and so on) because its cool. the terminal i really wanted some way to navigate the filesystem but didn’t feel like implementing an entire file browser so I added a simple terminal. it has a few methods like writeln and readline which you can use. all the commands (including the shell!) are defined in their own classes, just like apps, which makes it really easy to add new ones. so far, i’ve added cd, ls, mkdir, touch, cat, and my own version of neofetch. next steps an actual file browser some more commands ANSI escape codes for colours a text editor to make files for the filesystem"}, {"post_id": 39219, "ts": "2026-08-02T01:30:03Z", "hours": 3.3094, "text": "devlog #8 - too many changes! my devlogs from here on are going to be getting a lot longer now because i’m really settling into the grind, so i’m going to try out a more structured format. dialogs! i implemented a whole dialog box system into caribou (the window manager). so far it only has confirm (cancel/ok) style dialogs but it’s modular so i’ll be sure to add plenty more in the future. dialogs return promises that resolve with a value when an action happens (like when the dialog is closed), and this can then be used to execute code. this all came about because i wanted to add fullscreen mode but apparently browsers don’t like it when you request fullscreen without user interaction so here we are! changelog changes (?) the changelog, as promised, pulls directly from github to ensure you always get the most up-to-date changes with minimal effort on my end ! it uses marked and DOMPurify to parse the CHANGELOG.md from the repo and to make sure you are personally secure from anyone who’s dumb enough to waste their time trying to attack tundra. preparing for themes soon, i’ll work on adding themes to tundra so i decided i’d make it a bit easier for myself by making every single value that might want to be changed in css a variable. this was excruciatingly painful but we got through it in the end (it took like 10 minutes max). also, the background is now loaded dynamically through js which will lead to custom backgrounds at some point (much to the dismay of my browser’s performance) next steps improve the dialog system and add more dialog types add a filesystem (very scary) add more apps add theming and changeable backgrounds"}, {"post_id": 36136, "ts": "2026-07-28T00:56:50Z", "hours": 1.6256, "text": "devlog #7 - now we’re getting somewhere! tundra is starting to take off! i’ve changed the look of the taskbar very slightly (there’s now more padding), and i’ve also revamped the appdrawer so that it looks cleaner (and more like SerenityOS). also, submenus! now the appdrawer can be more organised as I continue to add apps instead of turning into a wastebin of buttons. i deleted all of the original apps and have replaced them with (so far) an updated welcome/about (with wally, the derpy walrus who’s tundra’s new mascot), a proper changelog (eventually i’ll make it pull from github but for now it’s hardcoded), and a cube to test out threejs."}, {"post_id": 32283, "ts": "2026-07-21T11:04:31Z", "hours": 1.3792, "text": "devlog #6 - more taskbar stuff i decided that it’s probably a good idea to be able to see what apps you have open, so i implemented a little window list in the status bar. it’s pretty rudimentary - it just makes an element for each open window and updates any time a window is added or removed. eventually i’ll get around to adding window logos and context menus that let you close and minimise windows from the taskbar but that’s a bit advanced for the minute."}, {"post_id": 30070, "ts": "2026-07-17T11:10:55Z", "hours": 1.0528, "text": "devlog #5 - visual updates i decided i wanted to make tundra look a bit like serenityOS, so i modified the window header to include the distinctive red gradient. i also added a proper focusing system which required a decent rewrite of a portion of caribou (the wm). also, i worked on centralising the wm. previously, windows handled their own focusing and closing but since i’ve discovered customevents windows now request this behaviour from the wm. finally, windows now auto-focus when you open them!"}, {"post_id": 30022, "ts": "2026-07-17T08:30:14Z", "hours": 1.1878, "text": "devlog #4 - almost time to ship ! after much tedious work i added 2 other apps: a notes app that currently has a small TODO list and a changelog; and an image viewer that shows off a random image i’ve taken. i’ve also prettied the whole thing up a little bit by changing the font from [default] to Cozette, a nice cozy bitmap-ish font. finally, i added an app drawer so you can open all the (3) apps available in v0.1.0! i’m really looking forward to adding tons of new features and making it look super awesome!"}, {"post_id": 29369, "ts": "2026-07-16T08:39:15Z", "hours": 0.5478, "text": "devlog #3 - windows (again!) windows and apps are now instanced and defined purely in their own classes in javascript instead of being predefined in HTML and shown / hidden. i know it’s not strictly part of the mission for WebOS 1 but it makes me feel a bit better about myself AND it’ll make things a whole lot easier for me down the line. since apps are instanced, i can have as many welcomes as i want !"}, {"post_id": 29355, "ts": "2026-07-16T07:46:35Z", "hours": 0.9558, "text": "devlog #2 - windows i started working on the first iteration of caribou - tundra’s window manager (aka a window class and a list of open windows). so far, windows can be dragged around using some very janky freestyled code, and can also be closed (one of the can even be opened again !). it’s currently looking quite… webby , so next i’ll probably work on making it look a bit more personal (maybe a bit like my personal homepage??)"}, {"post_id": 29335, "ts": "2026-07-16T06:41:18Z", "hours": 0.5217, "text": "devlog #1 - let’s make an OS (sort of) ! building my own OS has been a dream of mine for a long, long time but i’ve never actually been able to make one before (because i know next to nothing about low-level programming). so imagine my reaction when i saw that i could get 50 stardust for making one? well, one small catch. it had to be a web-based OS. wait, is that really a catch though? its like a thousand times easier, and has just enough instant gratification for my short-form content-fried dopamine-addicted brain. so here we are. so far, tundra has a window and a status bar, and thats about it (also, the wallpaper is a photo i took down at the beach today !). i’m really looking forward to adding a ton more features to tundra in the future."}]...
|
Title: tundra by @pinetree182 | Stardance
Devlogs Title: tundra by @pinetree182 | Stardance
Devlogs:
devlog #1 - let’s make an OS (sort of) ! building my own OS has been a dream of mine for a long, long time but i’ve never actually been able to make one before (because i know next to nothing about low-level programming). so imagine my reaction when i saw that i could get 50 stardust for making one? well, one small catch. it had to be a web-based OS. wait, is that really a catch though? its like a thousand times easier, and has just enough instant gratification for my short-form content-fried dopamine-addicted brain. so here we are. so far, tundra has a window and a status bar, and thats about it (also, the wallpaper is a photo i took down at the beach today !). i’m really looking forward to adding a ton more features to tundra in the future.
devlog #2 - windows i started working on the first iteration of caribou - tundra’s window manager (aka a window class and a list of open windows). so far, windows can be dragged around using some very janky freestyled code, and can also be closed (one of the can even be opened again !). it’s currently looking quite… webby , so next i’ll probably work on making it look a bit more personal (maybe a bit like my personal homepage??)
devlog #3 - windows (again!) windows and apps are now instanced and defined purely in their own classes in javascript instead of being predefined in HTML and shown / hidden. i know it’s not strictly part of the mission for WebOS 1 but it makes me feel a bit better about myself AND it’ll make things a whole lot easier for me down the line. since apps are instanced, i can have as many welcomes as i want !
devlog #4 - almost time to ship ! after much tedious work i added 2 other apps: a notes app that currently has a small TODO list and a changelog; and an image viewer that shows off a random image i’ve taken. i’ve also prettied the whole thing up a little bit by changing the font from [default] to Cozette, a nice cozy bitmap-ish font. finally, i added an app drawer so you can open all the (3) apps available in v0.1.0! i’m really looking forward to adding tons of new features and making it look super awesome!
devlog #5 - visual updates i decided i wanted to make tundra look a bit like serenityOS, so i modified the window header to include the distinctive red gradient. i also added a proper focusing system which required a decent rewrite of a portion of caribou (the wm). also, i worked on centralising the wm. previously, windows handled their own focusing and closing but since i’ve discovered customevents windows now request this behaviour from the wm. finally, windows now auto-focus when you open them!
devlog #6 - more taskbar stuff i decided that it’s probably a good idea to be able to see what apps you have open, so i implemented a little window list in the status bar. it’s pretty rudimentary - it just makes an element for each open window and updates any time a window is added or removed. eventually i’ll get around to adding window logos and context menus that let you close and minimise windows from the taskbar but that’s a bit advanced for the minute.
devlog #7 - now we’re getting somewhere! tundra is starting to take off! i’ve changed the look of the taskbar very slightly (there’s now more padding), and i’ve also revamped the appdrawer so that it looks cleaner (and more like SerenityOS). also, submenus! now the appdrawer can be more organised as I continue to add apps instead of turning into a wastebin of buttons. i deleted all of the original apps and have replaced them with (so far) an updated welcome/about (with wally, the derpy walrus who’s tundra’s new mascot), a proper changelog (eventually i’ll make it pull from github but for now it’s hardcoded), and a cube to test out threejs.
devlog #8 - too many changes! my devlogs from here on are going to be getting a lot longer now because i’m really settling into the grind, so i’m going to try out a more structured format. dialogs! i implemented a whole dialog box system into caribou (the window manager). so far it only has confirm (cancel/ok) style dialogs but it’s modular so i’ll be sure to add plenty more in the future. dialogs return promises that resolve with a value when an action happens (like when the dialog is closed), and this can then be used to execute code. this all came about because i wanted to add fullscreen mode but apparently browsers don’t like it when you request fullscreen without user interaction so here we are! changelog changes (?) the changelog, as promised, pulls directly from github to ensure you always get the most up-to-date changes with minimal effort on my end ! it uses marked and DOMPurify to parse the CHANGELOG.md from the repo and to make sure you are personally secure from anyone who’s dumb enough to waste their time trying to attack tundra. preparing for themes soon, i’ll work on adding themes to tundra so i decided i’d make it a bit easier for myself by making every single value that might want to be changed in css a variable. this was excruciatingly painful but we got through it in the end (it took like 10 minutes max). also, the background is now loaded dynamically through js which will lead to custom backgrounds at some point (much to the dismay of my browser’s performance) next steps improve the dialog system and add more dialog types add a filesystem (very scary) add more apps add theming and changeable backgrounds
devlog #9 - files! what’s an operating system if you can’t have files? so, i decided to write a basic filesystem for tundra. paired with a simple terminal and now tundra is actually kind of cool! the filesystem tundra uses a really simple filesystem model: there’s a File and a Directory class that both inherit from FSNode, Files have names and contents and Directories have names and children. tundra uses a traditional unix file layout (/home, /bin, /etc and so on) because its cool. the terminal i really wanted some way to navigate the filesystem but didn’t feel like implementing an entire file browser so I added a simple terminal. it has a few methods like writeln and readline which you can use. all the commands (including the shell!) are defined in their own classes, just like apps, which makes it really easy to add new ones. so far, i’ve added cd, ls, mkdir, touch, cat, and my own version of neofetch. next steps an actual file browser some more commands ANSI escape codes for colours a text editor to make files for the filesystem
devlog #10 - new apps after like a month-long hiatus i thought that i ought to add a few more apps - this is meant to be somewhat useful after all! calculator this is a really basic calculator app, basically when you press a button it adds its value (like 2 or + or . ) to an expression, and when you hit the = button it evaluates the expression with eval() . yes, i know its not the safest but it works. colo(u)r picker this one is also really simple: every time you press a key on your keyboard, a new random colour is generated and the rgb and hex values are shown in the bottom. need i say more? file explorer once again, this is really basic. all it does is gets the contents of the current directory (i had to make a new fs function to return each path’s type as well) and then makes a new element for each path with an icon corresponding to what it is. there’s also a back button if you need to… well.. go back next steps file opening from the file explorer text editor more functions in the calculator / better calculator
devlog #11 - ctrl+alt+delete this is a bit of a shorter devlog since I basically only added one thing - a functioning shutdown sequence! first a little dialog pops up asking if you’re sure, and then the whole screen goes black and says “shutting down…”, finally followed by an elite reference (Progressbar95 players rise up!)
devlog #12 - the end? (for now) this is going to be my last devlog before I ship tundra, i’m really proud of how far it’s come and the fact that i’ve actually managed to finish a project for once! I didn’t quite get to add everything I wanted but most of it is there text editor time! i added a real simple text editor that can save and load files from the “disk”. i don’t really have anything else to say about it rated D for dialogs in order for the text editor to work properly, I had to make save and open dialog boxes. these are basically an unholy frankenstein of the normal dialog box and the file browser app, and they work well enough object permanence using JSON and the world’s jankiest serialization/deserialization system I was able to save the user’s filesystem state to localStorage so that even of you reload or close the page, your precious writing will be preserved you’re getting the boot real operating systems don’t open straight to the desktop - theres a whole boot sequence that leads to this (and if you’re cool and use linux it’s all on display for you). inspired by @cooki ’s FPS-OS (go check it out it’s really cool) i added a boot screen that looks pretty alright I guess. visual imagery finally, I got around to adding icons for each app. they’re 16x16, made in aseprite over the course of about 10 minutes, and work just enough that I don’t need to redesign them constantly. next steps ship it!
Ships:
tundra v0.1.0 (alpha) tundra is finally ready to release! it’s currently very much in its infancy and doesn’t have very many features but it meets the requirements of the ship and i’m proud of it! so far we have: multiple draggable windows that are instanceable and defined as classes in javascript (so you can open more than one of the same app!) a welcome message, notes app (which is really an editable changelog), and a nice assortment of images for you to look at a status bar with the date and a handy app drawer so you can access all (3 of) the cool apps on display! a beautiful font (cozette by the-moonwitch) i hope you all like it so far, and plenty more features will follow in the coming weeks
tundra OS i made a web OS called tundra. visually, it’s really similar to Serenity OS and it was a whole lot of fun to make. features lots of apps, like a browser, text editor, and file browser a working(ish) filesystem a whole dialog system 3d graphics elite references...
|
1793087801.67265
|
1793174201.67265
|
|
64463
|
tui-os by @jworden | Stardance
|
jworden
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: tui-os by @jworden | Stardance
|
1793062516.261589
|
1793667316.261589
|
|
64464
|
tui-os by @jworden | Stardance
|
jworden
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: tui-os by @jworden | Stardance
|
1793062520.3510282
|
1793667320.3510282
|
|
47244
|
tug of war robot by @erickpizza_2022 | Stardance
|
erickpizza_2022
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: tug of war robot by @erickpizza_2022 | Star Title: tug of war robot by @erickpizza_2022 | Stardance...
|
1792507691.7522676
|
1793112491.7522676
|
|
37819
|
tuff slack bot yay! by @marygoat | Stardance
|
marygoat
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-26T07:53:22Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "slack bot! i made a slack bot that runs in the hack club slack, with three functional commands. this was a fun project to work on since i have learned a lot more about using terminals and how running commands in them work, and how to keep things running without the code being up! it was challenging to navigate between different terminals and how to use each command properly, but with a bit of searching i got through it! im proud of all the knowledge i learned about how systems work. to use it, go to the hack club slack and in a bot channel, either #bot-spam or #tuffyo-bot, use the /tuffyo-help to get some commands that work for this bot.", "repo": "https://github.com/awesomesauce4646/slack_bot", "demo": "https://app.slack.com/client/E09V59WQY1E/C0BKT6NT6JJ?skip_today=1"}]...
|
[{"post_id": 35062, "ts": "202 [{"post_id": 35062, "ts": "2026-07-26T07:45:32Z", "hours": 0.4933, "text": "slack bot runs! figured out how to use nest and the terminal, got the bot to run without my code being up! it was difficult learning how to use the terminal, since sometimes id use commands that only worked in the Linux terminal, and since i use a windows, that concept was a bit weird to get around at first. once i knew how to connect to my ssh and everything, i was able to type in the files my bot needed to run on its own!"}, {"post_id": 34940, "ts": "2026-07-26T01:50:21Z", "hours": 0.6083, "text": "started the slack bot project! i added the code in from the guide that allows the bot to reply when someone uses a command, but currently you can use it only if im running the code for it. i like that ive learned how to run some commands inside the terminal, since i had rarely done that before. it was a bit confusing installing the necessary things required for it like node and nest, but i figured it out, and my nest application was approved, so i will work on getting this slack bot running 24/7!"}]...
|
Title: tuff slack bot yay! by @marygoat | Stardanc Title: tuff slack bot yay! by @marygoat | Stardance
Devlogs:
started the slack bot project! i added the code in from the guide that allows the bot to reply when someone uses a command, but currently you can use it only if im running the code for it. i like that ive learned how to run some commands inside the terminal, since i had rarely done that before. it was a bit confusing installing the necessary things required for it like node and nest, but i figured it out, and my nest application was approved, so i will work on getting this slack bot running 24/7!
slack bot runs! figured out how to use nest and the terminal, got the bot to run without my code being up! it was difficult learning how to use the terminal, since sometimes id use commands that only worked in the Linux terminal, and since i use a windows, that concept was a bit weird to get around at first. once i knew how to connect to my ssh and everything, i was able to type in the files my bot needed to run on its own!
Ships:
slack bot! i made a slack bot that runs in the hack club slack, with three functional commands. this was a fun project to work on since i have learned a lot more about using terminals and how running commands in them work, and how to keep things running without the code being up! it was challenging to navigate between different terminals and how to use each command properly, but with a bit of searching i got through it! im proud of all the knowledge i learned about how systems work. to use it, go to the hack club slack and in a bot channel, either #bot-spam or #tuffyo-bot, use the /tuffyo-help to get some commands that work for this bot....
|
1793090975.999478
|
1793177375.999478
|
|
5489
|
tuff macropad by @sayer | Stardance
|
sayer
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: tuff macropad by @sayer | Stardance
|
1792601575.2348251
|
1793206375.2348251
|
|
59143
|
tube screamer guitar pedal by @Crunchy547 | Starda tube screamer guitar pedal by @Crunchy547 | Stardance...
|
Crunchy547
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: tube screamer guitar pedal by @Crunchy547 | Title: tube screamer guitar pedal by @Crunchy547 | Stardance...
|
1792784989.580653
|
1793389789.580653
|
|
7015
|
ttygrid by @justMedansh | Stardance
|
justMedansh
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: ttygrid by @justMedansh | Stardance
|
1792630034.840918
|
1793234834.840918
|
|
64970
|
tttt by @yellowjay | Stardance
|
yellowjay
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: tttt by @yellowjay | Stardance
|
1793080157.606227
|
1793684957.606227
|
|
66051
|
ttluau by @amisquared | Stardance
|
amisquared
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: ttluau by @amisquared | Stardance
|
1793094619.934992
|
1793699419.934992
|
|
22800
|
tsc.hk by @undivisible | Stardance
|
undivisible
|
0
|
5.0
|
0
|
[]
|
[{"post_id": 12338, "ts": "202 [{"post_id": 12338, "ts": "2026-06-20T03:56:15Z", "hours": 5.0008, "text": "this website was built with my own ui framework + rust compiled to wasm, deployed statically to github. my intention when building this was to write a frontend language so easily codeable and readable that hasn’t been done before, while still being understandable to laymen and coders, which is why it is webshaped and has parity with tailwindcss."}]...
|
Title: tsc.hk by @undivisible | Stardance
Devlogs Title: tsc.hk by @undivisible | Stardance
Devlogs:
this website was built with my own ui framework + rust compiled to wasm, deployed statically to github. my intention when building this was to write a frontend language so easily codeable and readable that hasn’t been done before, while still being understandable to laymen and coders, which is why it is webshaped and has parity with tailwindcss....
|
1792633787.8353045
|
1793238587.8353045
|
|
20606
|
ts tuff by @jasonzhou | Stardance
|
jasonzhou
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: ts tuff by @jasonzhou | Stardance
|
1792504078.7361298
|
1793108878.7361298
|
|
47926
|
trypadhack by @Liam-_- | Stardance
|
Liam-_-
|
0
|
14.84
|
0
|
[]
|
[{"post_id": 78175, "ts": "202 [{"post_id": 78175, "ts": "2026-10-09T21:32:45Z", "hours": 1.2833, "text": "i remade the case hole for the usbc cable and reddesined the pcb"}, {"post_id": 76460, "ts": "2026-10-03T16:24:58Z", "hours": 3.4003, "text": "i made the chase and the 3d modell of the pcb with parts not sure if the 3d modell and footprint of the olead screen is right."}, {"post_id": 76169, "ts": "2026-10-02T15:45:56Z", "hours": 1.6669, "text": "anyone know how to 3d design on FreeCad? i hafe no idea what to do or anything the tutorial more confuses me then expected. anyone any advice?"}, {"post_id": 73932, "ts": "2026-09-26T10:55:00Z", "hours": 0.8503, "text": "WAR IS OVER i finally done the pcb now onto the case i just wanna get it over before stardance ends that means next few days quick 3d modelling then coding and then the github"}, {"post_id": 69789, "ts": "2026-09-17T19:53:30Z", "hours": 0.3503, "text": "at this point i guess i shuld ask in the slack"}, {"post_id": 68245, "ts": "2026-09-14T19:26:56Z", "hours": 0.2833, "text": "i hafe no idea what i hafe to do the drc manly complains about Plate edge free space violation"}, {"post_id": 66267, "ts": "2026-09-12T00:13:36Z", "hours": 0.2833, "text": "i hafe no idea what i am doing this stupid drc says everytime i do something wrong"}, {"post_id": 65585, "ts": "2026-09-10T20:26:39Z", "hours": 0.4833, "text": "i removed 3 leds so its easyer to connect them but once again the dumb drc says nope"}, {"post_id": 64900, "ts": "2026-09-09T16:36:18Z", "hours": 0.3503, "text": "i think i hafe an idea how it could work now"}, {"post_id": 64238, "ts": "2026-09-08T14:24:08Z", "hours": 0.3667, "text": "i dont know if its right or not ill just try"}, {"post_id": 63699, "ts": "2026-09-07T17:06:45Z", "hours": 0.4836, "text": "i need to start over i guess i noticed my planed parts and stuff was to much to fit the size i imagined and also the drc errors confiused me"}, {"post_id": 62953, "ts": "2026-09-06T14:48:28Z", "hours": 0.6503, "text": "i dont even know what i did i think i connected the leds with the seeduino and then run the drc wich gave me a lot of errors and warinings wich i dont understand if anyone has a tip what i hafe to do i would really appreciate"}, {"post_id": 62273, "ts": "2026-09-05T15:49:58Z", "hours": 2.2922, "text": "PCB design is more complex then expected i did the footprint assignment tool and then worked on the pcb design i didnt knew how i want it too look and when i wasnted to draw the connection i t didnt worked out so i am still on working on the pcb"}, {"post_id": 61541, "ts": "2026-09-04T14:44:29Z", "hours": 1.1836, "text": "Hi i think i am finally done with my scametic after last time i had problem with lapse i made a pause. i at first wanted to check everything i did then tried to organize it better after that i connected everything what wasnt connected found out i made a hole lot of dump mistakes wich i at first didnt knew what caused them but after asking a ki i found out and solved every error"}, {"post_id": 54594, "ts": "2026-08-25T16:54:12Z", "hours": 0.5333, "text": "i tried to get gemini explain matrix wiring to me but didnt worked out good then i tried to follow someone elses worke so i hafe a basis so i can personalize it frome then on. guess i need a lot more of trial and error."}, {"post_id": 53803, "ts": "2026-08-24T14:35:00Z", "hours": 0.3833, "text": "it is the first time i ever tried myself on something like that i basecly followd the tutorial and then wanted to personalize it like you shuld do but because i never did something like that i tried to figure out what has to connect to what i know mostly of that is probaply wrong connected or so but i dint waned to ask ai instantly"}]...
|
Title: trypadhack by @Liam-_- | Stardance
Devlogs Title: trypadhack by @Liam-_- | Stardance
Devlogs:
it is the first time i ever tried myself on something like that i basecly followd the tutorial and then wanted to personalize it like you shuld do but because i never did something like that i tried to figure out what has to connect to what i know mostly of that is probaply wrong connected or so but i dint waned to ask ai instantly
i tried to get gemini explain matrix wiring to me but didnt worked out good then i tried to follow someone elses worke so i hafe a basis so i can personalize it frome then on. guess i need a lot more of trial and error.
Hi i think i am finally done with my scametic after last time i had problem with lapse i made a pause. i at first wanted to check everything i did then tried to organize it better after that i connected everything what wasnt connected found out i made a hole lot of dump mistakes wich i at first didnt knew what caused them but after asking a ki i found out and solved every error
PCB design is more complex then expected i did the footprint assignment tool and then worked on the pcb design i didnt knew how i want it too look and when i wasnted to draw the connection i t didnt worked out so i am still on working on the pcb
i dont even know what i did i think i connected the leds with the seeduino and then run the drc wich gave me a lot of errors and warinings wich i dont understand if anyone has a tip what i hafe to do i would really appreciate
i need to start over i guess i noticed my planed parts and stuff was to much to fit the size i imagined and also the drc errors confiused me
i dont know if its right or not ill just try
i think i hafe an idea how it could work now
i removed 3 leds so its easyer to connect them but once again the dumb drc says nope
i hafe no idea what i am doing this stupid drc says everytime i do something wrong
i hafe no idea what i hafe to do the drc manly complains about Plate edge free space violation
at this point i guess i shuld ask in the slack
WAR IS OVER i finally done the pcb now onto the case i just wanna get it over before stardance ends that means next few days quick 3d modelling then coding and then the github
anyone know how to 3d design on FreeCad? i hafe no idea what to do or anything the tutorial more confuses me then expected. anyone any advice?
i made the chase and the 3d modell of the pcb with parts not sure if the 3d modell and footprint of the olead screen is right.
i remade the case hole for the usbc cable and reddesined the pcb...
|
1792533174.1128592
|
1793137974.1128592
|
|
11063
|
try by @clavier | Stardance
|
clavier
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: try by @clavier | Stardance
|
1792781412.735303
|
1793386212.735303
|
|
56432
|
try 1 by @ganga_pranav | Stardance
|
ganga_pranav
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: try 1 by @ganga_pranav | Stardance
|
1792921815.2173872
|
1793785815.2173872
|
|
67799
|
truthscope by @bakshit624 | Stardance
|
bakshit624
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: truthscope by @bakshit624 | Stardance
|
1793116057.5501432
|
1793720857.5501432
|
|
59032
|
trum by @HANO | Stardance
|
HANO
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: trum by @HANO | Stardance
|
1792778105.3388138
|
1793382905.3388138
|
|
68227
|
true-odessey by @chitranshrastogi94 | Stardance
|
chitranshrastogi94
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: true-odessey by @chitranshrastogi94 | Stard Title: true-odessey by @chitranshrastogi94 | Stardance...
|
1793119840.8877814
|
1793724640.8877814
|
|
38932
|
trout by @nosrep | Stardance
|
nosrep
|
1
|
85.0
|
1696
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-13T06:51:47Z", "hours": 85.0, "multiplier": 16.67, "payout": 1696, "blessing": "neutral", "text": "welcome to trout v2! the goal of this period was to upgrade trout v1 to finally become the strongest chess engine written in haskell (it’s a cool title, ok). i believe it is done, and trout now beats the previous #1, barbarossa. writing a chess engine in haskell is hard and annoying and probably a not good use of my time, but i am stubborn and not very bright so here we are. writing a chess engine is also very annoying in general, involving thousands of hours of cpu time to test changes. everyone say thank you to my poor i7 10700k together with the +300elo (!!!) strength improvement over v1, i also corrected the engine’s time management (no more timing out in chess GUIs) and cleaned up the web interface. to play the engine, you have three options: the demo link: this has the web interface for trout. it’s the original engine compiled down to WASM with a nice ui on top. lichess bot: you can find the lichess bot link at the bottom of the demo website, @TroutBot . it’s running on an oracle free tier server and can only play two games simultaneously; if challenging it hangs, it’s probably playing 2 already. locally: if you want troutbot at peak performance, you can download a chess GUI like En Croissant or Arena, and configure the trout binary (on github releases) in the GUI. trout speaks the standard UCI protocol.", "repo": "https://github.com/Osrepnay/trout", "demo": "https://osrepnay.github.io/trout-web"}]...
|
[{"post_id": 67147, "ts": "202 [{"post_id": 67147, "ts": "2026-09-13T06:34:52Z", "hours": 1.16, "text": "I did some more frontend work! i made the chessground rank/file responsive: for some reason, the default ones are positioned by pixel offsets and break pretty quickly on smaller screens. some light css max fixes this recolored everything: stock chessground theme is kinda lame made the time slider exponential: I wanted to give a larger time range (previous is 100ms-1000ms), but everything past 1s on the high end makes it really unwieldy to set the time on the low end, where people usually play. i made it exponential, i can expand the top end (3000ms now) without the slider feeling weird. it’s easier to show than explain"}, {"post_id": 65064, "ts": "2026-09-09T22:19:08Z", "hours": 4.8239, "text": "managed to update the website to the new version. It was much easier than I expected, considering the amount of changes I’ve made. new version is better (besides just being stronger) in that I factored the iterative deepening code out, which means the website can have sensible time settings now instead of the stupid “max time per depth” thing it had before. I also implemented IIR (internal iterative reductions). I’ve tried it like 10 times before, but this specific version worked for some reason. +28 elo! engine is now safely better than barbarossa."}, {"post_id": 64248, "ts": "2026-09-08T14:43:59Z", "hours": 0.6486, "text": "2.0 release has been tagged! i set up a dockerfile to make static linux binaries and created a windows github action to make the windows binaries. I also finished the test against the last version of the engine:"}, {"post_id": 63549, "ts": "2026-09-07T13:53:00Z", "hours": 4.9844, "text": "it is done….. i think trout is the strongest haskell engine now (i made the passed pawn bonus tunable per-rank, which added around 20 elo. re-tested some other search stuff but they all kinda sucked) i think i’m going to work on polishing the frontend now, tag a 2.0 release soon."}, {"post_id": 62696, "ts": "2026-09-06T05:49:18Z", "hours": 8.5936, "text": "i’ve been doing some tuner work, it’s not great the old tuner was pretty bad. very janky, repeated code, very hard to read, and sloooowwww…. i optimized it by precomputing the factors for each position so it’s just a bunch of multiplications to get the score. upside: order of magnitude speed improvement. downside: 20+ gb memory…. other problem is that the new tuner’s results are not great. they aren’t horribly bad like some other tests, but the gains aren’t as big as i was expecting. this might be a data quality issue? i might write proper datagen code at some point instead of just relying on the output of SPRT tests. I did get a nice 7 elo from removing floating point ops in eval, so that’s nice i guess. i can smell the goal already. Soon (i would attach a picture of the 20gb but i’m kinda running a sprt right now… maybe next time)"}, {"post_id": 60920, "ts": "2026-09-03T16:06:58Z", "hours": 9.0614, "text": "big gap! some stuff came up and i don’t fully remember what i’ve done since the last devlog. git log tells me i did some minor logic fixes and added SEE pruning in pvs (32 elo), which prunes nodes based on their static exchange evaluation. i do remember that the current version of the engine can beat barbarossa at LTC now. STC it still loses (i.e. my engine scales better… glass half full), but I am now working on eval tuning to hopefully bump the elo up some more. i am now working on this through ssh. negative: lag. positive: there is almost nothing running on my computer aside from the language server. should make testing easier and more predictable"}, {"post_id": 43577, "ts": "2026-08-08T22:09:51Z", "hours": 8.8139, "text": "i’m now within 100 elo of my target, but it’s still not looking great. it seems i have hit another wall. there’s this copypasta around chess programming circles with a rough order of search features to implement, and i’ve tried 3 in a row, none doing much. since last time, i’ve just added two things that have gained elo: history decay tweak (10 elo): after searching a position, decay history by 50% instead of 80%, helps retain memory from previous searches check extensions (23 elo): extend a search by 1 more move if in check. it’s very simple. i’ve since tried IIR (internal iterative reductions), SEE pruning in PVS (more moveloop pruning), and continuation history (like the history heuristic, but More™️). only continuation history has kinda done something, but only when comparing against a version that’s just as slow; when comparing against the original, it’s much closer because for some reason continuation history slows down the search by almost 10% (??????). The main slow-down-er seems to be indexing the continuation history array, which is absolutely baffling to me. i’ve even tried to start reading the GHC Core again, until i remembered why it was so painful last time."}, {"post_id": 41607, "ts": "2026-08-05T22:20:00Z", "hours": 8.6608, "text": "a lot of changes in this batch, but not all of them were for strength. here’s a quick runthrough of the elo-affecting changes: add improving heuristic to rfp (prune more nodes while improving) add staticEval >= beta guard to nmp (restrict the usage of null move pruning to moves that already seem good from static eval) futility pruning (very similar to reverse futility pruning - removes quiet moves when static eval is pretty far below alpha) tempo bonus (side to move gets a bonus to eval for having tempo) add quiescence search results to transposition table (i had this in the old version but i guess i forgot to port it over until now) soft time bounds in search (instead of searching for as long as possible and nuking the search thread mid-search, stop iterative deepening if it looks like the next node will take too long) to fix this, i moved the timing-out logic inside the search function, which is what most engines do. I didn’t do this earlier because 1. it’s marginally harder and 2. it would require making the search functions IO instead of ST. ST is escapable, so it’s more pure, so this was kinda a bummer to do, but i didn’t see any way to get around this. here’s a graph i made while i was looking at aspiration windows more. it shows the average centipawn change between successive depths of search. the current aspiration window implementation assumes that depth and avg cp change is inversely related, but it doesn’t look like this is true. (what is the hump doing??) I tried a couple of aspiration window implementations that don’t make this assumption but didn’t get anything huge. I’ll probably replace it at some point."}, {"post_id": 39895, "ts": "2026-08-03T05:39:33Z", "hours": 5.7494, "text": "the engine is finally in the strongest state it’s ever been! (i think) for those who have not been obsessively following this project, the search part of the engine has gone through two rewrites now. i kept hitting walls where i really shouldn’t have; improvements that should have been huge gains did a lot less than expected. i did the rewrites in an attempt to find a potential bug that would kill future attempts at improvements, but i never really found anything significant. i never really got the engine to it’s pre-rewrites strength until now. read it and weep (~17 elo gain) -------------------------------------------------- Results of trout-exe-max vs trout-exe-asp-tweak (8+0.08, NULL, 16.000000MB, UHO_Lichess_4852_v1.epd): Elo: -16.96 +/- 14.18, nElo: -22.54 +/- 18.80 LOS: 0.94 %, DrawRatio: 33.99 %, PairsRatio: 0.82 Games: 1312, Wins: 380, Losses: 444, Draws: 488, Points: 624.0 (47.56 %) Ptnml(0-2): [63, 175, 223, 153, 42], WL/DD Ratio: 1.79 LLR: -2.98 (-101.3%) (-2.94, 2.94) [0.00, 10.00] -------------------------------------------------- it’s still not super great because elo improvements are coming slooowww and we’re still only 17 elo up with many more features than before. it’s still nice, though. implemented since last devlog: “improving” heuristic (13 elo): a position is said to be “improving” if the static evaluation now is higher than the one from a move ago. we can use this to tweak some parameters in the search, like when to cut off for LMP, which is what i did. need more testing for the other features. lmr limit (16 elo): my LMR implementation was slightly bugged and would reduce too many moves; normally the first couple are spared, but i had every move except the first reduced. negative captures below quiet moves (13 elo): for some reason, i had captures that were deemed negative by SEE (bad captures, basically - trading a queen for a pawn would be one) sorted above all quiet moves. i moved them to the bottom of move sorting. redo aspiration windows (36 elo): i redid the implementation for aspiration windows slightly. it should be smarter about bounds now. that makes around 100 elo for aspiration windows cumulatively now, which is kinda crazy here’s a picture of htop when i was running the engines against each othe for elo testing. i thought it was kinda funny"}, {"post_id": 38604, "ts": "2026-08-01T02:40:06Z", "hours": 8.2208, "text": "oh no, 8 hours i need to devlog more holy moly from last devlog, i kinda found a solution to the fail-soft problem? Most engine’s LMR implementations will re-search twice if the previous search went over alpha (lower bound). The first search has reduced depth AND a null-window around alpha (search window of 1 centipawn; searches faster, but can only tell the direction of the true search result); if this is over alpha, it’ll re-search with full depth; if this is again over alpha, it’ll re-search with full depth and full bounds. My engine was skipping the middle step and jumping from reduced depth + null window -> full depth + full bounds. Apparently this is an accepted method and it was working fine compared to the other version, EXCEPT once I switched to fail-soft on beta. in other news, I added: aspiration windows (75 elo): the initial search is normally unbounded, but aspiration windows try to clamp the search around a “guess” based on the previous depth of iterative deepening, and widen if it fails high or low. it did almost nothing before, and randomly became really good. don’t ask me why. razoring (22 elo): prunes a node if quiescence search says it’s too far below alpha. I already had it in a previous version and brought it over to the search rewrite. pretty simple, smallish elo boost. late move pruning (39 elo): prunes the latter part of move list; moves are sorted by how good they’re predicted to be, so latter moves are usually pretty garbage fixes (23 elo): small logic changes to LMR and LMP. don’t know how they didn’t lose more elo, the LMR bug was kinda bad. separate PV tracking: the PV (principal variation, the best moves for each player as calculated by the engine) was previously tracked by the transposition table, but that meant i didn’t have a lot of flexibility with the replacement strategy for the table, lest it wipe an important PV entry. tracking it separately lets me fiddle with the replacement strategy more, although I haven’t actually found one better than what I have now here’s a graph generated from a google sheet with 100k rows (!?). it’s a histogram of every time a move was marked as “currently the best”, indexed by entry. ideally, it’d be all 0, meaning the best move was searched first every time, meaning there was basically no wasted effort."}, {"post_id": 37391, "ts": "2026-07-30T02:23:34Z", "hours": 6.5078, "text": "6.5 hours? oh man i was right, nmp only gained like 30 elo, gained much much more before. i tried to hunt down anything weird but i had to leave it at that. i also implemented pruning in quiescence search, so the engine only searches moves that have a positive static exchange evaluation (essentially, the result of all trades on a particular square). i also accidentally found out my engine was doing fail-hard on beta cutoffs instead of fail-soft! in a fail-soft framework, the search is allowed to return outside of the bounds set by the alpha and beta parameters (it’s hard to explain succinctly here and i don’t want to keep doing it, search up alpha-beta search if you’re interested). thus, alpha and beta are soft bounds. this means each search returns more information about the move score. i successfully did fail-soft on the alpha (lower bound) side, but not on the beta side due to what i can only assume is a coding mistake. the problem is, when switching to fail-soft on beta, the engine lost like 30 elo! i bisected the change to the LMR (late move reductions) patch, but still have no idea why LMR doesn’t play nice with fail-soft beta. i’m kinda at the end of my rope here, i might just have to eat the elo loss…"}, {"post_id": 36088, "ts": "2026-07-27T23:22:04Z", "hours": 5.5464, "text": "I finally got RFP to gain! but it might not be as good as it seems… ive been struggling to get rfp, a pretty basic improvement, to actually do anything, and redid everything search step-by-step to make sure i didn’t do anything wrong. so far, i’ve added back SEE move ordering, butterfly heuristic, PVS, transposition table move ordering, and RFP. however, i don’t think this actually fixes my problem; the code is largely the same aside from some parameter changes, so my theory is that rfp is only working now because i added everything back in a different order, and now i might struggle with adding back different features that aren’t gaining anymore. i’m currently testing null move pruning (based on the null move observation: doing something is basically always better than doing nothing), and it’s not doing as much as it used to… disturbing"}, {"post_id": 35484, "ts": "2026-07-26T23:08:41Z", "hours": 1.4153, "text": "ive nuked it…. i kept fighting rfp and talking with other people about this. apparently, rfp is one of the easiest gainers (something that gains elo/strength), and usually gains a lot, but again, nothing. i ran an overnight test of like 5000 games and the rfp version manages to LOSE 8 elo, where other people have gained 80. i’m gonna try to restart search again, but basically fully. i don’t know if this will actually do anything, but i don’t see many other choices…"}, {"post_id": 34984, "ts": "2026-07-26T03:58:38Z", "hours": 6.8525, "text": "i’ve reentered the nightmare when i last left off this project in ~september, I basically hit a wall with optimizations. I had a crapload of pruning and whatnot, but the elo of the engine didn’t really reflect it. I then did a search rewrite but got stuck on RFP (reverse futility pruning), which is supposed to gain a lot of strength but did basically nothing for me. brief (??) aside: reverse futility pruning, in simple terms, checks if the static evaluation (evaluation without searching moves) is above beta (if a move scores above beta, it’s “too good,” and the opponent won’t allow that position to happen in the first place) by some margin. if it is, it’ll return without searching any moves, because it’s not likely that the player can lose that much material/positional advantage in whatever depth is left to search. anyway, i’m still stuck on this. I’ve re-reimplemented half the search to recheck its correctness, because correctness issues can sometimes stuff new optimizations, but it seems to be all good. RFP still doesn’t do jack. i don’t really know where to go from here. I could just ignore it, but the fact that RFP doesn’t do anything (for reference, another engine dev i talked to got like 80 elo out of RFP, which is insane) is a troubling sign and might mean something else is wrong."}, {"post_id": 34363, "ts": "2026-07-25T00:30:18Z", "hours": 3.7367, "text": "hello! trout again. i’m gonna try to get this to #1 haskell engine, but it’s been such a pain… after summer of making I did some more work on this, but hit a wall where all my changes either did nothing or gained like 10elo (which is not enough for the hundreds i need). I tried rewriting part of search but hit a wall again with the same problem, on features that should have made improvements! i’ve been fighting with the search some more trying to get reverse futility pruning to do something meaningful. in someone else’s engine, it gained i think 80+ elo in total (!!!), which is bonkers compared to the 20 or something i get on a good day. it’s not a good day, so RFP actually manages to lose elo here. i might have to rewrite search again. i don’t know how much of this is just wrong. (here’s the commented out old search)"}]...
|
Title: trout by @nosrep | Stardance
Devlogs:
hell Title: trout by @nosrep | Stardance
Devlogs:
hello! trout again. i’m gonna try to get this to #1 haskell engine, but it’s been such a pain… after summer of making I did some more work on this, but hit a wall where all my changes either did nothing or gained like 10elo (which is not enough for the hundreds i need). I tried rewriting part of search but hit a wall again with the same problem, on features that should have made improvements! i’ve been fighting with the search some more trying to get reverse futility pruning to do something meaningful. in someone else’s engine, it gained i think 80+ elo in total (!!!), which is bonkers compared to the 20 or something i get on a good day. it’s not a good day, so RFP actually manages to lose elo here. i might have to rewrite search again. i don’t know how much of this is just wrong. (here’s the commented out old search)
i’ve reentered the nightmare when i last left off this project in ~september, I basically hit a wall with optimizations. I had a crapload of pruning and whatnot, but the elo of the engine didn’t really reflect it. I then did a search rewrite but got stuck on RFP (reverse futility pruning), which is supposed to gain a lot of strength but did basically nothing for me. brief (??) aside: reverse futility pruning, in simple terms, checks if the static evaluation (evaluation without searching moves) is above beta (if a move scores above beta, it’s “too good,” and the opponent won’t allow that position to happen in the first place) by some margin. if it is, it’ll return without searching any moves, because it’s not likely that the player can lose that much material/positional advantage in whatever depth is left to search. anyway, i’m still stuck on this. I’ve re-reimplemented half the search to recheck its correctness, because correctness issues can sometimes stuff new optimizations, but it seems to be all good. RFP still doesn’t do jack. i don’t really know where to go from here. I could just ignore it, but the fact that RFP doesn’t do anything (for reference, another engine dev i talked to got like 80 elo out of RFP, which is insane) is a troubling sign and might mean something else is wrong.
ive nuked it…. i kept fighting rfp and talking with other people about this. apparently, rfp is one of the easiest gainers (something that gains elo/strength), and usually gains a lot, but again, nothing. i ran an overnight test of like 5000 games and the rfp version manages to LOSE 8 elo, where other people have gained 80. i’m gonna try to restart search again, but basically fully. i don’t know if this will actually do anything, but i don’t see many other choices…
I finally got RFP to gain! but it might not be as good as it seems… ive been struggling to get rfp, a pretty basic improvement, to actually do anything, and redid everything search step-by-step to make sure i didn’t do anything wrong. so far, i’ve added back SEE move ordering, butterfly heuristic, PVS, transposition table move ordering, and RFP. however, i don’t think this actually fixes my problem; the code is largely the same aside from some parameter changes, so my theory is that rfp is only working now because i added everything back in a different order, and now i might struggle with adding back different features that aren’t gaining anymore. i’m currently testing null move pruning (based on the null move observation: doing something is basically always better than doing nothing), and it’s not doing as much as it used to… disturbing
6.5 hours? oh man i was right, nmp only gained like 30 elo, gained much much more before. i tried to hunt down anything weird but i had to leave it at that. i also implemented pruning in quiescence search, so the engine only searches moves that have a positive static exchange evaluation (essentially, the result of all trades on a particular square). i also accidentally found out my engine was doing fail-hard on beta cutoffs instead of fail-soft! in a fail-soft framework, the search is allowed to return outside of the bounds set by the alpha and beta parameters (it’s hard to explain succinctly here and i don’t want to keep doing it, search up alpha-beta search if you’re interested). thus, alpha and beta are soft bounds. this means each search returns more information about the move score. i successfully did fail-soft on the alpha (lower bound) side, but not on the beta side due to what i can only assume is a coding mistake. the problem is, when switching to fail-soft on beta, the engine lost like 30 elo! i bisected the change to the LMR (late move reductions) patch, but still have no idea why LMR doesn’t play nice with fail-soft beta. i’m kinda at the end of my rope here, i might just have to eat the elo loss…
oh no, 8 hours i need to devlog more holy moly from last devlog, i kinda found a solution to the fail-soft problem? Most engine’s LMR implementations will re-search twice if the previous search went over alpha (lower bound). The first search has reduced depth AND a null-window around alpha (search window of 1 centipawn; searches faster, but can only tell the direction of the true search result); if this is over alpha, it’ll re-search with full depth; if this is again over alpha, it’ll re-search with full depth and full bounds. My engine was skipping the middle step and jumping from reduced depth + null window -> full depth + full bounds. Apparently this is an accepted method and it was working fine compared to the other version, EXCEPT once I switched to fail-soft on beta. in other news, I added: aspiration windows (75 elo): the initial search is normally unbounded, but aspiration windows try to clamp the search around a “guess” based on the previous depth of iterative deepening, and widen if it fails high or low. it did almost nothing before, and randomly became really good. don’t ask me why. razoring (22 elo): prunes a node if quiescence search says it’s too far below alpha. I already had it in a previous version and brought it over to the search rewrite. pretty simple, smallish elo boost. late move pruning (39 elo): prunes the latter part of move list; moves are sorted by how good they’re predicted to be, so latter moves are usually pretty garbage fixes (23 elo): small logic changes to LMR and LMP. don’t know how they didn’t lose more elo, the LMR bug was kinda bad. separate PV tracking: the PV (principal variation, the best moves for each player as calculated by the engine) was previously tracked by the transposition table, but that meant i didn’t have a lot of flexibility with the replacement strategy for the table, lest it wipe an important PV entry. tracking it separately lets me fiddle with the replacement strategy more, although I haven’t actually found one better than what I have now here’s a graph generated from a google sheet with 100k rows (!?). it’s a histogram of every time a move was marked as “currently the best”, indexed by entry. ideally, it’d be all 0, meaning the best move was searched first every time, meaning there was basically no wasted effort.
the engine is finally in the strongest state it’s ever been! (i think) for those who have not been obsessively following this project, the search part of the engine has gone through two rewrites now. i kept hitting walls where i really shouldn’t have; improvements that should have been huge gains did a lot less than expected. i did the rewrites in an attempt to find a potential bug that would kill future attempts at improvements, but i never really found anything significant. i never really got the engine to it’s pre-rewrites strength until now. read it and weep (~17 elo gain) -------------------------------------------------- Results of trout-exe-max vs trout-exe-asp-tweak (8+0.08, NULL, 16.000000MB, UHO_Lichess_4852_v1.epd): Elo: -16.96 +/- 14.18, nElo: -22.54 +/- 18.80 LOS: 0.94 %, DrawRatio: 33.99 %, PairsRatio: 0.82 Games: 1312, Wins: 380, Losses: 444, Draws: 488, Points: 624.0 (47.56 %) Ptnml(0-2): [63, 175, 223, 153, 42], WL/DD Ratio: 1.79 LLR: -2.98 (-101.3%) (-2.94, 2.94) [0.00, 10.00] -------------------------------------------------- it’s still not super great because elo improvements are coming slooowww and we’re still only 17 elo up with many more features than before. it’s still nice, though. implemented since last devlog: “improving” heuristic (13 elo): a position is said to be “improving” if the static evaluation now is higher than the one from a move ago. we can use this to tweak some parameters in the search, like when to cut off for LMP, which is what i did. need more testing for the other features. lmr limit (16 elo): my LMR implementation was slightly bugged and would reduce too many moves; normally the first couple are spared, but i had every move except the first reduced. negative captures below quiet moves (13 elo): for some reason, i had captures that were deemed negative by SEE (bad captures, basically - trading a queen for a pawn would be one) sorted above all quiet moves. i moved them to the bottom of move sorting. redo aspiration windows (36 elo): i redid the implementation for aspiration windows slightly. it should be smarter about bounds now. that makes around 100 elo for aspiration windows cumulatively now, which is kinda crazy here’s a picture of htop when i was running the engines against each othe for elo testing. i thought it was kinda funny
a lot of changes in this batch, but not all of them were for strength. here’s a quick runthrough of the elo-affecting changes: add improving heuristic to rfp (prune more nodes while improving) add staticEval >= beta guard to nmp (restrict the usage of null move pruning to moves that already seem good from static eval) futility pruning (very similar to reverse futility pruning - removes quiet moves when static eval is pretty far below alpha) tempo bonus (side to move gets a bonus to eval for having tempo) add quiescence search results to transposition table (i had this in the old version but i guess i forgot to port it over until now) soft time bounds in search (instead of searching for as long as possible and nuking the search thread mid-search, stop iterative deepening if it looks like the next node will take too long) to fix this, i moved the timing-out logic inside the search function, which is what most engines do. I didn’t do this earlier because 1. it’s marginally harder and 2. it would require making the search functions IO instead of ST. ST is escapable, so it’s more pure, so this was kinda a bummer to do, but i didn’t see any way to get around this. here’s a graph i made while i was looking at aspiration windows more. it shows the average centipawn change between successive depths of search. the current aspiration window implementation assumes that depth and avg cp change is inversely related, but it doesn’t look like this is true. (what is the hump doing??) I tried a couple of aspiration window implementations that don’t make this assumption but didn’t get anything huge. I’ll probably replace it at some point.
i’m now within 100 elo of my target, but it’s still not looking great. it seems i have hit another wall. there’s this copypasta around chess programming circles with a rough order of search features to implement, and i’ve tried 3 in a row, none doing much. since last time, i’ve just added two things that have gained elo: history decay tweak (10 elo): after searching a position, decay history by 50% instead of 80%, helps retain memory from previous searches check extensions (23 elo): extend a search by 1 more move if in check. it’s very simple. i’ve since tried IIR (internal iterative reductions), SEE pruning in PVS (more moveloop pruning), and continuation history (like the history heuristic, but More™️). only continuation history has kinda done something, but only when comparing against a version that’s just as slow; when comparing against the original, it’s much closer because for some reason continuation history slows down the search by almost 10% (??????). The main slow-down-er seems to be indexing the continuation history array, which is absolutely baffling to me. i’ve even tried to start reading the GHC Core again, until i remembered why it was so painful last time.
big gap! some stuff came up and i don’t fully remember what i’ve done since the last devlog. git log tells me i did some minor logic fixes and added SEE pruning in pvs (32 elo), which prunes nodes based on their static exchange evaluation. i do remember that the current version of the engine can beat barbarossa at LTC now. STC it still loses (i.e. my engine scales better… glass half full), but I am now working on eval tuning to hopefully bump the elo up some more. i am now working on this through ssh. negative: lag. positive: there is almost nothing running on my computer aside from the language server. should make testing easier and more predictable
i’ve been doing some tuner work, it’s not great the old tuner was pretty bad. very janky, repeated code, very hard to read, and sloooowwww…. i optimized it by precomputing the factors for each position so it’s just a bunch of multiplications to get the score. upside: order of magnitude speed improvement. downside: 20+ gb memory…. other problem is that the new tuner’s results are not great. they aren’t horribly bad like some other tests, but the gains aren’t as big as i was expecting. this might be a data quality issue? i might write proper datagen code at some point instead of just relying on the output of SPRT tests. I did get a nice 7 elo from removing floating point ops in eval, so that’s nice i guess. i can smell the goal already. Soon (i would attach a picture of the 20gb but i’m kinda running a sprt right now… maybe next time)
it is done….. i think trout is the strongest haskell engine now (i made the passed pawn bonus tunable per-rank, which added around 20 elo. re-tested some other search stuff but they all kinda sucked) i think i’m going to work on polishing the frontend now, tag a 2.0 release soon.
2.0 release has been tagged! i set up a dockerfile to make static linux binaries and created a windows github action to make the windows binaries. I also finished the test against the last version of the engine:
managed to update the website to the new version. It was much easier than I expected, considering the amount of changes I’ve made. new version is better (besides just being stronger) in that I factored the iterative deepening code out, which means the website can have sensible time settings now instead of the stupid “max time per depth” thing it had before. I also implemented IIR (internal iterative reductions). I’ve tried it like 10 times before, but this specific version worked for some reason. +28 elo! engine is now safely better than barbarossa.
I did some more frontend work! i made the chessground rank/file responsive: for some reason, the default ones are positioned by pixel offsets and break pretty quickly on smaller screens. some light css max fixes this recolored everything: stock chessground theme is kinda lame made the time slider exponential: I wanted to give a larger time range (previous is 100ms-1000ms), but everything past 1s on the high end makes it really unwieldy to set the time on the low end, where people usually play. i made it exponential, i can expand the top end (3000ms now) without the slider feeling weird. it’s easier to show than explain
Ships:
welcome to trout v2! the goal of this period was to upgrade trout v1 to finally become the strongest chess engine written in haskell (it’s a cool title, ok). i believe it is done, and trout now beats the previous #1, barbarossa. writing a chess engine in haskell is hard and annoying and probably a not good use of my time, but i am stubborn and not very bright so here we are. writing a chess engine is also very annoying in general, involving thousands of hours of cpu time to test changes. everyone say thank you to my poor i7 10700k together with the +300elo (!!!) strength improvement over v1, i also corrected the engine’s time management (no more timing out in chess GUIs) and cleaned up the web interface. to play the engine, you have three options: the demo link: this has the web interface for trout. it’s the original engine compiled down to WASM with a nice ui on top. lichess bot: you can find the lichess bot link at the bottom of the demo website, @TroutBot . it’s running on an oracle free tier server and can only play two games simultaneously; if challenging it hangs, it’s probably playing 2 already. locally: if you want troutbot at peak performance, you can download a chess GUI like En Croissant or Arena, and configure the trout binary (on github releases) in the GUI. trout speaks the standard UCI protocol....
|
1793005026.9363291
|
1793091426.9363291
|
|
71070
|
triviagame by @oyebolaademilade | Stardance
|
oyebolaademilade
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: triviagame by @oyebolaademilade | Stardance
|
1792777652.0157413
|
1793382452.0157413
|
|
71299
|
triple cam sys by @Arham_pro | Stardance
|
Arham_pro
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: triple cam sys by @Arham_pro | Stardance
|
1792928846.5228553
|
1793533646.5228553
|
|
66006
|
tripi by @amisquared | Stardance
|
amisquared
|
0
|
0.9
|
0
|
[]
|
[{"post_id": 73969, "ts": "202 [{"post_id": 73969, "ts": "2026-09-26T12:51:36Z", "hours": 0.9, "text": "tripi is a tri-function rp2040 gadget that does usb-ttl, swd, and spi flashing … and i finally got around the schematic!"}]...
|
Title: tripi by @amisquared | Stardance
Devlogs:
Title: tripi by @amisquared | Stardance
Devlogs:
tripi is a tri-function rp2040 gadget that does usb-ttl, swd, and spi flashing … and i finally got around the schematic!...
|
1793094563.6697552
|
1793699363.6697552
|
|
41588
|
trink by @epain | Stardance
|
epain
|
0
|
8.92
|
0
|
[]
|
[{"post_id": 42981, "ts": "202 [{"post_id": 42981, "ts": "2026-08-08T00:07:44Z", "hours": 5.5306, "text": "finished onshape assembly of the trinket tray! seems to be fine, just onto creating a repo, uploading files"}, {"post_id": 37284, "ts": "2026-07-29T21:45:07Z", "hours": 3.3892, "text": "i’m working on a small spinning trinket tray! i’m basically a complete noob to cad (using onshape for this ..), so this is my very basic project for designing something in 3d! so far i’ve finished the spinning base, just gotta make the actual trays next :))"}]...
|
Title: trink by @epain | Stardance
Devlogs:
i’m w Title: trink by @epain | Stardance
Devlogs:
i’m working on a small spinning trinket tray! i’m basically a complete noob to cad (using onshape for this ..), so this is my very basic project for designing something in 3d! so far i’ve finished the spinning base, just gotta make the actual trays next :))
finished onshape assembly of the trinket tray! seems to be fine, just onto creating a repo, uploading files...
|
1792810245.10048
|
1793415045.10048
|
|
43315
|
tring-bro-on-stardance by @himanshu-singh7 | Stard tring-bro-on-stardance by @himanshu-singh7 | Stardance...
|
himanshu-singh7
|
1
|
8.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-03T09:24:56Z", "hours": 8.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "i make an bot which give cat fact , jokes and weather using open-meteo", "repo": "https://github.com/rahul-gound/tring-bro-on-stardance", "demo": "https://hackclub.enterprise.slack.com/archives/C0BMK4NAVGA"}]...
|
[{"post_id": 39954, "ts": "202 [{"post_id": 39954, "ts": "2026-08-03T09:10:06Z", "hours": 8.0283, "text": "i added command like :/tring-bro-on-stardance-ping - Check bot latency, /tring-bro-on-stardance-catfact - Get a cat fact, /tring-bro-on-stardance-joke, /tring-bro-on-stardance-help, /tring-bro-on-stardance-weather and catfact tell an cat face and joke gives a jok and weathwer tell weather but /tring-bro-on-stardance-weather city"}]...
|
Title: tring-bro-on-stardance by @himanshu-singh7 Title: tring-bro-on-stardance by @himanshu-singh7 | Stardance
Devlogs:
i added command like :/tring-bro-on-stardance-ping - Check bot latency, /tring-bro-on-stardance-catfact - Get a cat fact, /tring-bro-on-stardance-joke, /tring-bro-on-stardance-help, /tring-bro-on-stardance-weather and catfact tell an cat face and joke gives a jok and weathwer tell weather but /tring-bro-on-stardance-weather city
Ships:
i make an bot which give cat fact , jokes and weather using open-meteo...
|
1793101937.8693256
|
1793188337.8693256
|
|
47359
|
trimr by @GustavsKi | Stardance
|
GustavsKi
|
0
|
8.65
|
0
|
[]
|
[{"post_id": 46226, "ts": "202 [{"post_id": 46226, "ts": "2026-08-13T09:53:56Z", "hours": 8.6503, "text": "Finished the first usable version of my video trimming tool Motivation I have several large video files with multiple audio tracks I need just small parts of each. Using a video editor just to trim those videos is quite overkill, and it would take a long time because of the encoding. The built-in video viewer on Windows can trim videos, but it keeps just one of the audio tracks and doesn’t even let the user choose which one to keep. It does just run an ffmpeg command to trim the video"}]...
|
Title: trimr by @GustavsKi | Stardance
Devlogs:
F Title: trimr by @GustavsKi | Stardance
Devlogs:
Finished the first usable version of my video trimming tool Motivation I have several large video files with multiple audio tracks I need just small parts of each. Using a video editor just to trim those videos is quite overkill, and it would take a long time because of the encoding. The built-in video viewer on Windows can trim videos, but it keeps just one of the audio tracks and doesn’t even let the user choose which one to keep. It does just run an ffmpeg command to trim the video...
|
1792511596.4866488
|
1793116396.4866488
|
|
21890
|
trhw - this ruler has wifi by @nimit | Stardance
|
nimit
|
0
|
6.93
|
0
|
[]
|
[{"post_id": 11491, "ts": "202 [{"post_id": 11491, "ts": "2026-06-18T19:32:59Z", "hours": 0.9319, "text": "Finished working on this thing and ordered the PCB!"}, {"post_id": 55874, "ts": "2024-07-02T00:00:00Z", "hours": 2.5, "text": "By this point, making this PCB was quite straightforward as well. I placed all the components and added the components. I shifted the USB C and main mcu to the left side, and the wireless stuff to the right solely because I wanted to keep both on an edge and it would look awkward and unbalanced all together. Routing is pretty easy too. The only things that needed some focus was the USB Differential pair and the QSPI length matching. I got the radio module lengths down to a 10mm difference, which isn’t that good but it should be alright :p. I might fix that later though."}, {"post_id": 55868, "ts": "2024-07-01T00:00:00Z", "hours": 3.5, "text": "I started making the schematic by referring to the RP2040 Hardware design docs, as well as the docs for the Radio Module 2 and some of the other stuff I used. Most of this time was spent back and forth reading docs, picking ICs and figuring it out. I guess at one point, that’s just how all PCBs work huh. The RP2040 is pretty standard stuff, give it 3.3V, a decent QSPI flash chip and decoupling and it works like a charm. The Radio Module 2 was a bit interesting, but I just ended up following what the docs did word for word, wireless is something I really don’t wanna fuck around and find out :/ The Buck/Boost is fun! I put in a TI TPS63001, which gives a nice 3v3 voltage with minimal stuff! I added 2 diodes to prevent backfeeding into USB or the battery, and installed a TP4056 in conjunction with everything else."}]...
|
Title: trhw - this ruler has wifi by @nimit | Star Title: trhw - this ruler has wifi by @nimit | Stardance
Devlogs:
I started making the schematic by referring to the RP2040 Hardware design docs, as well as the docs for the Radio Module 2 and some of the other stuff I used. Most of this time was spent back and forth reading docs, picking ICs and figuring it out. I guess at one point, that’s just how all PCBs work huh. The RP2040 is pretty standard stuff, give it 3.3V, a decent QSPI flash chip and decoupling and it works like a charm. The Radio Module 2 was a bit interesting, but I just ended up following what the docs did word for word, wireless is something I really don’t wanna fuck around and find out :/ The Buck/Boost is fun! I put in a TI TPS63001, which gives a nice 3v3 voltage with minimal stuff! I added 2 diodes to prevent backfeeding into USB or the battery, and installed a TP4056 in conjunction with everything else.
By this point, making this PCB was quite straightforward as well. I placed all the components and added the components. I shifted the USB C and main mcu to the left side, and the wireless stuff to the right solely because I wanted to keep both on an edge and it would look awkward and unbalanced all together. Routing is pretty easy too. The only things that needed some focus was the USB Differential pair and the QSPI length matching. I got the radio module lengths down to a 10mm difference, which isn’t that good but it should be alright :p. I might fix that later though.
Finished working on this thing and ordered the PCB!...
|
1792766973.4760656
|
1793371773.4760656
|
|
19849
|
trentOS by @thenasaplusit | Stardance
|
thenasaplusit
|
2
|
4.0
|
9
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-28T14:13:07Z", "hours": 2.0, "multiplier": 4.9, "payout": 9, "blessing": "neutral", "text": "I added a music player, the ability to resize windows, and a stupid little terminal (because what good is an OS without a terminal?). It was much easier to implement than WebOS 1 since I got the hang of the basic syntax.", "repo": "https://github.com/Hacker-Anirudh/trentOS", "demo": "https://trent.sudothelinuxwizard.com/"}, {"ship_num": 2, "ts": "2026-06-16T15:13:28Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "It’s finally done (I hate HTML/CSS/JavaScript so much this 2h project felt like a 10 hour Flutter project)! I like how the windows turned out, it gives off pre-Liquid Glass macOS vibes.", "repo": "https://github.com/Hacker-Anirudh/trentOS", "demo": "https://trent.sudothelinuxwizard.com/"}]...
|
[{"post_id": 17613, "ts": "202 [{"post_id": 17613, "ts": "2026-06-28T14:11:39Z", "hours": 0.2764, "text": "I added a meme “terminal” (not the easiest, but it was fine especially with some AI assistance). The coolest change, however, is that I added my new custom domain! It’s not HTTPS yet (thanks GitHub Pages!), but it shouldn’t matter given you don’t have to input any personal data, and I’ll add it as soon as I can."}, {"post_id": 17104, "ts": "2026-06-27T19:30:43Z", "hours": 1.5692, "text": "I added window resizing and a music toggle. The former was just a two-line CSS patch surprisingly."}, {"post_id": 9985, "ts": "2026-06-16T14:56:39Z", "hours": 0.6189, "text": "This is more like it, just need to add content to the other apps (and another function, I thought of this “Shut down” button that does window.close in JS."}, {"post_id": 9945, "ts": "2026-06-16T13:59:05Z", "hours": 0.3786, "text": "Looks a lot more presentable now, but still need to add some more logic."}, {"post_id": 9897, "ts": "2026-06-16T11:55:03Z", "hours": 0.82, "text": "Is it bad it took me 48 minutes to come up with this?"}]...
|
Title: trentOS by @thenasaplusit | Stardance
Devl Title: trentOS by @thenasaplusit | Stardance
Devlogs:
Is it bad it took me 48 minutes to come up with this?
Looks a lot more presentable now, but still need to add some more logic.
This is more like it, just need to add content to the other apps (and another function, I thought of this “Shut down” button that does window.close in JS.
I added window resizing and a music toggle. The former was just a two-line CSS patch surprisingly.
I added a meme “terminal” (not the easiest, but it was fine especially with some AI assistance). The coolest change, however, is that I added my new custom domain! It’s not HTTPS yet (thanks GitHub Pages!), but it shouldn’t matter given you don’t have to input any personal data, and I’ll add it as soon as I can.
Ships:
It’s finally done (I hate HTML/CSS/JavaScript so much this 2h project felt like a 10 hour Flutter project)! I like how the windows turned out, it gives off pre-Liquid Glass macOS vibes.
I added a music player, the ability to resize windows, and a stupid little terminal (because what good is an OS without a terminal?). It was much easier to implement than WebOS 1 since I got the hang of the basic syntax....
|
1793080127.8097873
|
1793166527.8097873
|
|
6957
|
trell0 by @pizzalover125 | Stardance
|
pizzalover125
|
0
|
14.0
|
0
|
[]
|
[{"post_id": 20340, "ts": "202 [{"post_id": 20340, "ts": "2026-07-01T22:18:40Z", "hours": 1.0, "text": "implemented checkboxes! idk why i didn’t add this earlier; this feature is super essential to the app. i focused a lot on the animation part, as that’s my priority for this project."}, {"post_id": 18029, "ts": "2026-06-29T00:15:49Z", "hours": 0.0, "text": "i was trying to implement a feature when pretty much everything broke. i reverted to the old commit and decided to refactor the code to be more readable!"}, {"post_id": 17978, "ts": "2026-06-28T22:50:42Z", "hours": 1.0, "text": "implemented link sharing! basically, it saves your board state, packages it up into a string of characters, and makes it sharable with anyone in the world.this was an interesting feature to add, as I’ve never done something like this before."}, {"post_id": 16370, "ts": "2026-06-26T17:12:48Z", "hours": 2.0, "text": "fixed a lot of visual bugs with delays, including one major one with the cards disappearing on mobile. i fixed that, but in order to test it, I needed to deploy it on vercel. I did so, and it worked! try it out at trell0.vercel.app!"}, {"post_id": 13804, "ts": "2026-06-22T16:58:59Z", "hours": 1.0, "text": "implemented board management! now, you can manage all your projects. i have the same animation style as the rest of the application. there were several bugs with the animations, but I got them all fixed up!"}, {"post_id": 13234, "ts": "2026-06-21T17:47:35Z", "hours": 2.0, "text": "completely redesigned the project! no more icons; everything accessible through command palette (CMD + SHIFT + P) centered grainy gradient background that looks epic changing backgrounds has epic animations no more columns; made the UI too cluttered. going to add board management to manage several projects i tried to add liquid glass like apple, but there were just too many bugs."}, {"post_id": 11760, "ts": "2026-06-19T04:27:13Z", "hours": 0.0, "text": "added undo/redo! it was pretty easy to add ngl; it works as you would expect"}, {"post_id": 11446, "ts": "2026-06-18T18:31:02Z", "hours": 0.0, "text": "implemented a favicon that automatically changes based on the current theme. the favicon is generated using a canvas element, creating a gradient based on the theme’s colors."}, {"post_id": 11025, "ts": "2026-06-18T01:44:22Z", "hours": 0.0, "text": "implemented mobile support! now, the website works on all devices, including smart phones. it was pretty easy but I still faced a couple of small bugs."}, {"post_id": 10984, "ts": "2026-06-18T00:29:01Z", "hours": 2.0, "text": "implemented column support! now you can create as many columns as you want, edit their titles, and more! there were A LOT of visual errors but I eventually got through them all!"}, {"post_id": 9586, "ts": "2026-06-15T23:34:09Z", "hours": 1.0, "text": "implemented card tags! now you can add tags to your cards. example cards include school, work, personal, extracurriculars, etc."}, {"post_id": 5010, "ts": "2026-06-08T17:34:39Z", "hours": 0.0, "text": "tried to add column management but it worked out to be super clunky and just terrible to use. i decided to revert my changes and start afresh. i added more themes!"}, {"post_id": 4713, "ts": "2026-06-08T04:17:37Z", "hours": 0.0, "text": "created a landing page! i was originally going to make it a lot bulkier like https://www.notion.com , but eventually decided to keep it minimalist to fit the vibe."}, {"post_id": 4349, "ts": "2026-06-07T17:09:41Z", "hours": 2.0, "text": "created a command pallete! omg this is actually super cool. simply press CMD+SHIFT+P and access everything you could possibly need to interact with the website! i’ve added a timer, stopwatch, and Pomdoro timer!"}, {"post_id": 3890, "ts": "2026-06-06T23:56:25Z", "hours": 0.0, "text": "implemented upload/download in JSON format! it works like a charm :)"}, {"post_id": 3870, "ts": "2026-06-06T23:12:23Z", "hours": 1.0, "text": "(these were originally 2 devlogs but there was some problems with my wifi so ill combine this into 1) added slick animations that give the app so much more polish! there were so many visual bugs but i got them all figured out! added dark mode!"}, {"post_id": 2274, "ts": "2026-06-04T17:49:40Z", "hours": 1.0, "text": "built the MVP for this minimalist trello board features include: custom colors clean UI local storage what i plan to add next? animations! i want to make this the cleanest thing ever"}]...
|
Title: trell0 by @pizzalover125 | Stardance
Devlo Title: trell0 by @pizzalover125 | Stardance
Devlogs:
built the MVP for this minimalist trello board features include: custom colors clean UI local storage what i plan to add next? animations! i want to make this the cleanest thing ever
(these were originally 2 devlogs but there was some problems with my wifi so ill combine this into 1) added slick animations that give the app so much more polish! there were so many visual bugs but i got them all figured out! added dark mode!
implemented upload/download in JSON format! it works like a charm :)
created a command pallete! omg this is actually super cool. simply press CMD+SHIFT+P and access everything you could possibly need to interact with the website! i’ve added a timer, stopwatch, and Pomdoro timer!
created a landing page! i was originally going to make it a lot bulkier like https://www.notion.com , but eventually decided to keep it minimalist to fit the vibe.
tried to add column management but it worked out to be super clunky and just terrible to use. i decided to revert my changes and start afresh. i added more themes!
implemented card tags! now you can add tags to your cards. example cards include school, work, personal, extracurriculars, etc.
implemented column support! now you can create as many columns as you want, edit their titles, and more! there were A LOT of visual errors but I eventually got through them all!
implemented mobile support! now, the website works on all devices, including smart phones. it was pretty easy but I still faced a couple of small bugs.
implemented a favicon that automatically changes based on the current theme. the favicon is generated using a canvas element, creating a gradient based on the theme’s colors.
added undo/redo! it was pretty easy to add ngl; it works as you would expect
completely redesigned the project! no more icons; everything accessible through command palette (CMD + SHIFT + P) centered grainy gradient background that looks epic changing backgrounds has epic animations no more columns; made the UI too cluttered. going to add board management to manage several projects i tried to add liquid glass like apple, but there were just too many bugs.
implemented board management! now, you can manage all your projects. i have the same animation style as the rest of the application. there were several bugs with the animations, but I got them all fixed up!
fixed a lot of visual bugs with delays, including one major one with the cards disappearing on mobile. i fixed that, but in order to test it, I needed to deploy it on vercel. I did so, and it worked! try it out at trell0.vercel.app!
implemented link sharing! basically, it saves your board state, packages it up into a string of characters, and makes it sharable with anyone in the world.this was an interesting feature to add, as I’ve never done something like this before.
i was trying to implement a feature when pretty much everything broke. i reverted to the old commit and decided to refactor the code to be more readable!
implemented checkboxes! idk why i didn’t add this earlier; this feature is super essential to the app. i focused a lot on the animation part, as that’s my priority for this project....
|
1792925329.3548198
|
1793789329.3548198
|