|
32547
|
remote-controlled drone by @maximehoebanxd | Stard remote-controlled drone by @maximehoebanxd | Stardance...
|
maximehoebanxd
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: remote-controlled drone by @maximehoebanxd Title: remote-controlled drone by @maximehoebanxd | Stardance...
|
1793332636.9507532
|
1793937436.9507532
|
|
1197
|
Tha Meaty Player by @trixieatwbs | Stardance
|
trixieatwbs
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-03T15:48:22Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "MPO is in the media folder on the repository. Anyway, I’ve had media player in the past for wackybox.org obviously but it kinda sucked. So I took inspiration from an old scratch project of mine and made this glorious load of crap. Enjoy, or maybe don’t", "repo": "https://github.com/wackyboxincorporated/wackyinc/", "demo": "https://wackybox.org/media"}]...
|
[{"post_id": 1463, "ts": "2026 [{"post_id": 1463, "ts": "2026-06-03T14:49:21Z", "hours": 0.4267, "text": "It’s alive"}, {"post_id": 308, "ts": "2026-06-01T15:56:13Z", "hours": 0.4347, "text": "dialing in the uh, the . “auto sync” soo maybe you can have like . a bunch of devices playing off the server that are all synced down to the millisecond! looks great on an OLED i guess."}]...
|
Title: Tha Meaty Player by @trixieatwbs | Stardanc Title: Tha Meaty Player by @trixieatwbs | Stardance
Devlogs:
dialing in the uh, the . “auto sync” soo maybe you can have like . a bunch of devices playing off the server that are all synced down to the millisecond! looks great on an OLED i guess.
It’s alive
Ships:
MPO is in the media folder on the repository. Anyway, I’ve had media player in the past for wackybox.org obviously but it kinda sucked. So I took inspiration from an old scratch project of mine and made this glorious load of crap. Enjoy, or maybe don’t...
|
1793332637.8863466
|
1793419037.8863466
|
|
32402
|
Physlabs by @Ftufdfy | Stardance
|
Ftufdfy
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Physlabs by @Ftufdfy | Stardance
|
1793332639.1100996
|
1793937439.1100996
|
|
8436
|
My awesome macropad! by @vanshy2401 | Stardance
|
vanshy2401
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @vanshy2401 | Stard Title: My awesome macropad! by @vanshy2401 | Stardance...
|
1793332640.0340457
|
1793937440.0340457
|
|
26370
|
Satellite Tracker by @sanjaybinayak778 | Stardance
|
sanjaybinayak778
|
1
|
6.0
|
55
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-28T06:51:32Z", "hours": 6.0, "multiplier": 9.46, "payout": 55, "blessing": "neutral", "text": "I made a website to track Satellites by their norad IDs using python to fetch TLE by given Norad id or Id inputted by user from space-track.org, then server.js to dump it into JSON format and then my main.js file calculates it’s position and animates it. most challenging part was to animate earth and satellites ( then i remembered i can use cesium’s example code as reference, I really suck at making UI). also I hat a hard time figuring out how can i take user input and give it to py file ( but it turned out to be simpler than i imagined) how to use it => you can either see location and trajectory of satellite that are already present. OR => you can search any satellite by entering their norad id (google it) in given box. (you ca send me suggestions to add new features or wait for my next update)", "repo": "https://github.com/SanjayBinayak/Sattelite-tracker", "demo": "https://tracker.sanjaybinayak.hackclub.app/"}]...
|
[{"post_id": 17426, "ts": "202 [{"post_id": 17426, "ts": "2026-06-28T06:26:33Z", "hours": 0.9675, "text": "I finally pushed it into render. Now it can run 24/7"}, {"post_id": 16956, "ts": "2026-06-27T15:06:41Z", "hours": 2.85, "text": "I created track satellite function where user can enter and track their satellite, also i added some more satellite as preview. ( I had a hard time to figure out how can i norad entered by user but it turned out to be simpler than i expected)"}, {"post_id": 16367, "ts": "2026-06-26T17:09:58Z", "hours": 1.9986, "text": "hello coders! I Tracked ISS and predicted it’s trajectory using space-track.org to fetch it’s TLE in python and calculated it’s coordinates and trajectory using satellite.js and animated it in my web page using cisium.js ( It took me more than 4 hours but my hackatime was not working although I tried to resolve this problem i hope it works)"}]...
|
Title: Satellite Tracker by @sanjaybinayak778 | St Title: Satellite Tracker by @sanjaybinayak778 | Stardance
Devlogs:
hello coders! I Tracked ISS and predicted it’s trajectory using space-track.org to fetch it’s TLE in python and calculated it’s coordinates and trajectory using satellite.js and animated it in my web page using cisium.js ( It took me more than 4 hours but my hackatime was not working although I tried to resolve this problem i hope it works)
I created track satellite function where user can enter and track their satellite, also i added some more satellite as preview. ( I had a hard time to figure out how can i norad entered by user but it turned out to be simpler than i expected)
I finally pushed it into render. Now it can run 24/7
Ships:
I made a website to track Satellites by their norad IDs using python to fetch TLE by given Norad id or Id inputted by user from space-track.org, then server.js to dump it into JSON format and then my main.js file calculates it’s position and animates it. most challenging part was to animate earth and satellites ( then i remembered i can use cesium’s example code as reference, I really suck at making UI). also I hat a hard time figuring out how can i take user input and give it to py file ( but it turned out to be simpler than i imagined) how to use it => you can either see location and trajectory of satellite that are already present. OR => you can search any satellite by entering their norad id (google it) in given box. (you ca send me suggestions to add new features or wait for my next update)...
|
1793332641.8862636
|
1793419041.8862636
|
|
13677
|
My very own WebOS by @fafa2345678 | Stardance
|
fafa2345678
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My very own WebOS by @fafa2345678 | Stardan Title: My very own WebOS by @fafa2345678 | Stardance...
|
1793332645.4811237
|
1793937445.4811237
|
|
71992
|
My awesome macropad! by @MalMal | Stardance
|
MalMal
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @MalMal | Stardance
|
1793335625.151892
|
1793940425.151892
|
|
71993
|
Retro OS 2 by @CookieePie | Stardance
|
CookieePie
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Retro OS 2 by @CookieePie | Stardance
|
1793335626.5843458
|
1793940426.5843458
|
|
71994
|
My own site! by @shantanuvashishth | Stardance
|
shantanuvashishth
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My own site! by @shantanuvashishth | Starda Title: My own site! by @shantanuvashishth | Stardance...
|
1793335627.5345929
|
1793940427.5345929
|
|
71995
|
My awesome macropad! by @Tanvi19 | Stardance
|
Tanvi19
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @Tanvi19 | Stardanc Title: My awesome macropad! by @Tanvi19 | Stardance...
|
1793335628.4473
|
1793940428.4473
|
|
71996
|
FOR STUDENTS by @Enenprime | Stardance
|
Enenprime
|
1
|
22.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-30T04:46:00Z", "hours": 22.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made it for me you and us", "repo": "https://github.com/ENENprime/Nouveau-dossier", "demo": "https://github.com/DrENEN/Nouveau-dossier"}]...
|
[{"post_id": 84724, "ts": "202 [{"post_id": 84724, "ts": "2026-10-30T04:43:10Z", "hours": 21.7992, "text": "It is a site meant to help students"}]...
|
Title: FOR STUDENTS by @Enenprime | Stardance
Dev Title: FOR STUDENTS by @Enenprime | Stardance
Devlogs:
It is a site meant to help students
Ships:
I made it for me you and us...
|
1793335629.3671799
|
1793422029.3671799
|
|
71997
|
My awesome macropad! by @aca218 | Stardance
|
aca218
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @aca218 | Stardance
|
1793335630.3325348
|
1793940430.3325348
|
|
71998
|
Frictionless by @neonzuuu | Stardance
|
neonzuuu
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Frictionless by @neonzuuu | Stardance
|
1793335631.242108
|
1793940431.242108
|
|
16988
|
My very own WebOS by @pja | Stardance
|
pja
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My very own WebOS by @pja | Stardance
|
1793335635.1316376
|
1793940435.1316376
|
|
32831
|
Development of a coaxial configuration for an RC a Development of a coaxial configuration for an RC aircraft by @Alexandr_Dezhko | Stardance...
|
Alexandr_Dezhko
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Development of a coaxial configuration for Title: Development of a coaxial configuration for an RC aircraft by @Alexandr_Dezhko | Stardance...
|
1793335636.0830839
|
1793940436.0830839
|
|
26092
|
Procedural Planet Generation by @VasilyKrupenin | Procedural Planet Generation by @VasilyKrupenin | Stardance...
|
VasilyKrupenin
|
1
|
4.91
|
62
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-27T12:43:49Z", "hours": 4.0, "multiplier": 14.14, "payout": 62, "blessing": "neutral", "text": "I made a game where you can generate your own planets by inputting a set of values. You can customize the colors, how dramatically elevation changes, you can customize the clouds, you can do a lot of things. More information on what each value does can be found in the itch.io description and the GitHub page.", "repo": "https://github.com/vkrpn/GodotPlanetProceduralGen", "demo": "https://vkrprn.itch.io/procedural-planet-generator"}]...
|
[{"post_id": 17545, "ts": "202 [{"post_id": 17545, "ts": "2026-06-28T11:34:24Z", "hours": 0.91, "text": "I had to add a bit of safeguards, more information and instructions, and a color picker because some reviewers couldn’t figure out how to use my generator and were confused why it was temporarily freezing when they set it on the max quality settings (not in a mean way, that’s on me, I should have provided more details on how to use it)."}, {"post_id": 16887, "ts": "2026-06-27T12:31:39Z", "hours": 0.5886, "text": "Fixed a few bugs and added UI scaling. I’m almost done with the project, this may even be the final devlog I post on this project."}, {"post_id": 16639, "ts": "2026-06-27T02:02:59Z", "hours": 0.3739, "text": "I fixed a few bugs, (like using the same mesh data tool for clouds and terrain, clouds not generating when radius is too high, and a few other things), nothing too visible. Here’s another demo:"}, {"post_id": 16547, "ts": "2026-06-26T22:16:37Z", "hours": 1.6194, "text": "I got carried away again and accidentally finished the project and forgot to write down devlogs😁. Anyway, I tweaked some more things about generation (I think, I don’t remember), added UI, added the generation of custom planets, and I let the user turn the planet with WASD/arrow keys and zoom with +/- or mousewheel."}, {"post_id": 16457, "ts": "2026-06-26T19:45:19Z", "hours": 0.8539, "text": "I got a bit carried away and forgot to post updates. I tweaked the terrain generation, added clouds (that rotate), and most importantly I added color, by modifying the vertex color based on height. The clouds are just simply another “planet” with only 2 terrain colors: semi-transparent white and transparent (RGBA 0 0 0 0)."}, {"post_id": 16390, "ts": "2026-06-26T17:48:43Z", "hours": 0.9267, "text": "I created a sphere with editable vertexes and I changed the height of the vertexes with Perlin noise. The way this works is by first getting the mesh data of a normal sphere and creating a new sphere with new vertices generated by a for loop."}]...
|
Title: Procedural Planet Generation by @VasilyKrup Title: Procedural Planet Generation by @VasilyKrupenin | Stardance
Devlogs:
I created a sphere with editable vertexes and I changed the height of the vertexes with Perlin noise. The way this works is by first getting the mesh data of a normal sphere and creating a new sphere with new vertices generated by a for loop.
I got a bit carried away and forgot to post updates. I tweaked the terrain generation, added clouds (that rotate), and most importantly I added color, by modifying the vertex color based on height. The clouds are just simply another “planet” with only 2 terrain colors: semi-transparent white and transparent (RGBA 0 0 0 0).
I got carried away again and accidentally finished the project and forgot to write down devlogs😁. Anyway, I tweaked some more things about generation (I think, I don’t remember), added UI, added the generation of custom planets, and I let the user turn the planet with WASD/arrow keys and zoom with +/- or mousewheel.
I fixed a few bugs, (like using the same mesh data tool for clouds and terrain, clouds not generating when radius is too high, and a few other things), nothing too visible. Here’s another demo:
Fixed a few bugs and added UI scaling. I’m almost done with the project, this may even be the final devlog I post on this project.
I had to add a bit of safeguards, more information and instructions, and a color picker because some reviewers couldn’t figure out how to use my generator and were confused why it was temporarily freezing when they set it on the max quality settings (not in a mean way, that’s on me, I should have provided more details on how to use it).
Ships:
I made a game where you can generate your own planets by inputting a set of values. You can customize the colors, how dramatically elevation changes, you can customize the clouds, you can do a lot of things. More information on what each value does can be found in the itch.io description and the GitHub page....
|
1793335637.022505
|
1793422037.022505
|
|
39720
|
Untitled project by @Entropi | Stardance
|
Entropi
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled project by @Entropi | Stardance
|
1793335638.2028396
|
1793940438.2028396
|
|
19465
|
Untitled project by @sophiasw | Stardance
|
sophiasw
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled project by @sophiasw | Stardance
|
1793335639.0824764
|
1793940439.0824764
|
|
27382
|
StickIt! An Online Sticky-Note Maker! by @Hawk | S StickIt! An Online Sticky-Note Maker! by @Hawk | Stardance...
|
Hawk
|
0
|
1.69
|
0
|
[]
|
[{"post_id": 20834, "ts": "202 [{"post_id": 20834, "ts": "2026-07-02T15:23:26Z", "hours": 0.9061, "text": "Many things have been updated for my web extension! ACCOMPLISHMENTS: I made it look prettier. This was one of the main problems I had with it, that the solid neon yellow color kind of burnt my eyes out every time I looked at it, so I decreased the intensity of the yellow. I made a cursor that follows the mouse. This cursor will follow the mouse after clicking the “create new sticky” button, and will be a visual representation of where the sticky note will be placed. WHAT I NEED TO DO Link the cursor showing up to the button being clicked. Right now, the cursor is always shown, instead of only showing when the button is clicked, and hiding when a sticky note is placed. The cursor must be able to leave the extension popup. Right now, the cursor is stuck to the bounds of the popup. Probably has to do with my HTML / JavaScript code. I’ll have to figure it out. Make sticky notes appear when the mouse is clicked. duh The actual functionality of the project must be added! In the following picture, the (+) is the cursor, and would normally follow the mouse. I had to take a picture though, so my mouse had to leave the popup."}, {"post_id": 18989, "ts": "2026-06-30T04:55:21Z", "hours": 0.7872, "text": "StickIt now has an Extention Popup! Alright: This might be a bit of a jumbled mess, but here goes! I wanted to make an extention that allowed users to store ideas in a satisfying (and sometimes slightly annoying) way. And one of the most convienent ways to store simple information in real life is on sticky notes! (In fact, I even used sticky notes while making this project!) I have never written any code in HTML, CSS, or JavaScript, but I did have coding experience from school with Java and Python, so I was up to the challenge! I watched a couple videos about the basics, then got to work. Fast forward 45 minutes of programming (3 hours of real-life time), and I was finally able to get my amazing (albeit very basic) popup up and running. In the future, I plan to actually make the “Make a new Sticky” button work, and to add satisfying animations when placing, moving, and removing sticky notes!"}]...
|
Title: StickIt! An Online Sticky-Note Maker! by @H Title: StickIt! An Online Sticky-Note Maker! by @Hawk | Stardance
Devlogs:
StickIt now has an Extention Popup! Alright: This might be a bit of a jumbled mess, but here goes! I wanted to make an extention that allowed users to store ideas in a satisfying (and sometimes slightly annoying) way. And one of the most convienent ways to store simple information in real life is on sticky notes! (In fact, I even used sticky notes while making this project!) I have never written any code in HTML, CSS, or JavaScript, but I did have coding experience from school with Java and Python, so I was up to the challenge! I watched a couple videos about the basics, then got to work. Fast forward 45 minutes of programming (3 hours of real-life time), and I was finally able to get my amazing (albeit very basic) popup up and running. In the future, I plan to actually make the “Make a new Sticky” button work, and to add satisfying animations when placing, moving, and removing sticky notes!
Many things have been updated for my web extension! ACCOMPLISHMENTS: I made it look prettier. This was one of the main problems I had with it, that the solid neon yellow color kind of burnt my eyes out every time I looked at it, so I decreased the intensity of the yellow. I made a cursor that follows the mouse. This cursor will follow the mouse after clicking the “create new sticky” button, and will be a visual representation of where the sticky note will be placed. WHAT I NEED TO DO Link the cursor showing up to the button being clicked. Right now, the cursor is always shown, instead of only showing when the button is clicked, and hiding when a sticky note is placed. The cursor must be able to leave the extension popup. Right now, the cursor is stuck to the bounds of the popup. Probably has to do with my HTML / JavaScript code. I’ll have to figure it out. Make sticky notes appear when the mouse is clicked. duh The actual functionality of the project must be added! In the following picture, the (+) is the cursor, and would normally follow the mouse. I had to take a picture though, so my mouse had to leave the popup....
|
1793335642.9070368
|
1793940442.9070368
|
|
35174
|
WarioWare Game by @Lemin4643 | Stardance
|
Lemin4643
|
0
|
2.84
|
0
|
[]
|
[{"post_id": 29783, "ts": "202 [{"post_id": 29783, "ts": "2026-07-16T21:46:43Z", "hours": 2.8419, "text": "The tutorial worked for a while but then i encountered an error trying to make the collectables so i might need to restart from scratch (I might just be unable to follow instructions😭)"}]...
|
Title: WarioWare Game by @Lemin4643 | Stardance
D Title: WarioWare Game by @Lemin4643 | Stardance
Devlogs:
The tutorial worked for a while but then i encountered an error trying to make the collectables so i might need to restart from scratch (I might just be unable to follow instructions😭)...
|
1793335643.85659
|
1793940443.85659
|
|
52648
|
My portfolio by @akshay369 | Stardance
|
akshay369
|
1
|
4.64
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-22T09:58:35Z", "hours": 4.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made my personal portfolio website. The challenging part was adding some logos to the skills section and designing. I am proud that I able to design my own website in a cool theme. And I used AI only for debugging and on planning", "repo": "https://github.com/akshaykpillai369-max/Portfolio/", "demo": "https://akshaykpillai369-max.github.io/Portfolio/"}]...
|
[{"post_id": 57336, "ts": "202 [{"post_id": 57336, "ts": "2026-08-29T13:40:29Z", "hours": 0.6436, "text": "I rewrote my code in simple html and css because the reviewer said that it is AI🥲🥲"}, {"post_id": 52207, "ts": "2026-08-22T09:33:58Z", "hours": 0.2742, "text": "Hurray!🎉🎉Completed the project. Added the contact section and did some small works on the footer and fixed some bugs"}, {"post_id": 52198, "ts": "2026-08-22T09:12:32Z", "hours": 0.5839, "text": "Added skills section. Finding logos of pgm languages and converting it to our own style is very hard guys!😂😂"}, {"post_id": 52172, "ts": "2026-08-22T08:14:53Z", "hours": 0.7031, "text": "Added projects section."}, {"post_id": 52141, "ts": "2026-08-22T07:18:37Z", "hours": 1.1181, "text": "Added the progress section."}, {"post_id": 52111, "ts": "2026-08-22T06:06:26Z", "hours": 0.3269, "text": "Added about section and styled it"}, {"post_id": 52104, "ts": "2026-08-22T05:45:20Z", "hours": 0.8594, "text": "I designed my hero section, added a navbar and footer, and styled them. I decided to go with plain CSS because the requirements explicitly mentioned that HTML + CSS were required, so I dropped Tailwind CSS."}]...
|
Title: My portfolio by @akshay369 | Stardance
Dev Title: My portfolio by @akshay369 | Stardance
Devlogs:
I designed my hero section, added a navbar and footer, and styled them. I decided to go with plain CSS because the requirements explicitly mentioned that HTML + CSS were required, so I dropped Tailwind CSS.
Added about section and styled it
Added the progress section.
Added projects section.
Added skills section. Finding logos of pgm languages and converting it to our own style is very hard guys!😂😂
Hurray!🎉🎉Completed the project. Added the contact section and did some small works on the footer and fixed some bugs
I rewrote my code in simple html and css because the reviewer said that it is AI🥲🥲
Ships:
I made my personal portfolio website. The challenging part was adding some logos to the skills section and designing. I am proud that I able to design my own website in a cool theme. And I used AI only for debugging and on planning...
|
1793335644.7950103
|
1793422044.7950103
|
|
3546
|
My first slack bot! by @asamr | Stardance
|
asamr
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @asamr | Stardance
|
1793335646.0643532
|
1793940446.0643532
|
|
36585
|
Untitled project by @nikethsneelam | Stardance
|
nikethsneelam
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled project by @nikethsneelam | Starda Title: Untitled project by @nikethsneelam | Stardance...
|
1793335646.9899669
|
1793940446.9899669
|
|
42657
|
HackerOS by @akshay369 | Stardance
|
akshay369
|
3
|
13.0
|
58
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-25T15:49:47Z", "hours": 5.0, "multiplier": 5.21, "payout": 25, "blessing": "neutral", "text": "I built HackerOS, a hacker-style web OS featuring a terminal, animated system monitor, password generator, notes app, system settings, a minimal taskbar, and desktop wallpapers. This ship included new 3 apps, network,calculator and a music player. So try it and give your feedbacks. Thankyou!", "repo": "https://github.com/akshaykpillai369-max/HackerOS", "demo": "https://akshaykpillai369-max.github.io/HackerOS"}, {"ship_num": 2, "ts": "2026-08-21T07:03:03Z", "hours": 5.0, "multiplier": 13.84, "payout": 33, "blessing": "neutral", "text": "What did you make? I built HackerOS, a hacker-style web OS featuring a terminal, animated system monitor, password generator, notes app, system settings, a minimal taskbar, and desktop wallpapers. What was challenging? My biggest hurdle was making the system monitor animated. What are you proud of? I am most proud of successfully implementing the animated system monitor and creating an intuitive, functional user interface with a nice hacker aesthetic. In future updates, I plan to add a dedicated start menu, expanded terminal commands, and more built-in utility apps in hacker aesthetic. All I want is your support. And if you have any nice features in mind, feel free to add those while rating or in the comments of Devlogs", "repo": "https://github.com/akshaykpillai369-max/HackerOS", "demo": "https://akshaykpillai369-max.github.io/HackerOS"}, {"ship_num": 3, "ts": "2026-08-19T07:39:16Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made HackerOS, a fictional hacker-style operating system interface using HTML, CSS, and JavaScript. The most challenging part was creating the booting experience and making the different windows work like an actual desktop. I’m proud that I was able to turn a simple web project into something that feels like a small operating system", "repo": "https://github.com/akshaykpillai369-max/HackerOS", "demo": "https://akshaykpillai369-max.github.io/HackerOS"}]...
|
[{"post_id": 73543, "ts": "202 [{"post_id": 73543, "ts": "2026-09-25T11:03:12Z", "hours": 1.7675, "text": "Added music app and added my very favorite 3 songs in it, guys check it out and if you have more apps in mind, feel free to comment it. I will add it"}, {"post_id": 73066, "ts": "2026-09-24T09:34:36Z", "hours": 1.4125, "text": "Added Calculator to the Hacker OS because in the previous ratings one guy said that adding a calculator and music player is good, so I added it"}, {"post_id": 73018, "ts": "2026-09-24T07:09:54Z", "hours": 0.3031, "text": "Started development of the new two apps, the calculator and the music player"}, {"post_id": 72991, "ts": "2026-09-24T05:42:18Z", "hours": 0.2594, "text": "Now I fixed the transparent background, and many of the users complained about it, so I changed that to an opaque background for the window."}, {"post_id": 72986, "ts": "2026-09-24T05:22:09Z", "hours": 1.0311, "text": "I added the most requested feature , the network app, now we can ping and scan an IP address. Check it out guys!"}, {"post_id": 51483, "ts": "2026-08-21T06:46:12Z", "hours": 0.6197, "text": "I added a small taskbar! Now, when you open any application, its name shows up on the taskbar. Go check it out guys!"}, {"post_id": 51465, "ts": "2026-08-21T06:01:05Z", "hours": 0.6628, "text": "I created Hacker Settings app, and now you can change the wallpaper. Currently, there are 3 wallpapers. Are you still reading? Stop and go try out my project, guys!"}, {"post_id": 51449, "ts": "2026-08-21T05:11:01Z", "hours": 1.0914, "text": "Added a new application: Hacker Notes, now we can save whatever we want. Next destination is Hacker settings. I am into it. Stay tuned!"}, {"post_id": 50791, "ts": "2026-08-20T05:44:17Z", "hours": 0.7919, "text": "Earlier there has a problem is js, that is when we click close button. The application window moves right, I solved that bug . It is the problem of the make draggable fn."}, {"post_id": 50718, "ts": "2026-08-20T01:50:39Z", "hours": 1.6122, "text": "Added a new app, password generator, now we can generate secure password which meets any requirement."}, {"post_id": 50136, "ts": "2026-08-19T07:18:35Z", "hours": 0.6108, "text": "Completed the System Monitor also. Also made some tweaks in the UI and in the Booting page. Soon I will add the functionality to the other two apps(Network Scanner and the Code Editor). Also you have any features in mind, feel free to share it, I will try to add that❤️"}, {"post_id": 50125, "ts": "2026-08-19T06:29:46Z", "hours": 0.5447, "text": "Hurray, The terminal is working well, type help to get the available commands . I will try to add functionality to all the 4 apps. Next going to work on System Monitor"}, {"post_id": 50117, "ts": "2026-08-19T05:50:17Z", "hours": 0.7622, "text": "Designed the website UI🎉. I added 4 applications on the website: Terminal, Network Scanner, Code editor, system Monitor. Also added background that matches the theme😅."}, {"post_id": 50089, "ts": "2026-08-19T04:41:51Z", "hours": 0.3533, "text": "Hurray🎉🎉, the booting screen is completed, now it shows the typing effect , just like we see in movies. and when the system is ready, the button will be enabled. Now going to the actual OS"}, {"post_id": 50080, "ts": "2026-08-19T04:16:37Z", "hours": 0.3336, "text": "Next, I worked on the styling, and now it looks like a hacker terminal 😅. My next target is JS. After adding JS, the booting screen will show “Initializing HackerOS”, “Loading kernel”, “Getting system ready”, etc. After the process is done, the Enter System button will become active. Boom! You entered HackerOS 😂"}, {"post_id": 50069, "ts": "2026-08-19T03:46:17Z", "hours": 0.3394, "text": "I started working on my new project Hacker OS. I made the booting screen in html, now I has to work on its styling part . And everyone dreams(mine also) of becoming a hacker and running commands and boom the system is hacked!🤯, and that is fun to see, though that’s never going to happen because hacking doesn’t work that way 😂. But we can be ethical hackers or grey hats 😂. So this project should be a good way to experience movie-level hacking. So I am working on it, and I initialized a Git repo successfully."}]...
|
Title: HackerOS by @akshay369 | Stardance
Devlogs Title: HackerOS by @akshay369 | Stardance
Devlogs:
I started working on my new project Hacker OS. I made the booting screen in html, now I has to work on its styling part . And everyone dreams(mine also) of becoming a hacker and running commands and boom the system is hacked!🤯, and that is fun to see, though that’s never going to happen because hacking doesn’t work that way 😂. But we can be ethical hackers or grey hats 😂. So this project should be a good way to experience movie-level hacking. So I am working on it, and I initialized a Git repo successfully.
Next, I worked on the styling, and now it looks like a hacker terminal 😅. My next target is JS. After adding JS, the booting screen will show “Initializing HackerOS”, “Loading kernel”, “Getting system ready”, etc. After the process is done, the Enter System button will become active. Boom! You entered HackerOS 😂
Hurray🎉🎉, the booting screen is completed, now it shows the typing effect , just like we see in movies. and when the system is ready, the button will be enabled. Now going to the actual OS
Designed the website UI🎉. I added 4 applications on the website: Terminal, Network Scanner, Code editor, system Monitor. Also added background that matches the theme😅.
Hurray, The terminal is working well, type help to get the available commands . I will try to add functionality to all the 4 apps. Next going to work on System Monitor
Completed the System Monitor also. Also made some tweaks in the UI and in the Booting page. Soon I will add the functionality to the other two apps(Network Scanner and the Code Editor). Also you have any features in mind, feel free to share it, I will try to add that❤️
Added a new app, password generator, now we can generate secure password which meets any requirement.
Earlier there has a problem is js, that is when we click close button. The application window moves right, I solved that bug . It is the problem of the make draggable fn.
Added a new application: Hacker Notes, now we can save whatever we want. Next destination is Hacker settings. I am into it. Stay tuned!
I created Hacker Settings app, and now you can change the wallpaper. Currently, there are 3 wallpapers. Are you still reading? Stop and go try out my project, guys!
I added a small taskbar! Now, when you open any application, its name shows up on the taskbar. Go check it out guys!
I added the most requested feature , the network app, now we can ping and scan an IP address. Check it out guys!
Now I fixed the transparent background, and many of the users complained about it, so I changed that to an opaque background for the window.
Started development of the new two apps, the calculator and the music player
Added Calculator to the Hacker OS because in the previous ratings one guy said that adding a calculator and music player is good, so I added it
Added music app and added my very favorite 3 songs in it, guys check it out and if you have more apps in mind, feel free to comment it. I will add it
Ships:
I made HackerOS, a fictional hacker-style operating system interface using HTML, CSS, and JavaScript. The most challenging part was creating the booting experience and making the different windows work like an actual desktop. I’m proud that I was able to turn a simple web project into something that feels like a small operating system
What did you make? I built HackerOS, a hacker-style web OS featuring a terminal, animated system monitor, password generator, notes app, system settings, a minimal taskbar, and desktop wallpapers. What was challenging? My biggest hurdle was making the system monitor animated. What are you proud of? I am most proud of successfully implementing the animated system monitor and creating an intuitive, functional user interface with a nice hacker aesthetic. In future updates, I plan to add a dedicated start menu, expanded terminal commands, and more built-in utility apps in hacker aesthetic. All I want is your support. And if you have any nice features in mind, feel free to add those while rating or in the comments of Devlogs
I built HackerOS, a hacker-style web OS featuring a terminal, animated system monitor, password generator, notes app, system settings, a minimal taskbar, and desktop wallpapers. This ship included new 3 apps, network,calculator and a music player. So try it and give your feedbacks. Thankyou!...
|
1793335647.931424
|
1793422047.931424
|
|
31287
|
My awesome macropad! by @iltukovaldiyar | Stardanc My awesome macropad! by @iltukovaldiyar | Stardance...
|
iltukovaldiyar
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @iltukovaldiyar | S Title: My awesome macropad! by @iltukovaldiyar | Stardance...
|
1793335649.1875455
|
1793940449.1875455
|
|
36420
|
Untitled project by @Vayu | Stardance
|
Vayu
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled project by @Vayu | Stardance
|
1793335650.1428428
|
1793940450.1428428
|
|
3698
|
Untitled project by @bread-n-butter | Stardance
|
bread-n-butter
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled project by @bread-n-butter | Stard Title: Untitled project by @bread-n-butter | Stardance...
|
1793335652.2522135
|
1793940452.2522135
|
|
26183
|
Frictionless by @dishajayanthi27 | Stardance
|
dishajayanthi27
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Frictionless by @dishajayanthi27 | Stardanc Title: Frictionless by @dishajayanthi27 | Stardance...
|
1793335655.717533
|
1793940455.717533
|
|
36927
|
Untitled project by @balint_ | Stardance
|
balint_
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled project by @balint_ | Stardance
|
1793335656.6588109
|
1793940456.6588109
|
|
21375
|
STANDTall by @akshay369 | Stardance
|
akshay369
|
3
|
7.0
|
37
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-25T01:01:00Z", "hours": 2.0, "multiplier": 6.33, "payout": 5, "blessing": "neutral", "text": "I built StandTall, a lightweight system tray utility designed for desk workers to encourage regular movement and help prevent back pain during long working hours. So try this and StandTall", "repo": "https://github.com/akshaykpillai369-max/StandTall", "demo": "https://github.com/akshaykpillai369-max/StandTall/releases/tag/v4.0"}, {"ship_num": 2, "ts": "2026-07-06T13:36:46Z", "hours": 2.0, "multiplier": 3.17, "payout": 5, "blessing": "neutral", "text": "I made the app modern, added more features so it is worth check in out . So try it and StandTall.", "repo": "https://github.com/akshaykpillai369-max/StandTall", "demo": "https://github.com/akshaykpillai369-max/StandTall/releases/tag/v4.0"}, {"ship_num": 3, "ts": "2026-06-29T10:05:50Z", "hours": 3.0, "multiplier": 9.57, "payout": 27, "blessing": "neutral", "text": "I made an application for those who sit more, and it is challenging to look for bugs and test the app", "repo": "https://github.com/akshaykpillai369-max/StandTall", "demo": "https://github.com/akshaykpillai369-max/StandTall/releases/tag/v4.0"}]...
|
[{"post_id": 73372, "ts": "202 [{"post_id": 73372, "ts": "2026-09-25T00:54:27Z", "hours": 1.5414, "text": "Version V4 is live. The major feature in this version is Cursor Inactivity Pause — automatically pauses the timer after five minutes of cursor inactivity and resumes when you move the cursor again. So guys, Try it and always StandTall"}, {"post_id": 23293, "ts": "2026-07-06T05:03:27Z", "hours": 0.7544, "text": "Previously, there was a bug of multiple instances running, now it is solved and new features have been added NEW FEATURES 1, Break Nudges — Full-screen overlay during eye breaks with countdown + Dismiss button. Toggle on/off in Settings. 2, Statistics Dashboard — Tracks stands and eye breaks per day. View today’s totals, all-time totals, and a 7-day bar chart. 3, Tray Tooltip — Hover the tray icon to see remaining time until next stand and eye break (Stand↑ Xm Eye Ym). 4, Auto-Update Check — “Check for Updates” button in Settings queries GitHub releases and notifies you when a newer version is available."}, {"post_id": 22226, "ts": "2026-07-04T16:18:09Z", "hours": 0.5997, "text": "StandTall Pro is now available on Windows, macOS, and Linux! This release features a completely rewritten cross-platform codebase, near-zero startup impact, a first-launch setup window, and standalone packages for all platforms. What’s new 1, 🌍 Cross-platform — works on Windows, macOS, and Linux 2, 🚀 Near-zero startup impact — CustomTkinter now loads only when you open Settings 3, 🪟 First-launch window — settings appear automatically on first run so new users can configure the app 4, 🔒 Single-instance lock — prevents duplicate app instances (works on all OS)"}, {"post_id": 20778, "ts": "2026-07-02T13:59:09Z", "hours": 0.3683, "text": "How to install it correctly 1, Download the zip file from the assets 2, Unzip it 3, Open the exe file 4, It does not show any windows at first; look at the system tray and right-click the application, then select Settings 5, Done. Now you can adjust the remainder"}, {"post_id": 18229, "ts": "2026-06-29T09:43:42Z", "hours": 2.8225, "text": "StandTall Pro is a health-focused Windows desktop utility tailored for desk-bound professionals. Operating quietly from the system tray, it helps mitigate back pain and digital eye strain by prompting users to take physical standing breaks and practice the 20-20-20 rule (looking at an object 20 feet away for 20 seconds every 20 minutes)."}]...
|
Title: STANDTall by @akshay369 | Stardance
Devlog Title: STANDTall by @akshay369 | Stardance
Devlogs:
StandTall Pro is a health-focused Windows desktop utility tailored for desk-bound professionals. Operating quietly from the system tray, it helps mitigate back pain and digital eye strain by prompting users to take physical standing breaks and practice the 20-20-20 rule (looking at an object 20 feet away for 20 seconds every 20 minutes).
How to install it correctly 1, Download the zip file from the assets 2, Unzip it 3, Open the exe file 4, It does not show any windows at first; look at the system tray and right-click the application, then select Settings 5, Done. Now you can adjust the remainder
StandTall Pro is now available on Windows, macOS, and Linux! This release features a completely rewritten cross-platform codebase, near-zero startup impact, a first-launch setup window, and standalone packages for all platforms. What’s new 1, 🌍 Cross-platform — works on Windows, macOS, and Linux 2, 🚀 Near-zero startup impact — CustomTkinter now loads only when you open Settings 3, 🪟 First-launch window — settings appear automatically on first run so new users can configure the app 4, 🔒 Single-instance lock — prevents duplicate app instances (works on all OS)
Previously, there was a bug of multiple instances running, now it is solved and new features have been added NEW FEATURES 1, Break Nudges — Full-screen overlay during eye breaks with countdown + Dismiss button. Toggle on/off in Settings. 2, Statistics Dashboard — Tracks stands and eye breaks per day. View today’s totals, all-time totals, and a 7-day bar chart. 3, Tray Tooltip — Hover the tray icon to see remaining time until next stand and eye break (Stand↑ Xm Eye Ym). 4, Auto-Update Check — “Check for Updates” button in Settings queries GitHub releases and notifies you when a newer version is available.
Version V4 is live. The major feature in this version is Cursor Inactivity Pause — automatically pauses the timer after five minutes of cursor inactivity and resumes when you move the cursor again. So guys, Try it and always StandTall
Ships:
I made an application for those who sit more, and it is challenging to look for bugs and test the app
I made the app modern, added more features so it is worth check in out . So try it and StandTall.
I built StandTall, a lightweight system tray utility designed for desk workers to encourage regular movement and help prevent back pain during long working hours. So try this and StandTall...
|
1793335657.5754852
|
1793422057.5754852
|
|
7962
|
Live CCTV for child safety with safety features im Live CCTV for child safety with safety features implementation and enforcement at daycare centers by @in_priyanshusingh | Stardance...
|
in_priyanshusingh
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Live CCTV for child safety with safety feat Title: Live CCTV for child safety with safety features implementation and enforcement at daycare centers by @in_priyanshusingh | Stardance...
|
1793335658.7717435
|
1793940458.7717435
|
|
8981
|
test by @mohnish | Stardance
|
mohnish
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: test by @mohnish | Stardance
|
1793335659.6599424
|
1793940459.6599424
|
|
6377
|
RC Plane by @yeshwanth_purusothaman | Stardance
|
yeshwanth_purusothaman
|
0
|
0.64
|
0
|
[]
|
[{"post_id": 2389, "ts": "2026 [{"post_id": 2389, "ts": "2026-06-04T20:53:17Z", "hours": 0.295, "text": "Today’s Progress: Weight Reduction & Internal Storage Today’s focus was entirely on preparing the main fuselage for its internal components. I spent the session hollowing out the core fuselage section. Why this was necessary: Weight Management: In RC aviation, every gram counts. Hollowing out the solid structure significantly reduces the airframe’s overall weight, which will lower the stall speed and improve flight efficiency. Component Housing: The G700 has a sleek profile, meaning space is at a premium. Creating a hollow internal cavity is essential to house the electronics, including the receiver, ESCs, servos, and the battery pack. Challenges & Techniques Maintaining structural integrity while removing material is a delicate balance. I had to ensure the fuselage walls remained thick enough to withstand aerodynamic forces during high-speed passes and landings, while still maximizing internal volume."}, {"post_id": 1704, "ts": "2026-06-03T21:20:55Z", "hours": 0.3456, "text": "I am working on making the fuselage aka the main body of my RC Plane. today I built the front back and cylindrical area in 3 different pieces so it fits on the printer. I will continue to work on wings and other areas"}]...
|
Title: RC Plane by @yeshwanth_purusothaman | Stard Title: RC Plane by @yeshwanth_purusothaman | Stardance
Devlogs:
I am working on making the fuselage aka the main body of my RC Plane. today I built the front back and cylindrical area in 3 different pieces so it fits on the printer. I will continue to work on wings and other areas
Today’s Progress: Weight Reduction & Internal Storage Today’s focus was entirely on preparing the main fuselage for its internal components. I spent the session hollowing out the core fuselage section. Why this was necessary: Weight Management: In RC aviation, every gram counts. Hollowing out the solid structure significantly reduces the airframe’s overall weight, which will lower the stall speed and improve flight efficiency. Component Housing: The G700 has a sleek profile, meaning space is at a premium. Creating a hollow internal cavity is essential to house the electronics, including the receiver, ESCs, servos, and the battery pack. Challenges & Techniques Maintaining structural integrity while removing material is a delicate balance. I had to ensure the fuselage walls remained thick enough to withstand aerodynamic forces during high-speed passes and landings, while still maximizing internal volume....
|
1793335660.6849773
|
1793940460.6849773
|
|
28093
|
CosmoLens by @akshay369 | Stardance
|
akshay369
|
1
|
3.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-31T14:51:35Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I built a website that uses the NASA API, and from that it shows the image and description of the NASA Astronomy Picture of the Day. Also, it has features to view past pictures of the day, go to a random date to see that day’s picture, and features a favourite section. What I felt was challenging was the first part, which is the first push; after that, things are easy compared to that, though I encountered some bugs. I am so proud that I was able to make a website like this, and I used AI because AI is essential; it helps me code faster.", "repo": "https://github.com/akshaykpillai369-max/nasa_website", "demo": "https://akshaykpillai369-max.github.io/nasa_website/"}]...
|
[{"post_id": 38204, "ts": "202 [{"post_id": 38204, "ts": "2026-07-31T14:31:39Z", "hours": 0.725, "text": "Hurray, successfully implemented the favourites section, and now we can add favourites and are able to see them in the saved section."}, {"post_id": 38171, "ts": "2026-07-31T13:02:09Z", "hours": 0.6458, "text": "Now added a button to pick a random date and show the image of that day."}, {"post_id": 38151, "ts": "2026-07-31T12:09:34Z", "hours": 0.3803, "text": "hurray, successfully implemented the date feature that is now you able to see nasa’s previous image of the day"}, {"post_id": 38142, "ts": "2026-07-31T11:37:21Z", "hours": 0.8617, "text": "Now trying to add a option to view previous days nasa’s image of the day"}, {"post_id": 38115, "ts": "2026-07-31T10:20:30Z", "hours": 0.2911, "text": "Got the site working after a lot of bugs ^-^"}]...
|
Title: CosmoLens by @akshay369 | Stardance
Devlog Title: CosmoLens by @akshay369 | Stardance
Devlogs:
Got the site working after a lot of bugs ^-^
Now trying to add a option to view previous days nasa’s image of the day
hurray, successfully implemented the date feature that is now you able to see nasa’s previous image of the day
Now added a button to pick a random date and show the image of that day.
Hurray, successfully implemented the favourites section, and now we can add favourites and are able to see them in the saved section.
Ships:
I built a website that uses the NASA API, and from that it shows the image and description of the NASA Astronomy Picture of the Day. Also, it has features to view past pictures of the day, go to a random date to see that day’s picture, and features a favourite section. What I felt was challenging was the first part, which is the first push; after that, things are easy compared to that, though I encountered some bugs. I am so proud that I was able to make a website like this, and I used AI because AI is essential; it helps me code faster....
|
1793335661.6416056
|
1793422061.6416056
|
|
36089
|
Frictionless by @danishh | Stardance
|
danishh
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Frictionless by @danishh | Stardance
|
1793335662.83326
|
1793940462.83326
|
|
26964
|
My first slack bot! by @HereForReward | Stardance
|
HereForReward
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @HereForReward | Sta Title: My first slack bot! by @HereForReward | Stardance...
|
1793335663.7710483
|
1793940463.7710483
|
|
37202
|
HACKPAD!!! by @Jazz | Stardance
|
Jazz
|
0
|
23.67
|
0
|
[]
|
[{"post_id": 59775, "ts": "202 [{"post_id": 59775, "ts": "2026-09-01T18:25:40Z", "hours": 1.3419, "text": "Corrections"}, {"post_id": 56351, "ts": "2026-08-28T02:58:22Z", "hours": 2.1133, "text": "complteted"}, {"post_id": 55465, "ts": "2026-08-27T10:21:12Z", "hours": 0.6792, "text": "Done!!"}, {"post_id": 52966, "ts": "2026-08-23T10:48:08Z", "hours": 2.1386, "text": "cad complete done"}, {"post_id": 48012, "ts": "2026-08-16T09:20:05Z", "hours": 3.7208, "text": "had many challenges but here we goo with 70% cad done*i hope"}, {"post_id": 46758, "ts": "2026-08-14T07:34:18Z", "hours": 13.6786, "text": "learning 3d modeling for my hackpad!"}]...
|
Title: HACKPAD!!! by @Jazz | Stardance
Devlogs:
l Title: HACKPAD!!! by @Jazz | Stardance
Devlogs:
learning 3d modeling for my hackpad!
had many challenges but here we goo with 70% cad done*i hope
cad complete done
Done!!
complteted
Corrections...
|
1793335664.6982503
|
1793940464.6982503
|
|
41645
|
ScriptCanvas by @M-Mrk | Stardance
|
M-Mrk
|
1
|
73.0
|
1445
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-19T12:25:53Z", "hours": 73.0, "multiplier": 19.83, "payout": 1445, "blessing": "neutral", "text": "I made a web app where you can make simple scripts to create interesting outputs. Its really fun to see what patterns and stuff you can create from very simple logic! The web app is statically hosted on github pages and does not need any server. It is build on a very performant stack. The main UI thread dispatches a request to a web worker which on a separate thread executes optimized rust WASM. That WASM compiles the script to an AST and then evaluates it a bunch of times across all the needed scopes. Finally the web worker can message the main UI thread back. This separation is needed to not freeze the UI during script evaluation, but because there is a memory separation it was very annoying to work with. I used a vanilla-ish stack with no web framework, but with TS. I learned a lot about CSS and TS/JS. Using a framework would have probably sped up development but I wanted to first really understand what a framework would need to do under the hood before moving to that. All in all I am very proud of this project! Hopefully others find the concept as interesting as I do!", "repo": "https://github.com/M-Mrk/ScriptCanvas", "demo": "https://m-mrk.github.io/ScriptCanvas/"}]...
|
[{"post_id": 70586, "ts": "202 [{"post_id": 70586, "ts": "2026-09-19T12:16:31Z", "hours": 7.545, "text": "Final touches Spelling mistakes I fixed a lot of spelling mistakes in the tutorial and help box sections. I think I should keep writing tutorials and docs to times before 1 am. Plot I also added a new output the plot ! The script gets a x value and returns the matching y value. Those pairs then get displayed on a plot using graph.js. During this addition I also reworked the core rust 🦀 engine a bit so now stuff that should be output independent, like creating a Rhai engine or compiling a Rhai script to an AST, is in its own file. Then I added the rust logic and it just returns an array of X and Y value pairs when done. Adding the UI and lifecycle stuff for the plot was rather easy because I kept everything pretty modular with easy expansion in mind. However styling the plot was rather complicated and I now have a enormous JavaScript Object detailing all the small bits and pieces to make the plot look alright! Repo PixelMatrix was always a temporary name as it is only really fitting for the grid output, so I renamed this project to ScriptCanvas. I think this is more fitting because it does use scripts and it also draws those on canvas elements! I also added a README to the repo. As testing on chrome and firefox also looked good I think I am ready to ship !"}, {"post_id": 65338, "ts": "2026-09-10T12:44:05Z", "hours": 7.6142, "text": "Help, Docs and a Tutorial Help menu and Docs I added a Help modal under the “?” button. It has some actions like opening the tutorial again and features some docs. There are docs on the specific output explaining what the output expects and listing all available variables in scope of the output. So for Grid it explains how the script will be evaluated over all pixels in a grid and the script returns an RGB value setting that pixels color. Then it lists all the variables, like ‘x’ the x-coordinate of the pixel. Tutorial I also added a short tutorial which explains how to get a running script under Grid. I hope it explains all the concepts step by step and that it is understandable. Originally it was more of a tour of the UI and explained all the buttons, but I think that most of that is pretty self explanatory and the new tutorial is better at explaining how to actually use this. Next up I will add 1 more output before shipping!"}, {"post_id": 62520, "ts": "2026-09-05T22:45:09Z", "hours": 8.4306, "text": "Coming to an end I am kind off getting frustrated with this project, I cant handle this stack anymore , I yearn for hardware again. I am aiming to finish this in the next 2 weeks! Well any ways here is what I did: Output stretching Until now the grid output was always a square, so if you had a non-square resolution it would be stretched to one. Now it actually gets the shape of the resolution and it uses the most of the usable space it can. I also added a option to return to the original method. Blur Initially I had some problems with drawing pixels to the canvas. I drew rectangles to the canvas but some image smoothing settings were adding anti-aliasing and similar stuff making the pixels look weird. I fixed that by just creating raw image data, but it was a cool effect for some situations, like generating a gradient. So I added a option to toggle this image smoothing of the browser. Sadly as it is browser based I’d probably has very different results on different browsers. Small UI I did a bunch of css fixes to make the ui more resizable and trigger a bunch of stuff on resizing. Then I added a tabbar and reduced the layout. In the normal layout the editor and output are side by side and when the screen is too small only one is shown and you can switch with the tabbar. It also moves the top bar actions into a setting pop up. Tip box Some features might not be self explanatory, so I added this small tip tool when hovering above stuff for some time. To not be stuck on this for too much longer I scrapped the idea of the landing page and I will instead add a tutorial."}, {"post_id": 55286, "ts": "2026-08-27T00:47:28Z", "hours": 8.4031, "text": "Layouting, resizing and a console Console I finally got everything working together. This means that you can now use print() and debug() in the script and it’ll output to the console ! It’ll tell you what was printed and at what pixel, e.g. [x:2|y:4] => here! . I’ve attached a diagram of why some parts of this project are really painful to work with. Its largely due to the amount of wrappers needed, because of the memory and thread separation of the web worker/wasm. Reworking this was really not fun and just doing it better the 1. time would’ve saved me a lot of time. The console won’t be in use all the time and not everyone will use it so I also wanted to limit the space it takes. I firstly reduced the standard space it gets down to 5% of the view height and then made it drag resizable. You can press and hold on the drag handle of the console and stretch it out over the output and editor. This way you can decide how much screen space you want to sacrifice. I used the pointer API so in theory this should work with all kinds of stuff from fingers to pens. In the end the console was way more css intensive then I thought as it needs some and css tomfoolery in order to scroll without blowing up the DOM. Performance increases I learned about Abstract Syntax Trees and made the wasm precompile the script to an AST before rerunning it a bunch of times with different scopes. This was another substantial performance increase decreasing the per pixel time form 0.04ms down to 0.004ms. Wow was the wasm unoptimized Error highlighting I finally added error highlighting. The line with an error now gets highlighted in the editor. During adding this feature with the Monaco editor I also accidently bumped my bundled js to 500kb . This was due to it importing a bunch of syntax stuff for different languages. Thankfully changing one Monaco.something to monaco.something resolved this QoL errors get cleared when rerunning script add resolution to script scope UI I noticed that you couldn’t resize the app to something smaller. You could however make it smaller and then reload. Meaning that it was able to come up with a good layout but something was greedy and holding on to its space. Width wise this was easy to fix by adding a dynamic sizing flag to the editor and some min-width: 0 s to some elements, but height wise i couldn’t get it to work. Turns out even with dynamic sizing the editor is still not the biggest fan of being resized so I had to add a ResizeObserver and call the editors layout method to make it reconsider its size Next up I will now implement a better UI for smaller screens, but first I need to declutter my css and html to make it more maintainable . Other additions/fixes"}, {"post_id": 52430, "ts": "2026-08-22T15:34:18Z", "hours": 9.8981, "text": "Continuing on improving the ui and some refactors Number input styling Those now also have better tui like styling. I added sqaure brackets [] to the ends, the hover background highlighting and a blinking underscore if you focus on it. Though am unsure whether it is clear enough that you are supposed to enter text into them. If you’ve got any improvement ideas let me know. Loading indicator When something is loading I can add the loading class which displays the typical tui animation spinner before it. The one made up of brail dots ⠧ Central Icon I felt that the run button could be unnoticed so I added an icon to the middle of screen. It also shows the loading to make it more clear that the script is actually being run. Error pop up Instead of just having some red text in the console I add a real error pop up with a blinking dashed red outline. Performance increase I spent some time thinking about doing a bunch of stuff to make my wasm multi threaded and async, which included using nightly features, a service worker shim to change http headers, etc. Because I felt that the script running was way too slow and I wanted better performance and the ability to easily cancel the running wasm. Currently the wasm is blocking and goes over each pixel one by one. But before I implemented that I did some other performance changes, like only creating 1 shared rhai engine for all pixels. Before every pixel created its own rhai engine. This change was way more substantial than I thought, as it took the per pixel time from 0.5ms down to 0.04ms . This means 255*255 pixel or 65k pixel don’t take 12s but 2s. This is such a change that I think implementing all the async and multi threading would just be a waste of time, so I’ll stash that idea for now. console I also styled the console part and added all the ui logic. I want to give the user the option to use a print function in there script for debugging purposes. Then in the console it’ll show on which pixel the debug comes from and what it says. But as the image can get pretty big and the user might print once or more per pixel, just adding some Nodes to a console div would probably blow up everything. So at first I experimented with a canvas. The canvas overlays on the console div and then behind it is a big spacer which allows for scrolling, some code would then change what the canvas shows based on where the back is scrolled to. After I had gotten it to display some logs nicely, I realized that this way doesn’t allow the user to highlight and copy the logs, which is probably something someone might want to do. So I switched the canvas out with a normal div. Instead of drawing the logs to a canvas the logs do get added as nodes, but only the visible ones and the scrolling changes which are shown. This way the user can interact with them like normal text and the DOM doesn’t have to render 1k+ nodes. This seems to work really good, the only problem was getting the scrolling to work while the log nodes occupy the same space, but with some css trickery and EventListeners I can pass any scrolling done on the logs through to the background scrolling element. Refactoring I am still working on the wasm part of allowing the user to use print(). While implementing that i had to change what it outputs and refactored the rust project structure. When I then got to the part where the browsers main ui thread interacts with the web worker which runs the wasm, I realized how badly that part was written, with so many loose interfaces and strings. So I am currently still refactoring that and trying not to loose my mind. Still not a big fan of and"}, {"post_id": 48552, "ts": "2026-08-17T00:09:58Z", "hours": 9.9247, "text": "New UI plans and some QoL features Features Auto clamp 🗜️ It can be really frustrating if the output exceeds 255 and everything errors out. So I added a auto clamp checkbox, which just clamps the output to the expected range of 0 to 255. Hot reload I also added a check box for hot reloading. When you stop typing, the script will automatically run. No need to press the run button. Probably a bit annoying on larger resolutions so you can disable it. New UI I also started building the real UI. Initially I just did the layout: top bar with global settings middle part with editor and output console output, where print calls and errors will go. The output part also has a tool bar with output specific settings. An explanation of the app will go on the index and it will have a link to /app where the actual stuff is. This way I don’t have to give any screen space up for an introduction when not needed. Currently the index is just a redirect. Initially I wanted to go with a windows 8 panel style UI, so nothing rounded and only big rectangular tiles. But during experimenting I made the tile only as big as its text and when the background color got highlighted it reminded me of a TUI button. So from that point on I decided to try and style my entire site like that. I think I can pull this TUI look off, but the current styling is definitely not finished. I do however already like the checkboxes, which are styled like [ ] and [*], and the dropdown select. The select was way harder to do as you can’t really style the vanilla element, as it depends on os and browser styling. So you have to create your own. I would say I learned a lot new things about css. Especially stuff like ::before and ::after are super handy for the look I am going for."}, {"post_id": 42180, "ts": "2026-08-06T19:57:02Z", "hours": 10.0303, "text": "DEMO HERE and as soon as github gets itself back together I can also push the newest changes to it! Refactor, refactor and some more refactoring Actual new features I added options to the top. You can switch the output type and script language. But seeing as there currently is only 1 language (Rhai) and 1 output type (Grid) they are kinda pointless. I also added output specific options, for Grid it is currently just the resolution. Also I added a spinner to the run button to indicate that the script is running but that didn’t work until a refactor/feature mentioned later. Refactors The rest of the time was all spent on refactoring. But I do think it was worth it and it is now way easier to add new features. Modularity I introduced a state system where each output type has its own module. Each output only exposes a common interface with a init, deinit and pipeline method. This way other parts, don’t need to deal with what output is set. Each output also deals with its specific settings and UI itself. -> I fully switched from to . I was kind of fed up with the loosey goosey attitude of javascript where nothing is really defined. Typescript doesn’t fix that entirely but does help to find a lot more bugs when writing the code and not at runtime. Vite As does need some sort of bundler/builder I set up vite for the project. This also means I can make the repo more source files only. Before I had the compiled wasm also in the repo, but now it gets compiled together with vite’s build process in the github action. Probably vite also has some other performance benefits. Web Worker As I mentioned before I added a spinner to when the script was being run to show that something is actually happening, but the that wasn’t showing. Because I had everything running off of the main thread calling the WASM blocked everything else even the UI and the browser would ask whether to close the page. The solution is to move it to a web worker, which runs in a separate thread. This was probably the most difficult thing, because it required major changes and it is a bit more complicated because of WASM. When a WASM function returns something, it normally uses a pointer to shared memory, so that there is no unnecessary cloning, but because the WASM runs in the memory of the web worker the main thread can’t access it. So I had to work around that."}, {"post_id": 39133, "ts": "2026-08-01T21:00:01Z", "hours": 5.4594, "text": "FOR CURRENT DEMO CLICK HERE Rhai support I got rhai to work. It took a bit to figure out how to expect the script to return an array of 3 u8’s, but after figuring out that all rhai numbers are i64 and then figuring out how to downsize that to u8 it works! Later I then added the current coordinates into the scope and a rand function to generate noise. Monaco A bare textarea element for script input is pretty bad so I switched to the monaco editor. Its the same one VSCode uses so most of us should be pretty familar with it and its keybinds. It took some time to figure out how to load monaco from CDN and not build locally. I also had some cosmetic bugs with the minimap, so I just disabled it as the scripts should be rather short and its not that useful anyways. Using localstorage the script now also persist between sessions. Anti-Aliasing As you can see the output isn’t clear but has these weird white lines. These do go away after running the script multiple times. This due to the browser doing some post processing like anti-aliasing on the drawn rectangles and it adds some semi-transparent pixels to the edges. This is especially bad if you pass use decimal values as coordinates to draw to the canvas, which I am doing to fit my pixels on there. I tried multiple methods to disable this post-processing for drawing filled rectangles, but nothing worked. The solution is to use a hidden canvas, draw the output at native resolution to it and then transfer the image from that canvas to the real one. The putImage function does allow me to disable post processing and adjust the destination size. Now it works and the bare minimum is here . As always you can test it here ! It automatically runs off of the latest commit."}, {"post_id": 38401, "ts": "2026-07-31T19:09:15Z", "hours": 5.5975, "text": "Idea I really like experimenting with random functions and math relations and then displaying them. So I want to make this website where you can write a script to run on every pixel and then display the result. Originally this was just rust code creating ppm pictures, but a web app is more accessible. Implementation I am still not the biggest JS fan and more comfortable with rust, so I will use WASM to make rust run in the browser. This also has some performance benefits and I can easily add scripting languages Canvas The first step was to have something I can draw pixels to with JS. I went with a canvas and drawing filled rects to it. WASM Rust to WASM seems to have a very mature pipeline and its very easy. You just write normal rust code and all functions, types, etc you want to expose to JS you can use #[wasm_bindgen] from the wasm-bindgen crate. Then after installing wasm-pack you can run wasm-pack build --target web to compile the rust to wasm. It also automatically generates the JS glue and TS headers. In JS you just have to import a init function and the exposed wasm functions you want to use. The browser does the rest! Everything will run locally in the browser, which also means we can use githubs free static hosting , which I already setup with a github action, check it out here ! Currently I have only got a bare minimum UI and no language support. Next on my list is adding Rhai support (scripting language similar to rust) and getting that to actually output some pixels."}]...
|
Title: ScriptCanvas by @M-Mrk | Stardance
Devlogs Title: ScriptCanvas by @M-Mrk | Stardance
Devlogs:
Idea I really like experimenting with random functions and math relations and then displaying them. So I want to make this website where you can write a script to run on every pixel and then display the result. Originally this was just rust code creating ppm pictures, but a web app is more accessible. Implementation I am still not the biggest JS fan and more comfortable with rust, so I will use WASM to make rust run in the browser. This also has some performance benefits and I can easily add scripting languages Canvas The first step was to have something I can draw pixels to with JS. I went with a canvas and drawing filled rects to it. WASM Rust to WASM seems to have a very mature pipeline and its very easy. You just write normal rust code and all functions, types, etc you want to expose to JS you can use #[wasm_bindgen] from the wasm-bindgen crate. Then after installing wasm-pack you can run wasm-pack build --target web to compile the rust to wasm. It also automatically generates the JS glue and TS headers. In JS you just have to import a init function and the exposed wasm functions you want to use. The browser does the rest! Everything will run locally in the browser, which also means we can use githubs free static hosting , which I already setup with a github action, check it out here ! Currently I have only got a bare minimum UI and no language support. Next on my list is adding Rhai support (scripting language similar to rust) and getting that to actually output some pixels.
FOR CURRENT DEMO CLICK HERE Rhai support I got rhai to work. It took a bit to figure out how to expect the script to return an array of 3 u8’s, but after figuring out that all rhai numbers are i64 and then figuring out how to downsize that to u8 it works! Later I then added the current coordinates into the scope and a rand function to generate noise. Monaco A bare textarea element for script input is pretty bad so I switched to the monaco editor. Its the same one VSCode uses so most of us should be pretty familar with it and its keybinds. It took some time to figure out how to load monaco from CDN and not build locally. I also had some cosmetic bugs with the minimap, so I just disabled it as the scripts should be rather short and its not that useful anyways. Using localstorage the script now also persist between sessions. Anti-Aliasing As you can see the output isn’t clear but has these weird white lines. These do go away after running the script multiple times. This due to the browser doing some post processing like anti-aliasing on the drawn rectangles and it adds some semi-transparent pixels to the edges. This is especially bad if you pass use decimal values as coordinates to draw to the canvas, which I am doing to fit my pixels on there. I tried multiple methods to disable this post-processing for drawing filled rectangles, but nothing worked. The solution is to use a hidden canvas, draw the output at native resolution to it and then transfer the image from that canvas to the real one. The putImage function does allow me to disable post processing and adjust the destination size. Now it works and the bare minimum is here . As always you can test it here ! It automatically runs off of the latest commit.
DEMO HERE and as soon as github gets itself back together I can also push the newest changes to it! Refactor, refactor and some more refactoring Actual new features I added options to the top. You can switch the output type and script language. But seeing as there currently is only 1 language (Rhai) and 1 output type (Grid) they are kinda pointless. I also added output specific options, for Grid it is currently just the resolution. Also I added a spinner to the run button to indicate that the script is running but that didn’t work until a refactor/feature mentioned later. Refactors The rest of the time was all spent on refactoring. But I do think it was worth it and it is now way easier to add new features. Modularity I introduced a state system where each output type has its own module. Each output only exposes a common interface with a init, deinit and pipeline method. This way other parts, don’t need to deal with what output is set. Each output also deals with its specific settings and UI itself. -> I fully switched from to . I was kind of fed up with the loosey goosey attitude of javascript where nothing is really defined. Typescript doesn’t fix that entirely but does help to find a lot more bugs when writing the code and not at runtime. Vite As does need some sort of bundler/builder I set up vite for the project. This also means I can make the repo more source files only. Before I had the compiled wasm also in the repo, but now it gets compiled together with vite’s build process in the github action. Probably vite also has some other performance benefits. Web Worker As I mentioned before I added a spinner to when the script was being run to show that something is actually happening, but the that wasn’t showing. Because I had everything running off of the main thread calling the WASM blocked everything else even the UI and the browser would ask whether to close the page. The solution is to move it to a web worker, which runs in a separate thread. This was probably the most difficult thing, because it required major changes and it is a bit more complicated because of WASM. When a WASM function returns something, it normally uses a pointer to shared memory, so that there is no unnecessary cloning, but because the WASM runs in the memory of the web worker the main thread can’t access it. So I had to work around that.
New UI plans and some QoL features Features Auto clamp 🗜️ It can be really frustrating if the output exceeds 255 and everything errors out. So I added a auto clamp checkbox, which just clamps the output to the expected range of 0 to 255. Hot reload I also added a check box for hot reloading. When you stop typing, the script will automatically run. No need to press the run button. Probably a bit annoying on larger resolutions so you can disable it. New UI I also started building the real UI. Initially I just did the layout: top bar with global settings middle part with editor and output console output, where print calls and errors will go. The output part also has a tool bar with output specific settings. An explanation of the app will go on the index and it will have a link to /app where the actual stuff is. This way I don’t have to give any screen space up for an introduction when not needed. Currently the index is just a redirect. Initially I wanted to go with a windows 8 panel style UI, so nothing rounded and only big rectangular tiles. But during experimenting I made the tile only as big as its text and when the background color got highlighted it reminded me of a TUI button. So from that point on I decided to try and style my entire site like that. I think I can pull this TUI look off, but the current styling is definitely not finished. I do however already like the checkboxes, which are styled like [ ] and [*], and the dropdown select. The select was way harder to do as you can’t really style the vanilla element, as it depends on os and browser styling. So you have to create your own. I would say I learned a lot new things about css. Especially stuff like ::before and ::after are super handy for the look I am going for.
Continuing on improving the ui and some refactors Number input styling Those now also have better tui like styling. I added sqaure brackets [] to the ends, the hover background highlighting and a blinking underscore if you focus on it. Though am unsure whether it is clear enough that you are supposed to enter text into them. If you’ve got any improvement ideas let me know. Loading indicator When something is loading I can add the loading class which displays the typical tui animation spinner before it. The one made up of brail dots ⠧ Central Icon I felt that the run button could be unnoticed so I added an icon to the middle of screen. It also shows the loading to make it more clear that the script is actually being run. Error pop up Instead of just having some red text in the console I add a real error pop up with a blinking dashed red outline. Performance increase I spent some time thinking about doing a bunch of stuff to make my wasm multi threaded and async, which included using nightly features, a service worker shim to change http headers, etc. Because I felt that the script running was way too slow and I wanted better performance and the ability to easily cancel the running wasm. Currently the wasm is blocking and goes over each pixel one by one. But before I implemented that I did some other performance changes, like only creating 1 shared rhai engine for all pixels. Before every pixel created its own rhai engine. This change was way more substantial than I thought, as it took the per pixel time from 0.5ms down to 0.04ms . This means 255*255 pixel or 65k pixel don’t take 12s but 2s. This is such a change that I think implementing all the async and multi threading would just be a waste of time, so I’ll stash that idea for now. console I also styled the console part and added all the ui logic. I want to give the user the option to use a print function in there script for debugging purposes. Then in the console it’ll show on which pixel the debug comes from and what it says. But as the image can get pretty big and the user might print once or more per pixel, just adding some Nodes to a console div would probably blow up everything. So at first I experimented with a canvas. The canvas overlays on the console div and then behind it is a big spacer which allows for scrolling, some code would then change what the canvas shows based on where the back is scrolled to. After I had gotten it to display some logs nicely, I realized that this way doesn’t allow the user to highlight and copy the logs, which is probably something someone might want to do. So I switched the canvas out with a normal div. Instead of drawing the logs to a canvas the logs do get added as nodes, but only the visible ones and the scrolling changes which are shown. This way the user can interact with them like normal text and the DOM doesn’t have to render 1k+ nodes. This seems to work really good, the only problem was getting the scrolling to work while the log nodes occupy the same space, but with some css trickery and EventListeners I can pass any scrolling done on the logs through to the background scrolling element. Refactoring I am still working on the wasm part of allowing the user to use print(). While implementing that i had to change what it outputs and refactored the rust project structure. When I then got to the part where the browsers main ui thread interacts with the web worker which runs the wasm, I realized how badly that part was written, with so many loose interfaces and strings. So I am currently still refactoring that and trying not to loose my mind. Still not a big fan of and
Layouting, resizing and a console Console I finally got everything working together. This means that you can now use print() and debug() in the script and it’ll output to the console ! It’ll tell you what was printed and at what pixel, e.g. [x:2|y:4] => here! . I’ve attached a diagram of why some parts of this project are really painful to work with. Its largely due to the amount of wrappers needed, because of the memory and thread separation of the web worker/wasm. Reworking this was really not fun and just doing it better the 1. time would’ve saved me a lot of time. The console won’t be in use all the time and not everyone will use it so I also wanted to limit the space it takes. I firstly reduced the standard space it gets down to 5% of the view height and then made it drag resizable. You can press and hold on the drag handle of the console and stretch it out over the output and editor. This way you can decide how much screen space you want to sacrifice. I used the pointer API so in theory this should work with all kinds of stuff from fingers to pens. In the end the console was way more css intensive then I thought as it needs some and css tomfoolery in order to scroll without blowing up the DOM. Performance increases I learned about Abstract Syntax Trees and made the wasm precompile the script to an AST before rerunning it a bunch of times with different scopes. This was another substantial performance increase decreasing the per pixel time form 0.04ms down to 0.004ms. Wow was the wasm unoptimized Error highlighting I finally added error highlighting. The line with an error now gets highlighted in the editor. During adding this feature with the Monaco editor I also accidently bumped my bundled js to 500kb . This was due to it importing a bunch of syntax stuff for different languages. Thankfully changing one Monaco.something to monaco.something resolved this QoL errors get cleared when rerunning script add resolution to script scope UI I noticed that you couldn’t resize the app to something smaller. You could however make it smaller and then reload. Meaning that it was able to come up with a good layout but something was greedy and holding on to its space. Width wise this was easy to fix by adding a dynamic sizing flag to the editor and some min-width: 0 s to some elements, but height wise i couldn’t get it to work. Turns out even with dynamic sizing the editor is still not the biggest fan of being resized so I had to add a ResizeObserver and call the editors layout method to make it reconsider its size Next up I will now implement a better UI for smaller screens, but first I need to declutter my css and html to make it more maintainable . Other additions/fixes
Coming to an end I am kind off getting frustrated with this project, I cant handle this stack anymore , I yearn for hardware again. I am aiming to finish this in the next 2 weeks! Well any ways here is what I did: Output stretching Until now the grid output was always a square, so if you had a non-square resolution it would be stretched to one. Now it actually gets the shape of the resolution and it uses the most of the usable space it can. I also added a option to return to the original method. Blur Initially I had some problems with drawing pixels to the canvas. I drew rectangles to the canvas but some image smoothing settings were adding anti-aliasing and similar stuff making the pixels look weird. I fixed that by just creating raw image data, but it was a cool effect for some situations, like generating a gradient. So I added a option to toggle this image smoothing of the browser. Sadly as it is browser based I’d probably has very different results on different browsers. Small UI I did a bunch of css fixes to make the ui more resizable and trigger a bunch of stuff on resizing. Then I added a tabbar and reduced the layout. In the normal layout the editor and output are side by side and when the screen is too small only one is shown and you can switch with the tabbar. It also moves the top bar actions into a setting pop up. Tip box Some features might not be self explanatory, so I added this small tip tool when hovering above stuff for some time. To not be stuck on this for too much longer I scrapped the idea of the landing page and I will instead add a tutorial.
Help, Docs and a Tutorial Help menu and Docs I added a Help modal under the “?” button. It has some actions like opening the tutorial again and features some docs. There are docs on the specific output explaining what the output expects and listing all available variables in scope of the output. So for Grid it explains how the script will be evaluated over all pixels in a grid and the script returns an RGB value setting that pixels color. Then it lists all the variables, like ‘x’ the x-coordinate of the pixel. Tutorial I also added a short tutorial which explains how to get a running script under Grid. I hope it explains all the concepts step by step and that it is understandable. Originally it was more of a tour of the UI and explained all the buttons, but I think that most of that is pretty self explanatory and the new tutorial is better at explaining how to actually use this. Next up I will add 1 more output before shipping!
Final touches Spelling mistakes I fixed a lot of spelling mistakes in the tutorial and help box sections. I think I should keep writing tutorials and docs to times before 1 am. Plot I also added a new output the plot ! The script gets a x value and returns the matching y value. Those pairs then get displayed on a plot using graph.js. During this addition I also reworked the core rust 🦀 engine a bit so now stuff that should be output independent, like creating a Rhai engine or compiling a Rhai script to an AST, is in its own file. Then I added the rust logic and it just returns an array of X and Y value pairs when done. Adding the UI and lifecycle stuff for the plot was rather easy because I kept everything pretty modular with easy expansion in mind. However styling the plot was rather complicated and I now have a enormous JavaScript Object detailing all the small bits and pieces to make the plot look alright! Repo PixelMatrix was always a temporary name as it is only really fitting for the grid output, so I renamed this project to ScriptCanvas. I think this is more fitting because it does use scripts and it also draws those on canvas elements! I also added a README to the repo. As testing on chrome and firefox also looked good I think I am ready to ship !
Ships:
I made a web app where you can make simple scripts to create interesting outputs. Its really fun to see what patterns and stuff you can create from very simple logic! The web app is statically hosted on github pages and does not need any server. It is build on a very performant stack. The main UI thread dispatches a request to a web worker which on a separate thread executes optimized rust WASM. That WASM compiles the script to an AST and then evaluates it a bunch of times across all the needed scopes. Finally the web worker can message the main UI thread back. This separation is needed to not freeze the UI during script evaluation, but because there is a memory separation it was very annoying to work with. I used a vanilla-ish stack with no web framework, but with TS. I learned a lot about CSS and TS/JS. Using a framework would have probably sped up development but I wanted to first really understand what a framework would need to do under the hood before moving to that. All in all I am very proud of this project! Hopefully others find the concept as interesting as I do!...
|
1793335665.9065702
|
1793422065.9065702
|
|
28806
|
My awesome macropad! by @Delilah | Stardance
|
Delilah
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @Delilah | Stardanc Title: My awesome macropad! by @Delilah | Stardance...
|
1793335667.1301916
|
1793940467.1301916
|
|
7958
|
Untitled project by @s_haaris_2025 | Stardance
|
s_haaris_2025
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled project by @s_haaris_2025 | Starda Title: Untitled project by @s_haaris_2025 | Stardance...
|
1793335668.0527396
|
1793940468.0527396
|
|
30970
|
My own site! by @temp19665 | Stardance
|
temp19665
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My own site! by @temp19665 | Stardance
|
1793335668.9247293
|
1793940468.9247293
|
|
29498
|
keysound by @immaturegoat | Stardance
|
immaturegoat
|
0
|
0.74
|
0
|
[]
|
[{"post_id": 20269, "ts": "202 [{"post_id": 20269, "ts": "2026-07-01T20:23:23Z", "hours": 0.7431, "text": "keysound Devlog 1 After making the Lenny Face-er (a stupid program that allows you to open up a menu at any time to copy and paste lenny faces), I got kind of excited at using the pynput library in python. It allows you to detect universal key presses. What better way to play with it than make it play clicking sounds! So once again, I want to make something lightweight, so I’m using tkinter for the GUI. Right now, I have the basic function of it worked out. You press a key and a sound comes out. Things I’m a little proud of Detecting when a key has already been pressed Pynput still detects a key is pressed even when it’s being held down. I don’t want a sound to be played over and over just because a key is held down. To solve this, I added a list named keys_pressed . Basically, how this works is that whenever a key is pressed, that key is added to the list through keys_pressed.append(key) and once the key is detected to be released, we remove that key by running keys_pressed.remove(key) . However, special function keys, like CTRL and ALT need to be converted to match the alphanumeric keys. Playing the sounds At first, I tested using the playsound3 library. However, it made the sounds EXTREMELY delayed. That’s because the playsound library stops everything else in your script to play the sound. That’s not what I wanted, so I used the pygame library. For some reason, mixer wasn’t working so I resorted to using the pygame-ce version (I’m too lazy to find the real issue). Anyway, it was much faster, and I also converted to using .wav files. However, when typing fast, some sounds were still not playing. I fixed this by making each sound play in a different channel, so the sounds wouldn’t cover each other up. What’s next? What I want to work on next is the GUI. I want to add a feature where users can easily switch between sounds. Right now, I have 4 different keyboard sounds, but to switch between them, you have to go into the code and find the variable called key_sound (ayo the name of the project!!) and set it to the file path. I’m gonna add buttons so it becomes an easy user experience."}]...
|
Title: keysound by @immaturegoat | Stardance
Devl Title: keysound by @immaturegoat | Stardance
Devlogs:
keysound Devlog 1 After making the Lenny Face-er (a stupid program that allows you to open up a menu at any time to copy and paste lenny faces), I got kind of excited at using the pynput library in python. It allows you to detect universal key presses. What better way to play with it than make it play clicking sounds! So once again, I want to make something lightweight, so I’m using tkinter for the GUI. Right now, I have the basic function of it worked out. You press a key and a sound comes out. Things I’m a little proud of Detecting when a key has already been pressed Pynput still detects a key is pressed even when it’s being held down. I don’t want a sound to be played over and over just because a key is held down. To solve this, I added a list named keys_pressed . Basically, how this works is that whenever a key is pressed, that key is added to the list through keys_pressed.append(key) and once the key is detected to be released, we remove that key by running keys_pressed.remove(key) . However, special function keys, like CTRL and ALT need to be converted to match the alphanumeric keys. Playing the sounds At first, I tested using the playsound3 library. However, it made the sounds EXTREMELY delayed. That’s because the playsound library stops everything else in your script to play the sound. That’s not what I wanted, so I used the pygame library. For some reason, mixer wasn’t working so I resorted to using the pygame-ce version (I’m too lazy to find the real issue). Anyway, it was much faster, and I also converted to using .wav files. However, when typing fast, some sounds were still not playing. I fixed this by making each sound play in a different channel, so the sounds wouldn’t cover each other up. What’s next? What I want to work on next is the GUI. I want to add a feature where users can easily switch between sounds. Right now, I have 4 different keyboard sounds, but to switch between them, you have to go into the code and find the variable called key_sound (ayo the name of the project!!) and set it to the file path. I’m gonna add buttons so it becomes an easy user experience....
|
1793335669.8092828
|
1793940469.8092828
|
|
21058
|
My awesome macropad! by @Salmaowda | Stardance
|
Salmaowda
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @Salmaowda | Starda Title: My awesome macropad! by @Salmaowda | Stardance...
|
1793335670.7278912
|
1793940470.7278912
|
|
10532
|
TomoToSpeech by @cWavSD | Stardance
|
cWavSD
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: TomoToSpeech by @cWavSD | Stardance
|
1793335671.6385434
|
1793940471.6385434
|
|
36740
|
WarioWare Game by @chonbok3310 | Stardance
|
chonbok3310
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: WarioWare Game by @chonbok3310 | Stardance
|
1793335673.0611112
|
1793940473.0611112
|
|
17340
|
efouh3 by @Maaz_Siddiqui | Stardance
|
Maaz_Siddiqui
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: efouh3 by @Maaz_Siddiqui | Stardance
|
1793335675.5892656
|
1793940475.5892656
|
|
70339
|
MausOS by @dahmaus | Stardance
|
dahmaus
|
1
|
3.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-19T19:29:07Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Finally done with MausOS , the most swaggy WebOS you’ve ever seen! Swagged out with music , live wallpaper , games and more. Check it out :D", "repo": "https://github.com/DahMaus/MausOS", "demo": "https://dahmaus.github.io/MausOS"}]...
|
[{"post_id": 81029, "ts": "202 [{"post_id": 81029, "ts": "2026-10-19T16:49:01Z", "hours": 1.5219, "text": "MausOS release! :D apps swag windows even more swag"}, {"post_id": 80978, "ts": "2026-10-19T14:06:16Z", "hours": 1.1642, "text": "MausOS added live wallpaper topbar music :D"}, {"post_id": 80685, "ts": "2026-10-18T14:46:01Z", "hours": 0.2658, "text": "Part1 of doing my Own WebOS!"}]...
|
Title: MausOS by @dahmaus | Stardance
Devlogs:
Pa Title: MausOS by @dahmaus | Stardance
Devlogs:
Part1 of doing my Own WebOS!
MausOS added live wallpaper topbar music :D
MausOS release! :D apps swag windows even more swag
Ships:
Finally done with MausOS , the most swaggy WebOS you’ve ever seen! Swagged out with music , live wallpaper , games and more. Check it out :D...
|
1793335676.4720232
|
1793422076.4720232
|
|
70342
|
To do list by @Aisha_Shay | Stardance
|
Aisha_Shay
|
1
|
3.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-19T19:38:18Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a chrome extension for keeping track of tasks! I added a storage as well so this could even be used for long term projects. I found it fun it wasnt really that hard. I had a lot of fun doing the html and colours. This is one of my fist projects so i got to learn alot doing this. Long term tasks, short reminders and a way to easily keep track of things. I feel like this would be really helpful in general.", "repo": "https://github.com/flowerkeji-ux/ToDo-list-Extension", "demo": "https://flowerkeji-ux.github.io/ToDo-list-Extension/"}]...
|
[{"post_id": 81073, "ts": "202 [{"post_id": 81073, "ts": "2026-10-19T19:32:14Z", "hours": 1.4106, "text": "i Think this is my final vesion. I really enjoyed this"}, {"post_id": 80730, "ts": "2026-10-18T17:10:48Z", "hours": 0.2625, "text": "I made the icon. kept the font."}, {"post_id": 80708, "ts": "2026-10-18T16:14:02Z", "hours": 1.4539, "text": "To-Do list. cant think of a good name for it .working on the icons now. dont really like the font might change it"}]...
|
Title: To do list by @Aisha_Shay | Stardance
Devl Title: To do list by @Aisha_Shay | Stardance
Devlogs:
To-Do list. cant think of a good name for it .working on the icons now. dont really like the font might change it
I made the icon. kept the font.
i Think this is my final vesion. I really enjoyed this
Ships:
I made a chrome extension for keeping track of tasks! I added a storage as well so this could even be used for long term projects. I found it fun it wasnt really that hard. I had a lot of fun doing the html and colours. This is one of my fist projects so i got to learn alot doing this. Long term tasks, short reminders and a way to easily keep track of things. I feel like this would be really helpful in general....
|
1793335677.6712358
|
1793422077.6712358
|
|
16073
|
Frictionless by @atharvrmone | Stardance
|
atharvrmone
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Frictionless by @atharvrmone | Stardance
|
1793335678.8727355
|
1793940478.8727355
|
|
32666
|
Untitled project by @ilovepi | Stardance
|
ilovepi
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled project by @ilovepi | Stardance
|
1793335679.7508097
|
1793940479.7508097
|