|
490
|
Slots Tycoon 2 by @arpanshah102 | Stardance
|
arpanshah102
|
2
|
31.0
|
412
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-18T21:55:37Z", "hours": 29.0, "multiplier": 15.94, "payout": 378, "blessing": "neutral", "text": "I made a slot machine game but with a bit more too it. It has a normal slot machine, yes, but it also has a crypto clicker and planet trading section further in the game. Currently, the planet trading isn’t fully finished but the basic functionality is. I won’t be working on this game any longer though. Since creating this, I learned react and now this code looks and is terrible to operate on. This is the last update sadly. To test everything out, you can type in “enableDevTools()” into the console and get access to the dev pannel.", "repo": "https://github.com/Arpan-Shah-102/slots-tycoon-2", "demo": "https://arpan-shah-102.github.io/slots-tycoon-2/"}, {"ship_num": 2, "ts": "2026-05-31T17:26:36Z", "hours": 2.0, "multiplier": 14.53, "payout": 34, "blessing": "neutral", "text": "I made a revamp of one of my oldest projects. It has an improved UI, upgrades, shop, themes, achievements, etc. To have an easier time testing my project, use this code in the console: “enableDevTools()”", "repo": "https://github.com/Arpan-Shah-102/slots-tycoon-2", "demo": "https://arpan-shah-102.github.io/slots-tycoon-2/"}]...
|
[{"post_id": 49191, "ts": "202 [{"post_id": 49191, "ts": "2026-08-17T20:40:39Z", "hours": 2.7411, "text": "I am half way done with working on planet modifications. I have sadly lost almost all motivation to work on this though because the code has began spaghettifying and I don’t think I can get back to that after I have tasted React."}, {"post_id": 39167, "ts": "2026-08-01T22:25:10Z", "hours": 5.8369, "text": "I have finished working on the basic trading aspect of the world section. I will now work on the modifications section."}, {"post_id": 28699, "ts": "2026-07-15T03:28:32Z", "hours": 3.4939, "text": "I have started working on The World update"}, {"post_id": 11721, "ts": "2026-06-19T02:49:40Z", "hours": 15.4992, "text": "I finished working on the crypto update."}, {"post_id": 7562, "ts": "2026-06-12T17:20:59Z", "hours": 1.6553, "text": "I started working on my crypto update."}, {"post_id": 85, "ts": "2026-05-31T17:18:28Z", "hours": 2.3158, "text": "I was working on finishing the admin panel, achievement system, and fixing minor bugs like problems with the sound system."}]...
|
Title: Slots Tycoon 2 by @arpanshah102 | Stardance Title: Slots Tycoon 2 by @arpanshah102 | Stardance
Devlogs:
I was working on finishing the admin panel, achievement system, and fixing minor bugs like problems with the sound system.
I started working on my crypto update.
I finished working on the crypto update.
I have started working on The World update
I have finished working on the basic trading aspect of the world section. I will now work on the modifications section.
I am half way done with working on planet modifications. I have sadly lost almost all motivation to work on this though because the code has began spaghettifying and I don’t think I can get back to that after I have tasted React.
Ships:
I made a revamp of one of my oldest projects. It has an improved UI, upgrades, shop, themes, achievements, etc. To have an easier time testing my project, use this code in the console: “enableDevTools()”
I made a slot machine game but with a bit more too it. It has a normal slot machine, yes, but it also has a crypto clicker and planet trading section further in the game. Currently, the planet trading isn’t fully finished but the basic functionality is. I won’t be working on this game any longer though. Since creating this, I learned react and now this code looks and is terrible to operate on. This is the last update sadly. To test everything out, you can type in “enableDevTools()” into the console and get access to the dev pannel....
|
1792975656.5730927
|
1793062056.5730927
|
|
15486
|
Personal Website by @sapu | Stardance
|
sapu
|
1
|
28.0
|
412
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-23T08:13:40Z", "hours": 28.0, "multiplier": 15.56, "payout": 412, "blessing": "neutral", "text": "It’s a personal also a portfolio website that I’m really proud of that I’m trying to achieve a game-like feel with the design, and the challenging part was making everything responsive and getting the layouts to work on different screen sizes while learning React :p", "repo": "https://github.com/savwicak/savwicak.github.io", "demo": "https://savwicak.github.io"}]...
|
[{"post_id": 72572, "ts": "202 [{"post_id": 72572, "ts": "2026-09-23T08:09:20Z", "hours": 7.5636, "text": "Added more data and made the design responsive! I’m having trouble fixing some elements so they fit properly on mobile, so I also cross-checked it on different phones :p"}, {"post_id": 71739, "ts": "2026-09-21T13:01:19Z", "hours": 8.9267, "text": "FINAL UPDATE My personal web is doneee!!! YYAYAY but I need some changes to the data. I still use dummy data to test things out (so it’s not the real one ok)"}, {"post_id": 69020, "ts": "2026-09-16T07:10:38Z", "hours": 11.0742, "text": "Hello it’s kinda late, anyway i’m posting my progress for my personal website, so i can share my experience in blog and share my favorite project, and i can organize it better, before i use bento.me for all links but suddenly the website is down so i cant acsses no more ;( THATS why i want to make my own website :D It kinda motivated me to build the project lolol. I’m trying to make a game-like UI and layout, and hopefully it looks like one. I really love this kind of UI when there are a lot of borders and outlines, like cartoon u_U, because I love games! And I want to put a lot of animation here. SORRY FOR BAD POST STRUCTURE, REALLY, I don’t know how to post devlog cleanly hehe so there are 6 pages home will appear when you enter the website, like some short introduction, projects, blogs, PHOTOS! yes, I love photography, so I will put my photos here, but I need a website to store my photos so I can use a link in the image tag, but idk which one is better :l, and the last one is a profile for more about me, like certificates and experience, something like that and I’ve done 3 pages for now (I’m really bad at deciding which final design I should use ;) ) in project, blog, and home(I’m not sure abt this one, and I will change some layout later cuz I didn’t like it) my favorite is the navigation that I made, and you need to use the TAB button then it will appear. I think that’s interesting btw, for the blog, I use Markdown. I know it’s not the best practice, but I just want to share my stories, and I use react for this project, and I’m not used to code in react and am trying to learn more thank you really"}]...
|
Title: Personal Website by @sapu | Stardance
Devl Title: Personal Website by @sapu | Stardance
Devlogs:
Hello it’s kinda late, anyway i’m posting my progress for my personal website, so i can share my experience in blog and share my favorite project, and i can organize it better, before i use bento.me for all links but suddenly the website is down so i cant acsses no more ;( THATS why i want to make my own website :D It kinda motivated me to build the project lolol. I’m trying to make a game-like UI and layout, and hopefully it looks like one. I really love this kind of UI when there are a lot of borders and outlines, like cartoon u_U, because I love games! And I want to put a lot of animation here. SORRY FOR BAD POST STRUCTURE, REALLY, I don’t know how to post devlog cleanly hehe so there are 6 pages home will appear when you enter the website, like some short introduction, projects, blogs, PHOTOS! yes, I love photography, so I will put my photos here, but I need a website to store my photos so I can use a link in the image tag, but idk which one is better :l, and the last one is a profile for more about me, like certificates and experience, something like that and I’ve done 3 pages for now (I’m really bad at deciding which final design I should use ;) ) in project, blog, and home(I’m not sure abt this one, and I will change some layout later cuz I didn’t like it) my favorite is the navigation that I made, and you need to use the TAB button then it will appear. I think that’s interesting btw, for the blog, I use Markdown. I know it’s not the best practice, but I just want to share my stories, and I use react for this project, and I’m not used to code in react and am trying to learn more thank you really
FINAL UPDATE My personal web is doneee!!! YYAYAY but I need some changes to the data. I still use dummy data to test things out (so it’s not the real one ok)
Added more data and made the design responsive! I’m having trouble fixing some elements so they fit properly on mobile, so I also cross-checked it on different phones :p
Ships:
It’s a personal also a portfolio website that I’m really proud of that I’m trying to achieve a game-like feel with the design, and the challenging part was making everything responsive and getting the layouts to work on different screen sizes while learning React :p...
|
1793008048.9678998
|
1793094448.9678998
|
|
9936
|
Relay by @InvalidJoker | Stardance
|
InvalidJoker
|
2
|
27.0
|
411
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-11T21:09:50Z", "hours": 9.0, "multiplier": 17.24, "payout": 161, "blessing": "neutral", "text": "Relay v2? (if we can call it like that) Now that the base was solid and we had most of the features I focused on refining everything so I did exactly that: New UI Mutli Regional Relays Auto Updater QoL changes in general Have fun and try it out now: https://github.com/InvalidJoker/relay/tree/main#installation", "repo": "https://github.com/InvalidJoker/relay", "demo": "https://relay.koder.wtf"}, {"ship_num": 2, "ts": "2026-06-20T09:23:45Z", "hours": 18.0, "multiplier": 14.37, "payout": 250, "blessing": "neutral", "text": "Relay’s first ship I think Relay is finally ready for its first-ever ship! You can find instructions on how to use it at https://relay.koder.wtf For a long time, I’ve been looking for a nice solution to tunnel my local Minecraft servers and websites so I could share them with friends, and Relay is exactly that. Obviously, Relay isn’t even close to being finished yet and will continue to receive updates over time. :D So yeah, go ahead and give it a try! :p", "repo": "https://github.com/InvalidJoker/relay", "demo": "https://relay.koder.wtf"}]...
|
[{"post_id": 78872, "ts": "202 [{"post_id": 78872, "ts": "2026-10-11T20:45:08Z", "hours": 4.1264, "text": "Scaling Relay improve http performance add region based relay deployments some ui improvements add auto updater support Relay now supports choosing the best relay between multiple relays per “host”. Obv. we give you the freedom to say that you just want to have relay x and every feature we previously had will works as usual. I obv. did some more small changes as you can see above"}, {"post_id": 78115, "ts": "2026-10-09T16:31:40Z", "hours": 5.1892, "text": "Relay Rebranding I’ve completely rewritten the Relay website in Nuxt, fixing many bugs along the way and giving it a more polished, modern design that better fits the project. Check it out now at: https://relay.koder.wtf/"}, {"post_id": 12429, "ts": "2026-06-20T08:59:53Z", "hours": 2.8692, "text": "Relay is now public I think Relay has reached a point where I’m comfortable letting other people try it out. It’s now available at https://relay.koder.wtf/dashboard . The CLI supports Windows, macOS, and Linux, and can be installed with a simple script ( https://relay.koder.wtf/#how-it-works ). Currently, each user gets 2 reserved ports, 3 subdomains, and 1 completely custom domain. There’s still plenty of work ahead. Over the coming weeks, I’ll continue improving Relay and completely rework the dashboard, as it doesn’t look quite as polished as I’d like yet. I also plan to add a way for users to request additional subdomains directly through the platform. For now, I’d love for people to try it out and share their feedback."}, {"post_id": 11257, "ts": "2026-06-18T12:37:43Z", "hours": 6.2831, "text": "First Working Version I’ve got a first real version of Relay up and running :D The dashboard works, and both the HTTP and TCP proxy are stable. Next up is mostly cleanup: polishing the frontend, improving the CLI tools, and finally implementing run configurations so you can have a relay.toml file in your project and don’t have to type the entire command every time. After that, I’ll put together a demo deployment so people can actually try it out and break it a bit."}, {"post_id": 7483, "ts": "2026-06-12T14:20:09Z", "hours": 4.9442, "text": "I’ve started working on the frontend for Relay and made some structural changes. One major change is the removal of the dedicated Rust backend. All functionality is now handled directly within the Svelte application, simplifying development and deployment complexity. For the UI, I chose a minimal design built with shadcn-svelte. This gives Relay a clean, modern look. Upcoming Features: The dashboard will soon allow you to: Create and manage custom domains and subdomains Reserve specific ports for your projects, so you don’t have to send new ports to your friends everytime More updates soon :D"}, {"post_id": 4414, "ts": "2026-06-07T18:51:59Z", "hours": 2.6497, "text": "I wanted the CLI to be as intuitive as possible, so I came up with the following design. I’ve also made progress on building the Relay server itself. It now includes a communication layer for interacting with the CLI and supports client authentication."}, {"post_id": 4094, "ts": "2026-06-07T09:08:17Z", "hours": 0.7886, "text": "What is Relay? Relay is a TCP tunneling service. Unlike many other services on the market, it will be open-source and free to use (with some limitations, of course). We also plan to offer unique features, such as persistent domains, so your friends won’t have to update the URL every time they want to visit your site. Relay is currently a work in progress, so don’t expect anything too crazy just yet. I’ll keep you updated :)"}]...
|
Title: Relay by @InvalidJoker | Stardance
Devlogs Title: Relay by @InvalidJoker | Stardance
Devlogs:
What is Relay? Relay is a TCP tunneling service. Unlike many other services on the market, it will be open-source and free to use (with some limitations, of course). We also plan to offer unique features, such as persistent domains, so your friends won’t have to update the URL every time they want to visit your site. Relay is currently a work in progress, so don’t expect anything too crazy just yet. I’ll keep you updated :)
I wanted the CLI to be as intuitive as possible, so I came up with the following design. I’ve also made progress on building the Relay server itself. It now includes a communication layer for interacting with the CLI and supports client authentication.
I’ve started working on the frontend for Relay and made some structural changes. One major change is the removal of the dedicated Rust backend. All functionality is now handled directly within the Svelte application, simplifying development and deployment complexity. For the UI, I chose a minimal design built with shadcn-svelte. This gives Relay a clean, modern look. Upcoming Features: The dashboard will soon allow you to: Create and manage custom domains and subdomains Reserve specific ports for your projects, so you don’t have to send new ports to your friends everytime More updates soon :D
First Working Version I’ve got a first real version of Relay up and running :D The dashboard works, and both the HTTP and TCP proxy are stable. Next up is mostly cleanup: polishing the frontend, improving the CLI tools, and finally implementing run configurations so you can have a relay.toml file in your project and don’t have to type the entire command every time. After that, I’ll put together a demo deployment so people can actually try it out and break it a bit.
Relay is now public I think Relay has reached a point where I’m comfortable letting other people try it out. It’s now available at https://relay.koder.wtf/dashboard . The CLI supports Windows, macOS, and Linux, and can be installed with a simple script ( https://relay.koder.wtf/#how-it-works ). Currently, each user gets 2 reserved ports, 3 subdomains, and 1 completely custom domain. There’s still plenty of work ahead. Over the coming weeks, I’ll continue improving Relay and completely rework the dashboard, as it doesn’t look quite as polished as I’d like yet. I also plan to add a way for users to request additional subdomains directly through the platform. For now, I’d love for people to try it out and share their feedback.
Relay Rebranding I’ve completely rewritten the Relay website in Nuxt, fixing many bugs along the way and giving it a more polished, modern design that better fits the project. Check it out now at: https://relay.koder.wtf/
Scaling Relay improve http performance add region based relay deployments some ui improvements add auto updater support Relay now supports choosing the best relay between multiple relays per “host”. Obv. we give you the freedom to say that you just want to have relay x and every feature we previously had will works as usual. I obv. did some more small changes as you can see above
Ships:
Relay’s first ship I think Relay is finally ready for its first-ever ship! You can find instructions on how to use it at https://relay.koder.wtf For a long time, I’ve been looking for a nice solution to tunnel my local Minecraft servers and websites so I could share them with friends, and Relay is exactly that. Obviously, Relay isn’t even close to being finished yet and will continue to receive updates over time. :D So yeah, go ahead and give it a try! :p
Relay v2? (if we can call it like that) Now that the base was solid and we had most of the features I focused on refining everything so I did exactly that: New UI Mutli Regional Relays Auto Updater QoL changes in general Have fun and try it out now: https://github.com/InvalidJoker/relay/tree/main#installation...
|
1792997676.812085
|
1793084076.812085
|
|
10911
|
SubBake by @reimunyancat | Stardance
|
reimunyancat
|
1
|
32.89
|
411
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-14T00:02:46Z", "hours": 22.0, "multiplier": 18.46, "payout": 411, "blessing": "neutral", "text": "SubBake is a desktop app that embeds subtitles into video files. Drop in a video and a subtitle file, and it muxes the subtitle in as a proper track — colors, timing, and all — without re-encoding anything. There is also a live web demo if you would rather try it in a browser. What it does: It reads SMI, SRT, ASS, SSA, VTT and SUP subtitles and writes MKV, MP4 or WebM. SMI fansubs keep their per-speaker colors, because they get converted to ASS instead of being flattened into SRT. The GUI takes drag and drop or a plain click, auto-matches videos to same-named subtitle files, and shows live per-file progress straight from FFmpeg’s output. FFmpeg comes bundled, so the whole thing is one executable with nothing to install, and the UI speaks English and Korean without a restart. The web demo runs the exact same pipeline on my home server. Upload both files, watch the bar, download the result. Everything you upload is deleted automatically after an hour. The hardest part was invisible. One subtitle cue kept showing a hollow box between two lines, and every character in those lines came back clean. The culprit turned out to be a blank line in the source file, which my converter faithfully translated into an empty subtitle line that the player rendered as a box. The fix was collapsing consecutive newlines into one. Sometimes the bug is a blank line. To test it: grab the release, drop a video and its subtitle onto the window, and hit Start SubBake. Or open reimunyancat.com/subbake and do the same thing with zero install.", "repo": "https://github.com/reimunyancat/SubBake", "demo": "https://reimunyancat.com/subbake/"}]...
|
[{"post_id": 52292, "ts": "202 [{"post_id": 52292, "ts": "2026-08-22T12:29:12Z", "hours": 8.9519, "text": "Devlog #6 Last time ended with the review finally seeing subtitles — burn mode drew them into the pixels, and the preview proved the output wasn’t empty. The review came back with a new problem, and this one was in the desktop app. The reviewer dragged a video in, then dragged its subtitle in a moment later, and nothing happened. No pair, no row, no error. Just a log line nobody reads. “I dropped the video, then the subtitle. Nothing happened.” The flow made sense to me. Any sane user would load the video and subtitles together. The app matched files by stem and folder, so the names matched — but the pair never appeared. I reproduced it immediately: drop the .mkv, 0 pairs. Drop the .srt, 0 pairs. Drop them together, 1 pair. The order wasn’t the problem — the batch was. It was by design. That was the problem. The drop handler split the incoming paths into videos and subtitles and matched them within that single batch : Both file types had to arrive in the same drop or the matcher had nothing to join. It wasn’t a bug — it worked exactly as written. My own testing had always dropped both files at once, so I never saw it. The code was correct and exactly wrong. To make it worse, that same logic was copy-pasted in four places: the drop handler, the file dialog, the drop-area click, and the folder scan. Four copies, one flaw. Deferred matching The fix was to stop matching batches and start matching state. Files now accumulate into pending queues, and every drop re-runs the matcher against everything pending. Drop the video, drop the subtitle five minutes later — the second drop finds the first and pairs them. All four entry points now route through one _ingest() method, so the deferred-matching rule can’t drift between copies again. Then I almost made it worse My first pass at leftovers had a shortcut: sort the unmatched files by name and zip them into pairs. Five videos and two subtitles? Two pairs, formed by name order, not by any actual correspondence. The names could be completely unrelated — the wrong subtitle would get muxed in silently. That’s the exact failure class I was trying to kill. So the shortcut got a guard: auto-pairing only happens when exactly one video and one subtitle are left unmatched, and everything else stays in the pending queue where the user can see it. While I was in there: dropping the same file twice no longer stacks duplicates in the queue, and the waiting notice now shows whenever anything is still pending — not just when a drop matched nothing. The log panel expands on its own so the “waiting for a matching subtitle” state is visible instead of hidden. TMI It was quite a struggle at first; I hadn’t properly watched the review video, so while testing it myself, I kept wondering, “Wait, it works fine—why do people say it doesn’t?” It turned out the issue was incredibly simple. I made a few minor quality-of-life improvements, but since they were so small, I decided to skip mentioning them. I actually wanted to do more, but I’ve already spent nine hours on this, so I’m wrapping things up now."}, {"post_id": 50793, "ts": "2026-08-20T05:49:47Z", "hours": 1.9336, "text": "Devlog #5 SubBake was released, the web demo went live, and then the review came back: “can’t see no subtitles.” That’s a bug report against a shipped product — the whole point of the app is subtitles, and the review had no way to see them. I couldn’t argue with it: the output carried no visible proof. This devlog is about hunting that bug down and making sure the subtitles can never be invisible again. The fix two There was no rendering at all, nothing to prove a subtitle existed. So the fix attacked both sides. Burn mode re-encodes the video with subtitles drawn into the frames, so the text becomes part of the picture — impossible to miss. And the preview gives real playback with a VTT attached to the <video> element, so muxed output shows its subtitles too. The web API grew a mode parameter ( mux | burn ), the burn path got progress and cancel wired through the existing worker machinery, and the GUI picked up a matching checkbox. Burn mode also rejects SUP input outright — bitmap subtitles can’t be rasterized by libass, and a silent fallback would just recreate the “nothing visible” bug. The output file was empty, and nobody noticed While testing burn with a +1s offset, the job failed with a cryptic libass error: Unable to open /tmp/... . The real cause was in the remux step. The remux command — the one that shifts timestamps with itsoffset before burning — was missing -y . The output path already existed because it came from NamedTemporaryFile , and ffmpeg refuses to overwrite without -y . Worse, it exited with returncode 0 while writing nothing, so the “did it succeed?” check passed. A zero-byte file then went into libass. Two small ordering bugs The preview VTT was extracted with a hardcoded \"ffmpeg\" while the rest of the server resolves a bundled binary via find_ffmpeg() . On a machine without ffmpeg on PATH, preview breaks exactly where the reviewer looks. Switched to the shared resolver. The <track> element was appended after video.load() . The track never registered, so even correct VTT extraction showed nothing. Order matters: attach the track, set the source, then load. Proof The bug report was about visibility, so the fix had to be verified the same way. I burned two different subtitle files into the same video and compared raw RGB. Everything above the subtitle band matched; rows 174–239 differed by ~14,000 pixels — the only difference between the two outputs was the burned text. Then an offset burn: at t=0.5s the frame matched the original (subtitle hadn’t appeared yet), at t=2.5s the text was present. Korean needed one more thing in production: the server had no CJK fonts, so Korean subtitles would burn as tofu boxes. Installed noto-fonts-cjk , re-ran the Korean burn — 12,152 pixels of band difference, and the black outline count jumped from 1385 to 1581. Real glyphs, not boxes."}, {"post_id": 46613, "ts": "2026-08-13T23:46:01Z", "hours": 7.2458, "text": "Devlog #4 Last time SubBake had a face and working hands. This time it learned to speak two languages, moved into a real server, and nearly broke me on the way in. The deployment deserves its own section, because nothing about it went right the first time. One language became two Every user-facing string had been hardcoded in English while I built the thing. Now it all funnels through one translation table — t(\"btn.start\") instead of \"Start SubBake\" — with a language combo in the corner that re-renders the whole window live, no restart. The trick that makes it work: widgets register a callback on a global listener list, and flipping the language calls every one of them. One slight downside is that the font changes when using Korean, which alters the layout; however, I was already so exhausted from dealing with the language settings that I didn’t have the energy to tweak it. I might adjust it later if I have the time, but I trust it will be fine since most people will likely be viewing it in English. Click, not just drag The drop zone now opens a file picker on click, with mixed multi-select for files and folders. Qt’s native dialog refuses to do that, so the code forces the Qt built-in dialog, switches it to directory mode, and then flips every internal list view to extended selection. It feels like a hack because it is one. It works beautifully. The web demo To ensure you can easily test and enjoy the project, I have deployed it using a domain in addition to providing the build files. SubBake now lives at a public URL — a FastAPI wrapper around the same core/ modules (imported, not copied), served from my home server VM, fronted by nginx, reached through a Cloudflare tunnel. Upload a video and a subtitle, watch the progress bar, download the result. Files vanish on a timer. So, the bottom line is that while you can download the Windows and Linux-compatible executables from GitHub to run the project, you can also test it using the URL provided here (the code is identical in both cases)."}, {"post_id": 45534, "ts": "2026-08-12T02:31:32Z", "hours": 8.4511, "text": "Devlog #3 Last time SubBake could mux subtitles with colors intact, but only through python -c one-liners. This time it got a face. It also got that face redesigned, because the first one looked like it was generated by an AI. More on that later. The shell The GUI is PySide6: a drag-and-drop area, a queue table, options row, a progress bar, and a collapsible log panel. Dropping a folder scans it recursively and pairs videos with same-named subtitles. The pairing is just (parent folder, lowercase stem) as a dictionary key, which quietly handles nested folders with identical filenames. Everything is a thread problem FFmpeg muxing is blocking, and a Qt window must never block. So every job is a QRunnable on a QThreadPool capped at 4. The catch: worker threads cannot touch widgets, at all, or the app crashes. So workers never see the UI — they emit signals ( progress , file_progress , finished , log ) and the GUI thread applies them. One trap cost me a real headache: the pool auto-deletes finished runnables by default. My cancel button keeps references to running tasks so it can flag them — which becomes a dangling pointer the moment auto-delete kicks in. The fix is one line you only learn by crashing: self.setAutoDelete(False) Cancel itself is two different operations pretending to be one button. thread_pool.clear() drops queued tasks, but anything already running needs a cancel() flag that FFmpeg checks between progress updates. The progress bar’s total also has to be recalculated mid-flight, or cancelling leaves the bar lying about how much is left. The tray icon that isn’t a file I didn’t want to ship an icon asset for a tray icon nobody looks at, so the app paints one at runtime — a 32×32 QPixmap filled with one flat color. Zero files, zero resource management, and honestly nobody can tell. Where SubBake stands A real window: drag-and-drop, queue table, live per-file progress, cancel, tray notification when done Four files mux in parallel without freezing the UI, and cancelling mid-run doesn’t corrupt anything Flat neutral theme, zero emoji, no gradients Still English-only, still launched from a terminal Next up Two things remain before this is a product: a language toggle (every string already funnels through one translation table, so it’s a refactor, not a rewrite), and PyInstaller packaging so normal humans can double-click it. Then the web demo, which is a story of its own."}, {"post_id": 43308, "ts": "2026-08-08T14:36:11Z", "hours": 3.5961, "text": "Devlog #2 Last time: a parser pipeline that couldn’t bake anything. Now SubBake actually muxes subtitles into video — and I collected three of the dumbest bugs I’ve ever fought along the way. The muxer was the easy part core/muxer.py runs FFmpeg as a subprocess with -progress pipe:1 and reads out_time_us lines off stdout for live progress. Video and audio are stream-copied, so a 24-minute episode remuxes in seconds. The sharp edges were plumbing: stderr needs its own drain thread or the pipe buffer fills and FFmpeg just stops, and the container picks your subtitle codec — MKV copies the track as-is, MP4 demands mov_text , WebM demands webvtt . One ffmpeg -i later: Stream #0:2(kor): Subtitle: subrip (default) , title “Korean”. It works. SRT ate my colors Then I actually watched the result. The original fansub had per-speaker colors; my output was all white. Of course — my SMI parser stripped every HTML tag, including <font color=\"#FF80C0\"> , and SRT has no styling anyway. So the plan changed: SMI now converts to ASS. The parser keeps font tags, and a new core/ass_converter.py writes a proper ASS document. Writing the font regex by hand nearly broke me This regex took longer than the entire muxer: _FONT_COLOR_RE = re.compile( r'<font\\s+[^>]*color\\s*=\\s*[\"\\']?([^\"\\'>\\s]+)[\"\\']?[^>]*>', re.IGNORECASE, ) The job sounds trivial: find opening <font> tags, capture the color. My first draft, <font color=\"(.*?)\"> , fell apart immediately — real fansub files write color=\"Red\" (a name, not hex), color=#FF80C0 (no quotes), and <font face=\"Arial\" color=\"...\"> (color isn’t the first attribute). The class [^\"\\'>\\s]+ exists because the value must stop at a quote, a space, or the tag end — and nesting quote escapes inside a Python raw string is its own hell. I built it the way everyone builds regexes: one character class at a time in a tester, pasting real SMI lines until nothing exploded. Nobody writes this in one shot; anyone who claims otherwise is lying. Then the colors came out wrong — red and blue swapped. ASS stores colors as &HBBGGRR& , a byte order from the 80s, so every RGB value gets flipped first. That cost me a long “why is the pink line blue” stare. The giant subtitle First ASS render: billboard-sized subtitles. Fontsize 36 sounds fine until you learn what PlayResX / PlayResY do — ASS declares a design resolution and the renderer scales it to the real video. I designed for 640×360 and played at 1080p: a 3× upscale, 108-pixel letters. Now I declare PlayRes 1920×1080 and the size holds at any resolution. I verified by burning test frames, because I no longer trust my own reasoning about this format. The mystery box Last ghost: a hollow rectangle between the pink Japanese line and the Korean translation. Every codepoint in those lines was clean, and re-rendering the same structure in isolation showed nothing. The culprit was the blank line — the SMI source separates the two languages with an empty line, my converter turned it into \\N\\N , and my player draws an empty subtitle line as a hollow box. Collapsing consecutive newlines fixed it, and as a bonus the output now looks exactly like the original presentation. Sometimes the bug is a blank line. That sentence is going on my gravestone. Where SubBake stands Muxing works end to end: stream copy, live progress, clean cancel, per-container codecs SMI→ASS with per-speaker colors, verified on a real episode Sane subtitle size at any resolution; phantom box gone Still no GUI — everything runs through python -c one-liners Next up The interface: a PySide6 shell with drag-and-drop, a queue table, and worker threads — the point where this becomes an app instead of modules I poke from a terminal. Qt will be perfectly calm and reasonable. (It will not be.)"}, {"post_id": 41919, "ts": "2026-08-06T13:11:24Z", "hours": 2.9786, "text": "Devlog #1 SubBake is a desktop app I’m building that embeds subtitle files (SMI / SRT / ASS / SSA / VTT / SUP) into MKV, MP4 and WebM as real subtitle tracks. Python + PySide6, FFmpeg bundled, GPL v3. This devlog covers the first stretch: empty repo to a working conversion pipeline. What I did Repo scaffold, GPL license, and a .gitignore that keeps the 300 MB ffmpeg/ folder out of git download_ffmpeg.py — downloads a static FFmpeg build for Windows / Linux / macOS, unpacks it, deletes the leftovers core/ffmpeg_locator.py — finds that binary later (bundled, PyInstaller temp dir, or PATH) Parsers for SMI and VTT, an SRT writer, encoding detection, and a matcher that pairs videos with their subtitle files Problems The SMI parser found 12 cues in a whole episode. I’d forgotten re.DOTALL , so any dialogue with a line break killed the match early. One flag later, hundreds of cues. Opened my test subtitle in VS Code and panicked - the entire file was mojibake. Took me a minute to realize the file is CP949 and the editor was just displaying it as UTF-8. The converter had already decoded it correctly. Editor lied, pipeline didn’t. The “throw it at the converter” test Grabbed a real SMI off the internet (a K-ON episode) and ran it through. 385 cues, first one at 00:00 31,458, Korean perfectly intact. The side-by-side screenshot says it best: left is the mojibake original, right is the clean SRT that came out. That’s the encoding fallback doing its job. Where SubBake stands FFmpeg downloads and gets located on all three OSes SMI / VTT → SRT conversion verified on real data No muxer, no GUI — it still can’t bake anything Next up core/muxer.py : run FFmpeg as a subprocess, stream the progress output, handle cancel, and pick the right subtitle codec per container (mov_text / webvtt / copy). Devlog #2 should have actual player screenshots instead of terminal text."}]...
|
Title: SubBake by @reimunyancat | Stardance
Devlo Title: SubBake by @reimunyancat | Stardance
Devlogs:
Devlog #1 SubBake is a desktop app I’m building that embeds subtitle files (SMI / SRT / ASS / SSA / VTT / SUP) into MKV, MP4 and WebM as real subtitle tracks. Python + PySide6, FFmpeg bundled, GPL v3. This devlog covers the first stretch: empty repo to a working conversion pipeline. What I did Repo scaffold, GPL license, and a .gitignore that keeps the 300 MB ffmpeg/ folder out of git download_ffmpeg.py — downloads a static FFmpeg build for Windows / Linux / macOS, unpacks it, deletes the leftovers core/ffmpeg_locator.py — finds that binary later (bundled, PyInstaller temp dir, or PATH) Parsers for SMI and VTT, an SRT writer, encoding detection, and a matcher that pairs videos with their subtitle files Problems The SMI parser found 12 cues in a whole episode. I’d forgotten re.DOTALL , so any dialogue with a line break killed the match early. One flag later, hundreds of cues. Opened my test subtitle in VS Code and panicked - the entire file was mojibake. Took me a minute to realize the file is CP949 and the editor was just displaying it as UTF-8. The converter had already decoded it correctly. Editor lied, pipeline didn’t. The “throw it at the converter” test Grabbed a real SMI off the internet (a K-ON episode) and ran it through. 385 cues, first one at 00:00 31,458, Korean perfectly intact. The side-by-side screenshot says it best: left is the mojibake original, right is the clean SRT that came out. That’s the encoding fallback doing its job. Where SubBake stands FFmpeg downloads and gets located on all three OSes SMI / VTT → SRT conversion verified on real data No muxer, no GUI — it still can’t bake anything Next up core/muxer.py : run FFmpeg as a subprocess, stream the progress output, handle cancel, and pick the right subtitle codec per container (mov_text / webvtt / copy). Devlog #2 should have actual player screenshots instead of terminal text.
Devlog #2 Last time: a parser pipeline that couldn’t bake anything. Now SubBake actually muxes subtitles into video — and I collected three of the dumbest bugs I’ve ever fought along the way. The muxer was the easy part core/muxer.py runs FFmpeg as a subprocess with -progress pipe:1 and reads out_time_us lines off stdout for live progress. Video and audio are stream-copied, so a 24-minute episode remuxes in seconds. The sharp edges were plumbing: stderr needs its own drain thread or the pipe buffer fills and FFmpeg just stops, and the container picks your subtitle codec — MKV copies the track as-is, MP4 demands mov_text , WebM demands webvtt . One ffmpeg -i later: Stream #0:2(kor): Subtitle: subrip (default) , title “Korean”. It works. SRT ate my colors Then I actually watched the result. The original fansub had per-speaker colors; my output was all white. Of course — my SMI parser stripped every HTML tag, including <font color="#FF80C0"> , and SRT has no styling anyway. So the plan changed: SMI now converts to ASS. The parser keeps font tags, and a new core/ass_converter.py writes a proper ASS document. Writing the font regex by hand nearly broke me This regex took longer than the entire muxer: _FONT_COLOR_RE = re.compile( r'<font\s+[^>]*color\s*=\s*["\']?([^"\'>\s]+)["\']?[^>]*>', re.IGNORECASE, ) The job sounds trivial: find opening <font> tags, capture the color. My first draft, <font color="(.*?)"> , fell apart immediately — real fansub files write color="Red" (a name, not hex), color=#FF80C0 (no quotes), and <font face="Arial" color="..."> (color isn’t the first attribute). The class [^"\'>\s]+ exists because the value must stop at a quote, a space, or the tag end — and nesting quote escapes inside a Python raw string is its own hell. I built it the way everyone builds regexes: one character class at a time in a tester, pasting real SMI lines until nothing exploded. Nobody writes this in one shot; anyone who claims otherwise is lying. Then the colors came out wrong — red and blue swapped. ASS stores colors as &HBBGGRR& , a byte order from the 80s, so every RGB value gets flipped first. That cost me a long “why is the pink line blue” stare. The giant subtitle First ASS render: billboard-sized subtitles. Fontsize 36 sounds fine until you learn what PlayResX / PlayResY do — ASS declares a design resolution and the renderer scales it to the real video. I designed for 640×360 and played at 1080p: a 3× upscale, 108-pixel letters. Now I declare PlayRes 1920×1080 and the size holds at any resolution. I verified by burning test frames, because I no longer trust my own reasoning about this format. The mystery box Last ghost: a hollow rectangle between the pink Japanese line and the Korean translation. Every codepoint in those lines was clean, and re-rendering the same structure in isolation showed nothing. The culprit was the blank line — the SMI source separates the two languages with an empty line, my converter turned it into \N\N , and my player draws an empty subtitle line as a hollow box. Collapsing consecutive newlines fixed it, and as a bonus the output now looks exactly like the original presentation. Sometimes the bug is a blank line. That sentence is going on my gravestone. Where SubBake stands Muxing works end to end: stream copy, live progress, clean cancel, per-container codecs SMI→ASS with per-speaker colors, verified on a real episode Sane subtitle size at any resolution; phantom box gone Still no GUI — everything runs through python -c one-liners Next up The interface: a PySide6 shell with drag-and-drop, a queue table, and worker threads — the point where this becomes an app instead of modules I poke from a terminal. Qt will be perfectly calm and reasonable. (It will not be.)
Devlog #3 Last time SubBake could mux subtitles with colors intact, but only through python -c one-liners. This time it got a face. It also got that face redesigned, because the first one looked like it was generated by an AI. More on that later. The shell The GUI is PySide6: a drag-and-drop area, a queue table, options row, a progress bar, and a collapsible log panel. Dropping a folder scans it recursively and pairs videos with same-named subtitles. The pairing is just (parent folder, lowercase stem) as a dictionary key, which quietly handles nested folders with identical filenames. Everything is a thread problem FFmpeg muxing is blocking, and a Qt window must never block. So every job is a QRunnable on a QThreadPool capped at 4. The catch: worker threads cannot touch widgets, at all, or the app crashes. So workers never see the UI — they emit signals ( progress , file_progress , finished , log ) and the GUI thread applies them. One trap cost me a real headache: the pool auto-deletes finished runnables by default. My cancel button keeps references to running tasks so it can flag them — which becomes a dangling pointer the moment auto-delete kicks in. The fix is one line you only learn by crashing: self.setAutoDelete(False) Cancel itself is two different operations pretending to be one button. thread_pool.clear() drops queued tasks, but anything already running needs a cancel() flag that FFmpeg checks between progress updates. The progress bar’s total also has to be recalculated mid-flight, or cancelling leaves the bar lying about how much is left. The tray icon that isn’t a file I didn’t want to ship an icon asset for a tray icon nobody looks at, so the app paints one at runtime — a 32×32 QPixmap filled with one flat color. Zero files, zero resource management, and honestly nobody can tell. Where SubBake stands A real window: drag-and-drop, queue table, live per-file progress, cancel, tray notification when done Four files mux in parallel without freezing the UI, and cancelling mid-run doesn’t corrupt anything Flat neutral theme, zero emoji, no gradients Still English-only, still launched from a terminal Next up Two things remain before this is a product: a language toggle (every string already funnels through one translation table, so it’s a refactor, not a rewrite), and PyInstaller packaging so normal humans can double-click it. Then the web demo, which is a story of its own.
Devlog #4 Last time SubBake had a face and working hands. This time it learned to speak two languages, moved into a real server, and nearly broke me on the way in. The deployment deserves its own section, because nothing about it went right the first time. One language became two Every user-facing string had been hardcoded in English while I built the thing. Now it all funnels through one translation table — t("btn.start") instead of "Start SubBake" — with a language combo in the corner that re-renders the whole window live, no restart. The trick that makes it work: widgets register a callback on a global listener list, and flipping the language calls every one of them. One slight downside is that the font changes when using Korean, which alters the layout; however, I was already so exhausted from dealing with the language settings that I didn’t have the energy to tweak it. I might adjust it later if I have the time, but I trust it will be fine since most people will likely be viewing it in English. Click, not just drag The drop zone now opens a file picker on click, with mixed multi-select for files and folders. Qt’s native dialog refuses to do that, so the code forces the Qt built-in dialog, switches it to directory mode, and then flips every internal list view to extended selection. It feels like a hack because it is one. It works beautifully. The web demo To ensure you can easily test and enjoy the project, I have deployed it using a domain in addition to providing the build files. SubBake now lives at a public URL — a FastAPI wrapper around the same core/ modules (imported, not copied), served from my home server VM, fronted by nginx, reached through a Cloudflare tunnel. Upload a video and a subtitle, watch the progress bar, download the result. Files vanish on a timer. So, the bottom line is that while you can download the Windows and Linux-compatible executables from GitHub to run the project, you can also test it using the URL provided here (the code is identical in both cases).
Devlog #5 SubBake was released, the web demo went live, and then the review came back: “can’t see no subtitles.” That’s a bug report against a shipped product — the whole point of the app is subtitles, and the review had no way to see them. I couldn’t argue with it: the output carried no visible proof. This devlog is about hunting that bug down and making sure the subtitles can never be invisible again. The fix two There was no rendering at all, nothing to prove a subtitle existed. So the fix attacked both sides. Burn mode re-encodes the video with subtitles drawn into the frames, so the text becomes part of the picture — impossible to miss. And the preview gives real playback with a VTT attached to the <video> element, so muxed output shows its subtitles too. The web API grew a mode parameter ( mux | burn ), the burn path got progress and cancel wired through the existing worker machinery, and the GUI picked up a matching checkbox. Burn mode also rejects SUP input outright — bitmap subtitles can’t be rasterized by libass, and a silent fallback would just recreate the “nothing visible” bug. The output file was empty, and nobody noticed While testing burn with a +1s offset, the job failed with a cryptic libass error: Unable to open /tmp/... . The real cause was in the remux step. The remux command — the one that shifts timestamps with itsoffset before burning — was missing -y . The output path already existed because it came from NamedTemporaryFile , and ffmpeg refuses to overwrite without -y . Worse, it exited with returncode 0 while writing nothing, so the “did it succeed?” check passed. A zero-byte file then went into libass. Two small ordering bugs The preview VTT was extracted with a hardcoded "ffmpeg" while the rest of the server resolves a bundled binary via find_ffmpeg() . On a machine without ffmpeg on PATH, preview breaks exactly where the reviewer looks. Switched to the shared resolver. The <track> element was appended after video.load() . The track never registered, so even correct VTT extraction showed nothing. Order matters: attach the track, set the source, then load. Proof The bug report was about visibility, so the fix had to be verified the same way. I burned two different subtitle files into the same video and compared raw RGB. Everything above the subtitle band matched; rows 174–239 differed by ~14,000 pixels — the only difference between the two outputs was the burned text. Then an offset burn: at t=0.5s the frame matched the original (subtitle hadn’t appeared yet), at t=2.5s the text was present. Korean needed one more thing in production: the server had no CJK fonts, so Korean subtitles would burn as tofu boxes. Installed noto-fonts-cjk , re-ran the Korean burn — 12,152 pixels of band difference, and the black outline count jumped from 1385 to 1581. Real glyphs, not boxes.
Devlog #6 Last time ended with the review finally seeing subtitles — burn mode drew them into the pixels, and the preview proved the output wasn’t empty. The review came back with a new problem, and this one was in the desktop app. The reviewer dragged a video in, then dragged its subtitle in a moment later, and nothing happened. No pair, no row, no error. Just a log line nobody reads. “I dropped the video, then the subtitle. Nothing happened.” The flow made sense to me. Any sane user would load the video and subtitles together. The app matched files by stem and folder, so the names matched — but the pair never appeared. I reproduced it immediately: drop the .mkv, 0 pairs. Drop the .srt, 0 pairs. Drop them together, 1 pair. The order wasn’t the problem — the batch was. It was by design. That was the problem. The drop handler split the incoming paths into videos and subtitles and matched them within that single batch : Both file types had to arrive in the same drop or the matcher had nothing to join. It wasn’t a bug — it worked exactly as written. My own testing had always dropped both files at once, so I never saw it. The code was correct and exactly wrong. To make it worse, that same logic was copy-pasted in four places: the drop handler, the file dialog, the drop-area click, and the folder scan. Four copies, one flaw. Deferred matching The fix was to stop matching batches and start matching state. Files now accumulate into pending queues, and every drop re-runs the matcher against everything pending. Drop the video, drop the subtitle five minutes later — the second drop finds the first and pairs them. All four entry points now route through one _ingest() method, so the deferred-matching rule can’t drift between copies again. Then I almost made it worse My first pass at leftovers had a shortcut: sort the unmatched files by name and zip them into pairs. Five videos and two subtitles? Two pairs, formed by name order, not by any actual correspondence. The names could be completely unrelated — the wrong subtitle would get muxed in silently. That’s the exact failure class I was trying to kill. So the shortcut got a guard: auto-pairing only happens when exactly one video and one subtitle are left unmatched, and everything else stays in the pending queue where the user can see it. While I was in there: dropping the same file twice no longer stacks duplicates in the queue, and the waiting notice now shows whenever anything is still pending — not just when a drop matched nothing. The log panel expands on its own so the “waiting for a matching subtitle” state is visible instead of hidden. TMI It was quite a struggle at first; I hadn’t properly watched the review video, so while testing it myself, I kept wondering, “Wait, it works fine—why do people say it doesn’t?” It turned out the issue was incredibly simple. I made a few minor quality-of-life improvements, but since they were so small, I decided to skip mentioning them. I actually wanted to do more, but I’ve already spent nine hours on this, so I’m wrapping things up now.
Ships:
SubBake is a desktop app that embeds subtitles into video files. Drop in a video and a subtitle file, and it muxes the subtitle in as a proper track — colors, timing, and all — without re-encoding anything. There is also a live web demo if you would rather try it in a browser. What it does: It reads SMI, SRT, ASS, SSA, VTT and SUP subtitles and writes MKV, MP4 or WebM. SMI fansubs keep their per-speaker colors, because they get converted to ASS instead of being flattened into SRT. The GUI takes drag and drop or a plain click, auto-matches videos to same-named subtitle files, and shows live per-file progress straight from FFmpeg’s output. FFmpeg comes bundled, so the whole thing is one executable with nothing to install, and the UI speaks English and Korean without a restart. The web demo runs the exact same pipeline on my home server. Upload both files, watch the bar, download the result. Everything you upload is deleted automatically after an hour. The hardest part was invisible. One subtitle cue kept showing a hollow box between two lines, and every character in those lines came back clean. The culprit turned out to be a blank line in the source file, which my converter faithfully translated into an empty subtitle line that the player rendered as a box. The fix was collapsing consecutive newlines into one. Sometimes the bug is a blank line. To test it: grab the release, drop a video and its subtitle onto the window, and hit Start SubBake. Or open reimunyancat.com/subbake and do the same thing with zero install....
|
1792878570.6959496
|
1793742570.6959496
|
|
55918
|
gameswar by @Mariyalayathinsrikrishna | Stardance
|
Mariyalayathinsrikrishna
|
1
|
40.0
|
411
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-07T11:02:47Z", "hours": 40.0, "multiplier": 10.18, "payout": 411, "blessing": "neutral", "text": "I learned how to design a futuristic space game interface. I learned how to display important information like score, health, level, coins, and experience. I understood how buttons such as Menu, Pause, and Sound can improve game control. I also learned how visual effects, spaceships, enemies, and animations create an attractive game environment. Overall, this project helped me improve my skills in game UI design and web development.", "repo": "https://github.com/yathin-srikrishna/gamewar", "demo": "https://gamewar-seven.vercel.app/"}]...
|
[{"post_id": 63470, "ts": "202 [{"post_id": 63470, "ts": "2026-09-07T10:47:23Z", "hours": 7.3222, "text": "finally my golden space war game is ready to launch make a try and cross my highest record all suggestions and improvements are accepted"}, {"post_id": 62330, "ts": "2026-09-05T17:10:52Z", "hours": 7.2111, "text": "Implemented alerts system that warns when health is less than 40% and fixed first option in rewards for more gameplay"}, {"post_id": 60978, "ts": "2026-09-03T17:39:09Z", "hours": 5.4506, "text": "Implemented mobile responsive joystick that responds with touch the layout is flexible with screen size and grid system for smooth and interactive experience"}, {"post_id": 60446, "ts": "2026-09-02T19:39:16Z", "hours": 6.0614, "text": "This project is a space shooting game where the player controls a spaceship and shoots incoming enemy objects. The game includes enemy targets, bullets, stars, and player movement, creating an interactive arcade-style gaming experience."}, {"post_id": 59622, "ts": "2026-09-01T15:19:30Z", "hours": 6.5306, "text": "a Space War 180° arcade-style game where the player controls a spaceship using WASD/arrow interface of the game"}, {"post_id": 58662, "ts": "2026-08-31T04:49:16Z", "hours": 7.8072, "text": "start my game project it as taking a shape step by step excited to complete as soon as possible"}]...
|
Title: gameswar by @Mariyalayathinsrikrishna | Sta Title: gameswar by @Mariyalayathinsrikrishna | Stardance
Devlogs:
start my game project it as taking a shape step by step excited to complete as soon as possible
a Space War 180° arcade-style game where the player controls a spaceship using WASD/arrow interface of the game
This project is a space shooting game where the player controls a spaceship and shoots incoming enemy objects. The game includes enemy targets, bullets, stars, and player movement, creating an interactive arcade-style gaming experience.
Implemented mobile responsive joystick that responds with touch the layout is flexible with screen size and grid system for smooth and interactive experience
Implemented alerts system that warns when health is less than 40% and fixed first option in rewards for more gameplay
finally my golden space war game is ready to launch make a try and cross my highest record all suggestions and improvements are accepted
Ships:
I learned how to design a futuristic space game interface. I learned how to display important information like score, health, level, coins, and experience. I understood how buttons such as Menu, Pause, and Sound can improve game control. I also learned how visual effects, spaceships, enemies, and animations create an attractive game environment. Overall, this project helped me improve my skills in game UI design and web development....
|
1792878466.0110948
|
1793742466.0110948
|
|
1036
|
Beyond the Quarks by @__grdev | Stardance
|
__grdev
|
1
|
31.4
|
410
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-14T13:56:37Z", "hours": 31.0, "multiplier": 13.08, "payout": 410, "blessing": "neutral", "text": "I built this sci-fi-themed video game from scratch. The story is about an astronaut who makes the first interdimensional journey thanks to Q.U.A.R.K., a device created by NASA to generate wormholes. However, the device malfunctions, and the player finds himself lost in the multiverse. The player must explore different universes to find parts to repair the Q.U.A.R.K. and return home. The game is still in its early stages of development. The demo only includes the first playable scene, the lab, but much of the foundation for the rest of the gameplay is already in place. The pixel art assets were almost entirely created from scratch by me. Only a few of the images in the first sequence were generated by AI and then edited and adjusted by hand. While the game may be very short at the moment, I hope the attention to detail stands out, such as the dialogue, sprites, and the logic of certain elements, such as the camera that changes its behavior (first fixed on the screen and then dynamically following the player).", "repo": "https://github.com/gianluca-rainis/BeyondTheQuarks", "demo": "https://var-grdev.itch.io/beyond-the-quarks"}]...
|
[{"post_id": 53050, "ts": "202 [{"post_id": 53050, "ts": "2026-08-23T13:21:48Z", "hours": 0.3958, "text": "Fixed the deselect on background click in all the scenes."}, {"post_id": 46911, "ts": "2026-08-14T13:33:31Z", "hours": 0.3492, "text": "Updated the README and published on itch.io!"}, {"post_id": 46881, "ts": "2026-08-14T12:54:10Z", "hours": 0.8186, "text": "I’ve added a “Coming Soon” scene after the finish of the first scene. I’ve also added an automatic saving system for when it change scene."}, {"post_id": 45135, "ts": "2026-08-11T13:06:26Z", "hours": 1.1853, "text": "Finally finished a working saving system! It saves the position of the player, the inventory, the scene and the current room!"}, {"post_id": 44569, "ts": "2026-08-10T12:38:18Z", "hours": 0.5222, "text": "Made the graphics for the delete items."}, {"post_id": 44017, "ts": "2026-08-09T14:47:42Z", "hours": 1.5428, "text": "Finished the logic and the graphics of the inventory. Added some items in the laboratory that the player can pick up. Created some special dialogues with some NPCs that depends on the items that the player has in the inventory."}, {"post_id": 43303, "ts": "2026-08-08T14:20:32Z", "hours": 1.7525, "text": "Finished a first full-working version of the inventory. (the column in the video is just a test item)"}, {"post_id": 42646, "ts": "2026-08-07T14:12:17Z", "hours": 0.4469, "text": "Finished a first simple version of the pause menu, with inventory, QUARK status, Save and Quit buttons."}, {"post_id": 41301, "ts": "2026-08-05T13:19:18Z", "hours": 1.6572, "text": "Started working on a simple pause menu. Started integrating a better saving system, that should allow the player to save in almost any moment and resume from it."}, {"post_id": 40715, "ts": "2026-08-04T12:58:49Z", "hours": 1.35, "text": "Added images and text for the first dimensional leap sequence."}, {"post_id": 39955, "ts": "2026-08-03T09:10:36Z", "hours": 1.0233, "text": "Finally finished a first version of the tutorial scene. I’ve added the sound effects and prepared everything to start working on the first multiverse."}, {"post_id": 39420, "ts": "2026-08-02T11:29:31Z", "hours": 1.9908, "text": "Added an animation for the moment when you step on the stage, with a speech from the head of the Q.U.A.R.K. project. Added an animation when you take the Q.U.A.R.K. and the animated portal that you can open with it. I drew all the sprites."}, {"post_id": 39351, "ts": "2026-08-02T08:43:14Z", "hours": 0.8733, "text": "Added some really important people in the stage room. Each person have a dialogue, and the NASA Administrator has 4 dialogues."}, {"post_id": 38800, "ts": "2026-08-01T11:17:02Z", "hours": 0.6367, "text": "Added the QUARK, with the pickup animation."}, {"post_id": 38109, "ts": "2026-07-31T10:12:26Z", "hours": 0.9011, "text": "Drawn 2 more sprites for the scientists. Added some electronic components in the engineers room. Added unique dialogues with the NPCs."}, {"post_id": 37534, "ts": "2026-07-30T10:49:14Z", "hours": 1.8297, "text": "Made the dialogs with the NPC!"}, {"post_id": 36978, "ts": "2026-07-29T12:33:12Z", "hours": 0.9403, "text": "Added some scientists in the first room!"}, {"post_id": 36331, "ts": "2026-07-28T11:46:35Z", "hours": 1.3778, "text": "Started working on the sprites for the tutorial rooms!"}, {"post_id": 32956, "ts": "2026-07-22T13:18:32Z", "hours": 1.3172, "text": "Created the backgrounds for the tutorial rooms"}, {"post_id": 24042, "ts": "2026-07-07T10:27:48Z", "hours": 2.4883, "text": "Started working on the rooms. Created three empty rooms (that will be the three rooms of the tutorial), two with static camera, and one (that’s bigger) with the free camera. Made the room transition animation (It’s been quite difficult, I had to fix a lot of bugs!)."}, {"post_id": 22771, "ts": "2026-07-05T11:05:24Z", "hours": 1.2342, "text": "Updated the Unity version to the modern 6000.5.1f1 and fixed all the related bugs. Added a typing sound effect for the story scene (unluckily you can’t hear it in the video)."}, {"post_id": 2644, "ts": "2026-06-05T09:27:33Z", "hours": 1.1653, "text": "Drawn the player sprites! (1st simple version)"}, {"post_id": 1349, "ts": "2026-06-03T09:35:28Z", "hours": 0.8936, "text": "Made the story’s slides for the new games."}, {"post_id": 1323, "ts": "2026-06-03T08:08:39Z", "hours": 0.7725, "text": "Finished the title screen!"}, {"post_id": 802, "ts": "2026-06-02T13:58:42Z", "hours": 0.8736, "text": "Writed the Save logic."}, {"post_id": 730, "ts": "2026-06-02T10:33:57Z", "hours": 0.9222, "text": "Added the buttons in the title screen"}, {"post_id": 689, "ts": "2026-06-02T07:57:05Z", "hours": 2.4847, "text": "Made the README file. Started working on the title scene."}]...
|
Title: Beyond the Quarks by @__grdev | Stardance
Title: Beyond the Quarks by @__grdev | Stardance
Devlogs:
Made the README file. Started working on the title scene.
Added the buttons in the title screen
Writed the Save logic.
Finished the title screen!
Made the story’s slides for the new games.
Drawn the player sprites! (1st simple version)
Updated the Unity version to the modern 6000.5.1f1 and fixed all the related bugs. Added a typing sound effect for the story scene (unluckily you can’t hear it in the video).
Started working on the rooms. Created three empty rooms (that will be the three rooms of the tutorial), two with static camera, and one (that’s bigger) with the free camera. Made the room transition animation (It’s been quite difficult, I had to fix a lot of bugs!).
Created the backgrounds for the tutorial rooms
Started working on the sprites for the tutorial rooms!
Added some scientists in the first room!
Made the dialogs with the NPC!
Drawn 2 more sprites for the scientists. Added some electronic components in the engineers room. Added unique dialogues with the NPCs.
Added the QUARK, with the pickup animation.
Added some really important people in the stage room. Each person have a dialogue, and the NASA Administrator has 4 dialogues.
Added an animation for the moment when you step on the stage, with a speech from the head of the Q.U.A.R.K. project. Added an animation when you take the Q.U.A.R.K. and the animated portal that you can open with it. I drew all the sprites.
Finally finished a first version of the tutorial scene. I’ve added the sound effects and prepared everything to start working on the first multiverse.
Added images and text for the first dimensional leap sequence.
Started working on a simple pause menu. Started integrating a better saving system, that should allow the player to save in almost any moment and resume from it.
Finished a first simple version of the pause menu, with inventory, QUARK status, Save and Quit buttons.
Finished a first full-working version of the inventory. (the column in the video is just a test item)
Finished the logic and the graphics of the inventory. Added some items in the laboratory that the player can pick up. Created some special dialogues with some NPCs that depends on the items that the player has in the inventory.
Made the graphics for the delete items.
Finally finished a working saving system! It saves the position of the player, the inventory, the scene and the current room!
I’ve added a “Coming Soon” scene after the finish of the first scene. I’ve also added an automatic saving system for when it change scene.
Updated the README and published on itch.io!
Fixed the deselect on background click in all the scenes.
Ships:
I built this sci-fi-themed video game from scratch. The story is about an astronaut who makes the first interdimensional journey thanks to Q.U.A.R.K., a device created by NASA to generate wormholes. However, the device malfunctions, and the player finds himself lost in the multiverse. The player must explore different universes to find parts to repair the Q.U.A.R.K. and return home. The game is still in its early stages of development. The demo only includes the first playable scene, the lab, but much of the foundation for the rest of the gameplay is already in place. The pixel art assets were almost entirely created from scratch by me. Only a few of the images in the first sequence were generated by AI and then edited and adjusted by hand. While the game may be very short at the moment, I hope the attention to detail stands out, such as the dialogue, sprites, and the logic of certain elements, such as the camera that changes its behavior (first fixed on the screen and then dynamically following the player)....
|
1792986852.4131675
|
1793073252.4131675
|
|
43890
|
SarSynth by @manayp | Stardance
|
manayp
|
2
|
25.0
|
410
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-18T18:34:17Z", "hours": 8.0, "multiplier": 11.91, "payout": 101, "blessing": "neutral", "text": "This innovation is something that I am proud about in SarSynth since it combines both technology and Indian classical music. SarSynth turns your camera into a musical instrument with the ability to play swaras using hand gestures while using ragas, instruments, tanpura, among other concepts. Getting the gesture recognition and the playing of music using the system was what I enjoyed most in the process of creating SarSynth. SarSynth can recognize hand poses, translate them into notes, and even incorporate features such as different ragas, synthetic instruments, training games, and tuner. I had many mishaps and stuff because in this new update I focused on the TOOLS which was not needed but I just did it. But in the same time I honestly also learned some new things so for me personally it was a win-win situation even though a bit of time was wasted in bugs and other random mishaps. In general, I believe that SarSynth is a nice application since it incorporates Indian classical music in an interactive manner and in addition to learning a lot through this experience especially when trying to debug different systems. And I hope you guys liked it. If you guys have any suggestions or things to add lemme know in slack. Thank you and adios. Note: This update is for the tools only.", "repo": "https://github.com/manayparikh1/sarsynth", "demo": "https://golden-pudding-d83524.netlify.app/"}, {"ship_num": 2, "ts": "2026-08-10T19:35:04Z", "hours": 17.0, "multiplier": 18.38, "payout": 309, "blessing": "neutral", "text": "What have you created? Sargam Synth - an instrument of Indian music which you can play through gestures of your hands in front of a webcam. Left hand defines the swara depending on the number of fingers raised (1 = Sa, 2 = Re, etc. up to Ni), while right hand controls the volume, tone and ornamental variations. Sargam Synth includes 37 ragas and scales, eight synthetic instruments, like sitar and bansuri, tanpura drone and three training games. What was difficult? Developing reliable gesture recognition system - my initial prototype reacted to each frame from the webcam, so a lost frame cut the sound and any transition between the postures produced false notes. I solved this problem by making each finger press steady for 90 milliseconds before it is recognized and remembering the last known position of a hand when it is not currently recognized. The sound of sitar was the second difficulty because it is a synthetic oscillation simulating vibration of the string, not just the simple oscillator. What are you proud of? It’s properly tuned — when playing Ga in Yaman scale you actually hear 5/4 pure interval rather than somewhat different one a piano would provide you. And it even knows how to teach you — all swaras demonstrate their respective fingering on the screen, both hands show you fingers captured by the camera. Thus, if a pose is not recognized, you will immediately understand if it’s you or the tracker who fails to recognize. Overall it had been an amazing journey and its lowkey fun to use with a bit of practice and stuff (I added a guide below for fingerings just incase)… What should people know in order to try it? Allow the camera, and don’t forget about this: Left hand chooses the tone, right hand makes the sound appear — nothing plays until your right hand is raised. If your hands appear inverted, there is a Swap hand detection option in Settings menu that will correct it for you in one tap. No camera? Then press Continue without camera and play using clicks on the swaras or A S D F G H J keys.", "repo": "https://github.com/manayparikh1/sarsynth", "demo": "https://golden-pudding-d83524.netlify.app/"}]...
|
[{"post_id": 49025, "ts": "202 [{"post_id": 49025, "ts": "2026-08-17T16:48:32Z", "hours": 2.1342, "text": "So first of all yes I finished my readme. By finished I mean updated because I added tools. There are 6 distinct tools I created which are in indian style and it works pretty well. I also learned some new stuff from claude like I didnt know too. I learned some stuff in this long session like I never knew that if you set the opaqueness to 1.2 instead of 1 it will be dead code because apparently 1 and 1.1 is the same thing which to be honest is fairly the same. Lol I know this is kinda lame but for some reason it surprises me a lot. I also learned what npm run build does…according to claude it means it checks errors and stuff which personally for some reason I did not know that either… In my project theres some dead space in some areas of the tools pages but thats fine because tbh I was aiming for that because to show its simplicity and stuff lol. The biggest thing that stumped me though was the error in toolspage.tsx…. it says theres an error with the connection of the pages but I think its just a glitch because its all connected right with all the files in the right space so overall I just think thats an error or a glitch. Special thx to claude and vs code suggestions because they helped me learn stuff and made my life easier and possibly faster in some sorta of way so thx. Claude and vs code and github copilot also helped me push my files faster and more efficient so thx. Overall this is my last devlog and I had a great time making this and it went really well (at times lol) and if you guys like this make sure to possibly follow and like some of my devlogs and if you dont then contact me in slack if you have anything I should change or add or even fix lol. Thanks and adioss."}, {"post_id": 48563, "ts": "2026-08-17T00:23:54Z", "hours": 0.4247, "text": "So I did 115 ish lines for the tuner and claude did like 50-65 percent of it because mostly it was repeats of other stuff but also a bit of new stuff in it especailly the logical part of it. So this was actually my second last file so I juse gotta finish the CSS for everything and I am going to be done. Also I found out that the <ToolShell function that I created had glitches or idk something was happening but I fixed it and realized it was a spelling mistake lol. I spend 3 min on solving that so its fine… Ok so the tuner I was working on is basically going to do exactly what your thinking of its going to tune instruments or even your voice using cents which is a thing for tuners that shows its close or far. Overall its going veryy well so lets see if my css goes well or not adioss."}, {"post_id": 48515, "ts": "2026-08-16T22:12:19Z", "hours": 1.3925, "text": "So basically I am almost done… So all my files for the extra tools were supposed to be much more longer but because I do not wanna spend too much time on this project I shortened each file by 200 ish lines with the help of Claude and my wits. So I finished all the tools so far, but I just have like one more left. And I also have to do the CSS which I have to make so that will take some time. During this phase, I worked on improving the whole SarSynth interface, designing a dark theme with gold accents and creating the whole layer of UI elements which feels stable and high-performance. I defined the CSS variables for the whole interface, its colors, font styles, and panel styles, made the camera backdrop with mirrored video and vignette with smooth transition of opacity. Top bar design took much of my effort, as I designed the fields with labels, custom selects with gradients and arrows, hint texts, buttons with icons and Devanagari tanpura switch with activated and inactive states. After that, I added the pose list functionality with glyphs for melody and expression, mono-font labels and muted notes. Readout part and the layout as a whole received tuning of spacing and blur effect, and at the same time, I was solving various irritating problems such as proper placement of select-element arrows, right background for backdrop, and visual matching of components. Overall I believe I am 80 percent done the tools code and everything but that will all be resolved and established soo adios cya in my next log….."}, {"post_id": 47072, "ts": "2026-08-14T18:16:23Z", "hours": 1.8797, "text": "So I completed the TheoryReference.tsx and finally just now completed the TaalMetronome.tsx. I also researched various types of taals and beats for the metronome and I learned new things and concepts which include vibhag, sam, tali, and khali. And to be honest claude and chatgpt helped in coding chunks which just made my coding and stuff faster. So overall I had good enough progresss in the last 1-2 hours so yep. I completed the development of my fully cycle-based taal metronome today. In this project, I have FINALLY developed a system that would be based on the concepts of vibhag, sam, tali, and khali rather than the conventional method of bar-based counting. I created a complete set of taals that contain information about their vibhag structure, khali, bols, and notes. Then, I coded the system to dynamically create matra counts, accent patterns, and vibhag markers. The audio engine is now powered by an advanced Web Audio scheduler that allows pre-scheduling of clicks, takes care of subdivisions and accent playback so that the structure of taal is perceivable to the user via sound. I have also incorporated tap tempo with averaging and reset functionality with “const” placed in numerous lines which will not change anything. Special thanks to vs code because it gave me auto suggestions which auto fixed my code which actually helped me a lot because honestly I suck at typing fast lol. I also pushed many commits in github so its all active and ongoing. More will also have to be fixed though soo stay tuned and adiossssssssss. So overall I have good progress and I will see you in the next devlog adioss."}, {"post_id": 46108, "ts": "2026-08-13T03:01:22Z", "hours": 1.2167, "text": "After almost an hour I finally completed 2 files. I completed the ToolsPage.tsx fully and the ScaleFinder.tsx…. Now I havent really fully tested the toolspage one but the scalefinder one works (I tested it with onecompilor and it works great. So my first tool is finally completed and working now I just gotta keep going at it and finish a few more…So I am done for today and personally I got a good amount done. I am still running into a few errors in the ToolsPage.tsx but 100 percent thats because of the imports because currently I do not have some of the pages but it willl get fixed. And today I finished about 250-300 + lines of code and thanks to chatgpt and claude because they taught me a lot of things including blurb…honestly I am not that good at this coding language but I am still learning. Adiosss see u in the next devlog…"}, {"post_id": 46042, "ts": "2026-08-12T23:37:29Z", "hours": 1.4278, "text": "So this is my first devlog of the new ship and I thought a lot and wondered a lot of what else to add. And now I know. I am adding internal tools to it like a whole page which can be easily accessed. So far I have completed toolAudio.ts and it was about 130 ish lines of code and overall it works well. And yeah so I spent 50 minutes just writing 80 ish lines of code which is pretty not that bad but I slowed down because I changed my ideas mid writing… and also my github got reset or something somehow and alll my commit messages are gone so I have restarted with another repository with new commits. And also I made the most crap mistake ever so instead of making the folder in SRC I made it in localhistory which wasted SOO MUCH of my time. BUT I just copy pasted my code into the right place so overall its all good now. Ill see you guys later. Stay tuned for the upcoming tools. Thanks. ADIOSS"}, {"post_id": 44771, "ts": "2026-08-10T19:28:37Z", "hours": 0.7036, "text": "So in the past half and hour I did a lot and yes this is actually my final devlog this time. Ok so I finished the css around like 100-200 lines of code but it was light because the color scheme sorta connected with the theme anyway… I ran into a few alignment errors like it was blocking my whole screen but I fixed it so thats solved. I also updatted my readme about the games. Below I added a picture of my finger guide SarSynth it just shows how all your fingers should be aligned and for what and personally dha and ni is the hardest but with practice (like 5-10min) you can get used to it. I made it with Canva it took like 2 Minutes because the pictures I didnt really count towards my time just the making and alignments were counted. Overall thank you and goodbye."}, {"post_id": 44733, "ts": "2026-08-10T17:53:30Z", "hours": 1.1725, "text": "I fixed the Tanpura instrumental background track and now it works more properly because last time it was glitching even when I spammed it so it is fine now just a small JS error. I also finished the games logic its 3 simple games which you will come to know soon… In total it is about 250 lines of code which is fairly simple but the games are actually nice in my opinion. And soon I will be making a sort of guide on how to position your fingers for each note which includes Sa, Re, Ga, Ma, Pa, Dha, Ni, Sa. But tbh I have everything thats needed but it doesent hurt to give a bit of teaching because honestly even though I made it, it was pretty hard doing the dha and ni because my hands were keep forgetting the placement but after some time and practice I got it (10 min lol)… So lets see what happens next… Byee and ADioss"}, {"post_id": 44415, "ts": "2026-08-10T04:46:56Z", "hours": 0.6417, "text": "Ok so my README.md is done after like 1 ish hour in total. I incorporated as much as I could including a license in the bottom and honestly this is my first time not writing it raw and actually using hashtags and asterisks to make the text look better in the readme so it went well. I hosted it and was going to ship it. I showed it to my sibling and my feedback was “can you make it not that fun its kinda boring” so that obviously struck me inside considering the effort I put into this so what I did next was crazy. So as you know I was gonna ship it but instead I mapped out a way where I can add small games into it like GUESS THE RAGA and more which I will incorporate later. So sorry Guys I will need to add a bit more before I can ship it but I got this. Adioss."}, {"post_id": 44320, "ts": "2026-08-10T00:14:15Z", "hours": 0.3931, "text": "The front page was zoomed in a bit which was because of the css which I figured out after going through the CSS so that I fixed. Claude helped me a ton just now because I told it to make me 8 different panels in the front page which lead to a page and claude did that which was nice but for some reason it wrote 600 lines of css which is wild because there is not much that was added just colour and a bit of shadows but its fine because its just panels. OK then off hackatime I did my own little research and basically MY IDEA was to make a panel of each instrument that was incorporated in this project and write a 1 paragraph historical perspective of each instrument and overall it worked out pretty well but AGAIN a sizing issue occurred due to claude and I told claude 4 times to fix it but it could not for some reason And then I went in and figured it out lol it was the most funniest mistake…the css was on 2x zoom and my browser was also on 2x zoom for some reason. So yeahh… that has been solved now I also worked on my readme a bit like 2-3 sentences ish. So overall in these last 25 minutes I got through a lot of progress…"}, {"post_id": 44258, "ts": "2026-08-09T21:45:42Z", "hours": 0.7853, "text": "Over the past 45 Minutes or so I have been writing my readme and organizing some files. In all my other projects my readmes were always the worst part of my project but not anymore starting from now. I learned how to write readmes with more efficiency by adding # and * which basically makes text bigger and also bold or italic. So far I wrote the overview on what my project actually is and I have also wrote some of the philosophy and design goals which include data in jots. I also completed the tech stack and computer vision data which is in the same section as the design goals. Overall I am like 20 ish percent done the Readme and my folders are properly organized and I am done that section now."}, {"post_id": 44188, "ts": "2026-08-09T19:49:37Z", "hours": 1.6772, "text": "TODAY WAS CRAZY and this may be my last devlog I’ve spent today creating the entire visual backbone of the app, and now finally feel that the UI actually has some personality and doesn’t consist of random pieces. To start with, I defined a complete theme in :root – all golds, teals, ink shades, subdued overlays, panel colors, and two font stacks – so all the elements of the app draw colors from one consistent palette. Next, I created the layout guidelines for html, body and #root, and implemented the backdrop system – mirrored camera feed, vignette gradients, and stage layer below the canvas. Finally, I added the top bar styling, dropdowns, hint text, icon buttons, and tanpura toggle styling using the gold/teal accent language. I included the UI for the pose list, the readout section with Devanagari + monospace swara display, and the stat blocks with small capital letter labels. And now, I have the help and settings panels with blurred glass background, gold section headers, chips, toggles, and sliders. In addition, I designed the footer banner and the whole start overlay consisting of the brand logo, tagline, buttons, loading animation, error message, and legal disclaimer, so that the app can have a nice onboarding screen. Last but not least, I provided the full responsive layout for small screens so that UI elements will be reorganized on mobile devices properly. Overall, this stylesheet became the core of the application UI design. SO overall it works pretty well and its amazing and I made it indian because I am personally indian. So overall this is prolly note my last devlog but LETS SEE. Adioss."}, {"post_id": 43519, "ts": "2026-08-08T20:46:51Z", "hours": 0.9217, "text": "HII guys so heres what I did in the last hour… I spent a good amount of time was spent working on the design of the interface. Finally, I would say that now the interface looks like a finished product rather than some temporary solution. As the first step, I set up a complete theme via CSS variables in :root. In particular, there were colors for the background which should be dark, golden accents, teal expression color, ink text, muted overlays, as well as font stacks of Devanagari and monospace. All those settings in one place immediately gave the interface much better structure and increased convenience of further editing. Further, I adjusted the global layout to make the app take the full screen and have a nice dark mode design, fitting into the overall musical concept of the project. Then, I designed the camera backdrop including the mirrored video feed, vignette gradients, and stage layer. It provides the project with a moody and atmospheric design. After the backdrop was completed, I turned to designing the top bar which includes the design of fields, labels, dropdowns, hint text, and icon buttons. I added select styles with gold arrows, blurring effect, and transition on hover to make all of these elements responsive and clean. Then, I created the tanpura toggle button with its teal glow and devanagari title, which fits very well into the overall Indian classical theme. Finally, I added styles for the pose list and pose glyphs, which include small circles that represent poses, pose names, and subdued note labels. In short, this was the process that turned the plain UI into an actual design. And now I also tested it BUT ima keep it a surprise for yall so I guess stay tuned for the next devlog loll adioss. (I pasted a few of the theme colours in the code below…"}, {"post_id": 43411, "ts": "2026-08-08T17:10:30Z", "hours": 1.2394, "text": "So heres what happened… In the last hour Claude generated well over 600 lines of new code, covering roughly 70% of the work, and while it dramatically sped me up the alternative was that my entire project instantly threw errors because none of it was connected together yet. While trying to make some sense of the chaos it dawned on me I had an entirely abandoned folder within my project called Components that was full of React components – HelpPanel, Readout, SettingsPanel, StartOverlay, TopBar – that I’d previously created but never attached to anything, and the kicker was my project wasn’t even set up to buildReact. My package.json didn’t contain react or react-dom, tsconfig.json had no JSX support, and my main.tsx was just vanilla JS with a button, and a tag masquerading as a UI element. So I decide to just bite the bullet and hook up React to my project for real. I install React, ReactDOM, and the types for both. Add a vite plugin in a new vite.config.ts, update tsconfig.json’s jsx compiler option to “react-jsx”, write an actual App.tsx that owns the top-level application state (my Performer engine, configuration, the live snapshot of what’s playing, and the state of the camera module) and passing that down into all the components so that the top bar, readout, panels and start screen actually did things. I wire it into my existing drawScene() function via the canvas, I implement some keyboard shortcuts for notes(A-L), octave raises/lowers(Z/X) and tanpura playback(space). I also implement pointer support for playing notes via click and drag without a camera attached. Two things I spotted and removed was a React StrictMode wrap, which would immediately break AudioContext and my handtracking model by remounting them when they just shouldn’t. I also had an import mistmatch between App with braces and a default exported App. Lastly I added a real index.html with a where React mounts and styled the top bar, readout, panels, and start overlay with a whole new styles.css. I was able to clear down all of Claude’s errors, get TSC output zero errors(tsc –noEmit) and build."}, {"post_id": 42783, "ts": "2026-08-07T17:47:04Z", "hours": 1.4017, "text": "Today’s process of working on scene.ts has certainly been one of the most complex parts of my work, since this file involves practically every visual and interaction mechanism I have designed. The imports for degree poses, snapshots and hand tracking points have been implemented and the constants for melody and expression colors, Devanagari fonts, monospace labels and the whole hand skeleton map were defined. Also, the SceneLabel and SceneInput interfaces were implemented; these two mechanisms serve as a sort of backbone for all the information needed by the renderer, such as hands, poses, thresholds, reachable degrees, video size, etc. Then, the geometry helper methods such as roundRect() and ribbonGeometry() were implemented; these methods determine how the swara ribbon would be drawn and how every cell would scale based on window size. Lastly, the drawScene() method is now partially implemented; at the moment it takes care of projection from camera coordinates, drawing of the octaves ladder, ribbon itself, intensity meter and conditional drawings of both hands with landmarks, tone lean arcs, gamak waves and role tags. However, since this file is extremely large and complex, it results in numerous TypeScript errors such as undefined functions, type mismatches, unresolved references, and half-written helper methods like drawPoseGlyph(), which are used before the rest of the code is written. Some errors stem from hand tracking processing, some come from the ribbon rendering code, and some are generated by the math code responsible for resizing the video stream. At this point, the code has reached that chaotic state when the structure starts taking form while the compiler throws numerous errors due to the incomplete file. However, despite the chaos, I have managed to make the ribbon rendering code work, the octave ladder operational, and the hand skeleton drawing code properly working, which means that the visual layer is already being created. I am still working on the code, and hopefully, when more code will be written, many of the above errors will disappear automatically. But yeah overall I fixed them overtime so now I am gonna start the COMPONENTS section around 200+ lines will be written I hope unless an error occurs lets see!!!"}, {"post_id": 42683, "ts": "2026-08-07T15:15:51Z", "hours": 0.5711, "text": "So I was busy getting down deep into scene.ts, where I’m about half way done with the code necessary to render the hand tracking visual layer. Scene.ts is huge and highly interconnected, bringing in pose definition data, Devanagari/roman naming, ribbon geometry data, skeleton structuring, projector calculation, and all the UI controls to display swara, articulation, gamak, tone lean, and expression-hand behaviors. I got all the constants wired in, the skeleton mapping, the tip detection set, the margining mechanism, the complete SceneInput interface, and I began wiring up the drawScene() function pipeline responsible for the octave ladder, ribbon, intensity meter, and hands overlays. Despite having a good structural backbone in place, I’m encountering a crazy amount of errors – some from TypeScript whining about type mismatches, some from missing imports, and some because drawPoseGlyph() or some other functions aren’t written yet but referenced. There are just too many red lines at this point that I cannot tell which are legit obstacles, and which are only temporary noise from not-yet-written parts. However, the basic rendering code is coming together, the projector calculation works, and the skeleton hand-drawing process seems to be halfway there. I’m not finished coding yet, and so I’m hoping that once things come together, a lot of these errors will clear up as the file is completed. Right now, the code is quite a mess, but at least I’m getting somewhere, and the whole scene code system will become operational. So lets see how it goes see ya’ll later adioss."}, {"post_id": 42241, "ts": "2026-08-06T21:11:38Z", "hours": 1.6803, "text": "The day became one of those big pushes where each individual piece I worked on became part of a much bigger picture, and it truly seems that today marked one of the largest leaps forward in the entire process. Claude assisted me in my work throughout the day not only with small bugs but with several large problems standing in my way and thus allowed me to successfully stabilize the entire workflow. Once I managed to deal with the problems, I returned to main.tsx and properly fixed the rendering flow along with ensuring that the components were mounted correctly. The key accomplishment was managing to get the performer.ts file fully rendered and working, which is a great achievement considering that this particular file deals with handling the camera feed, recognizing finger positions, and turning those positions into musical gestures. The moment that it actually worked was a feeling of unlocking another level of the project altogether. My entire objective with this application is to create something where one hand can perform the Indian classical notes of sa, re, ga, ma, pa, dha, ni, sa using the finger position to do so, akin to the bansuri or sargam software, and at the same time having the other hand trigger background sounds such as the tanpura drone sound to produce the atmosphere of the Hindustani classical music. The achievement of making the logic of the camera recognize and respond to the gestures makes the entire idea into a reality. This session is definitely one of those milestones since with the main.tsx file sorted out, performer.tsx rendered successfully, and the gesture pipeline behaving the way I envisioned it, there is no stopping what I want to achieve next. And again claude helped soo much in giving big code blocks especially when there were large errors. SO overall great but it could go better because right now it looks like crap."}, {"post_id": 42004, "ts": "2026-08-06T15:28:18Z", "hours": 1.0119, "text": "Today, I ended up doing more backend setup than what I had expected to do today, in that, after executing the terminal commands to set up the project environment, there were created two files, namely package.json and tsconfig.json, totaling over a thousand lines of configurations. Although mostly being boilerplate, the creation of the two files marked a huge milestone for me in the sense that the project had now become a TypeScript-based one rather than the earlier looser one. After doing that, I then proceeded into the main codebase to modify main.tsx by refactoring the old code. However, my major achievement was the completion of hands.ts, which is one of the harder pieces of codes in the project, in that it deals with hand-tracking, gesture recognition, and all the movement-related logic in the project. I feel really satisfied in doing this file because it is one of those modules that would allow us to implement lots of other features in the future, and seeing the results of my hard work compile successfully after so much setup was truly satisfying. After implementing all the configurations, making changes in the main entry point file, and completing hands.ts, things went pretty well. Overall everything worked out well and I finally figured out the issue lol it was because I did not have these packages so thank you to Claude because it told me what to put in terminal."}, {"post_id": 41663, "ts": "2026-08-06T01:02:52Z", "hours": 2.8281, "text": "Today ended up being one of the most efficient, yet very chaotic coding sessions that I’ve had in a while, because I have managed to finish the entire audio file and the entire engine.ts file, which is essentially one of the key aspects of my entire project, and grew to become more than 700 lines long at the end. Even though I was able to get a lot done, the process was far from being easy, as I encountered some really stubborn errors that would stop the project from running entirely, which were mostly connected to some problems with main.ts file and the Vite configuration, which I did not even know was misconfigured and causing silent problems in the process. I spent far too much time on figuring out the real reasons for those errors until Claude helped me to finally get an idea of what’s really going on. In the process of debugging I found some duplicated code in the engine, which made me quite angry, since it resulted in wasting a lot of time chasing some bugs that occurred due to my mistake when copy-pasting code earlier. Now that I managed to get the engine running at last, I created a little localhost test where I play a sitar sound in order to make sure that the audio stream is functional in real life, and hearing the one little note played made me feel so relieved, knowing that the whole thing really works and not just some theory written in the folder. Now that I have finished all that, I am going to continue to work with hands.ts, which is the part responsible for detecting the hand movements and gestures, and I am excited to see what happens. I also wanna add more instruments which will not be hard but lets see btw I also added a tanpura soo lets see how that goes. See you guys in the next devlog lets see what happens next…Adiosss."}, {"post_id": 40974, "ts": "2026-08-04T21:01:59Z", "hours": 1.7672, "text": "Today was quite productive – more so than I anticipated at the start – and I finished with something on the order of 400-600 lines of code, most of which were devoted to implementing the entire music module in full with its poses.ts, ragas.ts, and swaras.ts, which I have put together in a clean and working fashion without any odd edge cases and inconsistencies. I think it was very satisfying to see that I had finally managed to put all of the pieces together into one coherent system. Next up was the JavaScript part of the audio pipeline which was much faster to implement than I anticipated because once I figured out the general architecture of it, I managed to do it pretty quickly. Claude helped me a little here and there with some hints and clarifications, but the actual implementation was relatively simple after all that. Today turned out to be one of those productive coding sessions where you just seem to get a lot done and end up with a very well-structured and organized system on your hands. So yeah overall I am like 15-20 percent done I think but its really based on how the rest goes especially the camera tracking my hands lets see."}]...
|
Title: SarSynth by @manayp | Stardance
Devlogs:
T Title: SarSynth by @manayp | Stardance
Devlogs:
Today was quite productive – more so than I anticipated at the start – and I finished with something on the order of 400-600 lines of code, most of which were devoted to implementing the entire music module in full with its poses.ts, ragas.ts, and swaras.ts, which I have put together in a clean and working fashion without any odd edge cases and inconsistencies. I think it was very satisfying to see that I had finally managed to put all of the pieces together into one coherent system. Next up was the JavaScript part of the audio pipeline which was much faster to implement than I anticipated because once I figured out the general architecture of it, I managed to do it pretty quickly. Claude helped me a little here and there with some hints and clarifications, but the actual implementation was relatively simple after all that. Today turned out to be one of those productive coding sessions where you just seem to get a lot done and end up with a very well-structured and organized system on your hands. So yeah overall I am like 15-20 percent done I think but its really based on how the rest goes especially the camera tracking my hands lets see.
Today ended up being one of the most efficient, yet very chaotic coding sessions that I’ve had in a while, because I have managed to finish the entire audio file and the entire engine.ts file, which is essentially one of the key aspects of my entire project, and grew to become more than 700 lines long at the end. Even though I was able to get a lot done, the process was far from being easy, as I encountered some really stubborn errors that would stop the project from running entirely, which were mostly connected to some problems with main.ts file and the Vite configuration, which I did not even know was misconfigured and causing silent problems in the process. I spent far too much time on figuring out the real reasons for those errors until Claude helped me to finally get an idea of what’s really going on. In the process of debugging I found some duplicated code in the engine, which made me quite angry, since it resulted in wasting a lot of time chasing some bugs that occurred due to my mistake when copy-pasting code earlier. Now that I managed to get the engine running at last, I created a little localhost test where I play a sitar sound in order to make sure that the audio stream is functional in real life, and hearing the one little note played made me feel so relieved, knowing that the whole thing really works and not just some theory written in the folder. Now that I have finished all that, I am going to continue to work with hands.ts, which is the part responsible for detecting the hand movements and gestures, and I am excited to see what happens. I also wanna add more instruments which will not be hard but lets see btw I also added a tanpura soo lets see how that goes. See you guys in the next devlog lets see what happens next…Adiosss.
Today, I ended up doing more backend setup than what I had expected to do today, in that, after executing the terminal commands to set up the project environment, there were created two files, namely package.json and tsconfig.json, totaling over a thousand lines of configurations. Although mostly being boilerplate, the creation of the two files marked a huge milestone for me in the sense that the project had now become a TypeScript-based one rather than the earlier looser one. After doing that, I then proceeded into the main codebase to modify main.tsx by refactoring the old code. However, my major achievement was the completion of hands.ts, which is one of the harder pieces of codes in the project, in that it deals with hand-tracking, gesture recognition, and all the movement-related logic in the project. I feel really satisfied in doing this file because it is one of those modules that would allow us to implement lots of other features in the future, and seeing the results of my hard work compile successfully after so much setup was truly satisfying. After implementing all the configurations, making changes in the main entry point file, and completing hands.ts, things went pretty well. Overall everything worked out well and I finally figured out the issue lol it was because I did not have these packages so thank you to Claude because it told me what to put in terminal.
The day became one of those big pushes where each individual piece I worked on became part of a much bigger picture, and it truly seems that today marked one of the largest leaps forward in the entire process. Claude assisted me in my work throughout the day not only with small bugs but with several large problems standing in my way and thus allowed me to successfully stabilize the entire workflow. Once I managed to deal with the problems, I returned to main.tsx and properly fixed the rendering flow along with ensuring that the components were mounted correctly. The key accomplishment was managing to get the performer.ts file fully rendered and working, which is a great achievement considering that this particular file deals with handling the camera feed, recognizing finger positions, and turning those positions into musical gestures. The moment that it actually worked was a feeling of unlocking another level of the project altogether. My entire objective with this application is to create something where one hand can perform the Indian classical notes of sa, re, ga, ma, pa, dha, ni, sa using the finger position to do so, akin to the bansuri or sargam software, and at the same time having the other hand trigger background sounds such as the tanpura drone sound to produce the atmosphere of the Hindustani classical music. The achievement of making the logic of the camera recognize and respond to the gestures makes the entire idea into a reality. This session is definitely one of those milestones since with the main.tsx file sorted out, performer.tsx rendered successfully, and the gesture pipeline behaving the way I envisioned it, there is no stopping what I want to achieve next. And again claude helped soo much in giving big code blocks especially when there were large errors. SO overall great but it could go better because right now it looks like crap.
So I was busy getting down deep into scene.ts, where I’m about half way done with the code necessary to render the hand tracking visual layer. Scene.ts is huge and highly interconnected, bringing in pose definition data, Devanagari/roman naming, ribbon geometry data, skeleton structuring, projector calculation, and all the UI controls to display swara, articulation, gamak, tone lean, and expression-hand behaviors. I got all the constants wired in, the skeleton mapping, the tip detection set, the margining mechanism, the complete SceneInput interface, and I began wiring up the drawScene() function pipeline responsible for the octave ladder, ribbon, intensity meter, and hands overlays. Despite having a good structural backbone in place, I’m encountering a crazy amount of errors – some from TypeScript whining about type mismatches, some from missing imports, and some because drawPoseGlyph() or some other functions aren’t written yet but referenced. There are just too many red lines at this point that I cannot tell which are legit obstacles, and which are only temporary noise from not-yet-written parts. However, the basic rendering code is coming together, the projector calculation works, and the skeleton hand-drawing process seems to be halfway there. I’m not finished coding yet, and so I’m hoping that once things come together, a lot of these errors will clear up as the file is completed. Right now, the code is quite a mess, but at least I’m getting somewhere, and the whole scene code system will become operational. So lets see how it goes see ya’ll later adioss.
Today’s process of working on scene.ts has certainly been one of the most complex parts of my work, since this file involves practically every visual and interaction mechanism I have designed. The imports for degree poses, snapshots and hand tracking points have been implemented and the constants for melody and expression colors, Devanagari fonts, monospace labels and the whole hand skeleton map were defined. Also, the SceneLabel and SceneInput interfaces were implemented; these two mechanisms serve as a sort of backbone for all the information needed by the renderer, such as hands, poses, thresholds, reachable degrees, video size, etc. Then, the geometry helper methods such as roundRect() and ribbonGeometry() were implemented; these methods determine how the swara ribbon would be drawn and how every cell would scale based on window size. Lastly, the drawScene() method is now partially implemented; at the moment it takes care of projection from camera coordinates, drawing of the octaves ladder, ribbon itself, intensity meter and conditional drawings of both hands with landmarks, tone lean arcs, gamak waves and role tags. However, since this file is extremely large and complex, it results in numerous TypeScript errors such as undefined functions, type mismatches, unresolved references, and half-written helper methods like drawPoseGlyph(), which are used before the rest of the code is written. Some errors stem from hand tracking processing, some come from the ribbon rendering code, and some are generated by the math code responsible for resizing the video stream. At this point, the code has reached that chaotic state when the structure starts taking form while the compiler throws numerous errors due to the incomplete file. However, despite the chaos, I have managed to make the ribbon rendering code work, the octave ladder operational, and the hand skeleton drawing code properly working, which means that the visual layer is already being created. I am still working on the code, and hopefully, when more code will be written, many of the above errors will disappear automatically. But yeah overall I fixed them overtime so now I am gonna start the COMPONENTS section around 200+ lines will be written I hope unless an error occurs lets see!!!
So heres what happened… In the last hour Claude generated well over 600 lines of new code, covering roughly 70% of the work, and while it dramatically sped me up the alternative was that my entire project instantly threw errors because none of it was connected together yet. While trying to make some sense of the chaos it dawned on me I had an entirely abandoned folder within my project called Components that was full of React components – HelpPanel, Readout, SettingsPanel, StartOverlay, TopBar – that I’d previously created but never attached to anything, and the kicker was my project wasn’t even set up to buildReact. My package.json didn’t contain react or react-dom, tsconfig.json had no JSX support, and my main.tsx was just vanilla JS with a button, and a tag masquerading as a UI element. So I decide to just bite the bullet and hook up React to my project for real. I install React, ReactDOM, and the types for both. Add a vite plugin in a new vite.config.ts, update tsconfig.json’s jsx compiler option to “react-jsx”, write an actual App.tsx that owns the top-level application state (my Performer engine, configuration, the live snapshot of what’s playing, and the state of the camera module) and passing that down into all the components so that the top bar, readout, panels and start screen actually did things. I wire it into my existing drawScene() function via the canvas, I implement some keyboard shortcuts for notes(A-L), octave raises/lowers(Z/X) and tanpura playback(space). I also implement pointer support for playing notes via click and drag without a camera attached. Two things I spotted and removed was a React StrictMode wrap, which would immediately break AudioContext and my handtracking model by remounting them when they just shouldn’t. I also had an import mistmatch between App with braces and a default exported App. Lastly I added a real index.html with a where React mounts and styled the top bar, readout, panels, and start overlay with a whole new styles.css. I was able to clear down all of Claude’s errors, get TSC output zero errors(tsc –noEmit) and build.
HII guys so heres what I did in the last hour… I spent a good amount of time was spent working on the design of the interface. Finally, I would say that now the interface looks like a finished product rather than some temporary solution. As the first step, I set up a complete theme via CSS variables in :root. In particular, there were colors for the background which should be dark, golden accents, teal expression color, ink text, muted overlays, as well as font stacks of Devanagari and monospace. All those settings in one place immediately gave the interface much better structure and increased convenience of further editing. Further, I adjusted the global layout to make the app take the full screen and have a nice dark mode design, fitting into the overall musical concept of the project. Then, I designed the camera backdrop including the mirrored video feed, vignette gradients, and stage layer. It provides the project with a moody and atmospheric design. After the backdrop was completed, I turned to designing the top bar which includes the design of fields, labels, dropdowns, hint text, and icon buttons. I added select styles with gold arrows, blurring effect, and transition on hover to make all of these elements responsive and clean. Then, I created the tanpura toggle button with its teal glow and devanagari title, which fits very well into the overall Indian classical theme. Finally, I added styles for the pose list and pose glyphs, which include small circles that represent poses, pose names, and subdued note labels. In short, this was the process that turned the plain UI into an actual design. And now I also tested it BUT ima keep it a surprise for yall so I guess stay tuned for the next devlog loll adioss. (I pasted a few of the theme colours in the code below…
TODAY WAS CRAZY and this may be my last devlog I’ve spent today creating the entire visual backbone of the app, and now finally feel that the UI actually has some personality and doesn’t consist of random pieces. To start with, I defined a complete theme in :root – all golds, teals, ink shades, subdued overlays, panel colors, and two font stacks – so all the elements of the app draw colors from one consistent palette. Next, I created the layout guidelines for html, body and #root, and implemented the backdrop system – mirrored camera feed, vignette gradients, and stage layer below the canvas. Finally, I added the top bar styling, dropdowns, hint text, icon buttons, and tanpura toggle styling using the gold/teal accent language. I included the UI for the pose list, the readout section with Devanagari + monospace swara display, and the stat blocks with small capital letter labels. And now, I have the help and settings panels with blurred glass background, gold section headers, chips, toggles, and sliders. In addition, I designed the footer banner and the whole start overlay consisting of the brand logo, tagline, buttons, loading animation, error message, and legal disclaimer, so that the app can have a nice onboarding screen. Last but not least, I provided the full responsive layout for small screens so that UI elements will be reorganized on mobile devices properly. Overall, this stylesheet became the core of the application UI design. SO overall it works pretty well and its amazing and I made it indian because I am personally indian. So overall this is prolly note my last devlog but LETS SEE. Adioss.
Over the past 45 Minutes or so I have been writing my readme and organizing some files. In all my other projects my readmes were always the worst part of my project but not anymore starting from now. I learned how to write readmes with more efficiency by adding # and * which basically makes text bigger and also bold or italic. So far I wrote the overview on what my project actually is and I have also wrote some of the philosophy and design goals which include data in jots. I also completed the tech stack and computer vision data which is in the same section as the design goals. Overall I am like 20 ish percent done the Readme and my folders are properly organized and I am done that section now.
The front page was zoomed in a bit which was because of the css which I figured out after going through the CSS so that I fixed. Claude helped me a ton just now because I told it to make me 8 different panels in the front page which lead to a page and claude did that which was nice but for some reason it wrote 600 lines of css which is wild because there is not much that was added just colour and a bit of shadows but its fine because its just panels. OK then off hackatime I did my own little research and basically MY IDEA was to make a panel of each instrument that was incorporated in this project and write a 1 paragraph historical perspective of each instrument and overall it worked out pretty well but AGAIN a sizing issue occurred due to claude and I told claude 4 times to fix it but it could not for some reason And then I went in and figured it out lol it was the most funniest mistake…the css was on 2x zoom and my browser was also on 2x zoom for some reason. So yeahh… that has been solved now I also worked on my readme a bit like 2-3 sentences ish. So overall in these last 25 minutes I got through a lot of progress…
Ok so my README.md is done after like 1 ish hour in total. I incorporated as much as I could including a license in the bottom and honestly this is my first time not writing it raw and actually using hashtags and asterisks to make the text look better in the readme so it went well. I hosted it and was going to ship it. I showed it to my sibling and my feedback was “can you make it not that fun its kinda boring” so that obviously struck me inside considering the effort I put into this so what I did next was crazy. So as you know I was gonna ship it but instead I mapped out a way where I can add small games into it like GUESS THE RAGA and more which I will incorporate later. So sorry Guys I will need to add a bit more before I can ship it but I got this. Adioss.
I fixed the Tanpura instrumental background track and now it works more properly because last time it was glitching even when I spammed it so it is fine now just a small JS error. I also finished the games logic its 3 simple games which you will come to know soon… In total it is about 250 lines of code which is fairly simple but the games are actually nice in my opinion. And soon I will be making a sort of guide on how to position your fingers for each note which includes Sa, Re, Ga, Ma, Pa, Dha, Ni, Sa. But tbh I have everything thats needed but it doesent hurt to give a bit of teaching because honestly even though I made it, it was pretty hard doing the dha and ni because my hands were keep forgetting the placement but after some time and practice I got it (10 min lol)… So lets see what happens next… Byee and ADioss
So in the past half and hour I did a lot and yes this is actually my final devlog this time. Ok so I finished the css around like 100-200 lines of code but it was light because the color scheme sorta connected with the theme anyway… I ran into a few alignment errors like it was blocking my whole screen but I fixed it so thats solved. I also updatted my readme about the games. Below I added a picture of my finger guide SarSynth it just shows how all your fingers should be aligned and for what and personally dha and ni is the hardest but with practice (like 5-10min) you can get used to it. I made it with Canva it took like 2 Minutes because the pictures I didnt really count towards my time just the making and alignments were counted. Overall thank you and goodbye.
So this is my first devlog of the new ship and I thought a lot and wondered a lot of what else to add. And now I know. I am adding internal tools to it like a whole page which can be easily accessed. So far I have completed toolAudio.ts and it was about 130 ish lines of code and overall it works well. And yeah so I spent 50 minutes just writing 80 ish lines of code which is pretty not that bad but I slowed down because I changed my ideas mid writing… and also my github got reset or something somehow and alll my commit messages are gone so I have restarted with another repository with new commits. And also I made the most crap mistake ever so instead of making the folder in SRC I made it in localhistory which wasted SOO MUCH of my time. BUT I just copy pasted my code into the right place so overall its all good now. Ill see you guys later. Stay tuned for the upcoming tools. Thanks. ADIOSS
After almost an hour I finally completed 2 files. I completed the ToolsPage.tsx fully and the ScaleFinder.tsx…. Now I havent really fully tested the toolspage one but the scalefinder one works (I tested it with onecompilor and it works great. So my first tool is finally completed and working now I just gotta keep going at it and finish a few more…So I am done for today and personally I got a good amount done. I am still running into a few errors in the ToolsPage.tsx but 100 percent thats because of the imports because currently I do not have some of the pages but it willl get fixed. And today I finished about 250-300 + lines of code and thanks to chatgpt and claude because they taught me a lot of things including blurb…honestly I am not that good at this coding language but I am still learning. Adiosss see u in the next devlog…
So I completed the TheoryReference.tsx and finally just now completed the TaalMetronome.tsx. I also researched various types of taals and beats for the metronome and I learned new things and concepts which include vibhag, sam, tali, and khali. And to be honest claude and chatgpt helped in coding chunks which just made my coding and stuff faster. So overall I had good enough progresss in the last 1-2 hours so yep. I completed the development of my fully cycle-based taal metronome today. In this project, I have FINALLY developed a system that would be based on the concepts of vibhag, sam, tali, and khali rather than the conventional method of bar-based counting. I created a complete set of taals that contain information about their vibhag structure, khali, bols, and notes. Then, I coded the system to dynamically create matra counts, accent patterns, and vibhag markers. The audio engine is now powered by an advanced Web Audio scheduler that allows pre-scheduling of clicks, takes care of subdivisions and accent playback so that the structure of taal is perceivable to the user via sound. I have also incorporated tap tempo with averaging and reset functionality with “const” placed in numerous lines which will not change anything. Special thanks to vs code because it gave me auto suggestions which auto fixed my code which actually helped me a lot because honestly I suck at typing fast lol. I also pushed many commits in github so its all active and ongoing. More will also have to be fixed though soo stay tuned and adiossssssssss. So overall I have good progress and I will see you in the next devlog adioss.
So basically I am almost done… So all my files for the extra tools were supposed to be much more longer but because I do not wanna spend too much time on this project I shortened each file by 200 ish lines with the help of Claude and my wits. So I finished all the tools so far, but I just have like one more left. And I also have to do the CSS which I have to make so that will take some time. During this phase, I worked on improving the whole SarSynth interface, designing a dark theme with gold accents and creating the whole layer of UI elements which feels stable and high-performance. I defined the CSS variables for the whole interface, its colors, font styles, and panel styles, made the camera backdrop with mirrored video and vignette with smooth transition of opacity. Top bar design took much of my effort, as I designed the fields with labels, custom selects with gradients and arrows, hint texts, buttons with icons and Devanagari tanpura switch with activated and inactive states. After that, I added the pose list functionality with glyphs for melody and expression, mono-font labels and muted notes. Readout part and the layout as a whole received tuning of spacing and blur effect, and at the same time, I was solving various irritating problems such as proper placement of select-element arrows, right background for backdrop, and visual matching of components. Overall I believe I am 80 percent done the tools code and everything but that will all be resolved and established soo adios cya in my next log…..
So I did 115 ish lines for the tuner and claude did like 50-65 percent of it because mostly it was repeats of other stuff but also a bit of new stuff in it especailly the logical part of it. So this was actually my second last file so I juse gotta finish the CSS for everything and I am going to be done. Also I found out that the <ToolShell function that I created had glitches or idk something was happening but I fixed it and realized it was a spelling mistake lol. I spend 3 min on solving that so its fine… Ok so the tuner I was working on is basically going to do exactly what your thinking of its going to tune instruments or even your voice using cents which is a thing for tuners that shows its close or far. Overall its going veryy well so lets see if my css goes well or not adioss.
So first of all yes I finished my readme. By finished I mean updated because I added tools. There are 6 distinct tools I created which are in indian style and it works pretty well. I also learned some new stuff from claude like I didnt know too. I learned some stuff in this long session like I never knew that if you set the opaqueness to 1.2 instead of 1 it will be dead code because apparently 1 and 1.1 is the same thing which to be honest is fairly the same. Lol I know this is kinda lame but for some reason it surprises me a lot. I also learned what npm run build does…according to claude it means it checks errors and stuff which personally for some reason I did not know that either… In my project theres some dead space in some areas of the tools pages but thats fine because tbh I was aiming for that because to show its simplicity and stuff lol. The biggest thing that stumped me though was the error in toolspage.tsx…. it says theres an error with the connection of the pages but I think its just a glitch because its all connected right with all the files in the right space so overall I just think thats an error or a glitch. Special thx to claude and vs code suggestions because they helped me learn stuff and made my life easier and possibly faster in some sorta of way so thx. Claude and vs code and github copilot also helped me push my files faster and more efficient so thx. Overall this is my last devlog and I had a great time making this and it went really well (at times lol) and if you guys like this make sure to possibly follow and like some of my devlogs and if you dont then contact me in slack if you have anything I should change or add or even fix lol. Thanks and adioss.
Ships:
What have you created? Sargam Synth - an instrument of Indian music which you can play through gestures of your hands in front of a webcam. Left hand defines the swara depending on the number of fingers raised (1 = Sa, 2 = Re, etc. up to Ni), while right hand controls the volume, tone and ornamental variations. Sargam Synth includes 37 ragas and scales, eight synthetic instruments, like sitar and bansuri, tanpura drone and three training games. What was difficult? Developing reliable gesture recognition system - my initial prototype reacted to each frame from the webcam, so a lost frame cut the sound and any transition between the postures produced false notes. I solved this problem by making each finger press steady for 90 milliseconds before it is recognized and remembering the last known position of a hand when it is not currently recognized. The sound of sitar was the second difficulty because it is a synthetic oscillation simulating vibration of the string, not just the simple oscillator. What are you proud of? It’s properly tuned — when playing Ga in Yaman scale you actually hear 5/4 pure interval rather than somewhat different one a piano would provide you. And it even knows how to teach you — all swaras demonstrate their respective fingering on the screen, both hands show you fingers captured by the camera. Thus, if a pose is not recognized, you will immediately understand if it’s you or the tracker who fails to recognize. Overall it had been an amazing journey and its lowkey fun to use with a bit of practice and stuff (I added a guide below for fingerings just incase)… What should people know in order to try it? Allow the camera, and don’t forget about this: Left hand chooses the tone, right hand makes the sound appear — nothing plays until your right hand is raised. If your hands appear inverted, there is a Swap hand detection option in Settings menu that will correct it for you in one tap. No camera? Then press Continue without camera and play using clicks on the swaras or A S D F G H J keys.
This innovation is something that I am proud about in SarSynth since it combines both technology and Indian classical music. SarSynth turns your camera into a musical instrument with the ability to play swaras using hand gestures while using ragas, instruments, tanpura, among other concepts. Getting the gesture recognition and the playing of music using the system was what I enjoyed most in the process of creating SarSynth. SarSynth can recognize hand poses, translate them into notes, and even incorporate features such as different ragas, synthetic instruments, training games, and tuner. I had many mishaps and stuff because in this new update I focused on the TOOLS which was not needed but I just did it. But in the same time I honestly also learned some new things so for me personally it was a win-win situation even though a bit of time was wasted in bugs and other random mishaps. In general, I believe that SarSynth is a nice application since it incorporates Indian classical music in an interactive manner and in addition to learning a lot through this experience especially when trying to debug different systems. And I hope you guys liked it. If you guys have any suggestions or things to add lemme know in slack. Thank you and adios. Note: This update is for the tools only....
|
1792986901.6382697
|
1793073301.6382697
|
|
24796
|
Soulful by @Alafandri | Stardance
|
Alafandri
|
2
|
49.0
|
409
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-30T00:23:16Z", "hours": 3.0, "multiplier": 12.86, "payout": 43, "blessing": "neutral", "text": "I made an update to my game called ‘Soulful’. It’s a game about a soul sent to earth to defeat a corrupted soul who is trying to take over the world. This update mainly features bug fixes and big improvements to the game. The most challenging part was to get the systems to feel right. I am most proud of the outcome of everything and very happy about doing these fixes. People who plan on playing it should know that in the end there is also a cutscene when you finish the game. Also note that the game bosses are quite wonky and being able to save inside the arena and also heal is a feature ;). Anyways have fun!", "repo": "https://github.com/Alafandri/Soulful", "demo": "https://alafandri.itch.io/soulful"}, {"ship_num": 2, "ts": "2026-08-07T17:40:13Z", "hours": 46.0, "multiplier": 15.91, "payout": 366, "blessing": "neutral", "text": "I made a pixel art style platformer game that includes enemies, bosses, abilities, platformer challenges a story and much more. This project might be by far my biggest game project I have ever made! And I am really proud of the results. The most challenging thing with making this game was programming. I ran into a bunch of problems, had really weird bugs but I somehow managed to outcome them. I am really proud of the art for this game. That is because I haven’t really ever made pixel art before until this project. This project really forced me to step out of my comfort zone. People who are planning on playing this should know that don’t expect anything insane. This game doesn’t take very long to complete. I would say around 5-10 min, depending on the person. Anyways, enjoy!", "repo": "https://github.com/Alafandri/Soulful", "demo": "https://alafandri.itch.io/soulful"}]...
|
[{"post_id": 57733, "ts": "202 [{"post_id": 57733, "ts": "2026-08-30T00:10:36Z", "hours": 3.3725, "text": "Devlog #8: overhaul Hello guys! So I have come back to the game after some time cause I wanted to do some improvements that I just had to get out of my head. Everything new: 🔥 More settings options Improved lighting Platforming improvements Sound fixes Bug fixes Buttons and menu overhaul And a few small other things like tweaking particle amounts and a few settings So after reading everyones feedback to the game I realized that some parts of the game really needed to be improved. So I got to work and thats what I did. Also tysm to everyones feedback on the game and those amazing words❤️. Anyways that is it for now! Will probably return to this project in the future or will work on the game but without the devlog thing anymore. Anyways enjoy!🥰"}, {"post_id": 42771, "ts": "2026-08-07T17:29:49Z", "hours": 1.8014, "text": "Game is ready for release!"}, {"post_id": 42605, "ts": "2026-08-07T12:52:46Z", "hours": 8.5772, "text": "Devlog #8: Sound 🎵 Hi guys! So the game is basically done but it is missing alot of sfx and there is no music yet in the game. But other than that I have gotten everything else done! Everything new: 🔥 Ending Credits Tutorial Menu Settings Some sfx and ambience All I am doing currently with the game pretty much is just finishing off areas, adding final touches and adding in sfx. The music will be probably the hardest part but we will see. I am so proud of the game and I cannot wait to make it public for everyone. The game is about to come out any day now. Maybe even today if I lock in. We will see. Byeeeee❤️"}, {"post_id": 41600, "ts": "2026-08-05T21:58:58Z", "hours": 4.7264, "text": "Devlog #7: The game 😍 Yo wsp everyone!!! The game is so so close to being done. I decided to make a final long form devlog on this project. I will probably do another small one later when I am really close to release. Everything new: 2 bosses new enemy a bunch of areas And bunch other stuff you will find out about when you play the game Okay. so I have added actually a lot of stuff since last devlog. All of the areas are basically finished, they just need a little touch of love. I currently am working on the final boss of the game which I am proud of. This game isn’t anything big. You will probs finish it in a few minutes. It’s nothing special, but I am proud of it since so much work went into this and the results so far are more than I ever thought I was capable of. Until starting this project I hadn’t basically really ever done pixel art. I have tried before and watched tutorials for it but it always seemed too hard for me. While making this game I have improved so much in making pixel art and I will definitely in the future continue making pixel art cause it is alot of fun. This project has definitely been a challenge but but it has also been alot of fun. I like writing this devlogs and sharing updates with everyone, even though my post barely get any attention. Anyways, I should get back to work. Basically the game is almost done and I don’t have much left to do. Byeee!!!!"}, {"post_id": 40389, "ts": "2026-08-03T21:10:15Z", "hours": 1.4594, "text": "Another update: All of the areas are finished! All that is needed to be worked on is the final boss, adding detail, end cutscene. When this game comes out you will have option to either download it or just to play it on your browser. Also heres a little sneak peek of a tileset for a area in the game"}, {"post_id": 40054, "ts": "2026-08-03T12:35:58Z", "hours": 4.0144, "text": "Little update: So much work is being done! I just finished one of the areas for the game. I got 3 more to go and final boss to be implemented to the game. The boss is fully drawn but it’s not in the game yet. The game will be out very very soon!"}, {"post_id": 38830, "ts": "2026-08-01T12:08:20Z", "hours": 8.0881, "text": "Devlog #6: World building 😆 Hey everyone! This devlog will be short and without a current progress video like usually. That is because I have started to build the games world. I have finished the starting area and got a rough layout for the next one. I have written out the game lore and how the game should progress so I know what keep in mind while building the map. Most of the current time is spent drawing cause so much art is needed for the game but the progress is overall really good! Also check out this cool tree I made. It wont have any purpose in the game but It does help with the world feel. See you soon!"}, {"post_id": 36380, "ts": "2026-07-28T13:38:19Z", "hours": 5.6547, "text": "Devlog #5: Npc, new art, health and bug fixes 😆 Hey guys! I haven’t posted in a while and I wasn’t able to work much on the game in the time but now I’m back and working on the game again! 🥳 Even though I haven’t worked on the game much then I still have got quite a few new things to show you guys for this devlog. Everything new: 🔥 Npc New enemy sprites, death particles and few fixes Ball Player improvements(bug fixes. few tweaks and hit invincibility indicator!) New decorational flower sprites Health bar And some other things that I’m not going to bore you with… So that’s quite a lot of stuff I would say, It might not seem like it to you but It does for me. Seeing the game coming slowly together really motivates me to work on it even more. SO so much needs to be still done until it can be finally shipped and you to be able to play it, but eventually we will get there! Next I’m planning on working on the abilities, then I will try to make 2 bosses for the game. Wait lemme just make a roadmap for the game real quick… ROADMAP: 🗺️ other 2 Abilities Breakable walls Attacking enemies 2 Bosses Save/load system Ending/s? map 2 Areas Parkour sections Boss rooms Some other stuff I can’t think of rn Currently my plan is to make the basic things for the game before I can start building it out. I want save the map for the last cause I want it to feel nice and logical to explore. But thats all for this devlog! See you next time!!!!👋"}, {"post_id": 19188, "ts": "2026-06-30T13:35:01Z", "hours": 3.0072, "text": "Devlog #4: Player, enemies and visuals ✨ Hello everyone once again! I am back with a nother devlog. This time I will be talking about the new visuals for the game and player and enemy interactions. Everything new: 🔥 Parallax background Enemy ai Enemy damage player Player health Added player attack function Visual improvements I have been having so much fun making this game. I love going back to look at the old footage I have filmed of the game and see how much has changed. With every devlog I’m getting closer to shipping the game. Even though a lot needs still to be done to get to that point I’m still very happy with what I have made so far. I’ve had a lot of problems before getting the parallax background to work properly but somehow I got it to work! One of the things I have been wanting to add was a enemy which finally is here now. Currently I only got one enemy who doesn’t do much but still it’s at least something for now and I will be definitely adding more in the future. A lot of things still need to be added like player health ui and sprites need to be made for the enemy and hopefully I will have those things for the next devlog! In the next devlog you can hopefully expect: 😁 Expand world Dialogue system New art Player death respawn fix probs more stuff idk Oki, that’s it for this devlog! See you soon!!!! 🤑"}, {"post_id": 17896, "ts": "2026-06-28T20:42:11Z", "hours": 5.2508, "text": "Devlog #3: Character and the world 🔥 Hey everyone! I haven’t posted for a few days but that’s because I have been doing a lot of work on the game. So far everything is coming along very nicely. Everything new: Grass wind shader Character attack Checkpoints Particles Menu screen Tweaked character settings Changed some sprites Visual changes(particles and etc) So as you can see I have added quite a few things but there is still a lot for me left to do until it’s an actual game where you have something to do. Probably the biggest things that I have added are the player attack, checkpoints and menu. Other are just visual changes and some tiny value and number changes here and there. I also changed the grass sprite cause I wanted to add a wind shader on the grass but I ran into a problem that when the grass has an outline then it disappears sometimes to who knows where or there are suddenly more black pixels than there should be. So I decided that I will just remake the texture and replace the old ones. I have also added wind particles which I had already made earlier but it didn’t look very good before so I had to tweak the settings around here and there until it looked right. I think that it still could be a little better but for now it will do just fine. I also have already written some lore for the game and what that game is going to be about which I will start working once I have all of the main systems that I would need to start building the game. I will hopefully be working next on: Enemies Parallax background Expand world Dialogue system Character death animations some sfx respawn Abilities? Keep in mind that I won’t probably have added all of those things by the next devlog but definitely some. Anyways, thank you so much for reading my devlog! I hope to see you in the next one!!!🥰"}, {"post_id": 15270, "ts": "2026-06-24T20:02:18Z", "hours": 2.6256, "text": "Devlog #2: Art and particles ✨ Hey everyone! In this devlog I have made mostly **visual **changes.😆 All changes: Added particles Also made wind particles but that needs to be worked on and isn’t shown in the video Player sprites and animations Grass sprites Player movement improvements Tilemap ground sprites Grass sprites to make stuff more lively Modified background color I have done actually quite a lot since the last devlog and piece by piece eventually I will have a full functioning game. But to get there there is so much still to do. Anyways the biggest thing I worked on in this devlog is obviously the visual side of things. I wanted to game to look a bit more pleasing on the eye when developing the game. The character design might not be final but I am very proud of myself for this result since I don’t usually do pixel art at all and I thought it might be a nice challange and an opportunity to learn something new while making this game. So far I’m loving making art for this game cause it’s so fun but also hard for me since one wrongly placed pixel can ruin the effect so easily and look wrong overall. I’ve still got to do some work on the grass since it might look a bit tall next to the player cause I’m going for a pixel perfect game and using 16x16 for both the player and grass sprites. I’m also working on a wind shader to give the grass some movement. But yeah that’s all, and I’ve got a lot to do so.. see you in the next devlog. Byeee 🥰 !!!"}, {"post_id": 14662, "ts": "2026-06-23T21:02:37Z", "hours": 0.8072, "text": "DEVLOG #1: Setup Yayyyy a new godot project!!😆😆😆 There is nothing more exciting than starting a new game development project and opening up the fresh new project window. What I have done so far: Made the godot project and setup github page Added keybinds to godots input map Made a character controller Changed window settings Made a basic platform Configured games gravitational settings I’m trying to make a pixel perfect system something like in Celeste so that the game would look extra clean😁 . It doesn’t look that great rn but I’m going to start making art soon when I have the basic stuff setup. That’s all for this devlog but see you very very soon in the next one!!! byeeeee🥰 !!!!!!!!"}]...
|
Title: Soulful by @Alafandri | Stardance
Devlogs: Title: Soulful by @Alafandri | Stardance
Devlogs:
DEVLOG #1: Setup Yayyyy a new godot project!!😆😆😆 There is nothing more exciting than starting a new game development project and opening up the fresh new project window. What I have done so far: Made the godot project and setup github page Added keybinds to godots input map Made a character controller Changed window settings Made a basic platform Configured games gravitational settings I’m trying to make a pixel perfect system something like in Celeste so that the game would look extra clean😁 . It doesn’t look that great rn but I’m going to start making art soon when I have the basic stuff setup. That’s all for this devlog but see you very very soon in the next one!!! byeeeee🥰 !!!!!!!!
Devlog #2: Art and particles ✨ Hey everyone! In this devlog I have made mostly **visual **changes.😆 All changes: Added particles Also made wind particles but that needs to be worked on and isn’t shown in the video Player sprites and animations Grass sprites Player movement improvements Tilemap ground sprites Grass sprites to make stuff more lively Modified background color I have done actually quite a lot since the last devlog and piece by piece eventually I will have a full functioning game. But to get there there is so much still to do. Anyways the biggest thing I worked on in this devlog is obviously the visual side of things. I wanted to game to look a bit more pleasing on the eye when developing the game. The character design might not be final but I am very proud of myself for this result since I don’t usually do pixel art at all and I thought it might be a nice challange and an opportunity to learn something new while making this game. So far I’m loving making art for this game cause it’s so fun but also hard for me since one wrongly placed pixel can ruin the effect so easily and look wrong overall. I’ve still got to do some work on the grass since it might look a bit tall next to the player cause I’m going for a pixel perfect game and using 16x16 for both the player and grass sprites. I’m also working on a wind shader to give the grass some movement. But yeah that’s all, and I’ve got a lot to do so.. see you in the next devlog. Byeee 🥰 !!!
Devlog #3: Character and the world 🔥 Hey everyone! I haven’t posted for a few days but that’s because I have been doing a lot of work on the game. So far everything is coming along very nicely. Everything new: Grass wind shader Character attack Checkpoints Particles Menu screen Tweaked character settings Changed some sprites Visual changes(particles and etc) So as you can see I have added quite a few things but there is still a lot for me left to do until it’s an actual game where you have something to do. Probably the biggest things that I have added are the player attack, checkpoints and menu. Other are just visual changes and some tiny value and number changes here and there. I also changed the grass sprite cause I wanted to add a wind shader on the grass but I ran into a problem that when the grass has an outline then it disappears sometimes to who knows where or there are suddenly more black pixels than there should be. So I decided that I will just remake the texture and replace the old ones. I have also added wind particles which I had already made earlier but it didn’t look very good before so I had to tweak the settings around here and there until it looked right. I think that it still could be a little better but for now it will do just fine. I also have already written some lore for the game and what that game is going to be about which I will start working once I have all of the main systems that I would need to start building the game. I will hopefully be working next on: Enemies Parallax background Expand world Dialogue system Character death animations some sfx respawn Abilities? Keep in mind that I won’t probably have added all of those things by the next devlog but definitely some. Anyways, thank you so much for reading my devlog! I hope to see you in the next one!!!🥰
Devlog #4: Player, enemies and visuals ✨ Hello everyone once again! I am back with a nother devlog. This time I will be talking about the new visuals for the game and player and enemy interactions. Everything new: 🔥 Parallax background Enemy ai Enemy damage player Player health Added player attack function Visual improvements I have been having so much fun making this game. I love going back to look at the old footage I have filmed of the game and see how much has changed. With every devlog I’m getting closer to shipping the game. Even though a lot needs still to be done to get to that point I’m still very happy with what I have made so far. I’ve had a lot of problems before getting the parallax background to work properly but somehow I got it to work! One of the things I have been wanting to add was a enemy which finally is here now. Currently I only got one enemy who doesn’t do much but still it’s at least something for now and I will be definitely adding more in the future. A lot of things still need to be added like player health ui and sprites need to be made for the enemy and hopefully I will have those things for the next devlog! In the next devlog you can hopefully expect: 😁 Expand world Dialogue system New art Player death respawn fix probs more stuff idk Oki, that’s it for this devlog! See you soon!!!! 🤑
Devlog #5: Npc, new art, health and bug fixes 😆 Hey guys! I haven’t posted in a while and I wasn’t able to work much on the game in the time but now I’m back and working on the game again! 🥳 Even though I haven’t worked on the game much then I still have got quite a few new things to show you guys for this devlog. Everything new: 🔥 Npc New enemy sprites, death particles and few fixes Ball Player improvements(bug fixes. few tweaks and hit invincibility indicator!) New decorational flower sprites Health bar And some other things that I’m not going to bore you with… So that’s quite a lot of stuff I would say, It might not seem like it to you but It does for me. Seeing the game coming slowly together really motivates me to work on it even more. SO so much needs to be still done until it can be finally shipped and you to be able to play it, but eventually we will get there! Next I’m planning on working on the abilities, then I will try to make 2 bosses for the game. Wait lemme just make a roadmap for the game real quick… ROADMAP: 🗺️ other 2 Abilities Breakable walls Attacking enemies 2 Bosses Save/load system Ending/s? map 2 Areas Parkour sections Boss rooms Some other stuff I can’t think of rn Currently my plan is to make the basic things for the game before I can start building it out. I want save the map for the last cause I want it to feel nice and logical to explore. But thats all for this devlog! See you next time!!!!👋
Devlog #6: World building 😆 Hey everyone! This devlog will be short and without a current progress video like usually. That is because I have started to build the games world. I have finished the starting area and got a rough layout for the next one. I have written out the game lore and how the game should progress so I know what keep in mind while building the map. Most of the current time is spent drawing cause so much art is needed for the game but the progress is overall really good! Also check out this cool tree I made. It wont have any purpose in the game but It does help with the world feel. See you soon!
Little update: So much work is being done! I just finished one of the areas for the game. I got 3 more to go and final boss to be implemented to the game. The boss is fully drawn but it’s not in the game yet. The game will be out very very soon!
Another update: All of the areas are finished! All that is needed to be worked on is the final boss, adding detail, end cutscene. When this game comes out you will have option to either download it or just to play it on your browser. Also heres a little sneak peek of a tileset for a area in the game
Devlog #7: The game 😍 Yo wsp everyone!!! The game is so so close to being done. I decided to make a final long form devlog on this project. I will probably do another small one later when I am really close to release. Everything new: 2 bosses new enemy a bunch of areas And bunch other stuff you will find out about when you play the game Okay. so I have added actually a lot of stuff since last devlog. All of the areas are basically finished, they just need a little touch of love. I currently am working on the final boss of the game which I am proud of. This game isn’t anything big. You will probs finish it in a few minutes. It’s nothing special, but I am proud of it since so much work went into this and the results so far are more than I ever thought I was capable of. Until starting this project I hadn’t basically really ever done pixel art. I have tried before and watched tutorials for it but it always seemed too hard for me. While making this game I have improved so much in making pixel art and I will definitely in the future continue making pixel art cause it is alot of fun. This project has definitely been a challenge but but it has also been alot of fun. I like writing this devlogs and sharing updates with everyone, even though my post barely get any attention. Anyways, I should get back to work. Basically the game is almost done and I don’t have much left to do. Byeee!!!!
Devlog #8: Sound 🎵 Hi guys! So the game is basically done but it is missing alot of sfx and there is no music yet in the game. But other than that I have gotten everything else done! Everything new: 🔥 Ending Credits Tutorial Menu Settings Some sfx and ambience All I am doing currently with the game pretty much is just finishing off areas, adding final touches and adding in sfx. The music will be probably the hardest part but we will see. I am so proud of the game and I cannot wait to make it public for everyone. The game is about to come out any day now. Maybe even today if I lock in. We will see. Byeeeee❤️
Game is ready for release!
Devlog #8: overhaul Hello guys! So I have come back to the game after some time cause I wanted to do some improvements that I just had to get out of my head. Everything new: 🔥 More settings options Improved lighting Platforming improvements Sound fixes Bug fixes Buttons and menu overhaul And a few small other things like tweaking particle amounts and a few settings So after reading everyones feedback to the game I realized that some parts of the game really needed to be improved. So I got to work and thats what I did. Also tysm to everyones feedback on the game and those amazing words❤️. Anyways that is it for now! Will probably return to this project in the future or will work on the game but without the devlog thing anymore. Anyways enjoy!🥰
Ships:
I made a pixel art style platformer game that includes enemies, bosses, abilities, platformer challenges a story and much more. This project might be by far my biggest game project I have ever made! And I am really proud of the results. The most challenging thing with making this game was programming. I ran into a bunch of problems, had really weird bugs but I somehow managed to outcome them. I am really proud of the art for this game. That is because I haven’t really ever made pixel art before until this project. This project really forced me to step out of my comfort zone. People who are planning on playing this should know that don’t expect anything insane. This game doesn’t take very long to complete. I would say around 5-10 min, depending on the person. Anyways, enjoy!
I made an update to my game called ‘Soulful’. It’s a game about a soul sent to earth to defeat a corrupted soul who is trying to take over the world. This update mainly features bug fixes and big improvements to the game. The most challenging part was to get the systems to feel right. I am most proud of the outcome of everything and very happy about doing these fixes. People who plan on playing it should know that in the end there is also a cutscene when you finish the game. Also note that the game bosses are quite wonky and being able to save inside the arena and also heal is a feature ;). Anyways have fun!...
|
1792976096.6758077
|
1793062496.6758077
|
|
1186
|
AppleMusic-Downloader by @Cret | Stardance
|
Cret
|
2
|
31.0
|
408
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-18T05:44:00Z", "hours": 6.0, "multiplier": 17.21, "payout": 110, "blessing": "neutral", "text": "First, I want to say that this project has surpassed 50,000 users. This year marks the project’s first year, and it has gained widespread popularity on various personal social media platforms and communities in China. My QQ user community has over 1,000 members. By using this downloader, I promise you will like https://amll.cret.uk it is a applemusic-like lryics running in your browser. So try it out; I promise you’ll like it! One thing to note is that my GitHub account was mistakenly suspended. If you need the macOS version and the opencookies.txt plugin, I will put the download links below. macos: https://cdn.hackclub.com/01a0f611-f1e0-79af-b3d1-be9b71d54349/AppleMusicDownloader-macos-arm64.dmg plugin: https://cdn.hackclub.com/01a14d82-54d0-7e29-a5ca-51fd7d0702e1/OpenCookies.txt.crx", "repo": "https://gitlab.com/IHateGitHub/applemusic-downloader", "demo": "https://cdn.hackclub.com/01a0f611-f73e-71f9-a98f-f447038e7ace/AppleMusicDownloader-windows-x64.exe"}, {"ship_num": 2, "ts": "2026-07-09T03:29:12Z", "hours": 25.0, "multiplier": 9.89, "payout": 298, "blessing": "neutral", "text": "The initial phase of this project involved some debugging work. A few days ago, I officially began the refactoring of this project. I removed redundant code and modules, abandoned the cumbersome PyQt, built a standard API backend using FastAPI, and built the web frontend using Next.js. You can run the packaged software now to try it out (don’t forget to install ffmpeg). If you don’t have an Apple Music subscription, DM @Cret on Slack and I’ll provide you with my own cookies.txt file.", "repo": "https://gitlab.com/IHateGitHub/applemusic-downloader", "demo": "https://cdn.hackclub.com/01a0f611-f73e-71f9-a98f-f447038e7ace/AppleMusicDownloader-windows-x64.exe"}]...
|
[{"post_id": 80567, "ts": "202 [{"post_id": 80567, "ts": "2026-10-18T05:29:08Z", "hours": 1.5017, "text": "v2.5.0 just published new feature: TTML lyrics with translate Using asynchronous download scheduling doubles the speed of batch downloads. Accelerate Dolby Atmos format encoding and decoding add “new version” detect feature (This won’t work until my GitHub account is unbanned) amdl cli also optimizedget-lyrics logic and add more and smarter parameter degradation strategies"}, {"post_id": 39266, "ts": "2026-08-02T03:58:06Z", "hours": 4.8944, "text": "I’ve been working on the AppleMusic-Downloader project, primarily debugging a Windows-specific issue where the desktop app would hang during downloads. The root cause turned out to be PyInstaller’s --windowed mode setting sys.stdout and sys.stderr to None , which broke async libraries like httpx and asyncio . The fix was calling AllocConsole() on Windows to allocate a visible console window and properly redirect all three standard streams ( stdin , stdout , stderr ). I also cleaned up unnecessary debug code (log file output, /api/logs endpoint), added step-by-step logging in the download pipeline to help diagnose future issues, fixed a few i18n key mismatches in the frontend, and added a note in both READMEs telling Windows users not to close the console window."}, {"post_id": 25110, "ts": "2026-07-09T03:22:25Z", "hours": 2.2103, "text": "The Dolby format finally downloaded normally. During this stage, copilot helped me debug and test the project.This project is ready to ship"}, {"post_id": 24614, "ts": "2026-07-08T10:15:06Z", "hours": 0.2636, "text": "published to PyPi!"}, {"post_id": 24589, "ts": "2026-07-08T09:21:00Z", "hours": 0.2592, "text": "workflow currently running!!!"}, {"post_id": 24579, "ts": "2026-07-08T08:26:24Z", "hours": 1.0267, "text": "All the rebuild work is complete; it’s time to open the PR."}, {"post_id": 24549, "ts": "2026-07-08T05:54:14Z", "hours": 3.2453, "text": "The interface is ready to use!"}, {"post_id": 23956, "ts": "2026-07-07T05:50:21Z", "hours": 0.6342, "text": "I felt this didn’t quite meet my aesthetic standards for the sidebar, so I decided to use Figma to design the UI."}, {"post_id": 23931, "ts": "2026-07-07T04:17:02Z", "hours": 0.75, "text": "Successful integration of the front-end and back-end."}, {"post_id": 23397, "ts": "2026-07-06T10:19:39Z", "hours": 2.0333, "text": "Remove Windows-specific GUI components and associated files from the project, including CMake configurations, resource files, and source code for the Flutter window implementation. This cleanup streamlines the project structure and eliminates unnecessary dependencies for non-Windows platforms."}, {"post_id": 23317, "ts": "2026-07-06T06:10:04Z", "hours": 1.2036, "text": "I ultimately gave up on using Flutter for frontend development; it was simply too difficult. Instead, I am using Next.js combined with pywebview to build the desktop frontend."}, {"post_id": 22716, "ts": "2026-07-05T09:19:30Z", "hours": 1.66, "text": "I have completed the API construction; in this phase, I encapsulated all of gamdl’s parameters—aligning them with the definitions in core_downloader.py —into a unified API. Next up is learning Flutter for the frontend."}, {"post_id": 22161, "ts": "2026-07-04T14:09:04Z", "hours": 0.845, "text": "Rebuild starting now!!! I’m using flutter for fronted FastAPI for backend"}, {"post_id": 22034, "ts": "2026-07-04T09:04:22Z", "hours": 2.1694, "text": "All preparatory work for the refactoring has been completed. Thanks to DeepSeek for sorting out this “spaghetti code.”"}, {"post_id": 20848, "ts": "2026-07-02T15:47:33Z", "hours": 1.5944, "text": "seems that I can’t fix the atmos download issue : ( but time to rebuild this project, I just made a TODO list"}, {"post_id": 11825, "ts": "2026-06-19T08:16:34Z", "hours": 0.3442, "text": "repair downloader_song_legacy.py"}, {"post_id": 11820, "ts": "2026-06-19T07:33:57Z", "hours": 3.7414, "text": "This conversation tracked the comprehensive refactoring and bug-fixing of the AppleMusic-Downloader project. The work began by diagnosing why CN-region songs failed with a KeyError on extendedAssetUrls — fixed by switching to .get() with a fallback, and adding a webplayback-based stream path for songs without enhancedHls . We then extracted the entire download orchestration from cli.py (a Click-based CLI) into a new core_downloader.py module — a pure Python API with no terminal dependencies — and rewired both cli.py and download_worker.py (the GUI’s QThread) to call it directly, eliminating a class of Windows GUI crashes caused by Click’s stdin / stdout assumptions. We fixed download_worker.py’s variable name bug ( remux_path vs remuxed_path ) that silently dropped song files, normalized Path / str type handling, added CENC stream support (ISO-23001-7 with data:;base64, KIDs) by reconstructing Widevine PSSH boxes and passing real KIDs to mp4decrypt , switched ffmpeg remux from -f ipod to -f mp4 and added automatic fragmentation detection with fallback to aac_at / aac re-encoding for playable output, and added backward-compatible config migration for the renamed codec_song enum. We also fixed the Windows manifest name, updated the PyInstaller .spec with missing hidden imports, and corrected several type annotation issues across models.py, downloader.py, and downloader_song.py. The result is that both standard Widevine songs (e.g., ROSÉ’s toxic till the end ) and CENC-encrypted songs (e.g., Queen’s Under Pressure via the 28:ctrp256 webplayback asset) now download and play correctly across all platforms."}, {"post_id": 8585, "ts": "2026-06-14T08:47:02Z", "hours": 2.8236, "text": "really thanks deepseek help me to rebuild the interface I updated the regular expression to account for Apple changing the location of the index.js file on the Apple Music web interface following WWDC2026. After removing redundant code, I used AI to add cross-platform compatibility support, moving closer to a full project refactor once the holidays are over. I also revamped the UI, implementing a card-stacking layout to make the logs easier to read. Huge thanks to AI—it has made fixing baffling bugs far more efficient."}, {"post_id": 268, "ts": "2026-06-01T14:14:37Z", "hours": 0.3014, "text": "Preparing to add new features and migrate the tech stack for cross-platform builds next month. In this update, I leveraged AI to refine part of the code and manually optimized and removed redundant code."}]...
|
Title: AppleMusic-Downloader by @Cret | Stardance
Title: AppleMusic-Downloader by @Cret | Stardance
Devlogs:
Preparing to add new features and migrate the tech stack for cross-platform builds next month. In this update, I leveraged AI to refine part of the code and manually optimized and removed redundant code.
really thanks deepseek help me to rebuild the interface I updated the regular expression to account for Apple changing the location of the index.js file on the Apple Music web interface following WWDC2026. After removing redundant code, I used AI to add cross-platform compatibility support, moving closer to a full project refactor once the holidays are over. I also revamped the UI, implementing a card-stacking layout to make the logs easier to read. Huge thanks to AI—it has made fixing baffling bugs far more efficient.
This conversation tracked the comprehensive refactoring and bug-fixing of the AppleMusic-Downloader project. The work began by diagnosing why CN-region songs failed with a KeyError on extendedAssetUrls — fixed by switching to .get() with a fallback, and adding a webplayback-based stream path for songs without enhancedHls . We then extracted the entire download orchestration from cli.py (a Click-based CLI) into a new core_downloader.py module — a pure Python API with no terminal dependencies — and rewired both cli.py and download_worker.py (the GUI’s QThread) to call it directly, eliminating a class of Windows GUI crashes caused by Click’s stdin / stdout assumptions. We fixed download_worker.py’s variable name bug ( remux_path vs remuxed_path ) that silently dropped song files, normalized Path / str type handling, added CENC stream support (ISO-23001-7 with data:;base64, KIDs) by reconstructing Widevine PSSH boxes and passing real KIDs to mp4decrypt , switched ffmpeg remux from -f ipod to -f mp4 and added automatic fragmentation detection with fallback to aac_at / aac re-encoding for playable output, and added backward-compatible config migration for the renamed codec_song enum. We also fixed the Windows manifest name, updated the PyInstaller .spec with missing hidden imports, and corrected several type annotation issues across models.py, downloader.py, and downloader_song.py. The result is that both standard Widevine songs (e.g., ROSÉ’s toxic till the end ) and CENC-encrypted songs (e.g., Queen’s Under Pressure via the 28:ctrp256 webplayback asset) now download and play correctly across all platforms.
repair downloader_song_legacy.py
seems that I can’t fix the atmos download issue : ( but time to rebuild this project, I just made a TODO list
All preparatory work for the refactoring has been completed. Thanks to DeepSeek for sorting out this “spaghetti code.”
Rebuild starting now!!! I’m using flutter for fronted FastAPI for backend
I have completed the API construction; in this phase, I encapsulated all of gamdl’s parameters—aligning them with the definitions in core_downloader.py —into a unified API. Next up is learning Flutter for the frontend.
I ultimately gave up on using Flutter for frontend development; it was simply too difficult. Instead, I am using Next.js combined with pywebview to build the desktop frontend.
Remove Windows-specific GUI components and associated files from the project, including CMake configurations, resource files, and source code for the Flutter window implementation. This cleanup streamlines the project structure and eliminates unnecessary dependencies for non-Windows platforms.
Successful integration of the front-end and back-end.
I felt this didn’t quite meet my aesthetic standards for the sidebar, so I decided to use Figma to design the UI.
The interface is ready to use!
All the rebuild work is complete; it’s time to open the PR.
workflow currently running!!!
published to PyPi!
The Dolby format finally downloaded normally. During this stage, copilot helped me debug and test the project.This project is ready to ship
I’ve been working on the AppleMusic-Downloader project, primarily debugging a Windows-specific issue where the desktop app would hang during downloads. The root cause turned out to be PyInstaller’s --windowed mode setting sys.stdout and sys.stderr to None , which broke async libraries like httpx and asyncio . The fix was calling AllocConsole() on Windows to allocate a visible console window and properly redirect all three standard streams ( stdin , stdout , stderr ). I also cleaned up unnecessary debug code (log file output, /api/logs endpoint), added step-by-step logging in the download pipeline to help diagnose future issues, fixed a few i18n key mismatches in the frontend, and added a note in both READMEs telling Windows users not to close the console window.
v2.5.0 just published new feature: TTML lyrics with translate Using asynchronous download scheduling doubles the speed of batch downloads. Accelerate Dolby Atmos format encoding and decoding add “new version” detect feature (This won’t work until my GitHub account is unbanned) amdl cli also optimizedget-lyrics logic and add more and smarter parameter degradation strategies
Ships:
The initial phase of this project involved some debugging work. A few days ago, I officially began the refactoring of this project. I removed redundant code and modules, abandoned the cumbersome PyQt, built a standard API backend using FastAPI, and built the web frontend using Next.js. You can run the packaged software now to try it out (don’t forget to install ffmpeg). If you don’t have an Apple Music subscription, DM @Cret on Slack and I’ll provide you with my own cookies.txt file.
First, I want to say that this project has surpassed 50,000 users. This year marks the project’s first year, and it has gained widespread popularity on various personal social media platforms and communities in China. My QQ user community has over 1,000 members. By using this downloader, I promise you will like https://amll.cret.uk it is a applemusic-like lryics running in your browser. So try it out; I promise you’ll like it! One thing to note is that my GitHub account was mistakenly suspended. If you need the macOS version and the opencookies.txt plugin, I will put the download links below. macos: https://cdn.hackclub.com/01a0f611-f1e0-79af-b3d1-be9b71d54349/AppleMusicDownloader-macos-arm64.dmg plugin: https://cdn.hackclub.com/01a14d82-54d0-7e29-a5ca-51fd7d0702e1/OpenCookies.txt.crx...
|
1792979516.2079163
|
1793065916.2079163
|
|
50158
|
Kazi by @Bianca | Stardance
|
Bianca
|
1
|
212.74
|
407
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-20T21:14:41Z", "hours": 30.0, "multiplier": 13.9, "payout": 407, "blessing": "neutral", "text": "What I made: Kazi connects skilled trade workers with customers who need their services, making the process faster and easier. Workers are electricians, plumbers, builders, welders, mechanics, and other professionals who create profiles, showcase their skills, and find relevant jobs. Customers can use Kazi to discover skilled workers, view their profiles, and find the right person for the work they need. The challenges I faced: The challenges I faced were setting up the Google API to allow for Google sign-up and making sure the frontend and backend were communicating. Additionally, making a polished, well-thought-out app with minimal bugs was another challenge. Things I accomplished that I am proud of: Before starting this challenge, using the terminal felt like a foreign language and I didn’t know why the backend and frontend had to be separate. Now I can confidently say that the terminal is my best friend, and I don’t need to watch YouTube tutorials on the difference between an API and an SDK. Things to know: On the demo the google sign in does not work only on emulators it does. Taking photos and contact via phone is not supported on the demo as well. Using th README file has a lot of additional tips. If you create an account even if you close the file will be saved in the database and you can log in, if you have trouble deleting the account you made email me the email you used and ill do it manually.", "repo": "https://github.com/PhantomJelly/Kazi-Cursor.git", "demo": "https://phantomjelly.github.io/Kazi-Cursor/"}]...
|
[{"post_id": 65589, "ts": "202 [{"post_id": 65589, "ts": "2026-09-10T20:37:40Z", "hours": 9.9253, "text": "Dev vlog 21 - I didnt like the first iteration of the subsriptions screen so I made it more personalised to the specific industry im targeting. I changed words like “Pro plan” to “Artisan plan” and “Free plan” to “Apprentice plan”. The reason there is some what space is because I’ll be adding some assets what I’m still designing in procreate and Lottie."}, {"post_id": 65015, "ts": "2026-09-09T20:11:12Z", "hours": 10.4989, "text": "Dev vlog 20 - Today I made the workers job screen more interactable and customizable. I’m going through day by day to improve each screen’s UI. I’m honestly quite happy with how the app is coming up even though I’ve only done 2 screens im slowly getting to a completed version 1."}, {"post_id": 64677, "ts": "2026-09-09T08:33:15Z", "hours": 10.4519, "text": "Dev vlog 19 - I added a pay wall on the worker account that limits theamount of jobs a worker can recieve and and the features they have. It costs $3.00 (I converted it) which is a small amount for the workers, I dont want it to be too high as in Namibia subscriptions is not something people are willing to pay. Especially low wage workers and unemployed people"}, {"post_id": 64413, "ts": "2026-09-08T19:39:24Z", "hours": 6.9683, "text": "Dev vlog 18 - I’ve been making some assets to use for the UI and testing the app to find more areas I’d like to add more features and animations."}, {"post_id": 63751, "ts": "2026-09-07T18:24:22Z", "hours": 9.5639, "text": "Dev vlog 17 - Hi I made good progress with the UI, I started with the splash screen and I’m working my way from there, the animation was a bit glitchy and i fexed the issue. Additionally, the letters were not lined up which was quite a task to do, i though it would be easier but when importing the animation it would keep changing it so I had to make tha letters separate to the animation. I used Mobbin to get references and I saw most we’re too flashy so i made mine simple but enjoyable. Next I’ll be working on the user onboardeing, im currently preparing a lot of assets as I want it to be interactive and unique."}, {"post_id": 62718, "ts": "2026-09-06T06:43:31Z", "hours": 9.8536, "text": "Dev vlog 16 - After adding the Didit verification the SQL database was not syncing, a had to make 2 separate databses to make it work, now im able to make an account again."}, {"post_id": 62449, "ts": "2026-09-05T19:59:59Z", "hours": 9.1511, "text": "Dev post 15 - Hey everyone, I spent the day improving the web experience for testers and you guys :). Im still having troubles with the google sign in but ill try and address it tomorrow. My favourite thing i did was limiting the web screen so that it gives more of that app feel."}, {"post_id": 61380, "ts": "2026-09-04T08:21:31Z", "hours": 10.3572, "text": "Dev post 14 - Hi everyone I spent the whole day polishing up Kazi, fixing bugs, and just improving the overall experience. Now im going to add more features I’m planning on adding a paywall to start making some income from this, and im now brainstorming the features I should add."}, {"post_id": 60515, "ts": "2026-09-02T22:09:05Z", "hours": 10.7911, "text": "Dev vlog 13 - I caught a bug which was actually quite critical. When the user would delete their account, their information would not get deleted, so if they made an account with same old email all the past information would still be there."}, {"post_id": 59122, "ts": "2026-08-31T19:07:19Z", "hours": 9.1975, "text": "Dev post 12 - I added back the google sign in and polished up the rest of the verification setup."}, {"post_id": 58193, "ts": "2026-08-30T15:27:10Z", "hours": 9.7597, "text": "Dev vlog 11 - I’m building the a better workflow in Figma and iy was been taking quite a long time to implement and I want to change some of the things I’ve build. I also want to make the UI animations in Figma instead of Lottie because I know how to use Figma more and you can add an extension to export your work as .lottie files (a type of file that allows your animation to run on your app without taking much storage)."}, {"post_id": 57327, "ts": "2026-08-29T13:23:34Z", "hours": 9.3769, "text": "Dev vlog 10 - Hi there I’ve been finalising the setup of the workers ID verification. I ran into some problems but I found this site that allows ID verification (can use passports, drivers licenses) for free for your first 500 verification every month, essentially meaning that if you stay below 500 verifications per month its completely free. Its called Didit. After setting up I’ll go on tosetting up analytics to track onboarding and activity of users."}, {"post_id": 56479, "ts": "2026-08-28T08:06:11Z", "hours": 12.835, "text": "Dev vlog 9 - Hi and thank you to everyone who voted for my project and all the tips you’ve given me. I have a few challenges I’m tackling at the moment: 1. Google sign it, it works with then mobile version (if I test with an APK) but not on web like in the demo. 2. The ID verification, it needs to be able to authenticate yours profiles which seems so complex. 3. The UI and making animations, I dont have much time as I have my A-level exams soon."}, {"post_id": 55756, "ts": "2026-08-27T18:56:17Z", "hours": 10.3631, "text": "Dev vlog 8 - I made some changes to the assistant section so that the questions asked by agent is more conscience and more interactive. Where the user can just tap on the screen and not type."}, {"post_id": 54739, "ts": "2026-08-25T20:25:24Z", "hours": 10.1636, "text": "Dev vlog 7 - After I made a basic AI chat assist, I made some minor UI improvements. I mainly focused on the inquiry generation, I’m not 100% there but I’m trying to make it as quick and easy as possible for users to easily send a detailed inquiries with minimal effort."}, {"post_id": 54310, "ts": "2026-08-25T08:13:39Z", "hours": 11.7128, "text": "Dev vlog 6 - Hi there, I’ve made a drastic change as I’ve descided to add an AI chat bot to the app to make it even more easier to send workers inquiries. It will be a place where you just describe the issue and it will automatically find the best worker and send them an inquiry for you after you give it all the necessary information."}, {"post_id": 53196, "ts": "2026-08-23T17:12:34Z", "hours": 10.9467, "text": "Dev vlog 6 - I finished with the official Beta version of Kazi and will be launching soon to the play store. After launching and getting my first wavy of users I’ll launch the official version 1."}, {"post_id": 52272, "ts": "2026-08-22T11:49:28Z", "hours": 2.8028, "text": "Dev vlog 5 - I set up notifications that pop up when a user opens the app, next I want to make it more interactive and add custom icons. Also for when allowing for photos I’ll add some humor when asking for permission and more custom icons. I’ll be making the icon on procreate then use Lottie to turn it into files that can be used on the app."}, {"post_id": 51479, "ts": "2026-08-21T06:40:27Z", "hours": 8.0186, "text": "Dev vlog 4 - Im now focusing on making the UI more unique and interactive. For planning im using Figma and for animations im using Lottie. I added some coloured elements so that its easier to see the difference between features more easily, like if your inquiry is pending or has been answered."}, {"post_id": 50803, "ts": "2026-08-20T06:37:08Z", "hours": 9.8239, "text": "Dev vlog 3 - I started using emulator, it took a while to install and setup. I made worker accounts have bonuses feature to get more clients, but now I want to improve the UI and add custom badges and animations, I started learning how to use Lottie to do that."}, {"post_id": 50478, "ts": "2026-08-19T17:19:01Z", "hours": 10.575, "text": "Dev vlog 2 - I made the customer side of the app but I used dummy data and didn’t connect any APIs yet so I need to do that. I also need to fix bugs and allow customers to contact the workers."}, {"post_id": 49519, "ts": "2026-08-18T12:07:28Z", "hours": 9.4683, "text": "Dev vlog 1 - I’m building a mobile app to help trade workers like plumbers, electricians, and cleaners find work. In the same light to help people find someone who can fix their leaky tap or install a cupboard. This is the workers side that I’ve built, I used my brothers phone to help me make a demo account and test out the features. The key features are different languages, photo verification, and google sign up."}]...
|
Title: Kazi by @Bianca | Stardance
Devlogs:
Dev v Title: Kazi by @Bianca | Stardance
Devlogs:
Dev vlog 1 - I’m building a mobile app to help trade workers like plumbers, electricians, and cleaners find work. In the same light to help people find someone who can fix their leaky tap or install a cupboard. This is the workers side that I’ve built, I used my brothers phone to help me make a demo account and test out the features. The key features are different languages, photo verification, and google sign up.
Dev vlog 2 - I made the customer side of the app but I used dummy data and didn’t connect any APIs yet so I need to do that. I also need to fix bugs and allow customers to contact the workers.
Dev vlog 3 - I started using emulator, it took a while to install and setup. I made worker accounts have bonuses feature to get more clients, but now I want to improve the UI and add custom badges and animations, I started learning how to use Lottie to do that.
Dev vlog 4 - Im now focusing on making the UI more unique and interactive. For planning im using Figma and for animations im using Lottie. I added some coloured elements so that its easier to see the difference between features more easily, like if your inquiry is pending or has been answered.
Dev vlog 5 - I set up notifications that pop up when a user opens the app, next I want to make it more interactive and add custom icons. Also for when allowing for photos I’ll add some humor when asking for permission and more custom icons. I’ll be making the icon on procreate then use Lottie to turn it into files that can be used on the app.
Dev vlog 6 - I finished with the official Beta version of Kazi and will be launching soon to the play store. After launching and getting my first wavy of users I’ll launch the official version 1.
Dev vlog 6 - Hi there, I’ve made a drastic change as I’ve descided to add an AI chat bot to the app to make it even more easier to send workers inquiries. It will be a place where you just describe the issue and it will automatically find the best worker and send them an inquiry for you after you give it all the necessary information.
Dev vlog 7 - After I made a basic AI chat assist, I made some minor UI improvements. I mainly focused on the inquiry generation, I’m not 100% there but I’m trying to make it as quick and easy as possible for users to easily send a detailed inquiries with minimal effort.
Dev vlog 8 - I made some changes to the assistant section so that the questions asked by agent is more conscience and more interactive. Where the user can just tap on the screen and not type.
Dev vlog 9 - Hi and thank you to everyone who voted for my project and all the tips you’ve given me. I have a few challenges I’m tackling at the moment: 1. Google sign it, it works with then mobile version (if I test with an APK) but not on web like in the demo. 2. The ID verification, it needs to be able to authenticate yours profiles which seems so complex. 3. The UI and making animations, I dont have much time as I have my A-level exams soon.
Dev vlog 10 - Hi there I’ve been finalising the setup of the workers ID verification. I ran into some problems but I found this site that allows ID verification (can use passports, drivers licenses) for free for your first 500 verification every month, essentially meaning that if you stay below 500 verifications per month its completely free. Its called Didit. After setting up I’ll go on tosetting up analytics to track onboarding and activity of users.
Dev vlog 11 - I’m building the a better workflow in Figma and iy was been taking quite a long time to implement and I want to change some of the things I’ve build. I also want to make the UI animations in Figma instead of Lottie because I know how to use Figma more and you can add an extension to export your work as .lottie files (a type of file that allows your animation to run on your app without taking much storage).
Dev post 12 - I added back the google sign in and polished up the rest of the verification setup.
Dev vlog 13 - I caught a bug which was actually quite critical. When the user would delete their account, their information would not get deleted, so if they made an account with same old email all the past information would still be there.
Dev post 14 - Hi everyone I spent the whole day polishing up Kazi, fixing bugs, and just improving the overall experience. Now im going to add more features I’m planning on adding a paywall to start making some income from this, and im now brainstorming the features I should add.
Dev post 15 - Hey everyone, I spent the day improving the web experience for testers and you guys :). Im still having troubles with the google sign in but ill try and address it tomorrow. My favourite thing i did was limiting the web screen so that it gives more of that app feel.
Dev vlog 16 - After adding the Didit verification the SQL database was not syncing, a had to make 2 separate databses to make it work, now im able to make an account again.
Dev vlog 17 - Hi I made good progress with the UI, I started with the splash screen and I’m working my way from there, the animation was a bit glitchy and i fexed the issue. Additionally, the letters were not lined up which was quite a task to do, i though it would be easier but when importing the animation it would keep changing it so I had to make tha letters separate to the animation. I used Mobbin to get references and I saw most we’re too flashy so i made mine simple but enjoyable. Next I’ll be working on the user onboardeing, im currently preparing a lot of assets as I want it to be interactive and unique.
Dev vlog 18 - I’ve been making some assets to use for the UI and testing the app to find more areas I’d like to add more features and animations.
Dev vlog 19 - I added a pay wall on the worker account that limits theamount of jobs a worker can recieve and and the features they have. It costs $3.00 (I converted it) which is a small amount for the workers, I dont want it to be too high as in Namibia subscriptions is not something people are willing to pay. Especially low wage workers and unemployed people
Dev vlog 20 - Today I made the workers job screen more interactable and customizable. I’m going through day by day to improve each screen’s UI. I’m honestly quite happy with how the app is coming up even though I’ve only done 2 screens im slowly getting to a completed version 1.
Dev vlog 21 - I didnt like the first iteration of the subsriptions screen so I made it more personalised to the specific industry im targeting. I changed words like “Pro plan” to “Artisan plan” and “Free plan” to “Apprentice plan”. The reason there is some what space is because I’ll be adding some assets what I’m still designing in procreate and Lottie.
Ships:
What I made: Kazi connects skilled trade workers with customers who need their services, making the process faster and easier. Workers are electricians, plumbers, builders, welders, mechanics, and other professionals who create profiles, showcase their skills, and find relevant jobs. Customers can use Kazi to discover skilled workers, view their profiles, and find the right person for the work they need. The challenges I faced: The challenges I faced were setting up the Google API to allow for Google sign-up and making sure the frontend and backend were communicating. Additionally, making a polished, well-thought-out app with minimal bugs was another challenge. Things I accomplished that I am proud of: Before starting this challenge, using the terminal felt like a foreign language and I didn’t know why the backend and frontend had to be separate. Now I can confidently say that the terminal is my best friend, and I don’t need to watch YouTube tutorials on the difference between an API and an SDK. Things to know: On the demo the google sign in does not work only on emulators it does. Taking photos and contact via phone is not supported on the demo as well. Using th README file has a lot of additional tips. If you create an account even if you close the file will be saved in the database and you can log in, if you have trouble deleting the account you made email me the email you used and ill do it manually....
|
1792878526.8970366
|
1793742526.8970366
|
|
38798
|
a game for maxime by @yayabskt | Stardance
|
yayabskt
|
1
|
23.68
|
406
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-09T20:03:24Z", "hours": 23.0, "multiplier": 14.42, "payout": 406, "blessing": "neutral", "text": "i just remake an old game prototype and i make it better at first it was all for a friend brithday then i wanted to improve it !!! i’m proud because it was the first time i make a real game even if it’s not perfect. there one thing that i’m sad for is because i can’t carry on this project because of schools works ect and the problem in my country (france) so i upload all i can do. i hope you will enjoy !!! i put here a part of the github readme before you try playing: “ in the game you play a “maxime” it’s my friend hehehe the input are the arrow key or ZQSD if you have a turet “x” to deploy and click on it to improve if you have a grenade push “a” to throw it if you have a frezze power put “g” to deploy it “ have a good day and enjoy (be kind ) i hope you will apreciate the game <3", "repo": "https://github.com/ysxaybarroso-ux/game-for-a-friend-yaya", "demo": "https://ysxaybarroso-ux.github.io/game-for-a-friend-yaya/aniv%20maxime/static/html/index.html"}]...
|
[{"post_id": 78885, "ts": "202 [{"post_id": 78885, "ts": "2026-10-11T21:21:00Z", "hours": 0.6847, "text": "heyyyy this is the last dev log !!! ============================================================ i post this one because i wasn’t aware i need to go thought a vote for validation and then the vote so since last time i just add the back button for the last menu when you beat the intro and then andle the delete and create a run"}, {"post_id": 78151, "ts": "2026-10-09T19:52:36Z", "hours": 4.8989, "text": "##heyyy dev log 6?? i guess ? : i just work on debuging some problem with the old function that doesn’t take in parameter some of the player new variable for some upgrades and i finish by personnalize the game menu and make gradient slider + button and background of course not everything is in place but it take forms"}, {"post_id": 54480, "ts": "2026-08-25T14:30:06Z", "hours": 6.1694, "text": "dev log # 03 !!!! =============================================== i have finish the cinematic !!! i pass a long long time trying to understand how could i make the caracter by caracter animation and still hanfle me to put pause on the phrase or make the character change speed of talking between word so i finally make list of all the phrase and the word of the dialogue and put the in a list in the list to handle the time!!! ====================================================== btw i also put a redirection to another html page when the animation is finish because i don’t tell it but IT WAS ONLY THE INTRO OF THE GAME hehehehe now it redirect to the menu of the game with the start/new/select/setting/credit button and i already prepare the rest in html but i’m starting the css and js and then i will hide the different menu ================================================ p.s i’m making a quit personal story but all you have to know now is that the main character fall in a world and response bcs people attack him and then he kill a boss that tell i’m he’s free but the main character have to keep fighting ? what does that meen? who know? see next time!!!"}, {"post_id": 43951, "ts": "2026-08-09T12:24:58Z", "hours": 3.4106, "text": "heyyyy it been a long!!! dev log 2!! ========================================================= recently i have been working on the background chaniging depending the enemis to feel it more like a boss!!!! and i also work on adding a neww cinematic in the UNDERTALE style for now it’s quite messy but it will be allright : the cinematic will append when you kill the 2nd boss then you will discover the power of BUILDING THING and then you will have the power to fortify your place and now the game take a top new way now the next step is to make a level menu after this litle intro of 2 boss and a menu to choose level DIFFERENT LEVEL DIFFERENT PLACE TO DEFEND!!! and this will be the same gameplay but with building phase and a litle story !!!!"}, {"post_id": 33814, "ts": "2026-07-24T01:42:56Z", "hours": 8.9861, "text": "first dev log 01 #### today i’m starting this project ##### (in fact i started it a long time ago but i don’t make a project TT) today i’ve had 2 thing 1. ### a funny sound effect in the touret menue 1. if you ran out of money a french ref sound effect apear!2. ### i work on making a new boss 1. (the first one was making impulsion) the second one now shoot bullet##### i take a long time re-organazing the code to implemant the new boss as the function i’ve made wasn’t really optimize or create for future update so i try my best to make it clear**i also encounter a problem as when i try my player was losing hp every time !!!!** i fix it when i understand the function that calculate distance don’t update so the old distance where calculated, i was having negative distance in the terminal while debuging"}]...
|
Title: a game for maxime by @yayabskt | Stardance
Title: a game for maxime by @yayabskt | Stardance
Devlogs:
first dev log 01 #### today i’m starting this project ##### (in fact i started it a long time ago but i don’t make a project TT) today i’ve had 2 thing 1. ### a funny sound effect in the touret menue 1. if you ran out of money a french ref sound effect apear!2. ### i work on making a new boss 1. (the first one was making impulsion) the second one now shoot bullet##### i take a long time re-organazing the code to implemant the new boss as the function i’ve made wasn’t really optimize or create for future update so i try my best to make it clear**i also encounter a problem as when i try my player was losing hp every time !!!!** i fix it when i understand the function that calculate distance don’t update so the old distance where calculated, i was having negative distance in the terminal while debuging
heyyyy it been a long!!! dev log 2!! ========================================================= recently i have been working on the background chaniging depending the enemis to feel it more like a boss!!!! and i also work on adding a neww cinematic in the UNDERTALE style for now it’s quite messy but it will be allright : the cinematic will append when you kill the 2nd boss then you will discover the power of BUILDING THING and then you will have the power to fortify your place and now the game take a top new way now the next step is to make a level menu after this litle intro of 2 boss and a menu to choose level DIFFERENT LEVEL DIFFERENT PLACE TO DEFEND!!! and this will be the same gameplay but with building phase and a litle story !!!!
dev log # 03 !!!! =============================================== i have finish the cinematic !!! i pass a long long time trying to understand how could i make the caracter by caracter animation and still hanfle me to put pause on the phrase or make the character change speed of talking between word so i finally make list of all the phrase and the word of the dialogue and put the in a list in the list to handle the time!!! ====================================================== btw i also put a redirection to another html page when the animation is finish because i don’t tell it but IT WAS ONLY THE INTRO OF THE GAME hehehehe now it redirect to the menu of the game with the start/new/select/setting/credit button and i already prepare the rest in html but i’m starting the css and js and then i will hide the different menu ================================================ p.s i’m making a quit personal story but all you have to know now is that the main character fall in a world and response bcs people attack him and then he kill a boss that tell i’m he’s free but the main character have to keep fighting ? what does that meen? who know? see next time!!!
##heyyy dev log 6?? i guess ? : i just work on debuging some problem with the old function that doesn’t take in parameter some of the player new variable for some upgrades and i finish by personnalize the game menu and make gradient slider + button and background of course not everything is in place but it take forms
heyyyy this is the last dev log !!! ============================================================ i post this one because i wasn’t aware i need to go thought a vote for validation and then the vote so since last time i just add the back button for the last menu when you beat the intro and then andle the delete and create a run
Ships:
i just remake an old game prototype and i make it better at first it was all for a friend brithday then i wanted to improve it !!! i’m proud because it was the first time i make a real game even if it’s not perfect. there one thing that i’m sad for is because i can’t carry on this project because of schools works ect and the problem in my country (france) so i upload all i can do. i hope you will enjoy !!! i put here a part of the github readme before you try playing: “ in the game you play a “maxime” it’s my friend hehehe the input are the arrow key or ZQSD if you have a turet “x” to deploy and click on it to improve if you have a grenade push “a” to throw it if you have a frezze power put “g” to deploy it “ have a good day and enjoy (be kind ) i hope you will apreciate the game <3...
|
1793004595.6281376
|
1793090995.6281376
|
|
42445
|
My first unity game :D by @nova_ | Stardance
|
nova_
|
1
|
25.0
|
406
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-17T22:59:02Z", "hours": 25.0, "multiplier": 16.42, "payout": 406, "blessing": "neutral", "text": "Welcome to Smooshed! This is a platformer (and my first game) using Unity! BEST PLAYED IN FULLSCREEN How to Play: Movement: Arrow Keys or WASD (with either w, up arrow, or the space bar to jump) T to revert to the last checkpoint R to revert smoosh state C to dash P to pause What is it: You play as a ball (but a cool ball trust me) and are navigating through a dark, winter landscape to reach the end (the goal). However, you are graced with one power, and one power only: The Power to Be Smooshed 😭. Essentially, by getting hit into a wall by moving platforms, you can become either shorter or taller, letting you fit into gaps or inaccessible areas. Credits for assets: Lanterns - https://www.vecteezy.com/png/72636919-pixel-art-lantern-with-soft-glow and https://karsiori.itch.io/free-pixel-art-lantern-pack Music - https://pixabay.com/music/small-drama-background-piano-loop-589657/ Images that I did not draw - uhhh Toby Fox for the tree and my pfp 🥹 https://ca.pinterest.com/pin/915638168004709266/ CHALLENGES: THIS WAS MY FIRST EVER GAME (aside for scratch) so it was a hard but I did learn a lot. I’ve learned Java, so coding in C# wasn’t too bad, it just took me a bit to figure out how Unity works. After that, I was smooth sailing besides for issues with the jump mechanic (very important for a platformer ik but the plinko level interfered with it and caused some jumps to not register), the plinko mechanic itself, the snow falling and dissipating when it hits an object, and figuring out how to use the canvas/camera/lighting mechanics. But once I figured out the basics, I was pretty much set ❤️🔥 FEEDBACK IS ALWAYS APPRECIATED also heres a video of me “speedrunning the whole game” (theres ur playthrough i wanted to attach it here but it wouldnt let me): https://vimeo.com/1236899085?share=copy&fl=sv&fe=ci (srry for the bad quality its a screen recording go play it yourself 🥹)", "repo": "https://github.com/Avi823/first2dgame", "demo": "https://nova-23.itch.io/smooshed"}]...
|
[{"post_id": 80511, "ts": "202 [{"post_id": 80511, "ts": "2026-10-17T22:26:28Z", "hours": 1.1, "text": "SOOOO ITS TIME TO SHIP YAYYYYY: Finishing Touches: Changed the background music out, fixed the final level up, added a win area, put it on itch.io ( https://nova-23.itch.io/smooshed ) (loading screen kinda sucks 😔) Also, fixed the lighting problem and the lanterns, making the lanterns sort of act as guides and added some more dialogue. (IGNORE THE GIANT SLIDER WHEN U HIT PLAY IT LOOKS SMALL I PROMISE )"}, {"post_id": 79426, "ts": "2026-10-13T22:48:10Z", "hours": 3.5567, "text": "well well well. its time to ship (soon)… but uh heres what i did… i changed it to night and added snow (looks yellow/golden right now might have to change). very cool ik to make sure you can still see i added lanterns (which i did not draw all these sprites i got em from https://karsiori.itch.io/free-pixel-art-lantern-pack [pretty cool btw they work nicely and everything is already formatted into individual pngs + no background 🥹]) i also fixed that plinko level so that the ball you drop actually bounces off the plinko pieces and once it hits the portal you teleport to the final level, i fixed the final level up as well, and added three levels in between the dropper and plinko that teach you how to dash!!! (c to dash it will help A LOT especially for the final level ) also, rn one part of the final level requires you to run into the wall and sort of hook onto the side, then dash onto the platform? (i didnt add sliding down walls yet so i feel like i can kinda keep this wall jump feature lowkey ) well, gonna add those lanterns later and then ill ship probably ❤️🔥 what if i just add deltarune references everywhere 😭 (i have one already )"}, {"post_id": 73320, "ts": "2026-09-24T21:13:01Z", "hours": 4.4722, "text": "im a buku buku RAHHH 🥹 well its been a while…so uh lemme show u what ive been working on added a more simple level 5 (after that scary dropper which might be the hardest level rn ) might add more filler levels between the bigger levels so theres more build up now the main thing,uhhh i lowkey turned one of the levels into plinko i was bored ok. its still a wip (might add a custom sprite for the plinko pegs feels wrong to just use the wall texture) but it works !!! Your camera swaps over to the other sprite (which is just a plinko ball) and the aim is to simply drop it into the portal to get to the next level its very cool trust me . and then probably a final (if not the final level) its a giant tower ! (bit scary but should be alr!) now…whats next? so prob gonna add more of em filler levels, add a ending screen, r key for resetting to last checkpoint + last timestate (for plinko ) and more dialogue. also gonna find a new background music task still havent gotten around to it. See yall later ❤️🔥"}, {"post_id": 61778, "ts": "2026-09-04T21:04:16Z", "hours": 2.9458, "text": "I was bored so uhhh heres what i did Levels 3 and 4 (Level 3 is a normal level but does have a secret area ) and level 4 is a dropper For now, level 4s kinda rudimentary (im planning on changing some of the shapes around and add custom sprites for those spikes as well cuz its boring rn) But the secret area is pretty cool (it has hidden dialogue as well by the way). To reach it, you have to stay smooshed while doing all of level 3 and then instead of entering the blue portal go under to the white portal. (The portal isn’t white btw i created an animation for it where it glitches in place [changing colors + vibrating around sporatically]). And it leads to… . I was bored OK so i added the EGG ROOM (where normally you can get an egg in deltarune). Also made it the animated tree and everything and added music triggers for new areas and stuff (so for now its just the actual egg room music). And i really want to keep this reference (i really do ) but uh this is also copyrighted so im prob gonna replace it with some non copyrighted tree thats similar to this and change the music as well (i dont want to compose the music cuz thatll take me WAY too long ) so ill keep it in for now but its not gonna make the final cut unfortunately ill just be a reference to the room and not like the actual room sprites and what not (cuz i also dont want to use his art in my game so itll just be a placeholder ig ). Also added a volume slider just in case you wanted to mute the music or smthn ."}, {"post_id": 57053, "ts": "2026-08-29T04:08:25Z", "hours": 2.6008, "text": "I hate walls. They laugh at me as i fall into the void, phasing through them . Alr well I’ve been drawing sprites and implementing them!!! At least the ground is nice it lets me walk on it first try . The walls however decided to add a bunch of funny little tiny holes in them so that the player can just barely walk through and slip into the void. I fixed this (finally 😭) and (now having the basic sprites) will add more levels in the future 🥹 (still gotta get rid of the copyrighted music. oh well something for later ) also fixed some scaling issues with the tutorial dude!!!"}, {"post_id": 54913, "ts": "2026-08-26T04:06:53Z", "hours": 1.4886, "text": "Copyright issues Unfortunately the song I chose is copyrighted (figured that out a while ago just didn’t want to address the issue until now) so i might have to make my own music for the game. I also finalized the tutorial, added a rudimentary level 1 and CHECKPOINTS . To Do: More (and i mean MORE levels). Secrets (prob just gonna throw a bunch of references in the game and call it a day And finally: Saving the game (and maybe level select if im feeling nice) im not sure if i should add more sprites (im eh at drawing, unless i really put some time into it) so maybe for the first ship i keep default walls and stuff aside for the secrets (which i will def lock in for) and i dunno maybe the next devlog will be music (will be fun to try only really experimented in garage band for school)"}, {"post_id": 47138, "ts": "2026-08-14T20:13:05Z", "hours": 1.9828, "text": "Added a tutorial and a dialogue box (the person is just my pfp for now, but will change later) also created dialogue triggers + animated text. Now gonna do the first lvl and add the dialogue for portals (and maybe a new mechanic or fix dashing cuz rn its kinda unnecessary) also that thing at the top is just my cursor"}, {"post_id": 43024, "ts": "2026-08-08T02:17:38Z", "hours": 1.3972, "text": "Alr SO i added my sprites for the player (still need to fix the issue with it still being a ball in the beginning). I have also added a loading screen, and added torque for fun spinning :D (next thing to do is probably make custom sprites for ground background that stuff, make all the sprites look better 😭 + fix starting scale)"}, {"post_id": 41421, "ts": "2026-08-05T16:49:38Z", "hours": 1.1881, "text": "Created sprite, added music (rn its just https://www.youtube.com/watch?v=tIkkW55bu_k ) and will add sprite to game later (im bad at drawing if you were wondering why it took so long )"}, {"post_id": 41036, "ts": "2026-08-04T23:21:58Z", "hours": 0.465, "text": "Smoosh physics"}, {"post_id": 40359, "ts": "2026-08-03T20:14:35Z", "hours": 1.6203, "text": "added portal colors, moving platforms, and smooshing (as a game feature kinda looks like a bug rn but im going to fix it) So for smooshing you need to be pushed into the ground or a wall by a moving platform in order to become taller or shorter. This will allow you to fit into certain areas and access new areas that you previously could not access. Still fixing it though."}, {"post_id": 39829, "ts": "2026-08-03T02:41:33Z", "hours": 1.0319, "text": "Added dashing (using c) + portals for teleporting"}, {"post_id": 39064, "ts": "2026-08-01T19:07:43Z", "hours": 0.8611, "text": "Created basic movement, simple platform and sprite, + ground check to prevent infinite jumping"}]...
|
Title: My first unity game :D by @nova_ | Stardanc Title: My first unity game :D by @nova_ | Stardance
Devlogs:
Created basic movement, simple platform and sprite, + ground check to prevent infinite jumping
Added dashing (using c) + portals for teleporting
added portal colors, moving platforms, and smooshing (as a game feature kinda looks like a bug rn but im going to fix it) So for smooshing you need to be pushed into the ground or a wall by a moving platform in order to become taller or shorter. This will allow you to fit into certain areas and access new areas that you previously could not access. Still fixing it though.
Smoosh physics
Created sprite, added music (rn its just https://www.youtube.com/watch?v=tIkkW55bu_k ) and will add sprite to game later (im bad at drawing if you were wondering why it took so long )
Alr SO i added my sprites for the player (still need to fix the issue with it still being a ball in the beginning). I have also added a loading screen, and added torque for fun spinning :D (next thing to do is probably make custom sprites for ground background that stuff, make all the sprites look better 😭 + fix starting scale)
Added a tutorial and a dialogue box (the person is just my pfp for now, but will change later) also created dialogue triggers + animated text. Now gonna do the first lvl and add the dialogue for portals (and maybe a new mechanic or fix dashing cuz rn its kinda unnecessary) also that thing at the top is just my cursor
Copyright issues Unfortunately the song I chose is copyrighted (figured that out a while ago just didn’t want to address the issue until now) so i might have to make my own music for the game. I also finalized the tutorial, added a rudimentary level 1 and CHECKPOINTS . To Do: More (and i mean MORE levels). Secrets (prob just gonna throw a bunch of references in the game and call it a day And finally: Saving the game (and maybe level select if im feeling nice) im not sure if i should add more sprites (im eh at drawing, unless i really put some time into it) so maybe for the first ship i keep default walls and stuff aside for the secrets (which i will def lock in for) and i dunno maybe the next devlog will be music (will be fun to try only really experimented in garage band for school)
I hate walls. They laugh at me as i fall into the void, phasing through them . Alr well I’ve been drawing sprites and implementing them!!! At least the ground is nice it lets me walk on it first try . The walls however decided to add a bunch of funny little tiny holes in them so that the player can just barely walk through and slip into the void. I fixed this (finally 😭) and (now having the basic sprites) will add more levels in the future 🥹 (still gotta get rid of the copyrighted music. oh well something for later ) also fixed some scaling issues with the tutorial dude!!!
I was bored so uhhh heres what i did Levels 3 and 4 (Level 3 is a normal level but does have a secret area ) and level 4 is a dropper For now, level 4s kinda rudimentary (im planning on changing some of the shapes around and add custom sprites for those spikes as well cuz its boring rn) But the secret area is pretty cool (it has hidden dialogue as well by the way). To reach it, you have to stay smooshed while doing all of level 3 and then instead of entering the blue portal go under to the white portal. (The portal isn’t white btw i created an animation for it where it glitches in place [changing colors + vibrating around sporatically]). And it leads to… . I was bored OK so i added the EGG ROOM (where normally you can get an egg in deltarune). Also made it the animated tree and everything and added music triggers for new areas and stuff (so for now its just the actual egg room music). And i really want to keep this reference (i really do ) but uh this is also copyrighted so im prob gonna replace it with some non copyrighted tree thats similar to this and change the music as well (i dont want to compose the music cuz thatll take me WAY too long ) so ill keep it in for now but its not gonna make the final cut unfortunately ill just be a reference to the room and not like the actual room sprites and what not (cuz i also dont want to use his art in my game so itll just be a placeholder ig ). Also added a volume slider just in case you wanted to mute the music or smthn .
im a buku buku RAHHH 🥹 well its been a while…so uh lemme show u what ive been working on added a more simple level 5 (after that scary dropper which might be the hardest level rn ) might add more filler levels between the bigger levels so theres more build up now the main thing,uhhh i lowkey turned one of the levels into plinko i was bored ok. its still a wip (might add a custom sprite for the plinko pegs feels wrong to just use the wall texture) but it works !!! Your camera swaps over to the other sprite (which is just a plinko ball) and the aim is to simply drop it into the portal to get to the next level its very cool trust me . and then probably a final (if not the final level) its a giant tower ! (bit scary but should be alr!) now…whats next? so prob gonna add more of em filler levels, add a ending screen, r key for resetting to last checkpoint + last timestate (for plinko ) and more dialogue. also gonna find a new background music task still havent gotten around to it. See yall later ❤️🔥
well well well. its time to ship (soon)… but uh heres what i did… i changed it to night and added snow (looks yellow/golden right now might have to change). very cool ik to make sure you can still see i added lanterns (which i did not draw all these sprites i got em from https://karsiori.itch.io/free-pixel-art-lantern-pack [pretty cool btw they work nicely and everything is already formatted into individual pngs + no background 🥹]) i also fixed that plinko level so that the ball you drop actually bounces off the plinko pieces and once it hits the portal you teleport to the final level, i fixed the final level up as well, and added three levels in between the dropper and plinko that teach you how to dash!!! (c to dash it will help A LOT especially for the final level ) also, rn one part of the final level requires you to run into the wall and sort of hook onto the side, then dash onto the platform? (i didnt add sliding down walls yet so i feel like i can kinda keep this wall jump feature lowkey ) well, gonna add those lanterns later and then ill ship probably ❤️🔥 what if i just add deltarune references everywhere 😭 (i have one already )
SOOOO ITS TIME TO SHIP YAYYYYY: Finishing Touches: Changed the background music out, fixed the final level up, added a win area, put it on itch.io ( https://nova-23.itch.io/smooshed ) (loading screen kinda sucks 😔) Also, fixed the lighting problem and the lanterns, making the lanterns sort of act as guides and added some more dialogue. (IGNORE THE GIANT SLIDER WHEN U HIT PLAY IT LOOKS SMALL I PROMISE )
Ships:
Welcome to Smooshed! This is a platformer (and my first game) using Unity! BEST PLAYED IN FULLSCREEN How to Play: Movement: Arrow Keys or WASD (with either w, up arrow, or the space bar to jump) T to revert to the last checkpoint R to revert smoosh state C to dash P to pause What is it: You play as a ball (but a cool ball trust me) and are navigating through a dark, winter landscape to reach the end (the goal). However, you are graced with one power, and one power only: The Power to Be Smooshed 😭. Essentially, by getting hit into a wall by moving platforms, you can become either shorter or taller, letting you fit into gaps or inaccessible areas. Credits for assets: Lanterns - https://www.vecteezy.com/png/72636919-pixel-art-lantern-with-soft-glow and https://karsiori.itch.io/free-pixel-art-lantern-pack Music - https://pixabay.com/music/small-drama-background-piano-loop-589657/ Images that I did not draw - uhhh Toby Fox for the tree and my pfp 🥹 https://ca.pinterest.com/pin/915638168004709266/ CHALLENGES: THIS WAS MY FIRST EVER GAME (aside for scratch) so it was a hard but I did learn a lot. I’ve learned Java, so coding in C# wasn’t too bad, it just took me a bit to figure out how Unity works. After that, I was smooth sailing besides for issues with the jump mechanic (very important for a platformer ik but the plinko level interfered with it and caused some jumps to not register), the plinko mechanic itself, the snow falling and dissipating when it hits an object, and figuring out how to use the canvas/camera/lighting mechanics. But once I figured out the basics, I was pretty much set ❤️🔥 FEEDBACK IS ALWAYS APPRECIATED also heres a video of me “speedrunning the whole game” (theres ur playthrough i wanted to attach it here but it wouldnt let me): https://vimeo.com/1236899085?share=copy&fl=sv&fe=ci (srry for the bad quality its a screen recording go play it yourself 🥹)...
|
1793008330.2702518
|
1793094730.2702518
|
|
23455
|
KingOS 95 by @Wirenux | Stardance
|
Wirenux
|
2
|
31.0
|
405
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-11T16:51:29Z", "hours": 10.0, "multiplier": 15.75, "payout": 163, "blessing": "neutral", "text": "KingOS 95 The C&A certified 32-bit workstation built for trapped souls ⎛⎝( ` ᢍ ´ )⎠⎞ᵐᵘʰᵃʰᵃ What did you make? For my second ship, I’ve massively expanded KingOS 95! If you missed the first one, it’s a web-based OS built entirely with vanilla HTML, CSS, and JS, inspired by Windows 95 and the lore of The Amazing Digital Circus (I recommend you to go see the 1st Ship). In this update, I’ve mainly add customization option. Here is what’s new: AMI-Like BIOS & Boot Sequence: The OS now actually “boots up.” You can interrupt the startup to enter a fully functional, keyboard-navigated BIOS screen before loading the desktop. Control Panel & Settings App: A centralized hub to manage the OS. Wallpaper: Added a Display Properties menu with hand-redrawn, classic tiled wallpapers (16x16, 32x32, etc.) and a live, perfectly scaled preview window. Accessibility (CRT Toggle): The CRT shader looks really good, but I added a global setting to turn it off so people with photosensitivity or eye strain can still play around safely. UI Polish: I’ve added new tools bar to the File Explorer and the CaineApp terminal. What was challenging? Without a heavy framework like React or Vue, global state management is hard ! When a user toggles the CRT effect or changes the wallpaper, that state needs to instantly update across the entire DOM and persist correctly. Also, building the live-preview monitor inside the Display Properties getting those tiny 16x16 pixel patterns to scale and tile exactly how they will look on the massive desktop required a lot of tricky CSS and JavaScript math. What are you proud of? I’m incredibly proud of the accessibility and the “feel” of the OS. Adding the CRT toggle means more people can explore the project comfortably. But mostly, I’m proud that I managed to add an entire BIOS environment and a global settings architecture while keeping the codebase 100% vanilla and very fast. What should people know so they can test your project? To fully test the workstation, use the official Digital Circus credentials to unlock the computer: Username: kinger Password: queenie123 (or leave it empty!) Things to try: Classic Scenario : Go to My Computer -> Characters -> AI -> CAINE, then spam your keys or Enter to trigger the animation loop! Open the Settings app from the Start Menu to change your wallpaper and toggle the CRT effect. Open the Start Menu, hit Shut Down, and reset the machine so you can catch the brand-new BIOS boot sequence! Explore the project ! ᕙ( •̀ ᗜ •́ )ᕗ", "repo": "https://github.com/wirenux/KingOS-95", "demo": "https://kingos-95.vercel.app/"}, {"ship_num": 2, "ts": "2026-07-03T13:58:01Z", "hours": 21.0, "multiplier": 11.75, "payout": 242, "blessing": "neutral", "text": "What did you make? KingOS 95 is a web-based OS (webOS) that use the style of Windows 95/98 and is based on the universe of The Amazing Digital Circus. Built entirely with vanilla HTML,JS,CSS. Project features: Custom Vector Window Manager: A lightweight window manager supporting zIndex layering, minimizing, maximizing, dragging and resizing window Virtual JSON Filesystem: Dynamic folder and document structure using only a JSON file CRT Display Shader: Scanline and aesthetic from retro display. Overlays optimized for web performance Start Menu: Handles application spawns, external link, and direct OS state toggles (Log Off / Shut Down). Bespoke Circus Applications: Interactive apps matching the show’s lore, including CaineApp (a custom command terminal) and the PurgeAIProgram. What was challenging? The biggest problem came from trying to create a retro look on modern development tools: The Windowing Engine: Writing a fluid and stable window manager in pure vanilla JS without heavy UI frameworks is kinda hard and need building a good state architecture for tracking DOM coordinates, drag states, and layered sorting order on the fly. The Build Pipeline Battle: During deployment, Vite 8’s ultra-modern strict compiler (LightningCSS) repeatedly crashed over a legacy media query ( @media (not(hover))) hidden inside the 98.css stylesheet. What are you proud of? Building a fully responsive, visually complex webOS completely from scratch without leaning on bulky frontend frameworks. Achieving a high level of performance with native HTML, CSS, and JavaScript means the entire simulation loads instantly and stays incredibly responsive. What should people know so they can test your project? To fully use the workstation, testers need to know the official credentials (there are the same in the show !) to unlock the “computer” Username: kinger Password: quennie123", "repo": "https://github.com/wirenux/KingOS-95", "demo": "https://kingos-95.vercel.app/"}]...
|
[{"post_id": 26672, "ts": "202 [{"post_id": 26672, "ts": "2026-07-11T16:40:07Z", "hours": 0.5289, "text": "I guess i’ll make a Devlogs ! (other wise I’ll lost ✨31min✨) So here is the final readme for the 2nd ship"}, {"post_id": 26640, "ts": "2026-07-11T15:58:52Z", "hours": 0.2989, "text": "Yay the 30 Hours have been reached 🎉 Otherwise I’ve added a popup when you press ESC to confirm you want to exit."}, {"post_id": 26618, "ts": "2026-07-11T15:26:01Z", "hours": 0.6364, "text": "I’ve add a BUNCH of CSS & JS so right now i’ve this result ! (this can be use fully with the keyboard)"}, {"post_id": 26594, "ts": "2026-07-11T14:46:21Z", "hours": 1.15, "text": "I’m building the BIOS (when you press anythings on the boot menu)"}, {"post_id": 26502, "ts": "2026-07-11T10:33:08Z", "hours": 0.2706, "text": "I’ve drawn Caine but for a desktop icon !"}, {"post_id": 25858, "ts": "2026-07-10T10:40:14Z", "hours": 0.8136, "text": "I’ve done some invisible fix (like bugs etc…) AND draw every icon for the tools bar in the Caine App and add the tools bar itself !"}, {"post_id": 25271, "ts": "2026-07-09T13:11:55Z", "hours": 1.3239, "text": "I’ve draw all the icon for the toolbar in the File Explorer ! and put them in with some CSS and JS so when you press the Up folder button you go….. ✨UP✨"}, {"post_id": 25228, "ts": "2026-07-09T11:01:34Z", "hours": 0.5172, "text": "I’ve done various fixes and add the Netscape Logo Animation !"}, {"post_id": 24835, "ts": "2026-07-08T17:25:41Z", "hours": 0.2631, "text": "Now the CRT On/Off switch work ! (This was not that difficult, just add or remove an attribute to a div). The 1st screenshot is without and the 2nd is with the CRT effect"}, {"post_id": 24822, "ts": "2026-07-08T17:09:26Z", "hours": 2.0914, "text": "Wow it’s been 2hours 😶. There now is a lot of things who have change ! There now a full Display Properties app (1st screenshot). And when you select a wallpaper there is a preview who fit perfectly into the screen and there is the ability to change the real background (2st screen shot) I’ve also redraw every wallpaper (for the most is just 32x32, 128x128, 64x64 or 16x16 repeated through the whole screen)"}, {"post_id": 24686, "ts": "2026-07-08T13:12:26Z", "hours": 0.3128, "text": "I’ve finally finished the screen (the inside is blank so i could put so texture in it with some code)"}, {"post_id": 24675, "ts": "2026-07-08T12:53:05Z", "hours": 0.6431, "text": "I’m recreating the screen in Display Management in Aseprite because I can’t find any resource for this online. This is so loonnnnggg I’ve just done the frame :,) (Also I’m pixel perfect)"}, {"post_id": 24635, "ts": "2026-07-08T11:07:36Z", "hours": 1.6453, "text": "I’m adding the Control Panel with the Display Settings, because a review say to me : You should add a flashing warning and a settings to disable the CRT effect"}, {"post_id": 21481, "ts": "2026-07-03T13:36:07Z", "hours": 2.5628, "text": "Stardance said to me : \"You will lost 2h33 if you ship right now without a devlog\" so here is it. Yay the 20h bar have been reached !!! In the last 2h i’ve add a lot of things like: hosting the website on vercel, make the whole readme, update project detail on Stardance and add the C&A Favicon, (i’ve also fix some bugs). So now I’m ready to Ship ! Wish me luck !"}, {"post_id": 19995, "ts": "2026-07-01T13:58:10Z", "hours": 0.6561, "text": "It was hard but i now have resizable window ! With a window handle in the bottom right corner"}, {"post_id": 19967, "ts": "2026-07-01T13:02:33Z", "hours": 0.8253, "text": "There is now Netscape ! I’ve used my other project KlassicOS to implement Netscape in this one. Because i’ve already done the code ! I’ve also fix some bug related to button and CSS because on this project I use 98.css but on KlassicOS i was making every 3d effect on the button by hand"}, {"post_id": 19943, "ts": "2026-07-01T12:02:35Z", "hours": 0.7442, "text": "There now is a Window Error with custom error text"}, {"post_id": 19903, "ts": "2026-07-01T10:31:14Z", "hours": 0.4681, "text": "I’ve added the Recycle Bin window !"}, {"post_id": 19309, "ts": "2026-06-30T16:06:25Z", "hours": 0.2939, "text": "I’ve added boot sound and restart when Purge AI Program have finished"}, {"post_id": 19279, "ts": "2026-06-30T15:30:41Z", "hours": 0.6861, "text": "Now there is a Window 95 boot image"}, {"post_id": 19222, "ts": "2026-06-30T14:17:55Z", "hours": 0.445, "text": "The BIOS Loading screen is finished ! (+ i’ve fix the crt on effect on Safari / Chrome)"}, {"post_id": 19198, "ts": "2026-06-30T13:45:12Z", "hours": 0.2731, "text": "Just draw the little blue man (i don’t know his name)"}, {"post_id": 19181, "ts": "2026-06-30T13:24:40Z", "hours": 1.1983, "text": "There now is a BIOS boot animation !!"}, {"post_id": 18648, "ts": "2026-06-29T20:43:02Z", "hours": 0.8586, "text": "Now there is a New CRT effect (the boot one is so beautiful) https://www.youtube.com/watch?v=M90K87DTchw"}, {"post_id": 18498, "ts": "2026-06-29T17:44:42Z", "hours": 1.3147, "text": "Now there is some custom and responsive position for Bubble and CAINE’s heads & Bubble and CAINE’s heads can expand or contract depending on window size (i’ve also add a new C&A white icon)"}, {"post_id": 18426, "ts": "2026-06-29T16:07:54Z", "hours": 0.3283, "text": "CAINE & Bubble are now on screen !"}, {"post_id": 18415, "ts": "2026-06-29T15:44:32Z", "hours": 0.275, "text": "Just finished bubble and assemble CAINE + Animation"}, {"post_id": 18403, "ts": "2026-06-29T15:20:29Z", "hours": 0.5625, "text": "I’ve finished CAINE’s part : And start Bubble"}, {"post_id": 18371, "ts": "2026-06-29T14:33:19Z", "hours": 0.4225, "text": "I’ve just finished the lower part of his mouth"}, {"post_id": 18353, "ts": "2026-06-29T14:04:40Z", "hours": 0.3314, "text": "I’ve just draw the hat!"}, {"post_id": 18344, "ts": "2026-06-29T13:44:45Z", "hours": 0.3358, "text": "I’m drawing the eyes of CAINE ‘cause i’havent found the pixel art online"}, {"post_id": 18309, "ts": "2026-06-29T12:42:22Z", "hours": 0.4603, "text": "Add an invisible change but I now have a function to spawn window that I can use every where"}, {"post_id": 18272, "ts": "2026-06-29T11:17:41Z", "hours": 1.1169, "text": "I’ve just finished the CAINE App ! When you open the app You get the exact same text as in the episode. In the app you you type anythings (you can litteraly smash your keyboard) it will write the same input as in the episode ! Or you could just spam enter to get to the end ! (The text is from the fandom of The Amazing Digital Circus : https://tadc.fandom.com/wiki/Computer )"}, {"post_id": 17891, "ts": "2026-06-28T20:35:21Z", "hours": 0.3278, "text": "now have caine app"}, {"post_id": 17874, "ts": "2026-06-28T20:10:48Z", "hours": 0.2842, "text": "More files !!"}, {"post_id": 17850, "ts": "2026-06-28T19:52:17Z", "hours": 0.8342, "text": "There now is all the file like in the episode"}, {"post_id": 17745, "ts": "2026-06-28T17:41:27Z", "hours": 0.9056, "text": "Now have the File explorer with pseudo File System using JSON File :"}, {"post_id": 17693, "ts": "2026-06-28T16:27:02Z", "hours": 0.7456, "text": "Now able to create fully customizable windows, with custom icons, size, title, titlebar button"}, {"post_id": 17657, "ts": "2026-06-28T15:18:17Z", "hours": 0.7142, "text": "I now have clickable icon on the desktop !"}, {"post_id": 14617, "ts": "2026-06-23T19:57:31Z", "hours": 0.5364, "text": "Now have a proper Start Menu"}, {"post_id": 13227, "ts": "2026-06-21T17:38:44Z", "hours": 0.8644, "text": "Just add the clock (+ sound icon) and the start menu button"}, {"post_id": 13102, "ts": "2026-06-21T13:12:10Z", "hours": 0.4253, "text": "Finished the login phase"}, {"post_id": 13010, "ts": "2026-06-21T08:51:31Z", "hours": 1.0308, "text": "Hi ! I’m adding the login phase of the webOS"}]...
|
Title: KingOS 95 by @Wirenux | Stardance
Devlogs: Title: KingOS 95 by @Wirenux | Stardance
Devlogs:
Hi ! I’m adding the login phase of the webOS
Finished the login phase
Just add the clock (+ sound icon) and the start menu button
Now have a proper Start Menu
I now have clickable icon on the desktop !
Now able to create fully customizable windows, with custom icons, size, title, titlebar button
Now have the File explorer with pseudo File System using JSON File :
There now is all the file like in the episode
More files !!
now have caine app
I’ve just finished the CAINE App ! When you open the app You get the exact same text as in the episode. In the app you you type anythings (you can litteraly smash your keyboard) it will write the same input as in the episode ! Or you could just spam enter to get to the end ! (The text is from the fandom of The Amazing Digital Circus : https://tadc.fandom.com/wiki/Computer )
Add an invisible change but I now have a function to spawn window that I can use every where
I’m drawing the eyes of CAINE ‘cause i’havent found the pixel art online
I’ve just draw the hat!
I’ve just finished the lower part of his mouth
I’ve finished CAINE’s part : And start Bubble
Just finished bubble and assemble CAINE + Animation
CAINE & Bubble are now on screen !
Now there is some custom and responsive position for Bubble and CAINE’s heads & Bubble and CAINE’s heads can expand or contract depending on window size (i’ve also add a new C&A white icon)
Now there is a New CRT effect (the boot one is so beautiful) https://www.youtube.com/watch?v=M90K87DTchw
There now is a BIOS boot animation !!
Just draw the little blue man (i don’t know his name)
The BIOS Loading screen is finished ! (+ i’ve fix the crt on effect on Safari / Chrome)
Now there is a Window 95 boot image
I’ve added boot sound and restart when Purge AI Program have finished
I’ve added the Recycle Bin window !
There now is a Window Error with custom error text
There is now Netscape ! I’ve used my other project KlassicOS to implement Netscape in this one. Because i’ve already done the code ! I’ve also fix some bug related to button and CSS because on this project I use 98.css but on KlassicOS i was making every 3d effect on the button by hand
It was hard but i now have resizable window ! With a window handle in the bottom right corner
Stardance said to me : "You will lost 2h33 if you ship right now without a devlog" so here is it. Yay the 20h bar have been reached !!! In the last 2h i’ve add a lot of things like: hosting the website on vercel, make the whole readme, update project detail on Stardance and add the C&A Favicon, (i’ve also fix some bugs). So now I’m ready to Ship ! Wish me luck !
I’m adding the Control Panel with the Display Settings, because a review say to me : You should add a flashing warning and a settings to disable the CRT effect
I’m recreating the screen in Display Management in Aseprite because I can’t find any resource for this online. This is so loonnnnggg I’ve just done the frame :,) (Also I’m pixel perfect)
I’ve finally finished the screen (the inside is blank so i could put so texture in it with some code)
Wow it’s been 2hours 😶. There now is a lot of things who have change ! There now a full Display Properties app (1st screenshot). And when you select a wallpaper there is a preview who fit perfectly into the screen and there is the ability to change the real background (2st screen shot) I’ve also redraw every wallpaper (for the most is just 32x32, 128x128, 64x64 or 16x16 repeated through the whole screen)
Now the CRT On/Off switch work ! (This was not that difficult, just add or remove an attribute to a div). The 1st screenshot is without and the 2nd is with the CRT effect
I’ve done various fixes and add the Netscape Logo Animation !
I’ve draw all the icon for the toolbar in the File Explorer ! and put them in with some CSS and JS so when you press the Up folder button you go….. ✨UP✨
I’ve done some invisible fix (like bugs etc…) AND draw every icon for the tools bar in the Caine App and add the tools bar itself !
I’ve drawn Caine but for a desktop icon !
I’m building the BIOS (when you press anythings on the boot menu)
I’ve add a BUNCH of CSS & JS so right now i’ve this result ! (this can be use fully with the keyboard)
Yay the 30 Hours have been reached 🎉 Otherwise I’ve added a popup when you press ESC to confirm you want to exit.
I guess i’ll make a Devlogs ! (other wise I’ll lost ✨31min✨) So here is the final readme for the 2nd ship
Ships:
What did you make? KingOS 95 is a web-based OS (webOS) that use the style of Windows 95/98 and is based on the universe of The Amazing Digital Circus. Built entirely with vanilla HTML,JS,CSS. Project features: Custom Vector Window Manager: A lightweight window manager supporting zIndex layering, minimizing, maximizing, dragging and resizing window Virtual JSON Filesystem: Dynamic folder and document structure using only a JSON file CRT Display Shader: Scanline and aesthetic from retro display. Overlays optimized for web performance Start Menu: Handles application spawns, external link, and direct OS state toggles (Log Off / Shut Down). Bespoke Circus Applications: Interactive apps matching the show’s lore, including CaineApp (a custom command terminal) and the PurgeAIProgram. What was challenging? The biggest problem came from trying to create a retro look on modern development tools: The Windowing Engine: Writing a fluid and stable window manager in pure vanilla JS without heavy UI frameworks is kinda hard and need building a good state architecture for tracking DOM coordinates, drag states, and layered sorting order on the fly. The Build Pipeline Battle: During deployment, Vite 8’s ultra-modern strict compiler (LightningCSS) repeatedly crashed over a legacy media query ( @media (not(hover))) hidden inside the 98.css stylesheet. What are you proud of? Building a fully responsive, visually complex webOS completely from scratch without leaning on bulky frontend frameworks. Achieving a high level of performance with native HTML, CSS, and JavaScript means the entire simulation loads instantly and stays incredibly responsive. What should people know so they can test your project? To fully use the workstation, testers need to know the official credentials (there are the same in the show !) to unlock the “computer” Username: kinger Password: quennie123
KingOS 95 The C&A certified 32-bit workstation built for trapped souls ⎛⎝( ` ᢍ ´ )⎠⎞ᵐᵘʰᵃʰᵃ What did you make? For my second ship, I’ve massively expanded KingOS 95! If you missed the first one, it’s a web-based OS built entirely with vanilla HTML, CSS, and JS, inspired by Windows 95 and the lore of The Amazing Digital Circus (I recommend you to go see the 1st Ship). In this update, I’ve mainly add customization option. Here is what’s new: AMI-Like BIOS & Boot Sequence: The OS now actually “boots up.” You can interrupt the startup to enter a fully functional, keyboard-navigated BIOS screen before loading the desktop. Control Panel & Settings App: A centralized hub to manage the OS. Wallpaper: Added a Display Properties menu with hand-redrawn, classic tiled wallpapers (16x16, 32x32, etc.) and a live, perfectly scaled preview window. Accessibility (CRT Toggle): The CRT shader looks really good, but I added a global setting to turn it off so people with photosensitivity or eye strain can still play around safely. UI Polish: I’ve added new tools bar to the File Explorer and the CaineApp terminal. What was challenging? Without a heavy framework like React or Vue, global state management is hard ! When a user toggles the CRT effect or changes the wallpaper, that state needs to instantly update across the entire DOM and persist correctly. Also, building the live-preview monitor inside the Display Properties getting those tiny 16x16 pixel patterns to scale and tile exactly how they will look on the massive desktop required a lot of tricky CSS and JavaScript math. What are you proud of? I’m incredibly proud of the accessibility and the “feel” of the OS. Adding the CRT toggle means more people can explore the project comfortably. But mostly, I’m proud that I managed to add an entire BIOS environment and a global settings architecture while keeping the codebase 100% vanilla and very fast. What should people know so they can test your project? To fully test the workstation, use the official Digital Circus credentials to unlock the computer: Username: kinger Password: queenie123 (or leave it empty!) Things to try: Classic Scenario : Go to My Computer -> Characters -> AI -> CAINE, then spam your keys or Enter to trigger the animation loop! Open the Settings app from the Start Menu to change your wallpaper and toggle the CRT effect. Open the Start Menu, hit Shut Down, and reset the machine so you can catch the brand-new BIOS boot sequence! Explore the project ! ᕙ( •̀ ᗜ •́ )ᕗ...
|
1792986448.6816435
|
1793072848.6816435
|
|
29073
|
MR. ELECTRIC! by @Nicholas-Reyne | Stardance
|
Nicholas-Reyne
|
2
|
35.0
|
403
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-28T02:17:38Z", "hours": 9.0, "multiplier": 6.27, "payout": 55, "blessing": "neutral", "text": "I made an electric field simulator, and added two new key features from the last ship. The first being a ring charge, the second being a permittivity changer. I found the physics behind the ring charge to be very challenging, and it required many hours of brainstorming and drafting on paper to figure out. I’m very happy with how it all turned out, and I think the actual html now looks very pretty with the new background and organization!", "repo": "https://github.com/RaduUdrea1/Mr_Electric2", "demo": "https://raduudrea1.github.io/Mr_Electric2/"}, {"ship_num": 2, "ts": "2026-08-29T02:34:50Z", "hours": 26.0, "multiplier": 14.95, "payout": 348, "blessing": "neutral", "text": "I made an electric field simulator. It took about the past two or so months to actually figure out how anything works. It’s designed to help people visualize electric fields when doing electrostatics. It took a long time to learn the HTML, Python and JS to actually code it but I’m proud of the fact that it even exists. Future modes will include more stuff, and I’m happy to get a chance to ship it!", "repo": "https://github.com/RaduUdrea1/Mr_Electric2", "demo": "https://raduudrea1.github.io/Mr_Electric2/"}]...
|
[{"post_id": 74721, "ts": "202 [{"post_id": 74721, "ts": "2026-09-28T02:15:44Z", "hours": 4.9092, "text": "Hello all: I replaced the buggy dirac-delta mode with two new modes. The first is the ring charge mode, this creates a superposition of 36 point charges, which effectively simulates a continuous charged ring (not perfectly, but close enough to minimize error). This is especially useful for physics problems, as tons of them involve ring charges. Next, I added a mode that allowed you to change the permittivity of the space the charge is in, with a handful of presets ranging from the vacuum (free space) to pure water, all the way to titanium dioxide. In so doing, I also modified the guide and physics, enjoy these modes as you please. Furthermore, electric potential and electric potential energy were added to each mode, denoted by variables V and U. More additions to come in the future, stay tuned!"}, {"post_id": 68954, "ts": "2026-09-16T03:25:31Z", "hours": 3.9431, "text": "Hello all: I added a new background to make Mr. Electric feel less bland. I organized the information in the pages into blocks, this way it is easier to read, and less info-dumpy. I introduced a slider mode for the charges as well, this way you could drag the slider along and it would update the charge. Future changes are coming: Potentials, Electric Potential Energy, Better Dirac-Delta and more! Stay tuned!"}, {"post_id": 56994, "ts": "2026-08-29T01:55:13Z", "hours": 4.7481, "text": "Devlog 3: I added the ability to set a probe point on the first three run modes, the probe point will return electric field magnitude at that point, but it will also return the x, y and z components of that magnitude, so that anyone doing electrostatics problems can check their work as well. The graph now takes inputs in nanocoulombs, and it grows when larger inputs are put in, rather than changing the color. Guide and gallery have been updated to include these changes as well. Inputs have also been stacked neatly rather than arrayed one by one. Honest limits: One single color for all the plots, Gaussian mode not yet helpful because it still only contains one charge, and Dirac Delta is still just cosmetic! Future work will fix these!"}, {"post_id": 53475, "ts": "2026-08-24T01:20:19Z", "hours": 13.0117, "text": "It’s been a while since I’ve posted a devlog! This is Mr. Electric updates. I’ve brought the simulator into the html proper with a new simulate page. The code uses python connected to javascript. New features: Smoothed out the html and cleaned up any bugs. Added a simulate.html page where the simulator actually runs using Pyodide. Added dropdown options and menus to input values for the simulator. Future features: Planned expansion of simulator with more probe points, and drag and drop feature for probes. Ability to do actual calculations with the fields, and more dynamic fields that are prettier and smoother. Cleaner html and better style and buttons, including a unified nav style."}, {"post_id": 34082, "ts": "2026-07-24T15:36:43Z", "hours": 8.5542, "text": "This is the first devlog for my Mr. Electric project, its a small scale passion project designed to simulate electric fields with user input. I designed it over the span of about eight hours, alongside working the physics problems myself from Griffiths Electrodynamics Fourth Edition. Cursor assisted in debugging the code. The code uses NumPy, SciPy and Matplotlib. There are a few honest limits: I had to scale the arrows so nothing was generated close to the origin, the result was monstrous arrows because of the divide by zero issue. Dirac Delta is furthermore, simply a cosmetic feature. Dirac Delta represents particles, and graphically it is just an infinitely tall spike, I tried to simulate that in 3d and ended up with the current delta cluster. The project contains four run modes, one charge, two charge, Gaussian sphere plus probe and delta cluster. The main issue for this log was simply setting up the functions, and making sure everything worked! Up next is a public demo, more features, and a heatmap to help indicate relative vector strength."}]...
|
Title: MR. ELECTRIC! by @Nicholas-Reyne | Stardanc Title: MR. ELECTRIC! by @Nicholas-Reyne | Stardance
Devlogs:
This is the first devlog for my Mr. Electric project, its a small scale passion project designed to simulate electric fields with user input. I designed it over the span of about eight hours, alongside working the physics problems myself from Griffiths Electrodynamics Fourth Edition. Cursor assisted in debugging the code. The code uses NumPy, SciPy and Matplotlib. There are a few honest limits: I had to scale the arrows so nothing was generated close to the origin, the result was monstrous arrows because of the divide by zero issue. Dirac Delta is furthermore, simply a cosmetic feature. Dirac Delta represents particles, and graphically it is just an infinitely tall spike, I tried to simulate that in 3d and ended up with the current delta cluster. The project contains four run modes, one charge, two charge, Gaussian sphere plus probe and delta cluster. The main issue for this log was simply setting up the functions, and making sure everything worked! Up next is a public demo, more features, and a heatmap to help indicate relative vector strength.
It’s been a while since I’ve posted a devlog! This is Mr. Electric updates. I’ve brought the simulator into the html proper with a new simulate page. The code uses python connected to javascript. New features: Smoothed out the html and cleaned up any bugs. Added a simulate.html page where the simulator actually runs using Pyodide. Added dropdown options and menus to input values for the simulator. Future features: Planned expansion of simulator with more probe points, and drag and drop feature for probes. Ability to do actual calculations with the fields, and more dynamic fields that are prettier and smoother. Cleaner html and better style and buttons, including a unified nav style.
Devlog 3: I added the ability to set a probe point on the first three run modes, the probe point will return electric field magnitude at that point, but it will also return the x, y and z components of that magnitude, so that anyone doing electrostatics problems can check their work as well. The graph now takes inputs in nanocoulombs, and it grows when larger inputs are put in, rather than changing the color. Guide and gallery have been updated to include these changes as well. Inputs have also been stacked neatly rather than arrayed one by one. Honest limits: One single color for all the plots, Gaussian mode not yet helpful because it still only contains one charge, and Dirac Delta is still just cosmetic! Future work will fix these!
Hello all: I added a new background to make Mr. Electric feel less bland. I organized the information in the pages into blocks, this way it is easier to read, and less info-dumpy. I introduced a slider mode for the charges as well, this way you could drag the slider along and it would update the charge. Future changes are coming: Potentials, Electric Potential Energy, Better Dirac-Delta and more! Stay tuned!
Hello all: I replaced the buggy dirac-delta mode with two new modes. The first is the ring charge mode, this creates a superposition of 36 point charges, which effectively simulates a continuous charged ring (not perfectly, but close enough to minimize error). This is especially useful for physics problems, as tons of them involve ring charges. Next, I added a mode that allowed you to change the permittivity of the space the charge is in, with a handful of presets ranging from the vacuum (free space) to pure water, all the way to titanium dioxide. In so doing, I also modified the guide and physics, enjoy these modes as you please. Furthermore, electric potential and electric potential energy were added to each mode, denoted by variables V and U. More additions to come in the future, stay tuned!
Ships:
I made an electric field simulator. It took about the past two or so months to actually figure out how anything works. It’s designed to help people visualize electric fields when doing electrostatics. It took a long time to learn the HTML, Python and JS to actually code it but I’m proud of the fact that it even exists. Future modes will include more stuff, and I’m happy to get a chance to ship it!
I made an electric field simulator, and added two new key features from the last ship. The first being a ring charge, the second being a permittivity changer. I found the physics behind the ring charge to be very challenging, and it required many hours of brainstorming and drafting on paper to figure out. I’m very happy with how it all turned out, and I think the actual html now looks very pretty with the new background and organization!...
|
1792982971.1827087
|
1793069371.1827087
|
|
36029
|
My Portfolio Website! by @iamcyrusdaniel | Stardan My Portfolio Website! by @iamcyrusdaniel | Stardance...
|
iamcyrusdaniel
|
1
|
67.0
|
403
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-05T14:52:44Z", "hours": 67.0, "multiplier": 6.12, "payout": 403, "blessing": "neutral", "text": "I made a portfolio website with absolutely no templates and vanilla JS, I made it because I really wanted to make a website where it’s as authentic as possible. It was honestly challenging when I ran into issues like when my bento box layout disappeared offscreen, but it felt great when I fixed it myself. I’m really proud of how this project came out, and I really enjoyed implementing all the features. There isn’t really any instructions in using my website, just explore and have fun! 🎉", "repo": "https://github.com/iamcyrusdaniel/my-website", "demo": "https://cyrus-personal-portfolio.netlify.app/"}]...
|
[{"post_id": 41318, "ts": "202 [{"post_id": 41318, "ts": "2026-08-05T13:44:24Z", "hours": 1.6453, "text": "Website Setup Complete! After tweaking some stuff and also adding responsiveness to the achievements, I can now host the website! This took surprisingly long since I had to figure out how to use certain files to make sure everything ended up on the hosted website, but in the end everything worked out :D"}, {"post_id": 41027, "ts": "2026-08-04T22:57:43Z", "hours": 0.4761, "text": "Finished I’ve finished my README and I’m finally done! Now if I make any changes it’s related to hosting"}, {"post_id": 40969, "ts": "2026-08-04T20:59:18Z", "hours": 10.5972, "text": "Devlog 8 | Finalization Welcome to my eighth devlog! This update, I’ve mostly focused on polishing things and making each page feel different (but not too different) from one another. I think I’m basically done at this point! 🎉 ✨ Visuals 🔍 Many Small Changes I’ve done a very large number of margin changes and padding changes so that everything looks nice and polished 🃏 Improved Responsiveness Some things kind of broke when shrunk still, and all of those situations (to my knowledge) are fixed! 🌗 Consistent Theme Styling Adjusted shadows and transitions so everything looks consistent in both light and dark mode 🔨 Polishing 💻 Improved Terminal Experience Made the terminal feel less boring by adding more interactability and polishing it further 🍱 Bento Box Layout Made a new bento box layout to replace the previous layout, making the page look nicer, and it’s responsive too! It collapses into a column on mobile. 🐞 Fixes 🧹 Even More CSS Cleanup At this point my CSS is completely cleaned up and the main change is that I’ve put 1 line of space between every single selector ➡️ Fixed Bento Box Disappearing Bento box stuff was disappearing when transitioning between mobile and desktop so I had to fix that by repainting the page 🥇 Fixed Achievements Mispositioning Achievements were centering themselves, in their boxes, which made them not line up, fixed it by removing the self-centering 🤔 What’s Left? 📚 README I actually have not touched the README since my first devlog, so I need to finish that up now 🔧 Host The Website This is my first time hosting a website, and it’s actually the only thing left other than the README Thanks for checking out my final major update! It doesn’t look like much, but some of these bugs such as the bento box bug ended up taking almost an hour. I now just need to test it, and put it up on Github Pages or something. For now, be ready for anything :P"}, {"post_id": 39152, "ts": "2026-08-01T21:29:48Z", "hours": 9.9492, "text": "Devlog 7 | Interaction Improvement Welcome to my seventh devlog! This update, I have made the website feel more interactive by adding achievements, and I’ve also added more personal details on the website ✨ Visuals 🃏 Improved Responsiveness As usual I’ve made some more tweaks and fixes to how the page’s responsiveness works, the timeline no longer clips through everything when resized vertically 👥 Shadow Consistency Previously I had a different shadow for light mode and dark mode, now they share the same type of shadow 🥇 Achievement Styling Using both CSS and JavaScript, uncompleted achievements are greyed out, while completed achievements are nice and opaque. Hovering shows a little description of the achievement as well 💯 Final Transition Changes Now everything has smooth transitions and I’m unlikely to change how it works now! 🔨 Features 🥇 Achievements Achievements are my newest addition to the site, each contain an image, and a short description, and now all I have to do is add more! 👨💻 Stylish Terminal Now there’s a stylish terminal where you can get a cool achievement :O 📁 More Statistics Usage By using pre-existing statistics I can make more achievements 🐞 Fixes 🧹 CSS Cleanup Had some repeated values that were cluttering the CSS that I’ve now removed ➡️ Fixed Timeline Made timeline not clip stuff when in vertical mode Thanks for checking out this update! This was a little more relaxed of an update. And as usual, there’s still more to improve, so be ready for the next devlog! 🚀"}, {"post_id": 37327, "ts": "2026-07-29T23:20:19Z", "hours": 9.1775, "text": "Devlog 6 | Design Overhaul Welcome to my sixth devlog! I’ve focused on improving the overall structure of the homepage and made navigation on the website feel more natural. ✨ Visuals 🃏 Cards Now the main text is contained within cards at the top of each page 🎨 Background Blobs Recolor While I liked the multi-colored background blobs, it didn’t have any main color so I’ve shifted to a green-blue-purple palette 📃 Menu Redesign The old menu was kind of janky and old looking, I now have a more personalized, modern menu 🏠 Homepage Upgrade Before, my homepage was simply just a small introduction, now I’ve made it more intuitive and understandable 📱 Responsive Adjustments Made more adjustments to page resizing to ensure stability on different size screens ⚖️ Two-Sided Navbar The navbar is now split between two halves, I prefer it like this since it adds a little bit more of my own personal flair :D 🔨 Features 📁 Better Page Organization Each page now has a distinct purpose and doesn’t contain duplicate content from other pages 🗺️ Navigation Improvements Added large navigation buttons on the homepage to encourage visitors to explore different sections of the site 🐞 Fixes 🧹 General Cleanup Had some weird structuring in the HTML that I fixed and made the CSS more concise 🔘 Fixed Button Alignment Originally the button alignment broke when shrunk in certain ways, now it doesn’t break anymore 📌 File Organization My CSS was overly modularized and specific, so I reorganized and reduced the CSS so that there’s roughly half as many files Thanks for checking out this update! This was the biggest design overhaul I’ve done so far, and I’m really happy with how the website is coming together. As always, there’s still more to improve, so stay tuned for the next devlog! 🚀"}, {"post_id": 35795, "ts": "2026-07-27T13:39:50Z", "hours": 9.0725, "text": "Devlog 5 | Almost done! (I hope) Welcome to my fifth devlog! I’ve now fixed many of the major bugs that were present in my code, modularized the CSS, and I’ve also started to make the site more pretty :D 🛠️ Features Who doesn’t like more features? 📊 Stats Now you can finally know how many times you toggled dark mode, or how much time you’ve spent on my website! 🕸️ CSS restructuring Now my files are nice and clean, all of them have been separated into modules and work flawlessly (for now) with each other! ✨ Visuals Here are the new visual updates! 💥 Fixed unstyled content flash Though it isn’t exactly a loading screen, it hides the flash of unstyled content! 🌊 Added a more subtle transition to visuals Now most things transition with a 0.25 second delay, it feels really smooth! 🎨 Added the colorful blob background to all pages I realized that it felt a little awkward with the extras page being the only page with a good looking background 🤔 What’s Left? Approaching the finish line! 🎉 Make the page look more entertaining Time for me to overhaul the entire styling of my project :D 👤 Add my own personal stuff! I still haven’t put my own details on the pages (there’s still placeholders) I really hope you enjoy my project :D"}, {"post_id": 33732, "ts": "2026-07-23T21:29:47Z", "hours": 10.1744, "text": "Devlog 4 | Mobile Support Welcome to my fourth devlog on my portfolio! This update has been focused on mobile support, and I’ve also made several changes to how the site adapts to different screen sizes 🛠️ Features All the cool new features! 📖 Timeline Text At first I wanted to make it so that when you click on the timeline, it would show each section, but I opted to show the section the user is currently hovering over. It makes the site feel more interactive! 🕸️ Restructured File System Before, I had literally just one JavaScript file and the same code copy pasted across every page, now I’ve modularized it into multiple files (still many bugs to fix though) ✨ Visuals Here are the new visual updates excluding mobile resizing 🌓 Dark Mode Transition Gradual color transitions make switching between dark mode and light mode easier on the eyes 🔽 Simplistic Footer I also added a footer that says Made by Cyrus • 2026 , it makes the site feel more professional 📱 Mobile Resizing Now my app is compatible with mobile! 😋 Hamburger Menu When the screen width is low, the menu collapses into a hamburger (the 3-line icon), and when clicked on, it shows a dropdown menu of the links 🟡 Timeline Text I implemented a mobile-friendly update to my timeline that transforms the page into a vertical layout when the page is shrunk What I’ve Learned 🔎 Media queries for adjustments based on screen size 🧱 Modularizing code so that maintenance and readability are improved 🍔 Awesome hamburger menu 💪 Using CSS flex for more complex use cases than centering 🤔 What’s Left? Surprisingly I’m almost done… 🐛 Fix all the bugs After modularizing the code, a lot of new bugs have been introduced that I need to fix 🎉 Make the page look more entertaining I’ve mostly worked on JavaScript animations and mobile support, I now need to make the styling itself look better Add my own personal stuff! I still haven’t put my own details on the pages (there’s still placeholders) Thanks for reading my devlog! The first image is the hamburger menu, and the second image shows the new modularized file system."}, {"post_id": 32401, "ts": "2026-07-21T15:41:26Z", "hours": 3.0122, "text": "Animations Update! I have added more animations as it makes the website more entertaining! All the changes are in the demo for those of you who want to see it in action :D ⌨️ Typing Animation I added a script to make the title look as though it is being typed out! 📏 Navigation Bar Size Limit Now the navbar doesn’t take up the entire screen width in the scenario the screen is big as it made it a little difficult to use 🌌 Background Text Visibility Fix I had an issue with the background on the extras page blocking visibility, I’ve fixed this by adding a translucent background on the page and I’m quite proud of it! ⭐ Button/Link Glow Awesome glow effect on links and buttons Timeline Transition Timeline dots appear smoothly after one another Spinning Dark Mode Button By using JavaScript and CSS animations I was able to create a cool spin effect when clicking the dark mode button Thanks for reading my devlog, feedback is appreciated!"}, {"post_id": 31885, "ts": "2026-07-20T17:10:23Z", "hours": 4.9722, "text": "Devlog 2 | Dark Mode Hey everyone! This is my second devlog, and this time I’ve added my biggest feature, dark mode. It saves your preference of light/dark mode using localStorage so you don’t have to keep switching back to your preference every time you go to a different section. I’ve also added a lava lamp-like background to the new page “Extras”. If you haven’t read my first devlog, I’ve made a portfolio website with HTML, CSS, and JavaScript! It’s a website to showcase my skills and background. Other than that I’ve fixed the navbar not being flush with the corners of the page. Overall I’m content with my progress! Please give me any suggestions I’d greatly appreciate it ❤️"}, {"post_id": 31351, "ts": "2026-07-19T17:51:24Z", "hours": 7.5419, "text": "My Own Portfolio Welcome to my first devlog! This project is a personal portfolio website that I’m currently building to introduce myself and showcase my development skills. So far, I’ve implemented an animated timeline, JavaScript particle effects, page transitions, and other interactive features. I’ve had a lot of fun building it, and I really hope you enjoy checking out this project! Features 🏠 Multi-page website with navigation ✨ Page loading transition 🎲 Random welcome messages with repetition prevention using session storage 🎉 Click particle effects created with JavaScript 📅 Interactive timeline with hover animations 🎨 Custom styling using CSS animations and transitions Built with HTML CSS JavaScript Vite What I Learned Structuring a multi-page website Using sessionStorage Creating animations using requestAnimationFrame Making loading screens to hide flashes of unstyled content What’s Left? Remove placeholder text from pages Improve animations and transitions Make the site more interactive Make the portfolio more personal to me Hope you like it :D"}]...
|
Title: My Portfolio Website! by @iamcyrusdaniel | Title: My Portfolio Website! by @iamcyrusdaniel | Stardance
Devlogs:
My Own Portfolio Welcome to my first devlog! This project is a personal portfolio website that I’m currently building to introduce myself and showcase my development skills. So far, I’ve implemented an animated timeline, JavaScript particle effects, page transitions, and other interactive features. I’ve had a lot of fun building it, and I really hope you enjoy checking out this project! Features 🏠 Multi-page website with navigation ✨ Page loading transition 🎲 Random welcome messages with repetition prevention using session storage 🎉 Click particle effects created with JavaScript 📅 Interactive timeline with hover animations 🎨 Custom styling using CSS animations and transitions Built with HTML CSS JavaScript Vite What I Learned Structuring a multi-page website Using sessionStorage Creating animations using requestAnimationFrame Making loading screens to hide flashes of unstyled content What’s Left? Remove placeholder text from pages Improve animations and transitions Make the site more interactive Make the portfolio more personal to me Hope you like it :D
Devlog 2 | Dark Mode Hey everyone! This is my second devlog, and this time I’ve added my biggest feature, dark mode. It saves your preference of light/dark mode using localStorage so you don’t have to keep switching back to your preference every time you go to a different section. I’ve also added a lava lamp-like background to the new page “Extras”. If you haven’t read my first devlog, I’ve made a portfolio website with HTML, CSS, and JavaScript! It’s a website to showcase my skills and background. Other than that I’ve fixed the navbar not being flush with the corners of the page. Overall I’m content with my progress! Please give me any suggestions I’d greatly appreciate it ❤️
Animations Update! I have added more animations as it makes the website more entertaining! All the changes are in the demo for those of you who want to see it in action :D ⌨️ Typing Animation I added a script to make the title look as though it is being typed out! 📏 Navigation Bar Size Limit Now the navbar doesn’t take up the entire screen width in the scenario the screen is big as it made it a little difficult to use 🌌 Background Text Visibility Fix I had an issue with the background on the extras page blocking visibility, I’ve fixed this by adding a translucent background on the page and I’m quite proud of it! ⭐ Button/Link Glow Awesome glow effect on links and buttons Timeline Transition Timeline dots appear smoothly after one another Spinning Dark Mode Button By using JavaScript and CSS animations I was able to create a cool spin effect when clicking the dark mode button Thanks for reading my devlog, feedback is appreciated!
Devlog 4 | Mobile Support Welcome to my fourth devlog on my portfolio! This update has been focused on mobile support, and I’ve also made several changes to how the site adapts to different screen sizes 🛠️ Features All the cool new features! 📖 Timeline Text At first I wanted to make it so that when you click on the timeline, it would show each section, but I opted to show the section the user is currently hovering over. It makes the site feel more interactive! 🕸️ Restructured File System Before, I had literally just one JavaScript file and the same code copy pasted across every page, now I’ve modularized it into multiple files (still many bugs to fix though) ✨ Visuals Here are the new visual updates excluding mobile resizing 🌓 Dark Mode Transition Gradual color transitions make switching between dark mode and light mode easier on the eyes 🔽 Simplistic Footer I also added a footer that says Made by Cyrus • 2026 , it makes the site feel more professional 📱 Mobile Resizing Now my app is compatible with mobile! 😋 Hamburger Menu When the screen width is low, the menu collapses into a hamburger (the 3-line icon), and when clicked on, it shows a dropdown menu of the links 🟡 Timeline Text I implemented a mobile-friendly update to my timeline that transforms the page into a vertical layout when the page is shrunk What I’ve Learned 🔎 Media queries for adjustments based on screen size 🧱 Modularizing code so that maintenance and readability are improved 🍔 Awesome hamburger menu 💪 Using CSS flex for more complex use cases than centering 🤔 What’s Left? Surprisingly I’m almost done… 🐛 Fix all the bugs After modularizing the code, a lot of new bugs have been introduced that I need to fix 🎉 Make the page look more entertaining I’ve mostly worked on JavaScript animations and mobile support, I now need to make the styling itself look better Add my own personal stuff! I still haven’t put my own details on the pages (there’s still placeholders) Thanks for reading my devlog! The first image is the hamburger menu, and the second image shows the new modularized file system.
Devlog 5 | Almost done! (I hope) Welcome to my fifth devlog! I’ve now fixed many of the major bugs that were present in my code, modularized the CSS, and I’ve also started to make the site more pretty :D 🛠️ Features Who doesn’t like more features? 📊 Stats Now you can finally know how many times you toggled dark mode, or how much time you’ve spent on my website! 🕸️ CSS restructuring Now my files are nice and clean, all of them have been separated into modules and work flawlessly (for now) with each other! ✨ Visuals Here are the new visual updates! 💥 Fixed unstyled content flash Though it isn’t exactly a loading screen, it hides the flash of unstyled content! 🌊 Added a more subtle transition to visuals Now most things transition with a 0.25 second delay, it feels really smooth! 🎨 Added the colorful blob background to all pages I realized that it felt a little awkward with the extras page being the only page with a good looking background 🤔 What’s Left? Approaching the finish line! 🎉 Make the page look more entertaining Time for me to overhaul the entire styling of my project :D 👤 Add my own personal stuff! I still haven’t put my own details on the pages (there’s still placeholders) I really hope you enjoy my project :D
Devlog 6 | Design Overhaul Welcome to my sixth devlog! I’ve focused on improving the overall structure of the homepage and made navigation on the website feel more natural. ✨ Visuals 🃏 Cards Now the main text is contained within cards at the top of each page 🎨 Background Blobs Recolor While I liked the multi-colored background blobs, it didn’t have any main color so I’ve shifted to a green-blue-purple palette 📃 Menu Redesign The old menu was kind of janky and old looking, I now have a more personalized, modern menu 🏠 Homepage Upgrade Before, my homepage was simply just a small introduction, now I’ve made it more intuitive and understandable 📱 Responsive Adjustments Made more adjustments to page resizing to ensure stability on different size screens ⚖️ Two-Sided Navbar The navbar is now split between two halves, I prefer it like this since it adds a little bit more of my own personal flair :D 🔨 Features 📁 Better Page Organization Each page now has a distinct purpose and doesn’t contain duplicate content from other pages 🗺️ Navigation Improvements Added large navigation buttons on the homepage to encourage visitors to explore different sections of the site 🐞 Fixes 🧹 General Cleanup Had some weird structuring in the HTML that I fixed and made the CSS more concise 🔘 Fixed Button Alignment Originally the button alignment broke when shrunk in certain ways, now it doesn’t break anymore 📌 File Organization My CSS was overly modularized and specific, so I reorganized and reduced the CSS so that there’s roughly half as many files Thanks for checking out this update! This was the biggest design overhaul I’ve done so far, and I’m really happy with how the website is coming together. As always, there’s still more to improve, so stay tuned for the next devlog! 🚀
Devlog 7 | Interaction Improvement Welcome to my seventh devlog! This update, I have made the website feel more interactive by adding achievements, and I’ve also added more personal details on the website ✨ Visuals 🃏 Improved Responsiveness As usual I’ve made some more tweaks and fixes to how the page’s responsiveness works, the timeline no longer clips through everything when resized vertically 👥 Shadow Consistency Previously I had a different shadow for light mode and dark mode, now they share the same type of shadow 🥇 Achievement Styling Using both CSS and JavaScript, uncompleted achievements are greyed out, while completed achievements are nice and opaque. Hovering shows a little description of the achievement as well 💯 Final Transition Changes Now everything has smooth transitions and I’m unlikely to change how it works now! 🔨 Features 🥇 Achievements Achievements are my newest addition to the site, each contain an image, and a short description, and now all I have to do is add more! 👨💻 Stylish Terminal Now there’s a stylish terminal where you can get a cool achievement :O 📁 More Statistics Usage By using pre-existing statistics I can make more achievements 🐞 Fixes 🧹 CSS Cleanup Had some repeated values that were cluttering the CSS that I’ve now removed ➡️ Fixed Timeline Made timeline not clip stuff when in vertical mode Thanks for checking out this update! This was a little more relaxed of an update. And as usual, there’s still more to improve, so be ready for the next devlog! 🚀
Devlog 8 | Finalization Welcome to my eighth devlog! This update, I’ve mostly focused on polishing things and making each page feel different (but not too different) from one another. I think I’m basically done at this point! 🎉 ✨ Visuals 🔍 Many Small Changes I’ve done a very large number of margin changes and padding changes so that everything looks nice and polished 🃏 Improved Responsiveness Some things kind of broke when shrunk still, and all of those situations (to my knowledge) are fixed! 🌗 Consistent Theme Styling Adjusted shadows and transitions so everything looks consistent in both light and dark mode 🔨 Polishing 💻 Improved Terminal Experience Made the terminal feel less boring by adding more interactability and polishing it further 🍱 Bento Box Layout Made a new bento box layout to replace the previous layout, making the page look nicer, and it’s responsive too! It collapses into a column on mobile. 🐞 Fixes 🧹 Even More CSS Cleanup At this point my CSS is completely cleaned up and the main change is that I’ve put 1 line of space between every single selector ➡️ Fixed Bento Box Disappearing Bento box stuff was disappearing when transitioning between mobile and desktop so I had to fix that by repainting the page 🥇 Fixed Achievements Mispositioning Achievements were centering themselves, in their boxes, which made them not line up, fixed it by removing the self-centering 🤔 What’s Left? 📚 README I actually have not touched the README since my first devlog, so I need to finish that up now 🔧 Host The Website This is my first time hosting a website, and it’s actually the only thing left other than the README Thanks for checking out my final major update! It doesn’t look like much, but some of these bugs such as the bento box bug ended up taking almost an hour. I now just need to test it, and put it up on Github Pages or something. For now, be ready for anything :P
Finished I’ve finished my README and I’m finally done! Now if I make any changes it’s related to hosting
Website Setup Complete! After tweaking some stuff and also adding responsiveness to the achievements, I can now host the website! This took surprisingly long since I had to figure out how to use certain files to make sure everything ended up on the hosted website, but in the end everything worked out :D
Ships:
I made a portfolio website with absolutely no templates and vanilla JS, I made it because I really wanted to make a website where it’s as authentic as possible. It was honestly challenging when I ran into issues like when my bento box layout disappeared offscreen, but it felt great when I fixed it myself. I’m really proud of how this project came out, and I really enjoyed implementing all the features. There isn’t really any instructions in using my website, just explore and have fun! 🎉...
|
1792961542.7989798
|
1793047942.7989798
|
|
66663
|
Bukus VS Beans by @Al_Lee | Stardance
|
Al_Lee
|
1
|
22.0
|
403
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-06T01:44:40Z", "hours": 22.0, "multiplier": 18.45, "payout": 403, "blessing": "neutral", "text": "I made a game where you play as a brave buku, and your job is to shoot down the ship and the beans while dodging attacks. I found challenging learning godot’s scripting, since this is my first game on a actual game engine (scratch doesnt count). I am really proud of how my game came together, it looks so polished for my first game. Others should read the controls in the README or Itch.io page and be aware that it takes a few attempts to beat the boss", "repo": "https://github.com/alchoilee-lgtm/The-Bukan-War", "demo": "https://inzpire.itch.io/the-bukan-war"}]...
|
[{"post_id": 77193, "ts": "202 [{"post_id": 77193, "ts": "2026-10-06T01:13:34Z", "hours": 2.5953, "text": "The Bukan War is offically DONE :) I’ve made it possible to skip the story I added extra polish, to the win screen, and got rid of some exploits Made the game more fun by adjusting difficulty The YAP: To detect the story skip thing, I just whipped up a simple script that, when space bar is pressed, makes a clone of the transition and swaps scenes. There was an exploit (thanks @Ethen for finding it), that if you go behind the boss, you can just avoid the attacks and just win. I patched this by putting a Staticbody2D, so that it blocks the player from going behind the boss. Also, for the difficulty, I made the player AND the boss have more health, and made it that you can HEAL heath when you shoot Beans and your health bar is full. The extra health is a GENIUS, 100IQ effort to get players to play my game longer while also making it a bit easier with those struggling with the game (like me). OH yeah, to the win screen, I just added rainbow coloured particles coming out from the bottom middle of the screen. I just made the colour curve light red, and made the hue variation as MAXED as possible for rainbow colour :)"}, {"post_id": 76916, "ts": "2026-10-05T02:28:02Z", "hours": 9.5928, "text": "IM DONEEEEEEEEE A bit more playtesting and polishing, and I’ll be done What I’ve Done Made a text-to-bullet function for a boss attack. This took SOOOOO long, probably the most technical thing the project. To simplify a lot, its a 5x5 bitmap code shot out with a function to create text Made a shockwave attack. It shoots in a semi circle pattern with some gaps in it Made a bunch of art Added voicelines done by family, which was sped up for less cracking and cuz the voice seemed a but weird Fixed a bunch of bugs Made menu, and made buttons whiter when hovered and darker when clicked Made ded and win screen"}, {"post_id": 76101, "ts": "2026-10-02T10:09:57Z", "hours": 4.3194, "text": "I got a bit done :) Today I managed to add 2/5 boss attacks as well as soundtrack (from pixabay) and some SFX from JSFXR (they really are the best SFX website lol) What I have left: Make 3 more boss attacks Not get cooked up by the boss in my own game Do voice lines for dramatic story Fix 50 trillion bugs Make some actual art for the bullets Make a Main Menu Since I dont know a lot of Godot coding, my progress is a bit slow, but at least I get more hours in lol :D"}, {"post_id": 75448, "ts": "2026-09-30T03:54:04Z", "hours": 4.2678, "text": "2nd Devlog of Bukus vs Beans I added a ship that the player has to shoot at, I added randomly moving “drunk” beans, so that the player can shoot for ammo/energy for their gun. The beans just pick a direction and move in a direction for some time, and they keep doing that I also added shoot particles and background particles which, I think, looks quite nice :) It look like quite a while getting hang of the particle system, but I can now confidently use it :) Shoutout to @hedgehog81 for helping me with the particles and other stuff"}, {"post_id": 75161, "ts": "2026-09-29T10:30:49Z", "hours": 1.0744, "text": "I’m making a boss game, where the Bukus have to shoot down the Bean’s ship. The lore: The beans and bukus have been fighting for 10 years now, and both sides are tired of it. A buku buku called “Bukuysses” comes up with a genius idea. They get a statue, for the Beanthena, and they choose one strong buku buku to go inside it. They leave it floating in space, and the Beans protector ship ( which is a bean pod), collect the statue :) The warriors inside the ship get drunk celebrating and go back to they planet, and the brave warrior comes out, of the spaceship and starts shooting at the spaceship. the problem is, he forgot to bring the correct gun, so he has to use Bean Energy, which you get by killing the beans. The beans bounce around the screen randomly because they are drunk and they get vaporized into energy in 1 shot. The ship has this “defence mechanism”, that acts as the boss fight (I got inspired by The Odyssey plz dont sue me)"}]...
|
Title: Bukus VS Beans by @Al_Lee | Stardance
Devl Title: Bukus VS Beans by @Al_Lee | Stardance
Devlogs:
I’m making a boss game, where the Bukus have to shoot down the Bean’s ship. The lore: The beans and bukus have been fighting for 10 years now, and both sides are tired of it. A buku buku called “Bukuysses” comes up with a genius idea. They get a statue, for the Beanthena, and they choose one strong buku buku to go inside it. They leave it floating in space, and the Beans protector ship ( which is a bean pod), collect the statue :) The warriors inside the ship get drunk celebrating and go back to they planet, and the brave warrior comes out, of the spaceship and starts shooting at the spaceship. the problem is, he forgot to bring the correct gun, so he has to use Bean Energy, which you get by killing the beans. The beans bounce around the screen randomly because they are drunk and they get vaporized into energy in 1 shot. The ship has this “defence mechanism”, that acts as the boss fight (I got inspired by The Odyssey plz dont sue me)
2nd Devlog of Bukus vs Beans I added a ship that the player has to shoot at, I added randomly moving “drunk” beans, so that the player can shoot for ammo/energy for their gun. The beans just pick a direction and move in a direction for some time, and they keep doing that I also added shoot particles and background particles which, I think, looks quite nice :) It look like quite a while getting hang of the particle system, but I can now confidently use it :) Shoutout to @hedgehog81 for helping me with the particles and other stuff
I got a bit done :) Today I managed to add 2/5 boss attacks as well as soundtrack (from pixabay) and some SFX from JSFXR (they really are the best SFX website lol) What I have left: Make 3 more boss attacks Not get cooked up by the boss in my own game Do voice lines for dramatic story Fix 50 trillion bugs Make some actual art for the bullets Make a Main Menu Since I dont know a lot of Godot coding, my progress is a bit slow, but at least I get more hours in lol :D
IM DONEEEEEEEEE A bit more playtesting and polishing, and I’ll be done What I’ve Done Made a text-to-bullet function for a boss attack. This took SOOOOO long, probably the most technical thing the project. To simplify a lot, its a 5x5 bitmap code shot out with a function to create text Made a shockwave attack. It shoots in a semi circle pattern with some gaps in it Made a bunch of art Added voicelines done by family, which was sped up for less cracking and cuz the voice seemed a but weird Fixed a bunch of bugs Made menu, and made buttons whiter when hovered and darker when clicked Made ded and win screen
The Bukan War is offically DONE :) I’ve made it possible to skip the story I added extra polish, to the win screen, and got rid of some exploits Made the game more fun by adjusting difficulty The YAP: To detect the story skip thing, I just whipped up a simple script that, when space bar is pressed, makes a clone of the transition and swaps scenes. There was an exploit (thanks @Ethen for finding it), that if you go behind the boss, you can just avoid the attacks and just win. I patched this by putting a Staticbody2D, so that it blocks the player from going behind the boss. Also, for the difficulty, I made the player AND the boss have more health, and made it that you can HEAL heath when you shoot Beans and your health bar is full. The extra health is a GENIUS, 100IQ effort to get players to play my game longer while also making it a bit easier with those struggling with the game (like me). OH yeah, to the win screen, I just added rainbow coloured particles coming out from the bottom middle of the screen. I just made the colour curve light red, and made the hue variation as MAXED as possible for rainbow colour :)
Ships:
I made a game where you play as a brave buku, and your job is to shoot down the ship and the beans while dodging attacks. I found challenging learning godot’s scripting, since this is my first game on a actual game engine (scratch doesnt count). I am really proud of how my game came together, it looks so polished for my first game. Others should read the controls in the README or Itch.io page and be aware that it takes a few attempts to beat the boss...
|
1792965273.8832283
|
1793051673.8832283
|
|
32841
|
Rest Time by @heitordecarvalhopessoa | Stardance
|
heitordecarvalhopessoa
|
3
|
29.09
|
402
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-28T01:34:44Z", "hours": 9.0, "multiplier": 16.54, "payout": 145, "blessing": "neutral", "text": "NEW 1.12 FULL VERSION NEW - Clear all particles system NEW - Shortcuts menu NEW - Tutorial NEW - Hud NEW - typescript datastorage system", "repo": "https://github.com/heitordecarvalhopessoa-debug/Rest-Time", "demo": "https://heitordecarvalhopessoa-debug.github.io/Rest-Time/"}, {"ship_num": 2, "ts": "2026-07-22T20:38:52Z", "hours": 10.0, "multiplier": 19.15, "payout": 199, "blessing": "neutral", "text": "Version 9 New - Meteor Brush New - Rain Brush New - BlackHole New - ShortCuts: - Tab: Palette Menu - Shift: Eraser - Ctrl: Pause - B: BlackHole Update - Hud Update - Layout system Update - Brush system Update - Particles system New full version – Notes: New systems and updates to existing ones; Feedback will help improve the game; Ideas will be great for making the game better for our users;", "repo": "https://github.com/heitordecarvalhopessoa-debug/Rest-Time", "demo": "https://heitordecarvalhopessoa-debug.github.io/Rest-Time/"}, {"ship_num": 3, "ts": "2026-07-15T22:52:21Z", "hours": 7.0, "multiplier": 9.01, "payout": 58, "blessing": "neutral", "text": "New version 4 NEW Time system NEW Size system NEW Speed system NEW Forms system Hud update Data Storage update New particles updates", "repo": "https://github.com/heitordecarvalhopessoa-debug/Rest-Time", "demo": "https://heitordecarvalhopessoa-debug.github.io/Rest-Time/"}]...
|
[{"post_id": 63672, "ts": "202 [{"post_id": 63672, "ts": "2026-09-07T16:33:57Z", "hours": 0.9844, "text": "A small update to fix bugs and improve stability."}, {"post_id": 39773, "ts": "2026-08-02T23:25:05Z", "hours": 2.1072, "text": "NEW 1.0.0 LEADERBOARD UPDATE NEW Leaderboard NEW Account system UPDATE HUD UPDATE Buttons"}, {"post_id": 36137, "ts": "2026-07-28T01:11:43Z", "hours": 0.9122, "text": "version 12.2 Tutorial update NEW Tutorial UPDATE Hud UPDATE Music system UPDATE Shortcuts Bugs Fixed"}, {"post_id": 35884, "ts": "2026-07-27T16:37:46Z", "hours": 0.9775, "text": "version 12.1 little update NEW Clear particles (C) NEW Shortcuts Menu (w) Shortcuts: 1-6 »» Brushes Shift »» Eraser Ctrl »» Pause / resume B »» Black hole C »» Clear particles Tab »» Palette Menu H »» Zen mode (hide ui) S »» Screenshot W »» Shortcuts menu UPDATE Hud UPDATE Color system UPDATE Data storage system"}, {"post_id": 35385, "ts": "2026-07-26T19:05:28Z", "hours": 1.5828, "text": "Version 12 Brush optimization Update NEW Shortcut (1-6) NEW Web brush UPDATE Brush system UPDATE Hud UPDATE Paint system UPDATE Shorcuts system Youtube chanel: https://www.youtube.com/@HeitorCPessoa/featured"}, {"post_id": 34864, "ts": "2026-07-25T22:29:55Z", "hours": 1.5786, "text": "Version 11 Options Update NEW Screenshot system NEW Hide UI system UPDATE Hud UPDATE javascript functions UPDATE Brushs systems UPDATE Shortcuts keys I’ve just planned out the next three versions of the game. Here’s what will be added: Tutorial Walls with collision Screen-edge collision (optional) Wind system Screen recording (10s – 2 min) New brush with connected particles Any feedback would be helpful for adding or modifying features."}, {"post_id": 33766, "ts": "2026-07-23T23:03:49Z", "hours": 1.4, "text": "Version 10 Music glow UPDATE NEW glow system NEW background efect system UPDATE ui UPDATE music system UPDATE background UPDATE color + gradient system UPDATE optimization Additional ideas and comments helped shape the project to ensure it is accessible and easy to use."}, {"post_id": 33464, "ts": "2026-07-23T13:14:27Z", "hours": 2.3908, "text": "Version 9.1 BUG FIX UPDATE Blackhole error bug » FIXED Gradient error bug » FIXED Layouts error bug » FIXED Lose Dara bug » FIXED NEW loading screen NEW web icon"}, {"post_id": 32366, "ts": "2026-07-21T14:30:08Z", "hours": 2.3961, "text": "Version 8 BRUSH UPDATE NEW Random Brush NEW Explode Brush NEW Brush Size system UPDATE Hud UPDATE Brush/Paint system UPDATE Sliders"}, {"post_id": 31970, "ts": "2026-07-20T19:59:50Z", "hours": 1.7744, "text": "Mini Update Version 7.1 NEW Layout system NEW FPS system UPDATE Hud UPDATE Gradient system UPDATE Css structure I changed the projects CSS to make it simpler. I split the CSS into three files. This way it is easier to make changes when I need to. I do not have to look for things in a file with, over 400 lines of code. I also added a display that shows the FPS. This helps me check for stuttering or lag in the game. I plan to release an update to make the game run better. The update will fully optimize the game."}, {"post_id": 31874, "ts": "2026-07-20T16:52:40Z", "hours": 1.6367, "text": "New version 7 NEW Pause system NEW Eraser system NEW Change name system UPDATE Hud UPDATE Music system"}, {"post_id": 31480, "ts": "2026-07-19T21:38:22Z", "hours": 1.1442, "text": "New version 6 New Opacity system UPDATE Hud UPDATE Music system UPDATE Color system I’ve finally settled on a HUD design that looks good and fits the project well; feedback on the HUD, features, and systems would be greatly appreciated to help make the project excellent and ensure it appeals to users."}, {"post_id": 30928, "ts": "2026-07-18T22:32:12Z", "hours": 1.7525, "text": "New version 5 NEW Gradient system UPDATE Music system UPDATE Color system UPDATE Particules system Hud changes Data Storage update Important The game is still undergoing updates and changes. Feedback will be useful for improvements and modifications to the project. Ideas can be added."}, {"post_id": 30412, "ts": "2026-07-17T22:26:42Z", "hours": 1.7842, "text": "New version 4.1 New music box HUD change Data storage and account system update"}, {"post_id": 26700, "ts": "2026-07-11T17:17:27Z", "hours": 0.8711, "text": "Version 3.1 A minor update, and I need to talk about the project’s future: A chat system might be added to the project, but with moderation A layout system is now more likely to be included Interface changes will be made to improve the user experience New Stars count system Hud Changes"}, {"post_id": 26644, "ts": "2026-07-11T16:07:44Z", "hours": 1.9558, "text": "Version 3 UPDATE Color system NEW “Stars” LiveTime Bugs Fixed"}, {"post_id": 26209, "ts": "2026-07-10T21:28:49Z", "hours": 1.2519, "text": "Version 2 New color system New data storage system using TypeScript New HUD changes Bug-fix related systems The site includes additional features, such as: Potential additions Alternative painting methods Color system improvements Custom shape creation system “Layout” system Room for improvement Chat system July 10, 2026"}, {"post_id": 25026, "ts": "2026-07-08T23:27:03Z", "hours": 2.4397, "text": "Version 1 Features: Enter your name Rest time Data storage Paint 07/08/2026"}]...
|
Title: Rest Time by @heitordecarvalhopessoa | Star Title: Rest Time by @heitordecarvalhopessoa | Stardance
Devlogs:
Version 1 Features: Enter your name Rest time Data storage Paint 07/08/2026
Version 2 New color system New data storage system using TypeScript New HUD changes Bug-fix related systems The site includes additional features, such as: Potential additions Alternative painting methods Color system improvements Custom shape creation system “Layout” system Room for improvement Chat system July 10, 2026
Version 3 UPDATE Color system NEW “Stars” LiveTime Bugs Fixed
Version 3.1 A minor update, and I need to talk about the project’s future: A chat system might be added to the project, but with moderation A layout system is now more likely to be included Interface changes will be made to improve the user experience New Stars count system Hud Changes
New version 4.1 New music box HUD change Data storage and account system update
New version 5 NEW Gradient system UPDATE Music system UPDATE Color system UPDATE Particules system Hud changes Data Storage update Important The game is still undergoing updates and changes. Feedback will be useful for improvements and modifications to the project. Ideas can be added.
New version 6 New Opacity system UPDATE Hud UPDATE Music system UPDATE Color system I’ve finally settled on a HUD design that looks good and fits the project well; feedback on the HUD, features, and systems would be greatly appreciated to help make the project excellent and ensure it appeals to users.
New version 7 NEW Pause system NEW Eraser system NEW Change name system UPDATE Hud UPDATE Music system
Mini Update Version 7.1 NEW Layout system NEW FPS system UPDATE Hud UPDATE Gradient system UPDATE Css structure I changed the projects CSS to make it simpler. I split the CSS into three files. This way it is easier to make changes when I need to. I do not have to look for things in a file with, over 400 lines of code. I also added a display that shows the FPS. This helps me check for stuttering or lag in the game. I plan to release an update to make the game run better. The update will fully optimize the game.
Version 8 BRUSH UPDATE NEW Random Brush NEW Explode Brush NEW Brush Size system UPDATE Hud UPDATE Brush/Paint system UPDATE Sliders
Version 9.1 BUG FIX UPDATE Blackhole error bug » FIXED Gradient error bug » FIXED Layouts error bug » FIXED Lose Dara bug » FIXED NEW loading screen NEW web icon
Version 10 Music glow UPDATE NEW glow system NEW background efect system UPDATE ui UPDATE music system UPDATE background UPDATE color + gradient system UPDATE optimization Additional ideas and comments helped shape the project to ensure it is accessible and easy to use.
Version 11 Options Update NEW Screenshot system NEW Hide UI system UPDATE Hud UPDATE javascript functions UPDATE Brushs systems UPDATE Shortcuts keys I’ve just planned out the next three versions of the game. Here’s what will be added: Tutorial Walls with collision Screen-edge collision (optional) Wind system Screen recording (10s – 2 min) New brush with connected particles Any feedback would be helpful for adding or modifying features.
Version 12 Brush optimization Update NEW Shortcut (1-6) NEW Web brush UPDATE Brush system UPDATE Hud UPDATE Paint system UPDATE Shorcuts system Youtube chanel: https://www.youtube.com/@HeitorCPessoa/featured
version 12.1 little update NEW Clear particles (C) NEW Shortcuts Menu (w) Shortcuts: 1-6 »» Brushes Shift »» Eraser Ctrl »» Pause / resume B »» Black hole C »» Clear particles Tab »» Palette Menu H »» Zen mode (hide ui) S »» Screenshot W »» Shortcuts menu UPDATE Hud UPDATE Color system UPDATE Data storage system
version 12.2 Tutorial update NEW Tutorial UPDATE Hud UPDATE Music system UPDATE Shortcuts Bugs Fixed
NEW 1.0.0 LEADERBOARD UPDATE NEW Leaderboard NEW Account system UPDATE HUD UPDATE Buttons
A small update to fix bugs and improve stability.
Ships:
New version 4 NEW Time system NEW Size system NEW Speed system NEW Forms system Hud update Data Storage update New particles updates
Version 9 New - Meteor Brush New - Rain Brush New - BlackHole New - ShortCuts: - Tab: Palette Menu - Shift: Eraser - Ctrl: Pause - B: BlackHole Update - Hud Update - Layout system Update - Brush system Update - Particles system New full version – Notes: New systems and updates to existing ones; Feedback will help improve the game; Ideas will be great for making the game better for our users;
NEW 1.12 FULL VERSION NEW - Clear all particles system NEW - Shortcuts menu NEW - Tutorial NEW - Hud NEW - typescript datastorage system...
|
1793000968.2764316
|
1793087368.2764316
|
|
53979
|
Tetr.AI by @caleb_welch | Stardance
|
caleb_welch
|
1
|
25.41
|
401
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-20T04:54:20Z", "hours": 23.0, "multiplier": 17.26, "payout": 401, "blessing": "neutral", "text": "Tetr.AI This is the first release of Tetr.AI, my first ever reinforcement-learning project built for the Hack Club Stardance YSWS. Tetr.AI includes: A custom built Tetris environment built with PyGame which allows you to train and run your own models as well as just play Tetris A PyTorch neural network Deep-Q-learning Model checkpoint saving and loading Saving of training statistics into a CSV file A graphing script to allow you to visualize how well your model trained Windows and Linux setup scripts Model status The training pipeline is completely functional, but due to time constraints this release won’t contain a model which can play Tetris well. I completed two long duration training experiments during development which revealed problems with reward shaping, epsilon, and sparse rewards. Everything on this is documented in the README. Training and experimentation will continue after stardance", "repo": "https://github.com/sourcream1012/Tetr.AI", "demo": "https://github.com/sourcream1012/Tetr.AI/releases/tag/v1.0.1-stardance"}]...
|
[{"post_id": 74121, "ts": "202 [{"post_id": 74121, "ts": "2026-09-26T18:31:12Z", "hours": 2.4075, "text": "Not to big of a devlog but I added executable files for easy running for this project. Also added a training_config json file to easily change training values."}, {"post_id": 70969, "ts": "2026-09-20T04:09:44Z", "hours": 2.9878, "text": "DEVLOG 8: I think I may ship soon… Ok so I’ve hit a road block. Stardance ends soon which means I don’t really have much time left. My project is a completely working reinforcement learning AI which can play Tetris but not well. Originally I wanted to perfect a model and then ship the project but due to Stardance ending soon I may change that. Recent additions Added the ability to resume training on a model you made at your most recent checkpoint Added setup automation scripts for windows and linux Refined README with a getting started section and more detail in the Model History section to give the project more story Because I’m essentially prepped for shipping and it is a completely working project I will probably ship soon. Wish me luck. The screenshots shown are the results from training Tetr.AI-V2"}, {"post_id": 69842, "ts": "2026-09-17T21:48:57Z", "hours": 4.3036, "text": "DEVLOG 7: more AI training (hint: FAILED) This graph shows the results of my first training session of my AI showing how well the AI does over time through the reward. In total it lasted ~17 hours and its obviously not nearly enough time. The reward is supposed to go up over time, which it is. But not fast enough. Overall it only seems to increase in reward over time just by VERY little. Moving onto the other graph which shows the rows cleared over time. As you can see it never really increases on average. This shows that: MY AI SUCKSSSSSSS My AI is dumb Overall my AI can’t learn and I need to just keep on adjusting numbers over and over again."}, {"post_id": 63361, "ts": "2026-09-07T04:24:31Z", "hours": 2.3192, "text": "DEVLOG 6: actual learning Wow two devlogs in pretty much a day… I need to touch grass… But that is not the point. IT IS FINALLY LEARNING (just very inefficiently) Currently it only learns from two things: How many rows it cleared on a single run Whether or not it sold the game Now pretty much the rest of this project will just be tweaking and experimenting with things. Before I ship I do want to train and release a demo model that you can test locally on your PC ( and I may want to test if it would work on android phones too ) that will come with the project. I also want to make it to where you can create and train your own models and potentially share them with other people. CAN’T WAIT FOR EVERYTHING TO BE DONE!!!!!!"}, {"post_id": 63183, "ts": "2026-09-06T21:02:14Z", "hours": 1.6347, "text": "DEVLOG 5: Random movements An update from my previous devlog where I started learning pytorch. I have not learned pytorch to the point to where I can explain everything down to its finest details but enough to make my “AI” do some random junk with no direction. Pretty much I’m just initializing random weights and letting it go. I have 200 input neurons for my 20x10 board. The video I attached below shows the AI just doing some random stuff like rotating non stop and moving left and right."}, {"post_id": 61233, "ts": "2026-09-04T02:07:36Z", "hours": 3.1531, "text": "DEVLOG 4: The beginning of learning PyTorch & Working AI-Tetris-Environment Pretty much the title sums up what I’ve been doing for the past 3h and 9m of this. I have some prior knowledge of the basics of machine learning ( from The Nature Of Code by Daniel Shiffman awesome book about coding would recommend ) by making a single layer perceptron ( basically a single neuron algorithm ) that can separate linearly separable data. I attempted to make a multi layered perceptron which actually puts the network in neural network. But I got stuck on back propagation. I don’t really know what to put as the picture for this devlog so I’ll just show a visualization of a neural network."}, {"post_id": 58338, "ts": "2026-08-30T18:37:11Z", "hours": 2.1031, "text": "DEVLOG 3: TETRIS ✅ THE TETRIS GAME IS PRETTY MUCH COMPLETE (besides some finishing touches) the game is completely playable with: Moving pieces with arrow keys Rotating pieces Deleting rows And the game restarts after there is no more valid places to go So pretty much complete. Now it is time to dive into the deep waters that is… NEURAL NETWORKS Oh boy this is going to be fun (and hard). I already know that the kind of training that I have to do for this is reinforcement learning . Which basically is like giving dopamine to your artificial brain when it does something good and giving it a slap in the neck when it does something bad. Which in return it changes its weights based on its previous performance. But for the first thing I got to do is set up all of the mumbo jumbo that will actually allow the neural network to see. And I think I have a rough understanding on how I’m going to implement that. Stay tuned on this awesome journey of making an AI play Tetris!"}, {"post_id": 57362, "ts": "2026-08-29T14:21:46Z", "hours": 1.8567, "text": "DEVLOG 2 Ok it’s been a couple days but I’ve added key presses where: - Left Arrow = Piece moves to the left - Right Arrow = Piece moves to the right - Down Arrow = Piece soft drops. - Space Bar = Piece hard drops. Overall it wasn’t that hard to implement but I had this bug where after soft dropping it saves that position to the locked pieces array. Which in return kind of broke the whole game. Here is the broken code block: if event . type == pygame . KEYDOWN : if event . key == pygame . K_LEFT : self . currentPiece . x -= 1 if not validSpace ( self . currentPiece , self . grid ): self . currentPiece . x += 1 lockPiece ( self . currentPiece , self . locked_pos ) The problem was the last line where it says lockPiece ( self . currentPiece , self . locked_pos ) So all I had to do was remove that and it works perfectly. Now I need to make the game rules where if you finish a row it deletes it and then the hardest part… ROTATION."}, {"post_id": 55349, "ts": "2026-08-27T04:09:15Z", "hours": 4.8822, "text": "DEVLOG 1: Basic foundations It took me way longer than it should have but I finally did it. I learned how to use PyGame and now I’m on my way to remaking Tetris. I set up a function that puts a random Tetris shape onto the 2D array that is essentially the one source of truth in Tetris at least that’s how I think of it. With PyGame I then update every frame what it should display based on that 2D array. The picture below shows me spinning up 3 instances of this code working. Currently the blocks don’t do much but I’ll start working on that tomorrow. Plus I really want to get the Tetris remake done quick so I can start building and training the neural network to actually play the game for me."}]...
|
Title: Tetr.AI by @caleb_welch | Stardance
Devlog Title: Tetr.AI by @caleb_welch | Stardance
Devlogs:
DEVLOG 1: Basic foundations It took me way longer than it should have but I finally did it. I learned how to use PyGame and now I’m on my way to remaking Tetris. I set up a function that puts a random Tetris shape onto the 2D array that is essentially the one source of truth in Tetris at least that’s how I think of it. With PyGame I then update every frame what it should display based on that 2D array. The picture below shows me spinning up 3 instances of this code working. Currently the blocks don’t do much but I’ll start working on that tomorrow. Plus I really want to get the Tetris remake done quick so I can start building and training the neural network to actually play the game for me.
DEVLOG 2 Ok it’s been a couple days but I’ve added key presses where: - Left Arrow = Piece moves to the left - Right Arrow = Piece moves to the right - Down Arrow = Piece soft drops. - Space Bar = Piece hard drops. Overall it wasn’t that hard to implement but I had this bug where after soft dropping it saves that position to the locked pieces array. Which in return kind of broke the whole game. Here is the broken code block: if event . type == pygame . KEYDOWN : if event . key == pygame . K_LEFT : self . currentPiece . x -= 1 if not validSpace ( self . currentPiece , self . grid ): self . currentPiece . x += 1 lockPiece ( self . currentPiece , self . locked_pos ) The problem was the last line where it says lockPiece ( self . currentPiece , self . locked_pos ) So all I had to do was remove that and it works perfectly. Now I need to make the game rules where if you finish a row it deletes it and then the hardest part… ROTATION.
DEVLOG 3: TETRIS ✅ THE TETRIS GAME IS PRETTY MUCH COMPLETE (besides some finishing touches) the game is completely playable with: Moving pieces with arrow keys Rotating pieces Deleting rows And the game restarts after there is no more valid places to go So pretty much complete. Now it is time to dive into the deep waters that is… NEURAL NETWORKS Oh boy this is going to be fun (and hard). I already know that the kind of training that I have to do for this is reinforcement learning . Which basically is like giving dopamine to your artificial brain when it does something good and giving it a slap in the neck when it does something bad. Which in return it changes its weights based on its previous performance. But for the first thing I got to do is set up all of the mumbo jumbo that will actually allow the neural network to see. And I think I have a rough understanding on how I’m going to implement that. Stay tuned on this awesome journey of making an AI play Tetris!
DEVLOG 4: The beginning of learning PyTorch & Working AI-Tetris-Environment Pretty much the title sums up what I’ve been doing for the past 3h and 9m of this. I have some prior knowledge of the basics of machine learning ( from The Nature Of Code by Daniel Shiffman awesome book about coding would recommend ) by making a single layer perceptron ( basically a single neuron algorithm ) that can separate linearly separable data. I attempted to make a multi layered perceptron which actually puts the network in neural network. But I got stuck on back propagation. I don’t really know what to put as the picture for this devlog so I’ll just show a visualization of a neural network.
DEVLOG 5: Random movements An update from my previous devlog where I started learning pytorch. I have not learned pytorch to the point to where I can explain everything down to its finest details but enough to make my “AI” do some random junk with no direction. Pretty much I’m just initializing random weights and letting it go. I have 200 input neurons for my 20x10 board. The video I attached below shows the AI just doing some random stuff like rotating non stop and moving left and right.
DEVLOG 6: actual learning Wow two devlogs in pretty much a day… I need to touch grass… But that is not the point. IT IS FINALLY LEARNING (just very inefficiently) Currently it only learns from two things: How many rows it cleared on a single run Whether or not it sold the game Now pretty much the rest of this project will just be tweaking and experimenting with things. Before I ship I do want to train and release a demo model that you can test locally on your PC ( and I may want to test if it would work on android phones too ) that will come with the project. I also want to make it to where you can create and train your own models and potentially share them with other people. CAN’T WAIT FOR EVERYTHING TO BE DONE!!!!!!
DEVLOG 7: more AI training (hint: FAILED) This graph shows the results of my first training session of my AI showing how well the AI does over time through the reward. In total it lasted ~17 hours and its obviously not nearly enough time. The reward is supposed to go up over time, which it is. But not fast enough. Overall it only seems to increase in reward over time just by VERY little. Moving onto the other graph which shows the rows cleared over time. As you can see it never really increases on average. This shows that: MY AI SUCKSSSSSSS My AI is dumb Overall my AI can’t learn and I need to just keep on adjusting numbers over and over again.
DEVLOG 8: I think I may ship soon… Ok so I’ve hit a road block. Stardance ends soon which means I don’t really have much time left. My project is a completely working reinforcement learning AI which can play Tetris but not well. Originally I wanted to perfect a model and then ship the project but due to Stardance ending soon I may change that. Recent additions Added the ability to resume training on a model you made at your most recent checkpoint Added setup automation scripts for windows and linux Refined README with a getting started section and more detail in the Model History section to give the project more story Because I’m essentially prepped for shipping and it is a completely working project I will probably ship soon. Wish me luck. The screenshots shown are the results from training Tetr.AI-V2
Not to big of a devlog but I added executable files for easy running for this project. Also added a training_config json file to easily change training values.
Ships:
Tetr.AI This is the first release of Tetr.AI, my first ever reinforcement-learning project built for the Hack Club Stardance YSWS. Tetr.AI includes: A custom built Tetris environment built with PyGame which allows you to train and run your own models as well as just play Tetris A PyTorch neural network Deep-Q-learning Model checkpoint saving and loading Saving of training statistics into a CSV file A graphing script to allow you to visualize how well your model trained Windows and Linux setup scripts Model status The training pipeline is completely functional, but due to time constraints this release won’t contain a model which can play Tetris well. I completed two long duration training experiments during development which revealed problems with reward shaping, epsilon, and sparse rewards. Everything on this is documented in the README. Training and experimentation will continue after stardance...
|
1793008135.7356422
|
1793094535.7356422
|
|
38711
|
AuraWatch by @Ander507 | Stardance
|
Ander507
|
7
|
27.0
|
400
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-13T19:27:13Z", "hours": 4.0, "multiplier": 17.45, "payout": 34, "blessing": "neutral", "text": "Where-to-watch used to be a row of streaming logos and that was it. Rent and Buy were gone, prices never showed, and song “Listen on” chips mashed into one blob. This round puts the full panel back: Stream / Rent / Buy , with HD/4K under the logo and a short price under rent/buy ( 39 kr , not DKK 39.00 ). Stream is “you already pay for this.” Rent/Buy are pay-per-title. Same thing on the hero pick and the smaller cards. The annoying part wasn’t fetching JustWatch. It was the UI. First pass looked boxed and goofy. Fancy overlapping logos clipped titles into “Incept.” I ripped the extra chrome and just made the group labels huge so you can tell the three modes apart at a glance. Also: Listen-on for YouTube Music / Spotify / Apple Music has its own styles now, so those chips don’t steal CSS from the movie cards. Try it: aurawatch.org — no account. Movies or TV, set your region, hit Match. Scroll the hero + the “or these” cards. Songs format → flip Listen on → preview a couple tracks.", "repo": "https://github.com/Ander507/AuraWatch", "demo": "https://aurawatch.org"}, {"ship_num": 2, "ts": "2026-09-12T12:03:03Z", "hours": 3.0, "multiplier": 19.4, "payout": 25, "blessing": "neutral", "text": "Ship #6 — v0.5.0 AuraWatch used to hand you a pile of “here’s some stuff.” Now it picks one for tonight — hero card up top, a few “or these” under it, Decide for me / Not this when you’re still stuck. Also in this one: match %, local watchlist, era + runtime filters, soft “On my apps” (hard-filtering services was wiping songs/games/books — looked like Gemini died, was just me being dumb). Sign-in’s a popup now so /room doesn’t yeet you to a separate page. Live: https://aurawatch.org Code: https://github.com/Ander507/AuraWatch", "repo": "https://github.com/Ander507/AuraWatch", "demo": "https://aurawatch.org"}, {"ship_num": 3, "ts": "2026-08-26T15:44:07Z", "hours": 3.0, "multiplier": 14.94, "payout": 26, "blessing": "neutral", "text": "Shipped Group Vibe Rooms. You open a room, share the link, everyone types a vibe, the host hits Calculate — same picks for the whole group. Also made Match, Rooms, and Lists look and navigate the same, including on phone. Try it: aurawatch.org/room — make a room, join it in another tab, calculate.", "repo": "https://github.com/Ander507/AuraWatch", "demo": "https://aurawatch.org"}, {"ship_num": 4, "ts": "2026-08-17T20:16:19Z", "hours": 8.0, "multiplier": 19.61, "payout": 157, "blessing": "neutral", "text": "AuraWatch is for when you’ve been scrolling for 20 minutes and still have nothing to watch. You tell it the mood — genres, a decade, titles you already like, or just a sentence about what you’re after — and it gives you a handful of real picks with posters, trailers, and where to stream them. Movies, TV, anime, songs, games, books, manga, and board games. The hard part is that no single API covers all of that. Gemini is great at taste and terrible at valid JSON, so every format has its own path: songs go through iTunes, games through IGDB, books through Open Library with Google Books as backup, board games through BoardGameGeek’s XML API — which loves replying “202, try again later” instead of a cover. Auth ate a full hour by itself, mostly because Discord treats www.aurawatch.org and aurawatch.org as two completely different websites. The thing I’m most proud of is that it never shows you a blank pane. No cover? Skeleton, then initials on a gradient. No results? A fallback card with Surprise Me instead of an empty box. To test it: no login needed. Pick a format, describe a mood, hit Match — or just spam Surprise Me. Sign in with Discord or a username if you want to save picks into a playlist and share the link.", "repo": "https://github.com/Ander507/AuraWatch", "demo": "https://aurawatch.org"}, {"ship_num": 5, "ts": "2026-08-09T14:20:28Z", "hours": 4.0, "multiplier": 18.74, "payout": 76, "blessing": "neutral", "text": "What did you make? I built a massive expansion for AuraWatch, turning it into a true routing engine rather than just a generic recommender. I completely overhauled the UI into a clean, light-mode brutalist aesthetic and added full gaming support with precise platform filtering and dynamic store links. What was challenging? Wrestling with the IGDB API to get accurate store buttons was a nightmare, especially for PC games. Writing the logic to properly map Steam, Epic, and GOG links, and creating a strict fallback to official websites when a game like Minecraft isn’t on a main store, took a lot of trial and error. It was also tough figuring out how to add advanced features like “Anti-Vibe” without cluttering the UI, which I solved with a collapsible drawer. What are you proud of? I’m really proud of the multi-store routing. If a game is on three different platforms you own, the UI dynamically generates a distinct button for every single storefront. I’m also hyped on the new “Anti-Vibe” filter that lets you strictly exclude elements you hate, and the overall terminal-like visual overhaul. What should people know so they can test your project? Switch to the Games format and test the new platform dropdown. Enter the specific consoles you own (like PC or Switch), type in a vibe in the Notes, and maybe throw something you hate into the Exclude filter. Check out how it gives you exact, clickable store buttons for the platforms you actually selected!", "repo": "https://github.com/Ander507/AuraWatch", "demo": "https://aurawatch.org"}, {"ship_num": 6, "ts": "2026-08-03T14:22:17Z", "hours": 2.0, "multiplier": 13.81, "payout": 26, "blessing": "neutral", "text": "Ship #2: The Final Polish, Stable APIs & Custom Vibe Tuning 🚀 AuraWatch is finally in its most stable and customizable state yet! Over the last few sessions, I’ve completely overhauled how the app handles complex requests and edge cases based on your feedback. What’s New in this Ship: Rate Limit Resilience: Users noted missing posters for certain shows (like Yellowstone). I implemented API caching and a graceful UI fallback system. Now, if the TMDB or iTunes API rate-limits us, the UI stays beautiful with stylized fallback gradients instead of broken image icons. Match Priority Slider: You are no longer locked into the AI’s default weighting. You can now use a slider to explicitly tell the algorithm to favor your “Notes” (vibe) or the “Similar-to” titles. Smarter Music Routing: The iTunes API was failing on niche artists. I built a workaround that routes queries through Deezer/MusicBrainz to resolve the artist first, then pulls the correct track from Apple’s catalog. Hidden Easter Eggs: If you know, you know (try typing “surron” or “talaria” into the notes). Thanks to everyone who left feedback! The app is so much better because of it.", "repo": "https://github.com/Ander507/AuraWatch", "demo": "https://aurawatch.org"}, {"ship_num": 7, "ts": "2026-07-25T20:02:14Z", "hours": 3.0, "multiplier": 17.07, "payout": 56, "blessing": "neutral", "text": "What I made: AuraWatch — a vibe finder for movies, TV, anime, and songs. You pick format/genres, optional “like these” titles, and a short mood note; it returns a few grounded picks with posters and where-to-watch / listen links. Problem: Picking something to watch (or play) usually means doomscrolling Netflix/Spotify until you give up. AuraWatch turns that into one short decision. 3 QoL improvements: Vibe + “similar to” in one place — no hopping between lists and search tabs. Region-aware Where to Watch — so you don’t get hyped for a title you can’t stream. Songs mode with listen links — same friction fix for music, not just video. Challenging: Gemini’s JSON was a mess (fences, trailing commas, truncations), so I added repair + key rotation and a local catalog fallback when APIs flake. Proud of: The dual path (TMDB similar vs Gemini concierge) and that it still works without keys. How to test: Open https://aura-watching.vercel.app/ → try Desktop + Minimal themes → pick Anime or Songs → add a “like” title and hit Get picks. Check providers/listen links on a result.", "repo": "https://github.com/Ander507/AuraWatch", "demo": "https://aurawatch.org"}]...
|
[{"post_id": 67616, "ts": "202 [{"post_id": 67616, "ts": "2026-09-13T19:20:59Z", "hours": 3.9058, "text": "Devlog 10 — Pick your music app, see where it streams Biggest thing: song picks aren’t Apple-only anymore. You choose YouTube Music, Spotify, or Apple Music once — Listen opens that app. Apple still uses the iTunes track link when we have it; otherwise it falls back to search like the others. The annoying bit: 30s previews were tied to card index, not the actual track. Fast re-runs or filtering could play the wrong snippet. Previews now key off track_id from iTunes so the audio matches the card you’re looking at. Also this round: Flatrate streaming badges on movie/show cards (Netflix, Crunchyroll, Max, etc.) via TMDB watch providers ~/aurawatch/... path crumbs instead of fake C:\\AuraWatch\\ strings in the desktop chrome Try it: aurawatch.org — Songs format → flip “Listen on” → hit preview on a couple results"}, {"post_id": 66545, "ts": "2026-09-12T12:00:43Z", "hours": 2.5425, "text": "Devlog 9 — From recommender to decider Stopped treating “here’s 12 options” like a finished product. You get one hero pick for tonight, then a couple of “or these” underneath — not a wall of equal cards. Decide for me, Not this, and exclude titles you already bounced so the next run isn’t the same pile again. Soft “On my apps” badge too — hard-filtering by services was nuking songs/games/books when those formats don’t even have streaming providers. Looked like the API died. It was me. Also shoved match %, watchlist, era/runtime stuff into the mix, and sign-in is a popup now so /room doesn’t yeet you to a separate login page mid-flow. Try it: https://aurawatch.org"}, {"post_id": 55103, "ts": "2026-08-26T15:41:30Z", "hours": 3.4197, "text": "Devlog 8 — Group Vibe Rooms Biggest thing: you can now match with a group, not just yourself. Flow: host signs in → shares /room/... → guests only need a nickname + vibe (no account). Host hits Calculate. We merge everyone’s notes/likes, run one recommend, and save the same cards for everyone — including where to watch / play. Rooms self-destruct after 24 hours. The annoying bit: at first anyone could hit Calculate and burn a Gemini call for the whole room. Calculate is host-only now, and the host’s filters (region, rating, decade) actually stick on the room instead of getting dropped. Also this round: Roblox as its own format Critic scores on cards (TMDB / Rotten Tomatoes-style %) Try it: aurawatch.org/room"}, {"post_id": 49168, "ts": "2026-08-17T20:09:54Z", "hours": 1.2131, "text": "Devlog 7 — One hour, one login button Swapped the Email field for Username on sign-in (it quietly becomes [email protected] behind the scenes), and the Save to Playlist modal finally opens in the middle of the screen instead of hiding in the bottom-left corner. Then Discord OAuth ate the rest of the hour. “Invalid OAuth2 redirect_uri” three separate times: first the wrong callback path, then www.aurawatch.org vs aurawatch.org — which Discord treats as two completely unrelated sites. Fixed both, felt great, got a 500 instead: my sessions table has an id column my schema file never knew about, so every login worked perfectly right up until it tried to remember you. One missing column, one hour. Visual: Login page and after login"}, {"post_id": 49088, "ts": "2026-08-17T18:16:30Z", "hours": 6.7769, "text": "Devlog 6 — Tabletop, Amazon, and no more blank panes Board Games is actually live now. Gemini still names the titles; BoardGameGeek’s XML API does the rest (box art, year, player count). The painful bit: /thing often answers 202 (“come back later”), and search loves burying the real game under fan expansions, so Cards Against Humanity was coming back with no cover. We retry that queue, batch the IDs, and rank exact titles first. Books were doing the same disappearing-cover trick. Open Library is fine until it isn’t, so covers now fall through to Google Books, then Jikan / AniList for manga. While those images load, cards show a brutalist skeleton instead of a dead square, then fade in. Games, board games, and books/manga all got a Buy on Amazon button. It follows the region you picked (US .com , UK/Ireland .co.uk , Italy .it , most of Europe .de ) so you’re not dumped on the wrong storefront. Affiliate tags are baked in, with the Associates disclaimer in the footer. Copy Link used to fail silently. It now pops a terminal toast: [SYSTEM]: Link copied to clipboard successfully. Same deal on playlist share. And if a vibe query returns nothing or the request dies, Match doesn’t sit there empty — you get [ERROR]: No vibes match this exact query. plus Surprise Me or Reset Filters . Visual: board-game → Amazon button on a book/tabletop card → Mobile UI"}, {"post_id": 44001, "ts": "2026-08-09T14:18:45Z", "hours": 4.0672, "text": "Devlog 5: New brutalist UI and fixing the store links I just pushed a pretty massive update to AuraWatch. Honestly, the old UI was getting way too cluttered, and the backend routing had some really annoying edge cases I needed to iron out. Here is what changed: New Look: I completely overhauled the design. Ditched the old layout for a light-mode brutalist vibe—monospace fonts, sharp borders, and orange accents. It feels way cleaner and more like a proper utility now. Actual Platform Filtering: It was driving me crazy that the app might recommend a PC-only game to someone playing on a PS5. I added a strict, searchable platforms dropdown. If you tell it you only have a Switch and a PS4, it completely filters out everything else. Multi-Store Buttons: The API used to just grab one random store link and call it a day. Now, if a game is on three different platforms you searched for, the UI loops through and actually generates a separate button for each one (e.g., [View on PlayStation] and [View on Steam]). The Minecraft Edge Case: PC store links were breaking because games like Minecraft aren’t on Steam or Epic. I wrote a strict fallback into the routing so if it can’t find a standard storefront, it automatically generates a [View on Official Site] button instead of just ghosting you. No More Tag Dumps: The old cards used to dump 20 different store and console tags into one messy block. Now there is just a clean “Playable On” text list, completely separated from the actual buy buttons. The routing is finally feeling exact. Let me know what you think of the new stuff!"}, {"post_id": 40098, "ts": "2026-08-03T14:17:38Z", "hours": 0.5331, "text": "Devlog 4# — Posters that survive rate limits Covers were dying when TMDB/iTunes rate-limited us — blank squares and broken-image icons on match cards. Now a failed or missing poster falls back to a sleek gradient with the title’s initials. Also shipped a lightweight cache (server TTL for TMDB/iTunes + localStorage for like-title search) so repeat queries stop burning the quota. Friction: the CDN images weren’t the problem — we were refetching the same poster paths every match and hitting the wall."}, {"post_id": 39147, "ts": "2026-08-01T21:22:32Z", "hours": 1.1439, "text": "AuraWatch — song search that actually finds niche tracks (+ a tiny secret) Song search used to fail hard on queries like “all i want is you rebz” — Apple only returns U2/LAROI covers, never Rebzyyx. Fixed it by detecting title + artist-fragment queries, resolving the artist via Deezer/MusicBrainz, then pulling the real track from their iTunes catalog so the niche hit ranks first. Also shipped Sur Ronster easter eggs: Songs + “Surron”/“Talaria” → only On My Own by Kyle The Hooligan; Movies/TV + “surronster vibe” → his newest YouTube uploads in-app (no Zflix CTA). Friction: iTunes artist search for rebz only finds random “Rebz” artists — prefix expansion was the missing link. Visual to attach: Then notes surronster vibe → latest Sur Ronster video cards with Play video."}, {"post_id": 35434, "ts": "2026-07-26T20:45:11Z", "hours": 0.2519, "text": "Fixed the buttons and added STREAM RENT BUY categories"}, {"post_id": 34802, "ts": "2026-07-25T19:56:52Z", "hours": 3.2764, "text": "AuraWatch — Devlog #1 Added a dual-path recommender: vibe prompt / genres go through Gemini, and “like this title” goes through TMDB similar — then both get posters + region watch providers. The painful part wasn’t the AI. It was Gemini’s JSON. Trailing commas, curly quotes, markdown fences mid-object. Spent a chunk writing a repair/parse loop and bumping maxOutputTokens to 3072 after it kept truncating mid-array. Also shipped songs mode (Gemini → iTunes covers/listen links) and a local catalog fallback so the app still picks something when keys die. UI has two themes now ( minimal / desktop )"}]...
|
Title: AuraWatch by @Ander507 | Stardance
Devlogs Title: AuraWatch by @Ander507 | Stardance
Devlogs:
AuraWatch — Devlog #1 Added a dual-path recommender: vibe prompt / genres go through Gemini, and “like this title” goes through TMDB similar — then both get posters + region watch providers. The painful part wasn’t the AI. It was Gemini’s JSON. Trailing commas, curly quotes, markdown fences mid-object. Spent a chunk writing a repair/parse loop and bumping maxOutputTokens to 3072 after it kept truncating mid-array. Also shipped songs mode (Gemini → iTunes covers/listen links) and a local catalog fallback so the app still picks something when keys die. UI has two themes now ( minimal / desktop )
Fixed the buttons and added STREAM RENT BUY categories
AuraWatch — song search that actually finds niche tracks (+ a tiny secret) Song search used to fail hard on queries like “all i want is you rebz” — Apple only returns U2/LAROI covers, never Rebzyyx. Fixed it by detecting title + artist-fragment queries, resolving the artist via Deezer/MusicBrainz, then pulling the real track from their iTunes catalog so the niche hit ranks first. Also shipped Sur Ronster easter eggs: Songs + “Surron”/“Talaria” → only On My Own by Kyle The Hooligan; Movies/TV + “surronster vibe” → his newest YouTube uploads in-app (no Zflix CTA). Friction: iTunes artist search for rebz only finds random “Rebz” artists — prefix expansion was the missing link. Visual to attach: Then notes surronster vibe → latest Sur Ronster video cards with Play video.
Devlog 4# — Posters that survive rate limits Covers were dying when TMDB/iTunes rate-limited us — blank squares and broken-image icons on match cards. Now a failed or missing poster falls back to a sleek gradient with the title’s initials. Also shipped a lightweight cache (server TTL for TMDB/iTunes + localStorage for like-title search) so repeat queries stop burning the quota. Friction: the CDN images weren’t the problem — we were refetching the same poster paths every match and hitting the wall.
Devlog 5: New brutalist UI and fixing the store links I just pushed a pretty massive update to AuraWatch. Honestly, the old UI was getting way too cluttered, and the backend routing had some really annoying edge cases I needed to iron out. Here is what changed: New Look: I completely overhauled the design. Ditched the old layout for a light-mode brutalist vibe—monospace fonts, sharp borders, and orange accents. It feels way cleaner and more like a proper utility now. Actual Platform Filtering: It was driving me crazy that the app might recommend a PC-only game to someone playing on a PS5. I added a strict, searchable platforms dropdown. If you tell it you only have a Switch and a PS4, it completely filters out everything else. Multi-Store Buttons: The API used to just grab one random store link and call it a day. Now, if a game is on three different platforms you searched for, the UI loops through and actually generates a separate button for each one (e.g., [View on PlayStation] and [View on Steam]). The Minecraft Edge Case: PC store links were breaking because games like Minecraft aren’t on Steam or Epic. I wrote a strict fallback into the routing so if it can’t find a standard storefront, it automatically generates a [View on Official Site] button instead of just ghosting you. No More Tag Dumps: The old cards used to dump 20 different store and console tags into one messy block. Now there is just a clean “Playable On” text list, completely separated from the actual buy buttons. The routing is finally feeling exact. Let me know what you think of the new stuff!
Devlog 6 — Tabletop, Amazon, and no more blank panes Board Games is actually live now. Gemini still names the titles; BoardGameGeek’s XML API does the rest (box art, year, player count). The painful bit: /thing often answers 202 (“come back later”), and search loves burying the real game under fan expansions, so Cards Against Humanity was coming back with no cover. We retry that queue, batch the IDs, and rank exact titles first. Books were doing the same disappearing-cover trick. Open Library is fine until it isn’t, so covers now fall through to Google Books, then Jikan / AniList for manga. While those images load, cards show a brutalist skeleton instead of a dead square, then fade in. Games, board games, and books/manga all got a Buy on Amazon button. It follows the region you picked (US .com , UK/Ireland .co.uk , Italy .it , most of Europe .de ) so you’re not dumped on the wrong storefront. Affiliate tags are baked in, with the Associates disclaimer in the footer. Copy Link used to fail silently. It now pops a terminal toast: [SYSTEM]: Link copied to clipboard successfully. Same deal on playlist share. And if a vibe query returns nothing or the request dies, Match doesn’t sit there empty — you get [ERROR]: No vibes match this exact query. plus Surprise Me or Reset Filters . Visual: board-game → Amazon button on a book/tabletop card → Mobile UI
Devlog 7 — One hour, one login button Swapped the Email field for Username on sign-in (it quietly becomes [email protected] behind the scenes), and the Save to Playlist modal finally opens in the middle of the screen instead of hiding in the bottom-left corner. Then Discord OAuth ate the rest of the hour. “Invalid OAuth2 redirect_uri” three separate times: first the wrong callback path, then www.aurawatch.org vs aurawatch.org — which Discord treats as two completely unrelated sites. Fixed both, felt great, got a 500 instead: my sessions table has an id column my schema file never knew about, so every login worked perfectly right up until it tried to remember you. One missing column, one hour. Visual: Login page and after login
Devlog 8 — Group Vibe Rooms Biggest thing: you can now match with a group, not just yourself. Flow: host signs in → shares /room/... → guests only need a nickname + vibe (no account). Host hits Calculate. We merge everyone’s notes/likes, run one recommend, and save the same cards for everyone — including where to watch / play. Rooms self-destruct after 24 hours. The annoying bit: at first anyone could hit Calculate and burn a Gemini call for the whole room. Calculate is host-only now, and the host’s filters (region, rating, decade) actually stick on the room instead of getting dropped. Also this round: Roblox as its own format Critic scores on cards (TMDB / Rotten Tomatoes-style %) Try it: aurawatch.org/room
Devlog 9 — From recommender to decider Stopped treating “here’s 12 options” like a finished product. You get one hero pick for tonight, then a couple of “or these” underneath — not a wall of equal cards. Decide for me, Not this, and exclude titles you already bounced so the next run isn’t the same pile again. Soft “On my apps” badge too — hard-filtering by services was nuking songs/games/books when those formats don’t even have streaming providers. Looked like the API died. It was me. Also shoved match %, watchlist, era/runtime stuff into the mix, and sign-in is a popup now so /room doesn’t yeet you to a separate login page mid-flow. Try it: https://aurawatch.org
Devlog 10 — Pick your music app, see where it streams Biggest thing: song picks aren’t Apple-only anymore. You choose YouTube Music, Spotify, or Apple Music once — Listen opens that app. Apple still uses the iTunes track link when we have it; otherwise it falls back to search like the others. The annoying bit: 30s previews were tied to card index, not the actual track. Fast re-runs or filtering could play the wrong snippet. Previews now key off track_id from iTunes so the audio matches the card you’re looking at. Also this round: Flatrate streaming badges on movie/show cards (Netflix, Crunchyroll, Max, etc.) via TMDB watch providers ~/aurawatch/... path crumbs instead of fake C:\AuraWatch\ strings in the desktop chrome Try it: aurawatch.org — Songs format → flip “Listen on” → hit preview on a couple results
Ships:
What I made: AuraWatch — a vibe finder for movies, TV, anime, and songs. You pick format/genres, optional “like these” titles, and a short mood note; it returns a few grounded picks with posters and where-to-watch / listen links. Problem: Picking something to watch (or play) usually means doomscrolling Netflix/Spotify until you give up. AuraWatch turns that into one short decision. 3 QoL improvements: Vibe + “similar to” in one place — no hopping between lists and search tabs. Region-aware Where to Watch — so you don’t get hyped for a title you can’t stream. Songs mode with listen links — same friction fix for music, not just video. Challenging: Gemini’s JSON was a mess (fences, trailing commas, truncations), so I added repair + key rotation and a local catalog fallback when APIs flake. Proud of: The dual path (TMDB similar vs Gemini concierge) and that it still works without keys. How to test: Open https://aura-watching.vercel.app/ → try Desktop + Minimal themes → pick Anime or Songs → add a “like” title and hit Get picks. Check providers/listen links on a result.
Ship #2: The Final Polish, Stable APIs & Custom Vibe Tuning 🚀 AuraWatch is finally in its most stable and customizable state yet! Over the last few sessions, I’ve completely overhauled how the app handles complex requests and edge cases based on your feedback. What’s New in this Ship: Rate Limit Resilience: Users noted missing posters for certain shows (like Yellowstone). I implemented API caching and a graceful UI fallback system. Now, if the TMDB or iTunes API rate-limits us, the UI stays beautiful with stylized fallback gradients instead of broken image icons. Match Priority Slider: You are no longer locked into the AI’s default weighting. You can now use a slider to explicitly tell the algorithm to favor your “Notes” (vibe) or the “Similar-to” titles. Smarter Music Routing: The iTunes API was failing on niche artists. I built a workaround that routes queries through Deezer/MusicBrainz to resolve the artist first, then pulls the correct track from Apple’s catalog. Hidden Easter Eggs: If you know, you know (try typing “surron” or “talaria” into the notes). Thanks to everyone who left feedback! The app is so much better because of it.
What did you make? I built a massive expansion for AuraWatch, turning it into a true routing engine rather than just a generic recommender. I completely overhauled the UI into a clean, light-mode brutalist aesthetic and added full gaming support with precise platform filtering and dynamic store links. What was challenging? Wrestling with the IGDB API to get accurate store buttons was a nightmare, especially for PC games. Writing the logic to properly map Steam, Epic, and GOG links, and creating a strict fallback to official websites when a game like Minecraft isn’t on a main store, took a lot of trial and error. It was also tough figuring out how to add advanced features like “Anti-Vibe” without cluttering the UI, which I solved with a collapsible drawer. What are you proud of? I’m really proud of the multi-store routing. If a game is on three different platforms you own, the UI dynamically generates a distinct button for every single storefront. I’m also hyped on the new “Anti-Vibe” filter that lets you strictly exclude elements you hate, and the overall terminal-like visual overhaul. What should people know so they can test your project? Switch to the Games format and test the new platform dropdown. Enter the specific consoles you own (like PC or Switch), type in a vibe in the Notes, and maybe throw something you hate into the Exclude filter. Check out how it gives you exact, clickable store buttons for the platforms you actually selected!
AuraWatch is for when you’ve been scrolling for 20 minutes and still have nothing to watch. You tell it the mood — genres, a decade, titles you already like, or just a sentence about what you’re after — and it gives you a handful of real picks with posters, trailers, and where to stream them. Movies, TV, anime, songs, games, books, manga, and board games. The hard part is that no single API covers all of that. Gemini is great at taste and terrible at valid JSON, so every format has its own path: songs go through iTunes, games through IGDB, books through Open Library with Google Books as backup, board games through BoardGameGeek’s XML API — which loves replying “202, try again later” instead of a cover. Auth ate a full hour by itself, mostly because Discord treats www.aurawatch.org and aurawatch.org as two completely different websites. The thing I’m most proud of is that it never shows you a blank pane. No cover? Skeleton, then initials on a gradient. No results? A fallback card with Surprise Me instead of an empty box. To test it: no login needed. Pick a format, describe a mood, hit Match — or just spam Surprise Me. Sign in with Discord or a username if you want to save picks into a playlist and share the link.
Shipped Group Vibe Rooms. You open a room, share the link, everyone types a vibe, the host hits Calculate — same picks for the whole group. Also made Match, Rooms, and Lists look and navigate the same, including on phone. Try it: aurawatch.org/room — make a room, join it in another tab, calculate.
Ship #6 — v0.5.0 AuraWatch used to hand you a pile of “here’s some stuff.” Now it picks one for tonight — hero card up top, a few “or these” under it, Decide for me / Not this when you’re still stuck. Also in this one: match %, local watchlist, era + runtime filters, soft “On my apps” (hard-filtering services was wiping songs/games/books — looked like Gemini died, was just me being dumb). Sign-in’s a popup now so /room doesn’t yeet you to a separate page. Live: https://aurawatch.org Code: https://github.com/Ander507/AuraWatch
Where-to-watch used to be a row of streaming logos and that was it. Rent and Buy were gone, prices never showed, and song “Listen on” chips mashed into one blob. This round puts the full panel back: Stream / Rent / Buy , with HD/4K under the logo and a short price under rent/buy ( 39 kr , not DKK 39.00 ). Stream is “you already pay for this.” Rent/Buy are pay-per-title. Same thing on the hero pick and the smaller cards. The annoying part wasn’t fetching JustWatch. It was the UI. First pass looked boxed and goofy. Fancy overlapping logos clipped titles into “Incept.” I ripped the extra chrome and just made the group labels huge so you can tell the three modes apart at a glance. Also: Listen-on for YouTube Music / Spotify / Apple Music has its own styles now, so those chips don’t steal CSS from the movie cards. Try it: aurawatch.org — no account. Movies or TV, set your region, hit Match. Scroll the hero + the “or these” cards. Songs format → flip Listen on → preview a couple tracks....
|
1793001064.3124557
|
1793087464.3124557
|
|
39908
|
FFvert by @Nahida4479 | Stardance
|
Nahida4479
|
2
|
28.0
|
400
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-27T02:46:36Z", "hours": 17.0, "multiplier": 15.92, "payout": 279, "blessing": "neutral", "text": "Hello everyone, I have finished my FFvert project. In this project I built a system based on ffmpeg , @imgly/background-removal-node , and youtube-dl-exec , which enables converting images and videos, removing image backgrounds, and downloading YouTube videos. Conversion video system For this system I use the ffmpeg package. This system supports 6 video and 1 audio formats: gif mov mp3 mp4 avi mkv wmv The supported resolutions: 4K, 1440p, 1080p, 720p, 480p I’m proud that the GIF format additionally generates a color palette for better color accuracy. Conversion image system This system is based on the ffmpeg package. Supports 7 image formats: png jpg webp bmp tiff ico qoi Remove background system This is a special option in the FFvert panel when you upload an image. The background removal system is based on the @imgly/background-removal-node package. The AI model isnet_fp16 is downloaded from IMG.LY servers and runs locally. YouTube Downloader system The YouTube Downloader is based on the youtube-dl-exec package. The file is downloaded and converted using FFmpeg for the user-selected format and resolution. Supported 12 formats: MP4 MP3 MOV GIF MKV WEBM AAC M4A FLAC WAV OPUS VORBIS The supported resolutions: 1440p, 1080p, 720p, 480p, 360p, 240p, 144p How to use You can try my project at: convert.nahida4479.org If you prefer to run it locally, I have 2 options for you :) You can run the image using a pre-built Docker image. docker pull ghcr.io/nahida4479/ffvert:latest docker run -p 3003:3003 ghcr.io/nahida4479/ffvert:latest or build it yourself git clone https://github.com/Nahida4479/FFvert.git cd FFvert docker build -t ffvert . docker run -p 3003:3003 ffvert Summary I spent a lot of time on this project and thoroughly enjoyed studying CSS and improving my JavaScript skills. I hope you like this project. Good luck with your own projects :)", "repo": "https://github.com/Nahida4479/FFvert/tree/app", "demo": "https://convert.nahida4479.org/"}, {"ship_num": 2, "ts": "2026-08-01T21:15:51Z", "hours": 11.0, "multiplier": 11.3, "payout": 121, "blessing": "neutral", "text": "FFvert is a web app that lets you convert an uploaded file into a different format. I spent a lot of time on the design that was actually where I struggled the most. I’m proud that the conversion system works perfectly, and of the quality of the converted GIFs. My app is live at convert.nahida4479.org, so anyone can try it out.", "repo": "https://github.com/Nahida4479/FFvert/tree/app", "demo": "https://convert.nahida4479.org/"}]...
|
[{"post_id": 55297, "ts": "202 [{"post_id": 55297, "ts": "2026-08-27T01:21:28Z", "hours": 3.6989, "text": "Devlog 12 New Built and published a Docker container on GitHub Added a progress bar for YouTube Downloader Disabled the OK button until the file is ready Adjusted YouTube Downloader GUI for mobile devices Added a 2GB file upload limit to FFvert Updated README.md Docker You can run the image using a pre-built Docker image. docker pull ghcr.io/nahida4479/ffvert:latest docker run -p 3003:3003 ghcr.io/nahida4479/ffvert:latest or build it yourself git clone https://github.com/Nahida4479/FFvert.git cd FFvert docker build -t ffvert . docker run -p 3003:3003 ffvert"}, {"post_id": 54150, "ts": "2026-08-24T23:50:59Z", "hours": 2.6828, "text": "Devlog 11 New Section How to use Change name yt-dlp –> YouTube Downloader Full YouTube video download system YouTube download video system: I use the node package youtube-dl-exec for this system. The file is downloaded by the backend and converted using FFmpeg for the user-selected format. For GIF files FFmpeg generates a special palette for better color accuracy."}, {"post_id": 53452, "ts": "2026-08-24T00:37:39Z", "hours": 2.7008, "text": "Devlog 10 New GUI Text Input (for YouTube video link) Format List Resolution List OK Button Text input: Input where you will paste a YouTube video link. Format list: Supported formats: MP4 , MP3 , MOV , GIF , MKV , WEBM , AAC , M4A , FLAC , WAV , OPUS , VORBIS . Resolution list: Supported resolutions: 1440p , 1080p , 720p , 480p , 360p , 240p , 144p Plans I plan to implement a full video download system based on yt-dlp , with support for both 16:9 and 9:16 video formats."}, {"post_id": 52705, "ts": "2026-08-23T00:12:51Z", "hours": 1.4672, "text": "Devlog 9 New Added background removal system based on @imgly/background-removal-node Added typing animation for text Click or drag video or image file here Changed example files animation to a new color animation"}, {"post_id": 51999, "ts": "2026-08-22T00:38:23Z", "hours": 3.5158, "text": "Devlog 8 New FFvert GUI Added mobile devices support"}, {"post_id": 51361, "ts": "2026-08-20T23:51:37Z", "hours": 1.8914, "text": "Devlog 7 New New supported image files (TIFF, ICO, QOI) Added a CSS animation to the format examples Full image conversion system Automatically detects if you uploaded an image or a video and shows the right options Updated README.md (supported image files) Publishes new Github releases"}, {"post_id": 50654, "ts": "2026-08-19T22:31:54Z", "hours": 1.5422, "text": "Devlog 6 New Added support for uploading images, with format options adapting automatically Unique output file name Default file resolution option Default file resolution system The output file has the same resolution as the input file (for example, a 1920x1080 input produces a 1920x1080 output)"}, {"post_id": 39129, "ts": "2026-08-01T20:52:01Z", "hours": 0.7492, "text": "Final version"}, {"post_id": 39082, "ts": "2026-08-01T19:32:28Z", "hours": 2.7336, "text": "New design"}, {"post_id": 38590, "ts": "2026-08-01T02:14:00Z", "hours": 1.5681, "text": "Add fun fact and high quality GIF system"}, {"post_id": 37856, "ts": "2026-07-30T20:34:54Z", "hours": 4.0483, "text": "New resolution and download systems :)"}, {"post_id": 35323, "ts": "2026-07-26T17:19:03Z", "hours": 1.6556, "text": "Basic convert system"}]...
|
Title: FFvert by @Nahida4479 | Stardance
Devlogs: Title: FFvert by @Nahida4479 | Stardance
Devlogs:
Basic convert system
New resolution and download systems :)
Add fun fact and high quality GIF system
New design
Final version
Devlog 6 New Added support for uploading images, with format options adapting automatically Unique output file name Default file resolution option Default file resolution system The output file has the same resolution as the input file (for example, a 1920x1080 input produces a 1920x1080 output)
Devlog 7 New New supported image files (TIFF, ICO, QOI) Added a CSS animation to the format examples Full image conversion system Automatically detects if you uploaded an image or a video and shows the right options Updated README.md (supported image files) Publishes new Github releases
Devlog 8 New FFvert GUI Added mobile devices support
Devlog 9 New Added background removal system based on @imgly/background-removal-node Added typing animation for text Click or drag video or image file here Changed example files animation to a new color animation
Devlog 10 New GUI Text Input (for YouTube video link) Format List Resolution List OK Button Text input: Input where you will paste a YouTube video link. Format list: Supported formats: MP4 , MP3 , MOV , GIF , MKV , WEBM , AAC , M4A , FLAC , WAV , OPUS , VORBIS . Resolution list: Supported resolutions: 1440p , 1080p , 720p , 480p , 360p , 240p , 144p Plans I plan to implement a full video download system based on yt-dlp , with support for both 16:9 and 9:16 video formats.
Devlog 11 New Section How to use Change name yt-dlp –> YouTube Downloader Full YouTube video download system YouTube download video system: I use the node package youtube-dl-exec for this system. The file is downloaded by the backend and converted using FFmpeg for the user-selected format. For GIF files FFmpeg generates a special palette for better color accuracy.
Devlog 12 New Built and published a Docker container on GitHub Added a progress bar for YouTube Downloader Disabled the OK button until the file is ready Adjusted YouTube Downloader GUI for mobile devices Added a 2GB file upload limit to FFvert Updated README.md Docker You can run the image using a pre-built Docker image. docker pull ghcr.io/nahida4479/ffvert:latest docker run -p 3003:3003 ghcr.io/nahida4479/ffvert:latest or build it yourself git clone https://github.com/Nahida4479/FFvert.git cd FFvert docker build -t ffvert . docker run -p 3003:3003 ffvert
Ships:
FFvert is a web app that lets you convert an uploaded file into a different format. I spent a lot of time on the design that was actually where I struggled the most. I’m proud that the conversion system works perfectly, and of the quality of the converted GIFs. My app is live at convert.nahida4479.org, so anyone can try it out.
Hello everyone, I have finished my FFvert project. In this project I built a system based on ffmpeg , @imgly/background-removal-node , and youtube-dl-exec , which enables converting images and videos, removing image backgrounds, and downloading YouTube videos. Conversion video system For this system I use the ffmpeg package. This system supports 6 video and 1 audio formats: gif mov mp3 mp4 avi mkv wmv The supported resolutions: 4K, 1440p, 1080p, 720p, 480p I’m proud that the GIF format additionally generates a color palette for better color accuracy. Conversion image system This system is based on the ffmpeg package. Supports 7 image formats: png jpg webp bmp tiff ico qoi Remove background system This is a special option in the FFvert panel when you upload an image. The background removal system is based on the @imgly/background-removal-node package. The AI model isnet_fp16 is downloaded from IMG.LY servers and runs locally. YouTube Downloader system The YouTube Downloader is based on the youtube-dl-exec package. The file is downloaded and converted using FFmpeg for the user-selected format and resolution. Supported 12 formats: MP4 MP3 MOV GIF MKV WEBM AAC M4A FLAC WAV OPUS VORBIS The supported resolutions: 1440p, 1080p, 720p, 480p, 360p, 240p, 144p How to use You can try my project at: convert.nahida4479.org If you prefer to run it locally, I have 2 options for you :) You can run the image using a pre-built Docker image. docker pull ghcr.io/nahida4479/ffvert:latest docker run -p 3003:3003 ghcr.io/nahida4479/ffvert:latest or build it yourself git clone https://github.com/Nahida4479/FFvert.git cd FFvert docker build -t ffvert . docker run -p 3003:3003 ffvert Summary I spent a lot of time on this project and thoroughly enjoyed studying CSS and improving my JavaScript skills. I hope you like this project. Good luck with your own projects :)...
|
1792997577.2229295
|
1793083977.2229295
|
|
43242
|
mtg tool by @flyingfish | Stardance
|
flyingfish
|
1
|
46.0
|
400
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-21T01:16:08Z", "hours": 46.0, "multiplier": 8.6, "payout": 400, "blessing": "neutral", "text": "i made a tool for making custom mtg cards in bulk i dont aurally know anything about mtg my brother just wanted me to make this", "repo": "https://github.com/dinotiger01/frfr", "demo": "https://github.com/dinotiger01/frfr/releases/tag/idk"}]...
|
[{"post_id": 71543, "ts": "202 [{"post_id": 71543, "ts": "2026-09-21T01:14:49Z", "hours": 1.4325, "text": "just some last minute repo fixes"}, {"post_id": 44887, "ts": "2026-08-10T22:42:40Z", "hours": 9.2114, "text": "it works on windows"}, {"post_id": 43638, "ts": "2026-08-09T00:43:02Z", "hours": 8.2292, "text": "i have spent the past 4 HOURS trying to fix a bug and nothing works(i am going to try to ship by the end of today if i can fix this stupid bug)"}, {"post_id": 42311, "ts": "2026-08-06T23:27:47Z", "hours": 8.6642, "text": "it can conect to an api now"}, {"post_id": 41448, "ts": "2026-08-05T17:41:26Z", "hours": 9.0586, "text": "it can export now"}, {"post_id": 39896, "ts": "2026-08-03T05:48:25Z", "hours": 4.0275, "text": "its too late in the day for this jusdt work for like 10 hrs today"}, {"post_id": 39784, "ts": "2026-08-02T23:52:07Z", "hours": 5.8589, "text": "ykyk"}]...
|
Title: mtg tool by @flyingfish | Stardance
Devlog Title: mtg tool by @flyingfish | Stardance
Devlogs:
ykyk
its too late in the day for this jusdt work for like 10 hrs today
it can export now
it can conect to an api now
i have spent the past 4 HOURS trying to fix a bug and nothing works(i am going to try to ship by the end of today if i can fix this stupid bug)
it works on windows
just some last minute repo fixes
Ships:
i made a tool for making custom mtg cards in bulk i dont aurally know anything about mtg my brother just wanted me to make this...
|
1793004581.073696
|
1793090981.073696
|
|
679
|
oral-b Library by @brian | Stardance
|
brian
|
1
|
22.0
|
399
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-14T03:43:08Z", "hours": 22.0, "multiplier": 18.43, "payout": 399, "blessing": "neutral", "text": "I built a Node.js library for bidirectional Bluetooth communication with Oral-B smart toothbrushes, without needing the app! The most challenging part was definitely reverse engineering the Bluetooth characteristic logic in the Oral-B Android app using jadx. Since testing out this project may be difficult for obvious reasons (not too many people have an overpriced smart toothbrush xD), the demo link will bring you to a sample demo video of how it works!", "repo": "https://github.com/brianwalczak/oral-b", "demo": "https://github.com/brianwalczak/oral-b/releases/tag/v0.1.0"}]...
|
[{"post_id": 46678, "ts": "202 [{"post_id": 46678, "ts": "2026-08-14T03:40:12Z", "hours": 0.5619, "text": "I made a quick demonstration video and added some example scripts to the project!"}, {"post_id": 45767, "ts": "2026-08-12T13:53:31Z", "hours": 1.6933, "text": "I spent some time cleaning up the package.json and implementing some bug fixes like adding reads and subscriptions to a queue (since before it would send them at the same time and crash the brush occasionally). Some newer brushes also require an “unlock code” to use the Bluetooth API, so I implemented that too! The first version is now live on npm.js!"}, {"post_id": 44277, "ts": "2026-08-09T22:30:20Z", "hours": 3.8067, "text": "I’ve finally finished working on the documentation! I also added a commands table in the README.md which lists all of the current commands and a link to their designated Markdown page. I’m preparing to publish it to npm.js now!"}, {"post_id": 43100, "ts": "2026-08-08T05:44:03Z", "hours": 1.8494, "text": "I finished adding some more commands: deviceState which tells you what “state” the brush is in (running, idle, charging, etc), buttonState which allows you to subscribe to button events and notifies you when the power or mode button was pressed, and brushingTime which allows you to view the live stopwatch as you brush your teeth. I built a simple demo script to give you all a visual example of how these can be used!"}, {"post_id": 38363, "ts": "2026-07-31T18:24:38Z", "hours": 7.2906, "text": "Been a while! Most of this 7 hours was spent digging through the source code of the Oral-B codebase again, but I finished implementing a Bluetooth command transport layer and added a command handler for easy additions. I also implemented protocol versioning, which each brush specifies in its manufacturer data so the host knows what commands/values are available for the brush. In most cases, the newer the brush model (especially in the iO series of brushes), the higher the protocol, resulting in more available commands / data values to read from. I’ve also added the first incoming command: batteryLevel ! This method requests battery data from the brush, and depending on the protocol version of your brush, you’ll be able to view info like the battery percentage, estimated runtime, and even the technical specifications of the battery (like voltage, current, temperature, etc). From here on, all I’ll be doing is adding more support for commands!"}, {"post_id": 27549, "ts": "2026-07-13T06:54:55Z", "hours": 2.1819, "text": "It’s been a while but I’m back! I made huge changes to the overall layout of the library, and decided that… Brush objects are the devices themselves, and will allow you to connect, disconnect, view its state, send/receive BLE commands, etc. OralBClient will only act as a “discovery layer”, which lets you search for new Brush objects and keep track of your connections (like a “management” layer I guess you could call it???) I finished building the connect/disconnect commands with an optional timeout option for connections, and I moved rssi and macAddress into getters so they’re read directly from the peripheral and update automatically. Had to switch to the @stoprocent/noble fork because the previous one caused issues with discovery in Fedora. In OralBClient , I added a way to track the brushes and store the connected ones in a Map (so users don’t have to keep track of the Brush objects elsewhere). I also added the option to stop discovery early, and an adapter state check before it starts discovering (so it waits for the Bluetooth adapter to power on first!)"}, {"post_id": 1031, "ts": "2026-06-02T20:27:41Z", "hours": 4.2644, "text": "First devlog! Spent a LONG time exploring the Oral-B app codebase to learn about how devices are discovered, and what bytes are interpreted from the manufacturer data. So far I’ve built a discover() method which hooks onto the @abandonware/noble library and searches for brushes nearby. I managed to reverse engineer the manufacturer data payload which let’s me identify the model line of the brush and filter out non Oral-B devices! :D"}]...
|
Title: oral-b Library by @brian | Stardance
Devlo Title: oral-b Library by @brian | Stardance
Devlogs:
First devlog! Spent a LONG time exploring the Oral-B app codebase to learn about how devices are discovered, and what bytes are interpreted from the manufacturer data. So far I’ve built a discover() method which hooks onto the @abandonware/noble library and searches for brushes nearby. I managed to reverse engineer the manufacturer data payload which let’s me identify the model line of the brush and filter out non Oral-B devices! :D
It’s been a while but I’m back! I made huge changes to the overall layout of the library, and decided that… Brush objects are the devices themselves, and will allow you to connect, disconnect, view its state, send/receive BLE commands, etc. OralBClient will only act as a “discovery layer”, which lets you search for new Brush objects and keep track of your connections (like a “management” layer I guess you could call it???) I finished building the connect/disconnect commands with an optional timeout option for connections, and I moved rssi and macAddress into getters so they’re read directly from the peripheral and update automatically. Had to switch to the @stoprocent/noble fork because the previous one caused issues with discovery in Fedora. In OralBClient , I added a way to track the brushes and store the connected ones in a Map (so users don’t have to keep track of the Brush objects elsewhere). I also added the option to stop discovery early, and an adapter state check before it starts discovering (so it waits for the Bluetooth adapter to power on first!)
Been a while! Most of this 7 hours was spent digging through the source code of the Oral-B codebase again, but I finished implementing a Bluetooth command transport layer and added a command handler for easy additions. I also implemented protocol versioning, which each brush specifies in its manufacturer data so the host knows what commands/values are available for the brush. In most cases, the newer the brush model (especially in the iO series of brushes), the higher the protocol, resulting in more available commands / data values to read from. I’ve also added the first incoming command: batteryLevel ! This method requests battery data from the brush, and depending on the protocol version of your brush, you’ll be able to view info like the battery percentage, estimated runtime, and even the technical specifications of the battery (like voltage, current, temperature, etc). From here on, all I’ll be doing is adding more support for commands!
I finished adding some more commands: deviceState which tells you what “state” the brush is in (running, idle, charging, etc), buttonState which allows you to subscribe to button events and notifies you when the power or mode button was pressed, and brushingTime which allows you to view the live stopwatch as you brush your teeth. I built a simple demo script to give you all a visual example of how these can be used!
I’ve finally finished working on the documentation! I also added a commands table in the README.md which lists all of the current commands and a link to their designated Markdown page. I’m preparing to publish it to npm.js now!
I spent some time cleaning up the package.json and implementing some bug fixes like adding reads and subscriptions to a queue (since before it would send them at the same time and crash the brush occasionally). Some newer brushes also require an “unlock code” to use the Bluetooth API, so I implemented that too! The first version is now live on npm.js!
I made a quick demonstration video and added some example scripts to the project!
Ships:
I built a Node.js library for bidirectional Bluetooth communication with Oral-B smart toothbrushes, without needing the app! The most challenging part was definitely reverse engineering the Bluetooth characteristic logic in the Oral-B Android app using jadx. Since testing out this project may be difficult for obvious reasons (not too many people have an overpriced smart toothbrush xD), the demo link will bring you to a sample demo video of how it works!...
|
1792968766.8703308
|
1793055166.8703308
|
|
6948
|
Needoh Factory by @Oscar_da_best | Stardance
|
Oscar_da_best
|
2
|
46.0
|
399
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-12T09:36:31Z", "hours": 6.0, "multiplier": 8.4, "payout": 54, "blessing": "neutral", "text": "I added a obby island to the project and made the game run a little better in general less bugs now and i am working on ading all the coming soon features", "repo": "https://github.com/Duder-coolman/needoh-tycoon", "demo": "https://www.roblox.com/games/85070662876748/Needoh-Factory"}, {"ship_num": 2, "ts": "2026-09-15T02:11:55Z", "hours": 40.0, "multiplier": 8.67, "payout": 345, "blessing": "neutral", "text": "I made a game called Needoh Factory where you buy needohs and merge them to get cooler needohs that make more money. This was a challanging project because I challenged myself to step away from AI an really test what I could do as well as basiclly learing Luau for the first time. I am proud of how far I have come on this journey and proud of the effort I put into this game. anyone who wats to test my project can test it as long as they make a roblox account!", "repo": "https://github.com/Duder-coolman/needoh-tycoon", "demo": "https://www.roblox.com/games/85070662876748/Needoh-Factory"}]...
|
[{"post_id": 78999, "ts": "202 [{"post_id": 78999, "ts": "2026-10-12T09:34:08Z", "hours": 1.1264, "text": "I made a new gem curency and fixed some more bugs that were pretty game breaking like things getting out of the droppers"}, {"post_id": 78019, "ts": "2026-10-09T07:03:58Z", "hours": 2.2419, "text": "I added a parkour island as somthing to do while you passivly make money and the parkour will reward a new currency called gems which will be very useful in the future."}, {"post_id": 77759, "ts": "2026-10-08T05:48:11Z", "hours": 3.0975, "text": "I replaced my script with a Module script allowing me to use the function in other parts of my game like when the player joins or amy other time I need to update the GUI. Mainly jut doing bug fixes right now before I add any more big features to the game and I dont really remember everything I did. :P"}, {"post_id": 68404, "ts": "2026-09-15T02:07:23Z", "hours": 2.4011, "text": "Finished up the game early, a lot is not done but there will be an update hopefully before stardance ends"}, {"post_id": 66425, "ts": "2026-09-12T07:50:55Z", "hours": 5.7147, "text": "There are three pictures I really dislike UI but I am pushing through it and had some fun making the map more decorated. made a working teleport system. Next I will make a shop for the ingame currency and I will add background music as well as making the purchases work. I’m really enjoying this project and hoping to finish in the next week!! :)"}, {"post_id": 65184, "ts": "2026-09-10T04:05:22Z", "hours": 5.5197, "text": "I finisshed the conversion sysstem that allows the player to convert thier needohs into monye finally completeing the core loop of the game. it is not playable and I will be debugging and decorating for the next 10-15 hours🥳🥳 then I can finally ship it I also completed a startup script so that all the UI can update when A player joins the game to display the correct prices and I watched a tutorial on how to make numbers with suffixes after them to make the pricees easier to read."}, {"post_id": 55382, "ts": "2026-08-27T05:38:59Z", "hours": 5.3786, "text": "i added coded the dropper models into the tower and now you can buy them and merge three to get the next level up. they also drop mini and simplified versions of themselves that the player can pick up for a currency that will then be turned into coins im super happy that this project is coming along and am looking forward to shiping it soon."}, {"post_id": 52062, "ts": "2026-08-22T03:48:39Z", "hours": 4.2428, "text": "I made the second row this time. give me some feedback please i like any critisizm just keep in mind I litteraly just started learning. the first row is in my last post. happy to begin working on the main loop of the game soon."}, {"post_id": 48697, "ts": "2026-08-17T06:30:55Z", "hours": 3.6744, "text": "Made a whole pack of runic symbols that I will sell on roblox’s marketplace for $0.99 and made 10 models for my game planning on finishing the other 10 tommorow."}, {"post_id": 47227, "ts": "2026-08-15T00:29:49Z", "hours": 2.0911, "text": "Made the buttons more appealing and rewrote the button purchasing script to make it less repetetive."}, {"post_id": 43160, "ts": "2026-08-08T08:30:52Z", "hours": 5.4481, "text": "Made a save data storage script and a script to buy droppers I cannot figure out how to add code blocks so these terrible pictures will have to do"}, {"post_id": 5630, "ts": "2026-06-09T14:38:25Z", "hours": 2.2406, "text": "I added the main element of the game and made a plot system that gives the player a plot when they load in. (lighting looks bad because it is not textured yet)"}, {"post_id": 4036, "ts": "2026-06-07T06:49:08Z", "hours": 1.775, "text": "Added pathways and portals for obstacle courses, its so hard to make pathways… planning on making a lot of progress tommorow and waiting to finishing building so I can start scripting 🙏"}, {"post_id": 3341, "ts": "2026-06-06T07:05:12Z", "hours": 0.5228, "text": "Added water around the islands and bridges connecting them. planning on locking in tomorrow"}, {"post_id": 2599, "ts": "2026-06-05T06:43:34Z", "hours": 0.3025, "text": "Currently very busy finishing up school but I was able to make a measured out map."}, {"post_id": 1982, "ts": "2026-06-04T07:40:57Z", "hours": 0.5017, "text": "Basic Hover effect for button along with other basic thing I like to set up when I start a project"}]...
|
Title: Needoh Factory by @Oscar_da_best | Stardanc Title: Needoh Factory by @Oscar_da_best | Stardance
Devlogs:
Basic Hover effect for button along with other basic thing I like to set up when I start a project
Currently very busy finishing up school but I was able to make a measured out map.
Added water around the islands and bridges connecting them. planning on locking in tomorrow
Added pathways and portals for obstacle courses, its so hard to make pathways… planning on making a lot of progress tommorow and waiting to finishing building so I can start scripting 🙏
I added the main element of the game and made a plot system that gives the player a plot when they load in. (lighting looks bad because it is not textured yet)
Made a save data storage script and a script to buy droppers I cannot figure out how to add code blocks so these terrible pictures will have to do
Made the buttons more appealing and rewrote the button purchasing script to make it less repetetive.
Made a whole pack of runic symbols that I will sell on roblox’s marketplace for $0.99 and made 10 models for my game planning on finishing the other 10 tommorow.
I made the second row this time. give me some feedback please i like any critisizm just keep in mind I litteraly just started learning. the first row is in my last post. happy to begin working on the main loop of the game soon.
i added coded the dropper models into the tower and now you can buy them and merge three to get the next level up. they also drop mini and simplified versions of themselves that the player can pick up for a currency that will then be turned into coins im super happy that this project is coming along and am looking forward to shiping it soon.
I finisshed the conversion sysstem that allows the player to convert thier needohs into monye finally completeing the core loop of the game. it is not playable and I will be debugging and decorating for the next 10-15 hours🥳🥳 then I can finally ship it I also completed a startup script so that all the UI can update when A player joins the game to display the correct prices and I watched a tutorial on how to make numbers with suffixes after them to make the pricees easier to read.
There are three pictures I really dislike UI but I am pushing through it and had some fun making the map more decorated. made a working teleport system. Next I will make a shop for the ingame currency and I will add background music as well as making the purchases work. I’m really enjoying this project and hoping to finish in the next week!! :)
Finished up the game early, a lot is not done but there will be an update hopefully before stardance ends
I replaced my script with a Module script allowing me to use the function in other parts of my game like when the player joins or amy other time I need to update the GUI. Mainly jut doing bug fixes right now before I add any more big features to the game and I dont really remember everything I did. :P
I added a parkour island as somthing to do while you passivly make money and the parkour will reward a new currency called gems which will be very useful in the future.
I made a new gem curency and fixed some more bugs that were pretty game breaking like things getting out of the droppers
Ships:
I made a game called Needoh Factory where you buy needohs and merge them to get cooler needohs that make more money. This was a challanging project because I challenged myself to step away from AI an really test what I could do as well as basiclly learing Luau for the first time. I am proud of how far I have come on this journey and proud of the effort I put into this game. anyone who wats to test my project can test it as long as they make a roblox account!
I added a obby island to the project and made the game run a little better in general less bugs now and i am working on ading all the coming soon features...
|
1793004728.8856325
|
1793091128.8856325
|
|
41865
|
Dungeon climber by @SiddhantVerma_04 | Stardance
|
SiddhantVerma_04
|
1
|
33.41
|
399
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-20T14:28:37Z", "hours": 20.0, "multiplier": 19.54, "payout": 399, "blessing": "neutral", "text": "Dungeon Climber A 2d platformer made in Godot 4 about a knight stuck in a dungeon. This is my game about a knight stuck in a dungeon trying to escape while opening chests along the way and not dying. This is my first Godot game that i made after a long time and it took me a while to learn Godot’s language and system, but I came back to it because I love creating games and I want to make many more in the future. You can play it on it’s itch.io page by clicking the button below. Please give me some feedback for future projects. Thank you for your time!", "repo": "https://github.com/siddhantverma04/dungeon-climber", "demo": "https://hacr7.itch.io/dungeon-climber"}]...
|
[{"post_id": 81138, "ts": "202 [{"post_id": 81138, "ts": "2026-10-20T01:20:13Z", "hours": 3.1644, "text": "Devlog 9 Finished level 2 I added a lot of new features since the last devlog but the most prominent maybe would be dialogue! I basically created a villager that you can talk to just to give you some instruction on what to do. Other than that I added more to the actual level and added another fox near the end. And I ended it with a castle that you have to enter."}, {"post_id": 72052, "ts": "2026-09-22T02:44:30Z", "hours": 5.7467, "text": "Devlog 8 Big update Continued building the game, and started by adding another level. This level will be above ground, with new enemies and features. So far I have set it up for building, as well as added a fox, that took way too much time to code its death, and animations. I will also add other animals soon. I finished up the enemies in the first level too. But currently haven’t added any more sound effects or music for the new stuff."}, {"post_id": 68366, "ts": "2026-09-15T00:46:53Z", "hours": 4.4953, "text": "Devlog 7 Added simple enemies. Shipped a while ago but decided to continue on the game. I chose to first start making some new enemies. It was easy until I had to code the animations and health loss, so a lot of my time went into that. But I pretty much got it to work. I still need to code the death of the enemy though."}, {"post_id": 51005, "ts": "2026-08-20T14:25:21Z", "hours": 1.0708, "text": "Devlog 6 Finished the game! Made some tweaks and then exported the game. I then made my own page on itch.io and uploaded the game there. Dungeon Climber is now live so go check it out!"}, {"post_id": 49902, "ts": "2026-08-18T21:19:03Z", "hours": 2.9467, "text": "Devlog 5 Added a win screen and a game over screen I created a simple win and lose screen with a restart and quit option each. It took a long time to make the win screen animation, but the music for both of them was really easy. I’m fairly done with the game, and just need to make some tweaks and fixes until I’m ready to ship."}, {"post_id": 48341, "ts": "2026-08-16T17:32:01Z", "hours": 4.0333, "text": "Devlog 4 Added music and sound effects. Put some background music for the main menu and level, and had to figure out how to make transitions between them using tweens. Also made some sound effects for stuff like opening chests and taking damage."}, {"post_id": 46430, "ts": "2026-08-13T17:04:46Z", "hours": 4.4311, "text": "Devlog 3 Added a health and points system. Created a simple health system with 3 lives that resets the level when you lose all of them. Took a long time for debugging and fixing the code to make the player die properly but I was finally able to make it work. Along with that I also made a point system which just counts the amount of chests you open, which was easy enough. Also made some changes to the main menu animations."}, {"post_id": 44923, "ts": "2026-08-11T00:04:59Z", "hours": 3.8533, "text": "Devlog 2 Finished level building, and added a main menu. It took about an hour just to find and extend the image for the animation, but actually making the animation was relatively easy. I also made sure the character can’t move after going in the exit door."}, {"post_id": 43004, "ts": "2026-08-08T01:06:07Z", "hours": 4.0833, "text": "Devlog 1/Catch up: Over the summer I was working on a 2d platformer in Godot about a knight that’s stuck in a dungeon. However, I just turned 13 so I couldn’t track those hours or post any updates. So this will serve as a “catch up” of everything I did in that time. I also followed some Coco Code tutorials along the way but mainly did it myself and did my own things. I have separated everything I did into 4 parts, with the last being what the currently logged hours are for. Part 1: I found and imported some asset packs (sprites, backgrounds, tilesheets) into the project. Created a tilemap and background(also added physics collisions). Started building some of the game. Added a CharacterBody2d, and its AnimatedSprite2d and collision shape. Also added the animations for the character. Wrote the core movement for the character set up player input mappings for wasd and arrow keys. Part 2: Added a Camera2d to the player so that the camera follows the player. Created ladders using the tilemap and coded their movement. Made moving and static platforms using an AnimatableBody2d and an AnimationPlayer(for the moving ones). Also added chests that you can find throughout the level and open(they currently don’t give or do anything). Part 3: Added traps(spikes), that reset the level. Continued building the level. Added an exit door and made its animation. Added an animation for ladder climbing."}]...
|
Title: Dungeon climber by @SiddhantVerma_04 | Star Title: Dungeon climber by @SiddhantVerma_04 | Stardance
Devlogs:
Devlog 1/Catch up: Over the summer I was working on a 2d platformer in Godot about a knight that’s stuck in a dungeon. However, I just turned 13 so I couldn’t track those hours or post any updates. So this will serve as a “catch up” of everything I did in that time. I also followed some Coco Code tutorials along the way but mainly did it myself and did my own things. I have separated everything I did into 4 parts, with the last being what the currently logged hours are for. Part 1: I found and imported some asset packs (sprites, backgrounds, tilesheets) into the project. Created a tilemap and background(also added physics collisions). Started building some of the game. Added a CharacterBody2d, and its AnimatedSprite2d and collision shape. Also added the animations for the character. Wrote the core movement for the character set up player input mappings for wasd and arrow keys. Part 2: Added a Camera2d to the player so that the camera follows the player. Created ladders using the tilemap and coded their movement. Made moving and static platforms using an AnimatableBody2d and an AnimationPlayer(for the moving ones). Also added chests that you can find throughout the level and open(they currently don’t give or do anything). Part 3: Added traps(spikes), that reset the level. Continued building the level. Added an exit door and made its animation. Added an animation for ladder climbing.
Devlog 2 Finished level building, and added a main menu. It took about an hour just to find and extend the image for the animation, but actually making the animation was relatively easy. I also made sure the character can’t move after going in the exit door.
Devlog 3 Added a health and points system. Created a simple health system with 3 lives that resets the level when you lose all of them. Took a long time for debugging and fixing the code to make the player die properly but I was finally able to make it work. Along with that I also made a point system which just counts the amount of chests you open, which was easy enough. Also made some changes to the main menu animations.
Devlog 4 Added music and sound effects. Put some background music for the main menu and level, and had to figure out how to make transitions between them using tweens. Also made some sound effects for stuff like opening chests and taking damage.
Devlog 5 Added a win screen and a game over screen I created a simple win and lose screen with a restart and quit option each. It took a long time to make the win screen animation, but the music for both of them was really easy. I’m fairly done with the game, and just need to make some tweaks and fixes until I’m ready to ship.
Devlog 6 Finished the game! Made some tweaks and then exported the game. I then made my own page on itch.io and uploaded the game there. Dungeon Climber is now live so go check it out!
Devlog 7 Added simple enemies. Shipped a while ago but decided to continue on the game. I chose to first start making some new enemies. It was easy until I had to code the animations and health loss, so a lot of my time went into that. But I pretty much got it to work. I still need to code the death of the enemy though.
Devlog 8 Big update Continued building the game, and started by adding another level. This level will be above ground, with new enemies and features. So far I have set it up for building, as well as added a fox, that took way too much time to code its death, and animations. I will also add other animals soon. I finished up the enemies in the first level too. But currently haven’t added any more sound effects or music for the new stuff.
Devlog 9 Finished level 2 I added a lot of new features since the last devlog but the most prominent maybe would be dialogue! I basically created a villager that you can talk to just to give you some instruction on what to do. Other than that I added more to the actual level and added another fox near the end. And I ended it with a castle that you have to enter.
Ships:
Dungeon Climber A 2d platformer made in Godot 4 about a knight stuck in a dungeon. This is my game about a knight stuck in a dungeon trying to escape while opening chests along the way and not dying. This is my first Godot game that i made after a long time and it took me a while to learn Godot’s language and system, but I came back to it because I love creating games and I want to make many more in the future. You can play it on it’s itch.io page by clicking the button below. Please give me some feedback for future projects. Thank you for your time!...
|
1792993777.2798884
|
1793080177.2798884
|
|
43234
|
Nike website by @Alan_X | Stardance
|
Alan_X
|
3
|
45.0
|
398
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-12T11:18:15Z", "hours": 25.0, "multiplier": 13.62, "payout": 343, "blessing": "neutral", "text": "I corrected all the errors from the first ship in voting pool, to make it more polished again and have a much more better UI. The most challenging part was to go and learn some concepts that I used here especially JS. It was tedious, an as school started again it did not help. To test the project you just have to click on the Try project link. For those on mobile devices, I advise you to set your browser to desktop mode and turn it landscape for maximal experience I’m very proud of the UI and to see how far I went with this project is so fulfilling.", "repo": "https://github.com/onanaalan69-ctrl/Nike-website", "demo": "https://nike-website-gilt.vercel.app/"}, {"ship_num": 2, "ts": "2026-08-26T18:27:10Z", "hours": 10.0, "multiplier": 5.5, "payout": 55, "blessing": "neutral", "text": "To the previous ship, I added more posts to the feed to make it more compelling to scroll through and a JS animation to change the theme of the landing page. I added two sections to the shoe page: In the first, you can see the releases from Converse, as it is a subbranch of Nike. The second concerns the releases from the Air Jordan line. Writing the code for the animation was very complex, as I had to go and learn back some concepts. That is why that index.html took me so much time. Just for a single animation T~T. Also, finding the exact image and text for the post was very tiring. Now the feed is much more fulfilling, to read and I’m so happy with that. Moreover, the diversity with the converse and Jordan makes it more satisfying. Something I advise when testing, click the swoosh on the landing page.", "repo": "https://github.com/onanaalan69-ctrl/Nike-website", "demo": "https://nike-website-gilt.vercel.app/"}, {"ship_num": 3, "ts": "2026-08-21T18:55:39Z", "hours": 10.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Hello guys, I made a website to presents Nike’s products. The websites does feature only shoes for now, and is made of 3 active pages (the landing, the shoe section and the collaborations) The greatest challenge was the CSS. Having this done when I had still very little experience with CSS was difficult. But the most difficult to do was surely the animation with the javaScript code block. I literally had to ask advice from 15+ peers to get it ready for ship. Nevertheless, that is also one my top fulfilling achievements. I am also proud of how the colors change with the product displayed. Oh, I almost forgot! Click on the small swoosh in the nav bar to go back to landing page, and on the big one to change theme.", "repo": "https://github.com/onanaalan69-ctrl/Nike-website", "demo": "https://nike-website-gilt.vercel.app/"}]...
|
[{"post_id": 66280, "ts": "202 [{"post_id": 66280, "ts": "2026-09-12T00:55:46Z", "hours": 1.0908, "text": "The results will reflect the dedication and work done on a task I am finally shipping my project for the second time under vote pool after more than +15 hours of constant improvement. I based this new Nike website on the feedbacks I read over and over to understand the reviewers point of view, the other great websites here in stardance and my own introspection. I won’t say much as today was entirely dedicated to debugging the code and correcting UI. Thanks to all those who helped found the spelling errors and those who followed the progression of my work up to this stage. I had a 5.50x last ship, so I am expecting much more. Keep up and Aspire greatness!"}, {"post_id": 63854, "ts": "2026-09-07T20:44:44Z", "hours": 4.4319, "text": "Get Prestige out of the equation. What people buy is the story! When during the researches for the different items, I often see how there is a whole story behind each shoe, making it even more valuable. And I taught, why not have a section dedicated to Nike’s story? At first I thought that every knew about those stories, but after a small survey (less than a 1000 people), only ~17% knew about this. I went on and did this beautiful “Genesis”. I want to note that I am trying as much as possible to reduce AI text, as it was one of the review critics. So, the section is 100% AI free text and the total AI text is now less than 10% and I am very proud of that :D. During this coding session, I also: Added another group of posts for hydrating bottles Fixed some image bugs that failed to display when I went online Here is a call for all people reaching up to here. I am trying to correct all the typos errors in the site, and I need your help for that. Please take a minute to just check a single page and share with people you know. This post will make more than 20 views and I am sure we can make it to find any error. Input them in the comments, TIA. Click here"}, {"post_id": 61788, "ts": "2026-09-04T21:23:41Z", "hours": 5.1894, "text": "You remember when I said all the stuffs in my website were mostly what people know about ? Well, I added more stuffs than just shoes…again Today I added a section called “Sports Daily”. It features some of the sport tools that Nike produces like the balls. I started introducing the Soccer balls (using soccer for my Americans buddies :D) and the Basket balls. The interface is not yet operational so, if you’ve any suggestions to better it I am full ears. It was so much effort to search for all the balls and writing the text based on the official data set. All the text written here is human written, or copied from an official data set. During this session I also: Added more posts to the other pages that I felt really light and does not create the illusion of feed. As always, constructive feedback is welcomed. I will push these modifs in the repo soon."}, {"post_id": 60900, "ts": "2026-09-03T15:32:28Z", "hours": 4.3531, "text": "If you’ve an idea that seems feasible, work on it. If you succeed: Great Job! Else you’ll have tried! This is the lesson I learned the hard way when I wanted to add a magnetic_heart animation in the Nike website using JS. After spending +2hours of hard coding JS lines, and opening a handful of sites on how to do that, I succeeded, but not in the site (In a test site I created to see if I mastered the concept). Even Gemini could not help me out. It’s a loss, but a beautiful one. I learnt new JS concepts and I have tried at least. I left the codeblock in my repo just as reminder of that lesson. During the session I also: Added 5 more posts to the organization.html Updated the image links so we can see them online Removed some README.md dispalys that did not fit me Adjusted the links to like the posts and remove the false “Buy” links Removed the “Get yours here lines to make the interface better I am not abandoning the possibility of adding another JS animation or just an implementation. I keep up!"}, {"post_id": 59706, "ts": "2026-09-01T17:10:18Z", "hours": 5.2636, "text": "We often tend to see the black dot on a white sheet of paper, and forget of all the white space around I was once more reviewing my website and the feedbacks I had from the last ship. One of them is that my website is to focus on the common stuffs we know about Nike (though the reviewer said they learnt new stuffs). So I did a page in the collab section on the organizations that collaborate with Nike and what they do a little bit. I also: Diversified the feed more by adding more female figures and athletes that are in sports that are not very known. Correct the major readability error in some posts. Greatly reduced the average amount of words per posts and started writing them by myself. Centered most of the titles that looked weird and added some paddings Added more posts to make the feed more scrollable (I will always do this. It helps ensuring diversity and compelling feed) This is a small plus for those who make it up till here! If you get to visit the site (not now, but soon), visit the collab between Billie Eilish and Nike. There is a small animation I want to see if it fits."}, {"post_id": 58308, "ts": "2026-08-30T18:00:04Z", "hours": 4.8394, "text": "The first thing the user sees decides if they stay on the site, or leave! I entered my website, and I did not want to continue exploring it. Just from the landing page. Why would I expect people to love what I did, when I don’t even like it myself ? So, I decided to arrange that landing page. I added a background image, that represents Nike. It features its stars and logos. I also made the links to be more attractive and intuitive to the user. I removed the trash intro text that was there, making the site vapid. I also: I added more posts to the feed to make it more consistent, I corrected all the grammar errors of the pages, Made the animation clear for the user to change theme, I updated the README.md to suit the changes I did in the session. As always, constructive feedback is always welcomed. Thanks for reading!"}, {"post_id": 55075, "ts": "2026-08-26T14:45:14Z", "hours": 5.175, "text": "We on go I remember when I put the last word for Jordan section. During these hours, I added more items to the feed to make it more consistent and compelling to scroll through. I also refined the structure of the landing page and took the decision to only leave the JS to change color of landing page. I think what took me so long, is to search the text that I think that fits best the shoe and the colors that match the main theme. Anyway, you can try it with the demo link in the README.md and constructive feedback is always welcomed !"}, {"post_id": 54028, "ts": "2026-08-24T19:37:39Z", "hours": 4.7642, "text": "EXHAUSTING This is the word that resumes this 4 hours coding session I had. So, what was that exhausting ? That is the interesting part. I did all the time trying to: Building a javaScript to change the theme of the landing page. It is important for me, but I had to read dozen of documented pages T-T I also added the number of posts in the feed. Yeah the “feed” is that main section where the user sees the products I added a functional link to the 💓 icon to send an email of appreciation to me Most importantly, I did my README.md entirely back, as I went through the the resources(according to it, my README.md sucked T-T) And it was extremely tedious as I had to revise my bases first. But I am so proud of the result. I advice you to just give it a try in the demo link. As you know constructive feedback is always welcomed"}, {"post_id": 51849, "ts": "2026-08-21T18:30:38Z", "hours": 2.0303, "text": "Final Devlog before first ship To end the first part of this coding journey I had to “find 10,000 ways that won’t work”. In other words, I to start over and over to make that one block javaScript code to run as I wanted. Now you can change the theme of the landing page by clicking on the swoosh (Try it out. I find it fun ;D). I think I will implement this is in one of my web design projects. I profited of the fire on my fingers (a way to say inspiration. Don’t worry) to change the structure of the site’s presentation. I want to ship the project first before adding complete modifications for the second ship."}, {"post_id": 46004, "ts": "2026-08-12T21:06:11Z", "hours": 0.8356, "text": "Devlog #02 I decided to restructure the presentation of the website, and a new manner of presenting it. This method will recquire me to introduce JavaScript and make the animations more lively. I’m keeping you updated on the advancement guys #Aspiregreatness"}, {"post_id": 41153, "ts": "2026-08-05T05:57:38Z", "hours": 0.9786, "text": "Devlog #01 Today I published a demo of my website online: It was quite tedious since it was my first time, and the to and fro movements from VS code to Github, passing through Vercel was a great challenge. I had to do it before going to my morning activities. I added inside a section talking about Jannick Sinner too, so tennis fans may visit and give me some constructive feedback. Link in demo. #Aspiregreatness"}, {"post_id": 39746, "ts": "2026-08-02T22:13:34Z", "hours": 6.5506, "text": "This is were I’m upto with the Nike website. Is it nice enough :D"}]...
|
Title: Nike website by @Alan_X | Stardance
Devlog Title: Nike website by @Alan_X | Stardance
Devlogs:
This is were I’m upto with the Nike website. Is it nice enough :D
Devlog #01 Today I published a demo of my website online: It was quite tedious since it was my first time, and the to and fro movements from VS code to Github, passing through Vercel was a great challenge. I had to do it before going to my morning activities. I added inside a section talking about Jannick Sinner too, so tennis fans may visit and give me some constructive feedback. Link in demo. #Aspiregreatness
Devlog #02 I decided to restructure the presentation of the website, and a new manner of presenting it. This method will recquire me to introduce JavaScript and make the animations more lively. I’m keeping you updated on the advancement guys #Aspiregreatness
Final Devlog before first ship To end the first part of this coding journey I had to “find 10,000 ways that won’t work”. In other words, I to start over and over to make that one block javaScript code to run as I wanted. Now you can change the theme of the landing page by clicking on the swoosh (Try it out. I find it fun ;D). I think I will implement this is in one of my web design projects. I profited of the fire on my fingers (a way to say inspiration. Don’t worry) to change the structure of the site’s presentation. I want to ship the project first before adding complete modifications for the second ship.
EXHAUSTING This is the word that resumes this 4 hours coding session I had. So, what was that exhausting ? That is the interesting part. I did all the time trying to: Building a javaScript to change the theme of the landing page. It is important for me, but I had to read dozen of documented pages T-T I also added the number of posts in the feed. Yeah the “feed” is that main section where the user sees the products I added a functional link to the 💓 icon to send an email of appreciation to me Most importantly, I did my README.md entirely back, as I went through the the resources(according to it, my README.md sucked T-T) And it was extremely tedious as I had to revise my bases first. But I am so proud of the result. I advice you to just give it a try in the demo link. As you know constructive feedback is always welcomed
We on go I remember when I put the last word for Jordan section. During these hours, I added more items to the feed to make it more consistent and compelling to scroll through. I also refined the structure of the landing page and took the decision to only leave the JS to change color of landing page. I think what took me so long, is to search the text that I think that fits best the shoe and the colors that match the main theme. Anyway, you can try it with the demo link in the README.md and constructive feedback is always welcomed !
The first thing the user sees decides if they stay on the site, or leave! I entered my website, and I did not want to continue exploring it. Just from the landing page. Why would I expect people to love what I did, when I don’t even like it myself ? So, I decided to arrange that landing page. I added a background image, that represents Nike. It features its stars and logos. I also made the links to be more attractive and intuitive to the user. I removed the trash intro text that was there, making the site vapid. I also: I added more posts to the feed to make it more consistent, I corrected all the grammar errors of the pages, Made the animation clear for the user to change theme, I updated the README.md to suit the changes I did in the session. As always, constructive feedback is always welcomed. Thanks for reading!
We often tend to see the black dot on a white sheet of paper, and forget of all the white space around I was once more reviewing my website and the feedbacks I had from the last ship. One of them is that my website is to focus on the common stuffs we know about Nike (though the reviewer said they learnt new stuffs). So I did a page in the collab section on the organizations that collaborate with Nike and what they do a little bit. I also: Diversified the feed more by adding more female figures and athletes that are in sports that are not very known. Correct the major readability error in some posts. Greatly reduced the average amount of words per posts and started writing them by myself. Centered most of the titles that looked weird and added some paddings Added more posts to make the feed more scrollable (I will always do this. It helps ensuring diversity and compelling feed) This is a small plus for those who make it up till here! If you get to visit the site (not now, but soon), visit the collab between Billie Eilish and Nike. There is a small animation I want to see if it fits.
If you’ve an idea that seems feasible, work on it. If you succeed: Great Job! Else you’ll have tried! This is the lesson I learned the hard way when I wanted to add a magnetic_heart animation in the Nike website using JS. After spending +2hours of hard coding JS lines, and opening a handful of sites on how to do that, I succeeded, but not in the site (In a test site I created to see if I mastered the concept). Even Gemini could not help me out. It’s a loss, but a beautiful one. I learnt new JS concepts and I have tried at least. I left the codeblock in my repo just as reminder of that lesson. During the session I also: Added 5 more posts to the organization.html Updated the image links so we can see them online Removed some README.md dispalys that did not fit me Adjusted the links to like the posts and remove the false “Buy” links Removed the “Get yours here lines to make the interface better I am not abandoning the possibility of adding another JS animation or just an implementation. I keep up!
You remember when I said all the stuffs in my website were mostly what people know about ? Well, I added more stuffs than just shoes…again Today I added a section called “Sports Daily”. It features some of the sport tools that Nike produces like the balls. I started introducing the Soccer balls (using soccer for my Americans buddies :D) and the Basket balls. The interface is not yet operational so, if you’ve any suggestions to better it I am full ears. It was so much effort to search for all the balls and writing the text based on the official data set. All the text written here is human written, or copied from an official data set. During this session I also: Added more posts to the other pages that I felt really light and does not create the illusion of feed. As always, constructive feedback is welcomed. I will push these modifs in the repo soon.
Get Prestige out of the equation. What people buy is the story! When during the researches for the different items, I often see how there is a whole story behind each shoe, making it even more valuable. And I taught, why not have a section dedicated to Nike’s story? At first I thought that every knew about those stories, but after a small survey (less than a 1000 people), only ~17% knew about this. I went on and did this beautiful “Genesis”. I want to note that I am trying as much as possible to reduce AI text, as it was one of the review critics. So, the section is 100% AI free text and the total AI text is now less than 10% and I am very proud of that :D. During this coding session, I also: Added another group of posts for hydrating bottles Fixed some image bugs that failed to display when I went online Here is a call for all people reaching up to here. I am trying to correct all the typos errors in the site, and I need your help for that. Please take a minute to just check a single page and share with people you know. This post will make more than 20 views and I am sure we can make it to find any error. Input them in the comments, TIA. Click here
The results will reflect the dedication and work done on a task I am finally shipping my project for the second time under vote pool after more than +15 hours of constant improvement. I based this new Nike website on the feedbacks I read over and over to understand the reviewers point of view, the other great websites here in stardance and my own introspection. I won’t say much as today was entirely dedicated to debugging the code and correcting UI. Thanks to all those who helped found the spelling errors and those who followed the progression of my work up to this stage. I had a 5.50x last ship, so I am expecting much more. Keep up and Aspire greatness!
Ships:
Hello guys, I made a website to presents Nike’s products. The websites does feature only shoes for now, and is made of 3 active pages (the landing, the shoe section and the collaborations) The greatest challenge was the CSS. Having this done when I had still very little experience with CSS was difficult. But the most difficult to do was surely the animation with the javaScript code block. I literally had to ask advice from 15+ peers to get it ready for ship. Nevertheless, that is also one my top fulfilling achievements. I am also proud of how the colors change with the product displayed. Oh, I almost forgot! Click on the small swoosh in the nav bar to go back to landing page, and on the big one to change theme.
To the previous ship, I added more posts to the feed to make it more compelling to scroll through and a JS animation to change the theme of the landing page. I added two sections to the shoe page: In the first, you can see the releases from Converse, as it is a subbranch of Nike. The second concerns the releases from the Air Jordan line. Writing the code for the animation was very complex, as I had to go and learn back some concepts. That is why that index.html took me so much time. Just for a single animation T~T. Also, finding the exact image and text for the post was very tiring. Now the feed is much more fulfilling, to read and I’m so happy with that. Moreover, the diversity with the converse and Jordan makes it more satisfying. Something I advise when testing, click the swoosh on the landing page.
I corrected all the errors from the first ship in voting pool, to make it more polished again and have a much more better UI. The most challenging part was to go and learn some concepts that I used here especially JS. It was tedious, an as school started again it did not help. To test the project you just have to click on the Try project link. For those on mobile devices, I advise you to set your browser to desktop mode and turn it landscape for maximal experience I’m very proud of the UI and to see how far I went with this project is so fulfilling....
|
1792993969.177703
|
1793080369.177703
|
|
5921
|
BitSwiss by @swedishsplidney | Stardance
|
swedishsplidney
|
1
|
22.0
|
397
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-07T09:11:09Z", "hours": 22.0, "multiplier": 18.19, "payout": 397, "blessing": "neutral", "text": "BitSwiss is an open source, cross platform archiving tool to easily download offline archives of over 100 web .zim archives to a removable media device, creating fully offline digital “swiss army knives” that can be used anywhere, on any (desktop) device. it can also include portable, installation free, offline readers for all the archives. available packages: all of wikipedia gutenberg collection (over 75,000 public domain ebooks) stackoverflow and stackexchange forums for many topics full ifixit repair guide archive developer documentation for many scripting languages/libraries/workflows/etc. full libretexts textbook and other educational text archives entire medlineplus archive for medical info full khanacademy, crashcourse, and freecodecamp courses for learning NASA astronomy picture of the day archive with expert explanations preconfigured setups for 16, 32, 64, and 128gb drives. also some field-focused presets for coding, computer science, outer space, and more. BitSwiss works by first using libcurl to grab the file sizes, then filters the URL to get the file name. it then uses a multithreaded concurrent download system to quickly and efficiently download packages (for more info, refer to the “how it works” section of the readme. coded in C++ using JetBrains CLion on Fedora 44 KDE. compiled with CMake for linux, macOS and windows", "repo": "https://github.com/swedishsplidney/BitSwiss", "demo": "https://github.com/swedishsplidney/BitSwiss/releases"}]...
|
[{"post_id": 4088, "ts": "2026 [{"post_id": 4088, "ts": "2026-06-07T08:52:50Z", "hours": 1.0131, "text": "just spent an hour debugging just to get a working build for microslop windows… finally got it working successfully though, kinda goofy on occasion but does work, thankfully"}, {"post_id": 4017, "ts": "2026-06-07T05:41:26Z", "hours": 3.6267, "text": "pretty much ready to ship! more than doubled the package list, to over 109 packages, now totaling over 600gb of data other than that it was ui tweaks, code cleanup and testing the windows and mac versions in a vm if this seems kinda interesting, go read the readme at https://github.com/swedishsplidney/BitSwiss"}, {"post_id": 2655, "ts": "2026-06-05T10:10:59Z", "hours": 6.5953, "text": "downloading works! uses a full multi-threaded asynchronous download engine that automatically imports file sizes and dynamic file names using libcurl. added prebuilt binaries to the github at: https://github.com/swedishsplidney/BitSwiss if you wanna try it out, feel free, but only the linux binary is actually tested at this point it is a fully working application which feels super great you can now also include multiple platforms of zim readers too, making it fully all-in-one the readme in the repo is also much better now"}, {"post_id": 1914, "ts": "2026-06-04T04:25:21Z", "hours": 1.2667, "text": "settings menu with theme swapping system ImGui is pretty limited in what you can do but you can change the colors"}, {"post_id": 1804, "ts": "2026-06-04T00:54:39Z", "hours": 2.3597, "text": "working asynchronous accurate file size checking using libcurl and async worker threads. it now accurately and super quickly gets file sizes without needing manual input. new CHUNGUS preconfig option that is almost 300GB :0"}, {"post_id": 1386, "ts": "2026-06-03T11:56:41Z", "hours": 5.2528, "text": "completed a complete gui and data item system overhaul, it actually compiles now. right now it automatically detects when storage devices are plugged in and you can select from over 45 manually inputted dataset options from kiwix such as 3 different wikipedia sizes library of congress, stackoverflow, etc. 3 preconfigged profiles and a working progress bar on the bottom. it should work on linux windows and mac but who knows because I haven’t tested it on anything other than linux yet now it just needs to actually do the thing its supposed to lol"}, {"post_id": 1288, "ts": "2026-06-03T05:40:42Z", "hours": 1.7167, "text": "devlog 6/2/26: got the project created, wrote the README, and got dear ImGui working with the demo window. started writing the actual drive detection system, only for linux so far…"}]...
|
Title: BitSwiss by @swedishsplidney | Stardance
D Title: BitSwiss by @swedishsplidney | Stardance
Devlogs:
devlog 6/2/26: got the project created, wrote the README, and got dear ImGui working with the demo window. started writing the actual drive detection system, only for linux so far…
completed a complete gui and data item system overhaul, it actually compiles now. right now it automatically detects when storage devices are plugged in and you can select from over 45 manually inputted dataset options from kiwix such as 3 different wikipedia sizes library of congress, stackoverflow, etc. 3 preconfigged profiles and a working progress bar on the bottom. it should work on linux windows and mac but who knows because I haven’t tested it on anything other than linux yet now it just needs to actually do the thing its supposed to lol
working asynchronous accurate file size checking using libcurl and async worker threads. it now accurately and super quickly gets file sizes without needing manual input. new CHUNGUS preconfig option that is almost 300GB :0
settings menu with theme swapping system ImGui is pretty limited in what you can do but you can change the colors
downloading works! uses a full multi-threaded asynchronous download engine that automatically imports file sizes and dynamic file names using libcurl. added prebuilt binaries to the github at: https://github.com/swedishsplidney/BitSwiss if you wanna try it out, feel free, but only the linux binary is actually tested at this point it is a fully working application which feels super great you can now also include multiple platforms of zim readers too, making it fully all-in-one the readme in the repo is also much better now
pretty much ready to ship! more than doubled the package list, to over 109 packages, now totaling over 600gb of data other than that it was ui tweaks, code cleanup and testing the windows and mac versions in a vm if this seems kinda interesting, go read the readme at https://github.com/swedishsplidney/BitSwiss
just spent an hour debugging just to get a working build for microslop windows… finally got it working successfully though, kinda goofy on occasion but does work, thankfully
Ships:
BitSwiss is an open source, cross platform archiving tool to easily download offline archives of over 100 web .zim archives to a removable media device, creating fully offline digital “swiss army knives” that can be used anywhere, on any (desktop) device. it can also include portable, installation free, offline readers for all the archives. available packages: all of wikipedia gutenberg collection (over 75,000 public domain ebooks) stackoverflow and stackexchange forums for many topics full ifixit repair guide archive developer documentation for many scripting languages/libraries/workflows/etc. full libretexts textbook and other educational text archives entire medlineplus archive for medical info full khanacademy, crashcourse, and freecodecamp courses for learning NASA astronomy picture of the day archive with expert explanations preconfigured setups for 16, 32, 64, and 128gb drives. also some field-focused presets for coding, computer science, outer space, and more. BitSwiss works by first using libcurl to grab the file sizes, then filters the URL to get the file name. it then uses a multithreaded concurrent download system to quickly and efficiently download packages (for more info, refer to the “how it works” section of the readme. coded in C++ using JetBrains CLion on Fedora 44 KDE. compiled with CMake for linux, macOS and windows...
|
1792997305.5930274
|
1793083705.5930274
|
|
2315
|
My Own Planet by @Landen_A | Stardance
|
Landen_A
|
1
|
34.0
|
395
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-27T02:49:20Z", "hours": 34.0, "multiplier": 11.82, "payout": 395, "blessing": "neutral", "text": "My Own Planet is a simple app that allows you to create your very own planet using a variety of options. Even though My Own Planet isn’t very complex it still through a challenge. Creating the planet mesh in bevy wasn’t so hard but vertex displacement, UI, and WebAssembly compatibility did! Creating this app have taught me a surprising number of things. From objects defined with vertices to creating a UI system, what I have learned from this project is what I am most proud of. Running the project should be straightforward either run the WebAssembly version on itch.io, download, uncompress, and run the executable from itch.io, or follow the building instructions in GitHub (note that you will need to have rustup installed to build the app on your computer)", "repo": "https://github.com/looking-g/My-Own-Planet", "demo": "https://landening.itch.io/my-own-planet"}]...
|
[{"post_id": 16642, "ts": "202 [{"post_id": 16642, "ts": "2026-06-27T02:05:44Z", "hours": 3.6986, "text": "My Own Planet have reached v1.0.0 I have worked on the export feature and now the planet can be downloaded as .obj for both local and WebAssembly. The project is also now on itch.io as well!"}, {"post_id": 12918, "ts": "2026-06-21T04:45:05Z", "hours": 10.5256, "text": "Additions, Exporting, and the End Hey guys! It’s been a while (again). Since the last devlog, I have added a few new ways to edit your planet! You can now add mountains and change the size, color, and quality (number of vertices used) of the planet. I have also started work on an exporting feature that allows you to get a file that contains your planet (don’t worry, it will be common file like .obj ; not a format specific to this app). Currently it doesn’t work when compiled to WebAssembly so, it isn’t finished just yet. But, once it is working on the web it will start preparing to ship the app. Although that could change, just know that my next devlog might be the last one for this project. That’s it for now, bye!"}, {"post_id": 6601, "ts": "2026-06-11T02:29:01Z", "hours": 8.2781, "text": "It has been a while! Lately, I have been working on the UI for the app. Nothing super fancy, just a few buttons and text elements. I’m thinking of using sliders for planet editing; instead of +/- a crater, there would be a slider from 0 to 100 craters. The only problem is that it would limit the amount of craters and such you could have, let me know what you think in the comments! And if you have any other improvements you think would be good for the app UI, let me know! I’m thinking of wrapping up this project by the end of the week and getting it ready to ship. I have been hard at work on this project and I’m starting to feel a little burnt out, so I might take the next day or two to relax, meaning that plans could change. See you all next time, Bye!"}, {"post_id": 5218, "ts": "2026-06-08T22:34:09Z", "hours": 4.2575, "text": "Welcome back! This will be my second devlog if you count my intro log as devlog 0 (which I do). Not much technical stuff this time but that’s OK, normal words are good sometimes! Since the last devlog, I’ve made a few small things like a user input system that allows the planet to be spun by using the cursor (craters can also be generated by using the C key but that’s just for testing). I have also put to use a system that I made a while ago that gets a random point on the surface of the planet. Although bevy dose have a system just for that called ShapeSample , the implementation is like 30 lines long and this way I have full control over the system."}, {"post_id": 4450, "ts": "2026-06-07T19:32:14Z", "hours": 6.8458, "text": "Vertices, vertices, vertices. Before this project, I had only used Signed Distance Functions (SDFs) to define shapes, not anymore! Recently, I had started messing with vertices to define the planet in my app. I started with thinking about adding craters. I was thinking something along the lines of “Oh, I’ll just get the subtract a sphere from planet to remove some area and make a crater!” I soon found out, however, that is the case with SDFs, but not with an object defined with vertices. Eventually, I found out about vertex displacement. The idea is pretty neat: I move each vertex toward the center of the sphere depending on if it’s in the aria where a crater should be. No need to add extra vertices, just use the ones already there! But the really cool part is that this can be done on the CPU or on the GPU with a vertex shader! But that’s about all for now, currently I’m just doing vertex displacement on the CPU but that could change in the future. See you all later, bye!"}, {"post_id": 622, "ts": "2026-06-02T03:53:25Z", "hours": 0.2997, "text": "Hello! This is my first devlog for this project that I am excited to make and share. To start, my goal is to make a simple app that allows the user to generate a custom planet using a few different options like the number of craters or color of the planet. I don’t plan for it to be very complex. I might add a shader or more complex options later but, time will tell. I’m making this app as a way to learn more about 3D environments and procedural generation. Today, I just made a very simple setup for bevy that crates a camera, sphere, and light source. See you all later, bye!"}]...
|
Title: My Own Planet by @Landen_A | Stardance
Dev Title: My Own Planet by @Landen_A | Stardance
Devlogs:
Hello! This is my first devlog for this project that I am excited to make and share. To start, my goal is to make a simple app that allows the user to generate a custom planet using a few different options like the number of craters or color of the planet. I don’t plan for it to be very complex. I might add a shader or more complex options later but, time will tell. I’m making this app as a way to learn more about 3D environments and procedural generation. Today, I just made a very simple setup for bevy that crates a camera, sphere, and light source. See you all later, bye!
Vertices, vertices, vertices. Before this project, I had only used Signed Distance Functions (SDFs) to define shapes, not anymore! Recently, I had started messing with vertices to define the planet in my app. I started with thinking about adding craters. I was thinking something along the lines of “Oh, I’ll just get the subtract a sphere from planet to remove some area and make a crater!” I soon found out, however, that is the case with SDFs, but not with an object defined with vertices. Eventually, I found out about vertex displacement. The idea is pretty neat: I move each vertex toward the center of the sphere depending on if it’s in the aria where a crater should be. No need to add extra vertices, just use the ones already there! But the really cool part is that this can be done on the CPU or on the GPU with a vertex shader! But that’s about all for now, currently I’m just doing vertex displacement on the CPU but that could change in the future. See you all later, bye!
Welcome back! This will be my second devlog if you count my intro log as devlog 0 (which I do). Not much technical stuff this time but that’s OK, normal words are good sometimes! Since the last devlog, I’ve made a few small things like a user input system that allows the planet to be spun by using the cursor (craters can also be generated by using the C key but that’s just for testing). I have also put to use a system that I made a while ago that gets a random point on the surface of the planet. Although bevy dose have a system just for that called ShapeSample , the implementation is like 30 lines long and this way I have full control over the system.
It has been a while! Lately, I have been working on the UI for the app. Nothing super fancy, just a few buttons and text elements. I’m thinking of using sliders for planet editing; instead of +/- a crater, there would be a slider from 0 to 100 craters. The only problem is that it would limit the amount of craters and such you could have, let me know what you think in the comments! And if you have any other improvements you think would be good for the app UI, let me know! I’m thinking of wrapping up this project by the end of the week and getting it ready to ship. I have been hard at work on this project and I’m starting to feel a little burnt out, so I might take the next day or two to relax, meaning that plans could change. See you all next time, Bye!
Additions, Exporting, and the End Hey guys! It’s been a while (again). Since the last devlog, I have added a few new ways to edit your planet! You can now add mountains and change the size, color, and quality (number of vertices used) of the planet. I have also started work on an exporting feature that allows you to get a file that contains your planet (don’t worry, it will be common file like .obj ; not a format specific to this app). Currently it doesn’t work when compiled to WebAssembly so, it isn’t finished just yet. But, once it is working on the web it will start preparing to ship the app. Although that could change, just know that my next devlog might be the last one for this project. That’s it for now, bye!
My Own Planet have reached v1.0.0 I have worked on the export feature and now the planet can be downloaded as .obj for both local and WebAssembly. The project is also now on itch.io as well!
Ships:
My Own Planet is a simple app that allows you to create your very own planet using a variety of options. Even though My Own Planet isn’t very complex it still through a challenge. Creating the planet mesh in bevy wasn’t so hard but vertex displacement, UI, and WebAssembly compatibility did! Creating this app have taught me a surprising number of things. From objects defined with vertices to creating a UI system, what I have learned from this project is what I am most proud of. Running the project should be straightforward either run the WebAssembly version on itch.io, download, uncompress, and run the executable from itch.io, or follow the building instructions in GitHub (note that you will need to have rustup installed to build the app on your computer)...
|
1792961546.7434323
|
1793047946.7434323
|
|
18771
|
BigBrother Bot by @jachym_fukal | Stardance
|
jachym_fukal
|
1
|
25.0
|
395
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-05T11:15:10Z", "hours": 25.0, "multiplier": 15.87, "payout": 395, "blessing": "neutral", "text": "BigBrother is a 1984-themed Slack bot that turns your workspace into Oceania. It runs five modules: Surveillance tracks message activity across channels and maintains a leaderboard of who’s been most “active” (watched). Telescreen broadcasts Orwellian announcements to the workspace. Police runs sentiment analysis on messages and flags thoughtcrime — positivity is suspicious. Truth rewrites real news headlines in Party-approved doublespeak using NewsAPI + Groq. DM lets you talk directly to Big Brother, who responds in full authoritarian character via LLM. Built with Node.js + Bolt.js over Hack Club Stardance. Big Brother is always watching — especially in #1984.", "repo": "https://github.com/Projachmann/Slack_Bot", "demo": "https://hackclub.enterprise.slack.com/archives/C09F6AAP1PF"}]...
|
[{"post_id": 22745, "ts": "202 [{"post_id": 22745, "ts": "2026-07-05T10:14:25Z", "hours": 0.5808, "text": "Wrote the README and stopped the prerequisites file from lying about itself The repo had no README and prerequisites.md was three stray lines ( axios , node-cron , fs ) that didn’t actually match what package.json declared or what main.js fails fast on at boot. Rewrote prerequisites.md as a pure library install reference — packages, versions, and one npm install command — then wrote a README that follows the structure the Stardance judges actually want: one-sentence description, hero image slot, a try-it link, quick start, features, local setup, and a “how it works” section that earns its keep by naming real decisions (Socket Mode over HTTP so it runs behind any network, self-rescheduling crons with re-rolling fire times, file-locked JSON as a tiny DB instead of SQLite, sequential Groq calls to dodge rate limits). The friction was the Node version. There’s no engines field in package.json and no .nvmrc , so I didn’t want to just assert “Node 18+” without evidence. Grepping package-lock.json for \"engines\" turned up ~100 matches and the binding constraint is @slack/bolt ‘s transitive deps all declaring \"node\": \">=18\" — so that’s the honest floor, stated as such. Also swapped the watched channel ID in Code/main.js from C0BBBCER55W to C09F6AAP1PF to match the workspace in the invite link I was handed. Caught one real issue while reviewing: the “Try it” link was a channel permalink ( /archives/C09F6... ), which a non-member hits a sign-in wall on, flagged it, left it in since it’s an internal members link."}, {"post_id": 22442, "ts": "2026-07-04T22:13:14Z", "hours": 2.0994, "text": "Made Big Brother stop lying about your loyalty score The /bigbrother-loyalty command was silently corrupting its own scoreboard. Every call overwrote the user’s stored score with whatever the current calculation produced — which meant a citizen who hit 200 points last week would see their displayed rank drop to 50 after a quiet few days. The scoreboard was a ledger of “most recent” instead of “best ever”, which is the opposite of how a loyalty panopticon should work. The fix in Code/Surveillance.js was small but mattered: scoreboard() now only writes when the new score strictly beats the stored high, and stamps an achievedAt ISO timestamp on each new record. While in there, I also wired /bigbrother-scoreboard to refresh the caller’s score before displaying, so running it actually updates your entry — previously it just read stale data. The refresh is wrapped in try/catch so a transient Slack or HuggingFace failure doesn’t break the leaderboard read. That scoreboard bug was the tip of a much longer audit. The same session surfaced and fixed ~50 defects across the codebase: Surveillance.presenceCheck was returning undefined (not 0 ) on unknown presence values, producing NaN loyalty scores that then broke the sort; Telescreen.propaganda() would crash with TypeError if broadcasts.json was empty; Truth.getNews() called .map() on a potentially-missing articles array; concurrent readFile / writeFile pairs on the same JSON file were last-writer-wins. Added a 12-line per-file async mutex in Code/lock.js and wrapped every read-merge-write critical section. Also added .env validation at boot — previously a missing HF_TOKEN would surface as an undefined auth header 45 minutes into a Slack session instead of failing at startup."}, {"post_id": 22127, "ts": "2026-07-04T12:55:36Z", "hours": 1.0925, "text": "Added DM support: BigBrother can now talk back Users can now DM the bot and get a response in character as BigBrother, powered by Llama 3.3 on Groq. The bot keeps a per-user conversation history (capped at 30 messages) so it actually remembers what you said earlier in the conversation. History lives in memory, so it resets on restart, intentional, didn’t feel worth the complexity of persisting it. The interesting part was Slack’s permission system. Adding the im:history , im:read , and im:write scopes wasn’t enough on its own, you also need to separately subscribe to the message.im event under Event Subscriptions. The scopes let the bot act on DMs, the event subscription is what actually delivers them. Spent a while staring at logs with no “DM received” entries before finding that."}, {"post_id": 19901, "ts": "2026-07-01T10:23:39Z", "hours": 0.3794, "text": "Replaced every console.log in the bot with a leveled logger. The old setup was five files each printing things like “Message received!”, “Responding…”, and “Messages saved!” with no way to tell which file was talking or which run produced which line. Replaced it all with a single Code/Logger.js that adds timestamps, severity ( debug / info / warn / error ), a subsystem tag per file, and structured metadata. Errors now print a full stack trace on a second dimmed line instead of [object Object] . The visual difference is the whole point. Before, /bigbrother-loyalty produced four console.log lines with no correlation. After, it produces one timestamped line per stage — fetch, score, scoreboard write — and you can grep by subsystem or level. The interesting bug: my first Logger.js had a guard that re-checked whether meta was undefined, but I also had a fallback that promoted a non- Error second argument into meta . The two branches collided and swallowed the error stack entirely. Caught it in a two-line test snippet before staging, would have been invisible until the first real API failure. Also stopped logging the full Hugging Face response on every sentiment check. Now it only prints the per-label scores rounded to three decimals, same diagnostic value, way less noise."}, {"post_id": 19331, "ts": "2026-06-30T16:42:16Z", "hours": 3.2917, "text": "Two Minute Hate, now interactive Built a /bigbrother-hate command for the Slack bot that escalates the existing 11:00 Two Minute Hate through 3 stages (Whisper → Roar → Frenzy) based on call count, with in-character stage-transition announcements and increasing-intensity bot posts. The interesting part was the difficulty curve. Base thresholds are 5 and 15 calls, but they get multiplied each day by yesterday / 7-day-mean, clamped 0.5–2.0. So if Monday had 20 calls and Tuesday only 15, Wednesday’s threshold drops to ~62% of the base — easier to escalate on quiet days. First pass forgot to reset usageCount and stage on the daily recompute, so the bot stayed pinned at Frenzy forever after one good session. Caught it on the second test run. Wired it to the existing 11:00–11:02 cron window so calls outside it get an in-character refusal. Also added hateLevel.json to .gitignore since it’s pure runtime state. Next: DMing the bot, probably tackling that before adding more interactive bits."}, {"post_id": 15891, "ts": "2026-06-25T20:30:07Z", "hours": 1.0044, "text": "The /bigbrother-loyalty command now doubles as a live leaderboard, every call re-ranks and displays the top 10 most loyal Party members. Plugging into the existing loyalty score pipeline meant the scoreboard itself was straightforward to build, but getting the Slack Block Kit formatting right for a clean ranked list took longer than expected. Ended up iterating through a few layouts before settling on one that doesn’t look terrible."}, {"post_id": 15796, "ts": "2026-06-25T17:55:42Z", "hours": 1.48, "text": "Loyalty scoring now factors in message sentiment. I added positive/negative sentiment saving by reusing the existing 7-day message cache logic, then wired the Surveillance module to read those sentiment files the same way it already reads other JSON, no new infrastructure needed. The score itself now reflects not just how active a user is, but whether they’re saying good or bad things about the Party."}, {"post_id": 15297, "ts": "2026-06-24T20:53:30Z", "hours": 1.2728, "text": "Stopped reloading 10 channels every time someone checks their loyalty score The surveillance system was fetching all messages from all 10 channels on every single /bigbrother-loyalty call. That meant a ~ 50 second wait every time. Not great when Big Brother is supposed to feel instant and omniscient. The fix: the bot now keeps a local JSON file of all messages. When someone requests their score, it only fetches messages newer than the newest one already saved, then deletes anything older than 7 days to keep the file lean. On top of that, a cron job rewrites the whole file once a day so it never drifts out of sync. Score lookups that took a minute now finish in a couple seconds. The panopticon is finally fast enough to be scary."}, {"post_id": 15241, "ts": "2026-06-24T19:04:42Z", "hours": 1.0067, "text": "Get more than one 1984 themed headline The /bigbrother-news command could technically accept a count, but it always returned exactly one rewrite no matter what you passed. First, rewriteHeadline was looping over the headlines array but always sending headline[0] to Groq, so it was rewriting the same headline count times. Second, the function returned an array but respond() was getting that array passed directly as text, which Slack rejects with a 500 because it expects a string. Fixed both, headline[i] in the loop, .join(\"\\n\") before responding. Also added a .replace(/^[\"\"]|[\"\"]$/g, \"\") strip because the model randomly decides whether to wrap its output in quotes or not and I’d rather it just didn’t. The original code also only ever called rewriteHeadline with a single headline and had no loop at all, scaling it up to handle multiple rewrites sequentially meant restructuring the whole function."}, {"post_id": 14697, "ts": "2026-06-23T21:56:43Z", "hours": 1.3711, "text": "Added the Ministry of Truth module Fetches real news headlines via NewsAPI, pipes them through Llama 3.3 on Groq, and rewrites them as state propaganda. The results are genuinely unsettling because they’re based on actual news. A Tesla autopilot crash became “Citizen Misalignment with Vehicle Guidance Systems Results in Regrettable Isolated Incident in Texas Residential Sector” which I think is funnier than anything I could have written myself. The bug that got me: I passed the respond function itself as the text value instead of the actual result. Slack received an empty object, returned invalid_payload , and I spent way too long staring at the Groq response before noticing the slash command handler was the problem, not the API call."}, {"post_id": 13886, "ts": "2026-06-22T19:11:41Z", "hours": 1.8572, "text": "Built the Thought Police module for my 1984 themed Slack bot Added a Thought Police module that watches messages in a specific channel, scores their sentiment using HuggingFace’s RoBERTa model, and fires a Big Brother-themed response if the message is negative or positive enough. The bot replies in-thread which feels way more unsettling than posting standalone, like it’s whispering directly at you. Hit a bunch of friction getting here though. The Perspective API I originally planned to use got sunset, then the HuggingFace inference endpoint URL changed mid-build and started returning ENOTFOUND , turned out the old api-inference.huggingface.co domain was dead and needed to be swapped to router.huggingface.co . Then the response labels came back lowercase ( negative instead of Negative ) which broke the score parsing silently, the bot was running but returning undefined for everything."}, {"post_id": 13233, "ts": "2026-06-21T17:45:42Z", "hours": 1.8667, "text": "Automated propaganda broadcasts for my 1984-themed Slack bot, random timing every day, plus a daily Two Minutes Hate at 11:00. Imagine you are the head of Propaganda of an authoritarian state and you need to automate propaganda releases. Well, this is how I felt today after trying to automate this exact process. In the book 1984 propaganda is everywhere, so I replicated that. The hardest part for me was the writing of the propaganda. This is because I, as unexpected as it sounds, am not the head of Propaganda in an authoritarian state, so after around 10 minutes I asked my good friend Claude if he could write me some propaganda. Claude generated 50 different messages. If anybody has some propaganda messages I could use just DM me on Slack or write it in the comments! The next step for me is to become the head of police and automate the flagging of negative sentiments."}, {"post_id": 13042, "ts": "2026-06-21T10:16:59Z", "hours": 1.3825, "text": "Slash commands in Slack don’t convert @mentions to user IDs and I learned that the hard way. My /bigbrother-loyalty command was getting @jachym.fukal as plain text instead of <@U09L3LVPJ82> , so the regex I wrote was completely useless. The workspace also has 30k+ users so just fetching the whole user list isn’t an option either. For now the command just takes a raw user ID, which isn’t pretty but works. Next step is figuring out a cleaner way to handle this."}, {"post_id": 12760, "ts": "2026-06-20T21:25:02Z", "hours": 1.5308, "text": "Sieving through all channels would have taken hours. Now I am only using 10, which are the most used ones on the Hackclub workspace. So I wrote a code that scans these 10 channels for messages of a specific user, which I want to use for a loyalty score in the future. But the problem isn’t completely solved, because the script needs around 50 seconds to look through these 10 channels. So now I am in a bit of a pickle. I am thinking about saving the data from the last scan and then only retrieving new data from the channels."}, {"post_id": 12445, "ts": "2026-06-20T09:39:50Z", "hours": 4.9919, "text": "Added the first version of the bot’s surveillance system. My original plan was to scan every channel in the Hack Club workspace weekly and fetch message history from all channels whenever a slash command was used. After looking into it, I realized the workspace has so many channels that a single command could take hours to finish, making the approach impractical. For now, I switched to a manually curated list of channels that the bot will monitor while I investigate a more scalable solution."}]...
|
Title: BigBrother Bot by @jachym_fukal | Stardance Title: BigBrother Bot by @jachym_fukal | Stardance
Devlogs:
Added the first version of the bot’s surveillance system. My original plan was to scan every channel in the Hack Club workspace weekly and fetch message history from all channels whenever a slash command was used. After looking into it, I realized the workspace has so many channels that a single command could take hours to finish, making the approach impractical. For now, I switched to a manually curated list of channels that the bot will monitor while I investigate a more scalable solution.
Sieving through all channels would have taken hours. Now I am only using 10, which are the most used ones on the Hackclub workspace. So I wrote a code that scans these 10 channels for messages of a specific user, which I want to use for a loyalty score in the future. But the problem isn’t completely solved, because the script needs around 50 seconds to look through these 10 channels. So now I am in a bit of a pickle. I am thinking about saving the data from the last scan and then only retrieving new data from the channels.
Slash commands in Slack don’t convert @mentions to user IDs and I learned that the hard way. My /bigbrother-loyalty command was getting @jachym.fukal as plain text instead of <@U09L3LVPJ82> , so the regex I wrote was completely useless. The workspace also has 30k+ users so just fetching the whole user list isn’t an option either. For now the command just takes a raw user ID, which isn’t pretty but works. Next step is figuring out a cleaner way to handle this.
Automated propaganda broadcasts for my 1984-themed Slack bot, random timing every day, plus a daily Two Minutes Hate at 11:00. Imagine you are the head of Propaganda of an authoritarian state and you need to automate propaganda releases. Well, this is how I felt today after trying to automate this exact process. In the book 1984 propaganda is everywhere, so I replicated that. The hardest part for me was the writing of the propaganda. This is because I, as unexpected as it sounds, am not the head of Propaganda in an authoritarian state, so after around 10 minutes I asked my good friend Claude if he could write me some propaganda. Claude generated 50 different messages. If anybody has some propaganda messages I could use just DM me on Slack or write it in the comments! The next step for me is to become the head of police and automate the flagging of negative sentiments.
Built the Thought Police module for my 1984 themed Slack bot Added a Thought Police module that watches messages in a specific channel, scores their sentiment using HuggingFace’s RoBERTa model, and fires a Big Brother-themed response if the message is negative or positive enough. The bot replies in-thread which feels way more unsettling than posting standalone, like it’s whispering directly at you. Hit a bunch of friction getting here though. The Perspective API I originally planned to use got sunset, then the HuggingFace inference endpoint URL changed mid-build and started returning ENOTFOUND , turned out the old api-inference.huggingface.co domain was dead and needed to be swapped to router.huggingface.co . Then the response labels came back lowercase ( negative instead of Negative ) which broke the score parsing silently, the bot was running but returning undefined for everything.
Added the Ministry of Truth module Fetches real news headlines via NewsAPI, pipes them through Llama 3.3 on Groq, and rewrites them as state propaganda. The results are genuinely unsettling because they’re based on actual news. A Tesla autopilot crash became “Citizen Misalignment with Vehicle Guidance Systems Results in Regrettable Isolated Incident in Texas Residential Sector” which I think is funnier than anything I could have written myself. The bug that got me: I passed the respond function itself as the text value instead of the actual result. Slack received an empty object, returned invalid_payload , and I spent way too long staring at the Groq response before noticing the slash command handler was the problem, not the API call.
Get more than one 1984 themed headline The /bigbrother-news command could technically accept a count, but it always returned exactly one rewrite no matter what you passed. First, rewriteHeadline was looping over the headlines array but always sending headline[0] to Groq, so it was rewriting the same headline count times. Second, the function returned an array but respond() was getting that array passed directly as text, which Slack rejects with a 500 because it expects a string. Fixed both, headline[i] in the loop, .join("\n") before responding. Also added a .replace(/^[""]|[""]$/g, "") strip because the model randomly decides whether to wrap its output in quotes or not and I’d rather it just didn’t. The original code also only ever called rewriteHeadline with a single headline and had no loop at all, scaling it up to handle multiple rewrites sequentially meant restructuring the whole function.
Stopped reloading 10 channels every time someone checks their loyalty score The surveillance system was fetching all messages from all 10 channels on every single /bigbrother-loyalty call. That meant a ~ 50 second wait every time. Not great when Big Brother is supposed to feel instant and omniscient. The fix: the bot now keeps a local JSON file of all messages. When someone requests their score, it only fetches messages newer than the newest one already saved, then deletes anything older than 7 days to keep the file lean. On top of that, a cron job rewrites the whole file once a day so it never drifts out of sync. Score lookups that took a minute now finish in a couple seconds. The panopticon is finally fast enough to be scary.
Loyalty scoring now factors in message sentiment. I added positive/negative sentiment saving by reusing the existing 7-day message cache logic, then wired the Surveillance module to read those sentiment files the same way it already reads other JSON, no new infrastructure needed. The score itself now reflects not just how active a user is, but whether they’re saying good or bad things about the Party.
The /bigbrother-loyalty command now doubles as a live leaderboard, every call re-ranks and displays the top 10 most loyal Party members. Plugging into the existing loyalty score pipeline meant the scoreboard itself was straightforward to build, but getting the Slack Block Kit formatting right for a clean ranked list took longer than expected. Ended up iterating through a few layouts before settling on one that doesn’t look terrible.
Two Minute Hate, now interactive Built a /bigbrother-hate command for the Slack bot that escalates the existing 11:00 Two Minute Hate through 3 stages (Whisper → Roar → Frenzy) based on call count, with in-character stage-transition announcements and increasing-intensity bot posts. The interesting part was the difficulty curve. Base thresholds are 5 and 15 calls, but they get multiplied each day by yesterday / 7-day-mean, clamped 0.5–2.0. So if Monday had 20 calls and Tuesday only 15, Wednesday’s threshold drops to ~62% of the base — easier to escalate on quiet days. First pass forgot to reset usageCount and stage on the daily recompute, so the bot stayed pinned at Frenzy forever after one good session. Caught it on the second test run. Wired it to the existing 11:00–11:02 cron window so calls outside it get an in-character refusal. Also added hateLevel.json to .gitignore since it’s pure runtime state. Next: DMing the bot, probably tackling that before adding more interactive bits.
Replaced every console.log in the bot with a leveled logger. The old setup was five files each printing things like “Message received!”, “Responding…”, and “Messages saved!” with no way to tell which file was talking or which run produced which line. Replaced it all with a single Code/Logger.js that adds timestamps, severity ( debug / info / warn / error ), a subsystem tag per file, and structured metadata. Errors now print a full stack trace on a second dimmed line instead of [object Object] . The visual difference is the whole point. Before, /bigbrother-loyalty produced four console.log lines with no correlation. After, it produces one timestamped line per stage — fetch, score, scoreboard write — and you can grep by subsystem or level. The interesting bug: my first Logger.js had a guard that re-checked whether meta was undefined, but I also had a fallback that promoted a non- Error second argument into meta . The two branches collided and swallowed the error stack entirely. Caught it in a two-line test snippet before staging, would have been invisible until the first real API failure. Also stopped logging the full Hugging Face response on every sentiment check. Now it only prints the per-label scores rounded to three decimals, same diagnostic value, way less noise.
Added DM support: BigBrother can now talk back Users can now DM the bot and get a response in character as BigBrother, powered by Llama 3.3 on Groq. The bot keeps a per-user conversation history (capped at 30 messages) so it actually remembers what you said earlier in the conversation. History lives in memory, so it resets on restart, intentional, didn’t feel worth the complexity of persisting it. The interesting part was Slack’s permission system. Adding the im:history , im:read , and im:write scopes wasn’t enough on its own, you also need to separately subscribe to the message.im event under Event Subscriptions. The scopes let the bot act on DMs, the event subscription is what actually delivers them. Spent a while staring at logs with no “DM received” entries before finding that.
Made Big Brother stop lying about your loyalty score The /bigbrother-loyalty command was silently corrupting its own scoreboard. Every call overwrote the user’s stored score with whatever the current calculation produced — which meant a citizen who hit 200 points last week would see their displayed rank drop to 50 after a quiet few days. The scoreboard was a ledger of “most recent” instead of “best ever”, which is the opposite of how a loyalty panopticon should work. The fix in Code/Surveillance.js was small but mattered: scoreboard() now only writes when the new score strictly beats the stored high, and stamps an achievedAt ISO timestamp on each new record. While in there, I also wired /bigbrother-scoreboard to refresh the caller’s score before displaying, so running it actually updates your entry — previously it just read stale data. The refresh is wrapped in try/catch so a transient Slack or HuggingFace failure doesn’t break the leaderboard read. That scoreboard bug was the tip of a much longer audit. The same session surfaced and fixed ~50 defects across the codebase: Surveillance.presenceCheck was returning undefined (not 0 ) on unknown presence values, producing NaN loyalty scores that then broke the sort; Telescreen.propaganda() would crash with TypeError if broadcasts.json was empty; Truth.getNews() called .map() on a potentially-missing articles array; concurrent readFile / writeFile pairs on the same JSON file were last-writer-wins. Added a 12-line per-file async mutex in Code/lock.js and wrapped every read-merge-write critical section. Also added .env validation at boot — previously a missing HF_TOKEN would surface as an undefined auth header 45 minutes into a Slack session instead of failing at startup.
Wrote the README and stopped the prerequisites file from lying about itself The repo had no README and prerequisites.md was three stray lines ( axios , node-cron , fs ) that didn’t actually match what package.json declared or what main.js fails fast on at boot. Rewrote prerequisites.md as a pure library install reference — packages, versions, and one npm install command — then wrote a README that follows the structure the Stardance judges actually want: one-sentence description, hero image slot, a try-it link, quick start, features, local setup, and a “how it works” section that earns its keep by naming real decisions (Socket Mode over HTTP so it runs behind any network, self-rescheduling crons with re-rolling fire times, file-locked JSON as a tiny DB instead of SQLite, sequential Groq calls to dodge rate limits). The friction was the Node version. There’s no engines field in package.json and no .nvmrc , so I didn’t want to just assert “Node 18+” without evidence. Grepping package-lock.json for "engines" turned up ~100 matches and the binding constraint is @slack/bolt ‘s transitive deps all declaring "node": ">=18" — so that’s the honest floor, stated as such. Also swapped the watched channel ID in Code/main.js from C0BBBCER55W to C09F6AAP1PF to match the workspace in the invite link I was handed. Caught one real issue while reviewing: the “Try it” link was a channel permalink ( /archives/C09F6... ), which a non-member hits a sign-in wall on, flagged it, left it in since it’s an internal members link.
Ships:
BigBrother is a 1984-themed Slack bot that turns your workspace into Oceania. It runs five modules: Surveillance tracks message activity across channels and maintains a leaderboard of who’s been most “active” (watched). Telescreen broadcasts Orwellian announcements to the workspace. Police runs sentiment analysis on messages and flags thoughtcrime — positivity is suspicious. Truth rewrites real news headlines in Party-approved doublespeak using NewsAPI + Groq. DM lets you talk directly to Big Brother, who responds in full authoritarian character via LLM. Built with Node.js + Bolt.js over Hack Club Stardance. Big Brother is always watching — especially in #1984....
|
1792972154.4985144
|
1793058554.4985144
|
|
54773
|
DMGTile by @Wirenux | Stardance
|
Wirenux
|
2
|
31.0
|
394
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-20T13:06:36Z", "hours": 16.0, "multiplier": 11.12, "payout": 183, "blessing": "neutral", "text": "DMGTile v2 - GPUI Rewrite This version is a full rewrite of the UI (and some other functionality) with GPUI (the framework that Zed use). I kept every feature from the v1, 128-tile projects, undo/redo, copy/paste/cut, .dmgtile save/load, .bin and .c export, all the drawing tools. And rebuilt the interface from scratch with a pixel-art aesthetic: pixelated corner on every panel, a pixel font, and cached GPU textures for thumbnails and previews. What I added in this version ? Toast notifications for save, export, and error feedback Native macOS menu bar with File / Edit / Help, plus a matching in-window bar on Windows and Linux Real app icon Optimized tile list that only renders visible tiles, so scrolling stays smooth I also added the toast notification (compared to V1) The app is now more macOS compliant, I was able to add the top bar with the classic : File, Edit, View, Help etc… I was also able to put a icon ! What can I do now ? Everything you need to know is in the README.md or in the GitHub Release This might sound like a little update but the rewrite took me around 17 hour so…… thank you for reading ❤️ (I even made a cute little icon :D )", "repo": "https://github.com/wirenux/DMGTile", "demo": "https://github.com/wirenux/DMGTile/releases/"}, {"ship_num": 2, "ts": "2026-09-03T17:16:52Z", "hours": 15.0, "multiplier": 13.92, "payout": 211, "blessing": "neutral", "text": "What is this ? DMGTile is a Gameboy Tile Editor/Designer build in Rust. Basically it’s a drawing program for Gameboy game. Why ( °ヮ° ) ? The idea for this project came from GBTD (Gameboy Tile Designer), who is Windows only and kinda old… So I recreated it from-scratch in Rust, so it can run on Linux, Windows & macOS without Wine (or equivalent). And all of this with the same features as GBTD. Core Features ( ദ്ദി ˙ᗜ˙ ) Editor Pixel Painting: Use the mouse to paint ദ്ദി(˵ •̀ ᴗ - ˵ ) ✧ Bucket Fill: A classic flood-fill tool Transform Tools: You can flip, rotate, move the active tile Live Previews: A little 4x4 grid to preview the active tile in a pattern (e.g: a background) Cached Texture Rendering: Tile textures are cached and only rebuilt when a tile is modified Project Management Multi-Tile Support: You can draw up to 128 tiles per project file (you can scroll the list on the right of the screen to change tile) Undo/Redo: Each action is store in a stack, so you are able to undo or redo an action ! Copy/Paste/Cut: Duplicate or move tile data between slots (in the same project) File Format: Each project is saved in .dmgtile (JSON), storing only the modified tiles while preseving the tiles ID Keyboard Shortcut: Full Cmd/Ctrl support for New Project, Open, Save, Undo, Redo, etc… Even the tools have there own shortcut Export .bin Export: Exports all the modified tiles into the Gameboy’s native 2bpp format .c Export: Exports all the modified tiles as a C array, with configurable array name (Can be used with GBDK) Selective export: Only the modified tiles are written out Okay… but how to test it ? There is multiple way to test DMGTile but the easiest is to go to the Github Release and download the program for your OS ദ്ദി(˵ •̀ ᴗ - ˵ ) ✧ Then you can launch it and start drawing ! You can also try the export part to a .bin or .c file (you can see the note.md file on github, it’s my personal note when I was building DMGTile) Thank you Just a little thank you ❤️ (Every things you need is probably in the README.md) (I even made a cute little icon :D )", "repo": "https://github.com/wirenux/DMGTile", "demo": "https://github.com/wirenux/DMGTile/releases/"}]...
|
[{"post_id": 71193, "ts": "202 [{"post_id": 71193, "ts": "2026-09-20T12:52:44Z", "hours": 0.9414, "text": "This is the last devlogs for DMGTile. AKA the V2 Release . I modified the README for the GPUI version, made the github release and last minutes fix. Bye bye"}, {"post_id": 71136, "ts": "2026-09-20T10:40:25Z", "hours": 1.6833, "text": "After 1h40 of headache I FINNALY added a menu bar to Linux and Windows . At first I wanted to use gpui-components but there was way to much issue with it so I build my own bar (in the same style as the whole app) I even created a quick Dockerfile to test on my mac the linux build. I also added the export to .c and .bin"}, {"post_id": 71056, "ts": "2026-09-20T07:55:11Z", "hours": 2.5719, "text": "In those 2h30 I’ve done a lot of thing The most of it was optimization with the Tile List Rendering and Caching but I also rearrange all the code (before it’s was just a big main.rs file) And I added Save, Open & New Project and clean a little bit"}, {"post_id": 69769, "ts": "2026-09-17T19:13:56Z", "hours": 1.0592, "text": "This is a short update because I fix some little bug like : Alignment on the tile list (with the number) Not getting the little shortcut sign on macOS And I added: Toast notification style with error color or success color"}, {"post_id": 69206, "ts": "2026-09-16T16:23:50Z", "hours": 1.9942, "text": "In 2 hours I added 2 big thing The Copy/Paste/Cut integration The tool bar Icon for the toolbar The icon was pretty long to make (because i suck at drawing… ) And implementing the tool bar too. Here are some picture of the icon and the toolbar (I use Aseprite btw)"}, {"post_id": 68248, "ts": "2026-09-14T19:31:57Z", "hours": 0.4703, "text": "This is a very very little update I added the same tools as in the EGUI version : Shift (Left, Right, Down, Up) and Rotate (it wasn’t difficult at all)"}, {"post_id": 67439, "ts": "2026-09-13T15:29:02Z", "hours": 5.365, "text": "A Lot of thing happen in 5h20 I create a custom UI with Game Boy related color, custom button, border, font, etc… For now I have the drawing zone, the preview, the tiles list, the shade selector and tools To be more specific I added rounder pixelated shade selector, rounded pixelated border, Undo, Redo, Draw/bucket tools"}, {"post_id": 64110, "ts": "2026-09-08T09:40:33Z", "hours": 0.5522, "text": "Little update : I added the Shade selector and the palette selector, but also the Early GameBoy font ! And I think it look nice"}, {"post_id": 64095, "ts": "2026-09-08T08:51:15Z", "hours": 1.8236, "text": "I just discovered gpui it’s a UI library based on the GPU. It was created by the same team that make Zed (the code editor). And I found out that it very personalizable. So I am rewriting DMGTile in it . So far I have the basic grid and basic tools like the bucket, the pencil, eraser etc… The only problem is that I can’t track the right click drag. (I also got the native macOS toolbar)"}, {"post_id": 60922, "ts": "2026-09-03T16:08:44Z", "hours": 1.1617, "text": "This might be the last devlogs before Ship Nº1 After wayyyy to much time the macOS, Windows and Linux build are ready ! Apple GateKeeper and windows Defender don’t like my application 😭 they both flag as something weird / virus… I also realize that my Linux build wasn’t working so I fix it ! I released v1.0.0 ! I added those warning about Windows Defender and Apple GateKeeper ! I also added the --dev flag to get the dev menu and finished the README.md"}, {"post_id": 59459, "ts": "2026-09-01T10:08:27Z", "hours": 0.6517, "text": "I have been writing the README.md before the release !"}, {"post_id": 59102, "ts": "2026-08-31T18:41:06Z", "hours": 0.9964, "text": "I change a little bit the logo to add a background for the app icon. Now the app run on macOS, Windows & Linux with icon on each one ! The next step is to make the README & a little Manual ! (And of course publish & build the release version for Windows MacOS & Linux !)"}, {"post_id": 59026, "ts": "2026-08-31T16:41:18Z", "hours": 1.2864, "text": "After 40min in Aseprite I am finally happy with a logo (I am so so pround of my self 😤 ). I designed it all by my self . Also I added some “toast” for a better UX."}, {"post_id": 58250, "ts": "2026-08-30T16:45:43Z", "hours": 0.7447, "text": "This is a little update. In this devlogs I just created & tested my Makefile to cross built for Linux, Windows, MacOS from my Mac. And this work !"}, {"post_id": 58187, "ts": "2026-08-30T15:22:18Z", "hours": 2.755, "text": "Wow 2h45 This the devlogs with the most things I added Here is a list of everything I added: A Export window Now allow up to 128 tiles on a single file When you draw somethings in tile 1 and on tile 6 in the .dmgtile file there will save only those 2 with there ID. In the .c file is the same but without there ID so there will just be right after the other (same thing for .bin ) “New project” button, with it you can start a…. NEW PROJECT Keyboard shortcut text in the top menu Keyboard shortcut to use every tool and change shade easily Hover text on every tool (to show the keyboard shortcut) Multiple tile render Move tool bar to the top for better UI Copy, Cut, Paste tile Add more Ctrl+Z utility Big chunk of tile see if it’s look good on repeat Andddd, that it (this was damn hard). You can find every commit on my github."}, {"post_id": 57963, "ts": "2026-08-30T09:27:33Z", "hours": 1.225, "text": "A big feature here I added the export to .dmgtile file (it’s just a JSON but modified ). You can also open it ! I also added the Undo / Redo with CTRL+Z & CTRL+SHIFT+Z (or the same but with CMD on macOS) and also in the Edit menu But for me the biggest feature of this devlogs is the Export menu where you can choose the extension (.bin or .c) and if you choose .c you can modify the array name . I also added the drag when using the bucket 🪣"}, {"post_id": 57596, "ts": "2026-08-29T19:56:50Z", "hours": 1.8133, "text": "A lot of change . I added a top bar to with the option to export the tile in .bin & .c For the top bar I had the idea of using muda but it just a complete mess on macOS and over kill for what I wanted to do so i just use the eframe equivalent I also added icon to replace the old text."}, {"post_id": 56748, "ts": "2026-08-28T17:05:51Z", "hours": 1.0083, "text": "Wow exaclty one hour Now the tile can be exported ! Understanting the Gameboy way to read tile was so hard that I started to write my own docs 💀 . In this devlogs the important part is just to know that now every tile can be exported in a .bin (later I will do a .c/.h like GBTD)"}, {"post_id": 56673, "ts": "2026-08-28T15:07:20Z", "hours": 1.5358, "text": "I added a LOT of thing (i think… ) . I added all the basic tool for pixel art (for the gameboy). Here is a list : Canvas movement (move the pixel art in the canvas), Horizontal and Vertical flip, Rotate 90 clockwise, Pen & Bucket tool. I also added a new RGB palette to get the classic green one and the gray one (I also did fixed some little bug with the UI and the canvas)"}, {"post_id": 55549, "ts": "2026-08-27T14:00:53Z", "hours": 0.7142, "text": "Little update here . I added some new things . I added the color selector ! Also some shade indicator for the left and right mouse button, since in the color selector you can change the color for both. (They even got there own little outline )"}, {"post_id": 55524, "ts": "2026-08-27T13:03:21Z", "hours": 1.2633, "text": "1st devlogs . Right now I added the very basic feature, the grid with draw and erase. You can draw in dark grey with the left click and erase (paint in white) with the right click !"}]...
|
Title: DMGTile by @Wirenux | Stardance
Devlogs:
1 Title: DMGTile by @Wirenux | Stardance
Devlogs:
1st devlogs . Right now I added the very basic feature, the grid with draw and erase. You can draw in dark grey with the left click and erase (paint in white) with the right click !
Little update here . I added some new things . I added the color selector ! Also some shade indicator for the left and right mouse button, since in the color selector you can change the color for both. (They even got there own little outline )
I added a LOT of thing (i think… ) . I added all the basic tool for pixel art (for the gameboy). Here is a list : Canvas movement (move the pixel art in the canvas), Horizontal and Vertical flip, Rotate 90 clockwise, Pen & Bucket tool. I also added a new RGB palette to get the classic green one and the gray one (I also did fixed some little bug with the UI and the canvas)
Wow exaclty one hour Now the tile can be exported ! Understanting the Gameboy way to read tile was so hard that I started to write my own docs 💀 . In this devlogs the important part is just to know that now every tile can be exported in a .bin (later I will do a .c/.h like GBTD)
A lot of change . I added a top bar to with the option to export the tile in .bin & .c For the top bar I had the idea of using muda but it just a complete mess on macOS and over kill for what I wanted to do so i just use the eframe equivalent I also added icon to replace the old text.
A big feature here I added the export to .dmgtile file (it’s just a JSON but modified ). You can also open it ! I also added the Undo / Redo with CTRL+Z & CTRL+SHIFT+Z (or the same but with CMD on macOS) and also in the Edit menu But for me the biggest feature of this devlogs is the Export menu where you can choose the extension (.bin or .c) and if you choose .c you can modify the array name . I also added the drag when using the bucket 🪣
Wow 2h45 This the devlogs with the most things I added Here is a list of everything I added: A Export window Now allow up to 128 tiles on a single file When you draw somethings in tile 1 and on tile 6 in the .dmgtile file there will save only those 2 with there ID. In the .c file is the same but without there ID so there will just be right after the other (same thing for .bin ) “New project” button, with it you can start a…. NEW PROJECT Keyboard shortcut text in the top menu Keyboard shortcut to use every tool and change shade easily Hover text on every tool (to show the keyboard shortcut) Multiple tile render Move tool bar to the top for better UI Copy, Cut, Paste tile Add more Ctrl+Z utility Big chunk of tile see if it’s look good on repeat Andddd, that it (this was damn hard). You can find every commit on my github.
This is a little update. In this devlogs I just created & tested my Makefile to cross built for Linux, Windows, MacOS from my Mac. And this work !
After 40min in Aseprite I am finally happy with a logo (I am so so pround of my self 😤 ). I designed it all by my self . Also I added some “toast” for a better UX.
I change a little bit the logo to add a background for the app icon. Now the app run on macOS, Windows & Linux with icon on each one ! The next step is to make the README & a little Manual ! (And of course publish & build the release version for Windows MacOS & Linux !)
I have been writing the README.md before the release !
This might be the last devlogs before Ship Nº1 After wayyyy to much time the macOS, Windows and Linux build are ready ! Apple GateKeeper and windows Defender don’t like my application 😭 they both flag as something weird / virus… I also realize that my Linux build wasn’t working so I fix it ! I released v1.0.0 ! I added those warning about Windows Defender and Apple GateKeeper ! I also added the --dev flag to get the dev menu and finished the README.md
I just discovered gpui it’s a UI library based on the GPU. It was created by the same team that make Zed (the code editor). And I found out that it very personalizable. So I am rewriting DMGTile in it . So far I have the basic grid and basic tools like the bucket, the pencil, eraser etc… The only problem is that I can’t track the right click drag. (I also got the native macOS toolbar)
Little update : I added the Shade selector and the palette selector, but also the Early GameBoy font ! And I think it look nice
A Lot of thing happen in 5h20 I create a custom UI with Game Boy related color, custom button, border, font, etc… For now I have the drawing zone, the preview, the tiles list, the shade selector and tools To be more specific I added rounder pixelated shade selector, rounded pixelated border, Undo, Redo, Draw/bucket tools
This is a very very little update I added the same tools as in the EGUI version : Shift (Left, Right, Down, Up) and Rotate (it wasn’t difficult at all)
In 2 hours I added 2 big thing The Copy/Paste/Cut integration The tool bar Icon for the toolbar The icon was pretty long to make (because i suck at drawing… ) And implementing the tool bar too. Here are some picture of the icon and the toolbar (I use Aseprite btw)
This is a short update because I fix some little bug like : Alignment on the tile list (with the number) Not getting the little shortcut sign on macOS And I added: Toast notification style with error color or success color
In those 2h30 I’ve done a lot of thing The most of it was optimization with the Tile List Rendering and Caching but I also rearrange all the code (before it’s was just a big main.rs file) And I added Save, Open & New Project and clean a little bit
After 1h40 of headache I FINNALY added a menu bar to Linux and Windows . At first I wanted to use gpui-components but there was way to much issue with it so I build my own bar (in the same style as the whole app) I even created a quick Dockerfile to test on my mac the linux build. I also added the export to .c and .bin
This is the last devlogs for DMGTile. AKA the V2 Release . I modified the README for the GPUI version, made the github release and last minutes fix. Bye bye
Ships:
What is this ? DMGTile is a Gameboy Tile Editor/Designer build in Rust. Basically it’s a drawing program for Gameboy game. Why ( °ヮ° ) ? The idea for this project came from GBTD (Gameboy Tile Designer), who is Windows only and kinda old… So I recreated it from-scratch in Rust, so it can run on Linux, Windows & macOS without Wine (or equivalent). And all of this with the same features as GBTD. Core Features ( ദ്ദി ˙ᗜ˙ ) Editor Pixel Painting: Use the mouse to paint ദ്ദി(˵ •̀ ᴗ - ˵ ) ✧ Bucket Fill: A classic flood-fill tool Transform Tools: You can flip, rotate, move the active tile Live Previews: A little 4x4 grid to preview the active tile in a pattern (e.g: a background) Cached Texture Rendering: Tile textures are cached and only rebuilt when a tile is modified Project Management Multi-Tile Support: You can draw up to 128 tiles per project file (you can scroll the list on the right of the screen to change tile) Undo/Redo: Each action is store in a stack, so you are able to undo or redo an action ! Copy/Paste/Cut: Duplicate or move tile data between slots (in the same project) File Format: Each project is saved in .dmgtile (JSON), storing only the modified tiles while preseving the tiles ID Keyboard Shortcut: Full Cmd/Ctrl support for New Project, Open, Save, Undo, Redo, etc… Even the tools have there own shortcut Export .bin Export: Exports all the modified tiles into the Gameboy’s native 2bpp format .c Export: Exports all the modified tiles as a C array, with configurable array name (Can be used with GBDK) Selective export: Only the modified tiles are written out Okay… but how to test it ? There is multiple way to test DMGTile but the easiest is to go to the Github Release and download the program for your OS ദ്ദി(˵ •̀ ᴗ - ˵ ) ✧ Then you can launch it and start drawing ! You can also try the export part to a .bin or .c file (you can see the note.md file on github, it’s my personal note when I was building DMGTile) Thank you Just a little thank you ❤️ (Every things you need is probably in the README.md) (I even made a cute little icon :D )
DMGTile v2 - GPUI Rewrite This version is a full rewrite of the UI (and some other functionality) with GPUI (the framework that Zed use). I kept every feature from the v1, 128-tile projects, undo/redo, copy/paste/cut, .dmgtile save/load, .bin and .c export, all the drawing tools. And rebuilt the interface from scratch with a pixel-art aesthetic: pixelated corner on every panel, a pixel font, and cached GPU textures for thumbnails and previews. What I added in this version ? Toast notifications for save, export, and error feedback Native macOS menu bar with File / Edit / Help, plus a matching in-window bar on Windows and Linux Real app icon Optimized tile list that only renders visible tiles, so scrolling stays smooth I also added the toast notification (compared to V1) The app is now more macOS compliant, I was able to add the top bar with the classic : File, Edit, View, Help etc… I was also able to put a icon ! What can I do now ? Everything you need to know is in the README.md or in the GitHub Release This might sound like a little update but the rewrite took me around 17 hour so…… thank you for reading ❤️ (I even made a cute little icon :D )...
|
1792976207.5443687
|
1793062607.5443687
|
|
46399
|
Margen by @jupeme6 | Stardance
|
jupeme6
|
2
|
42.0
|
393
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-24T11:27:08Z", "hours": 22.0, "multiplier": 10.32, "payout": 225, "blessing": "neutral", "text": "What did you make? A markdown note editor called Margen with a digital typewriter aesthetic. Three columns: sidebar with notes, raw markdown editor, live preview. The parser is written from scratch, no library. Six betas added LaTeX support with KaTeX, a formula toolbar, dark mode, ES/EN i18n, code highlighting, PWA offline, import/export, folders with colors, linked notes via [[wiki-style]] syntax, and formula OCR via Tesseract.js. Local-first, no account, no server. What was challenging? The markdown parser broke on multi-line constructs. Rewrote it line-by-line. KaTeX loads async so had to chain CSS then JS then auto-render. Formula OCR needed a text-to-LaTeX converter since Tesseract is for text not math. What are you proud of? The parser from scratch, the formula toolbar for non-LaTeX users, and the whole thing working offline as a PWA. What should people know so they can test? Open the demo. Choose language on first launch. Click + for new note. Type markdown, see live preview. Press ? for cheat sheet. Click “formulas” for math buttons. Click camera to scan a formula. Create folders with colors. Link notes with [[Title]]. Gear icon for dark mode and language. Live demo: https://notjuangamer10.github.io/margen/ Source: https://github.com/notjuangamer10/margen", "repo": "https://github.com/NOTJuangamer10/margen", "demo": "https://notjuangamer10.github.io/margen/"}, {"ship_num": 2, "ts": "2026-08-13T14:13:11Z", "hours": 20.0, "multiplier": 8.34, "payout": 168, "blessing": "neutral", "text": "What did you make? A markdown note editor called Margen, built with a “digital typewriter” aesthetic. The app is a three-column layout: a sidebar with the list of notes, a raw markdown editor pane, and a live preview pane that renders the markdown as you type. The markdown parser is written from scratch, no marked.js or any library, just a chain of regex and line-by-line processing. Built in four planned betas, currently on Beta 3. Beta 1 was the basics: editor, preview, note list, search, auto-save. Beta 2 fixed a bug where opening a note to read it would mark it as modified, added a markdown cheat sheet accessible via a button, and rewrote the markdown parser which had bugs with lists, blockquotes and code blocks. Beta 3 added LaTeX support via KaTeX for math formulas, a formula toolbar with 16 buttons that insert LaTeX at the cursor so you don’t need to know LaTeX syntax, a dark mode with a warm dark palette, and an ES/EN language toggle. Everything is local-first, stored in localStorage, no account, no server, no tracking. The goal is a clean, offline place to write university notes with formulas, without the bloat of Notion or the online-only dependency of most editors. What was challenging? The markdown parser was the hardest part. My first version used a single regex per element type, which broke on multi-line constructs like lists and blockquotes. The blockquote bug was sneaky: after escaping HTML, the > character becomes >, but my regex was looking for > literally, so blockquotes never matched. Rewrote the parser to process line by line, opening and closing ul/ol/blockquote tags as it goes, and protecting code blocks in a temporary array so other regexes don’t touch them. The LaTeX integration had a loading order issue. KaTeX loads from CDN asynchronously, so the first renderMathInElement call would fail because the library wasn’t ready yet. Had to chain the loads: first KaTeX CSS, then KaTeX JS, then the auto-render extension, and only then try to render. If a formula has a syntax error, I set throwOnError to false so it shows the raw LaTeX instead of breaking the whole preview. The dirty flag bug from Beta 2 was a design problem. Before, every time you opened a note it would save with modificada=now and jump to the top of the sidebar, which made browsing notes frustrating. Had to track whether the user actually changed anything before marking a note as modified. What are you proud of? The markdown parser, written entirely from scratch, no library. About 150 lines of regex and line-by-line processing, handles headers, bold, italic, lists, code blocks, inline code, links, images, blockquotes and horizontal rules. The formula toolbar with 16 buttons that insert LaTeX at the cursor position, so you can write math without knowing LaTeX syntax. And the “digital typewriter” aesthetic: Bitter serif for rendered content, Inter for UI, JetBrains Mono for the raw editor, thin dividing lines instead of cards or shadows. What should people know so they can test your project? Open the demo URL. A welcome note with markdown examples appears on first launch. Click the + button in the sidebar to create a new note. Type markdown in the left pane, see it rendered live in the right pane. Click the ? button to open a markdown cheat sheet. Click the “formulas” button in the editor header to open a toolbar with 16 math buttons (square root, integral, fraction, etc.) that insert LaTeX at the cursor. Click the “ajustes” button to switch between light/dark mode and ES/EN language. Notes auto-save to localStorage, nothing is sent anywhere. Live demo: https://notjuangamer10.github.io/margen/ Source: https://github.com/notjuangamer10/margen", "repo": "https://github.com/NOTJuangamer10/margen", "demo": "https://notjuangamer10.github.io/margen/"}]...
|
[{"post_id": 53666, "ts": "202 [{"post_id": 53666, "ts": "2026-08-24T10:30:30Z", "hours": 5.8731, "text": "Margen Beta 6, the final version. Three new features.Folders with colors. You can create folders (subjects) and assign notes to them. Each folder gets a color from a preset palette. The sidebar shows a folder list above the notes, click a folder to filter. A selector in the editor header lets you assign or change the folder of the current note. Useful for organizing by subject: Calculus, Physics, Programming.Linked notes. You can now link notes together using double brackets like [[Note Title]]. The parser finds the note by title and creates a clickable link in the preview. Click it and the linked note opens. If the note doesn’t exist, it shows in red with strikethrough. Useful for connecting related topics across subjects.Formula OCR. A camera button in the editor header lets you upload a photo of a math formula. Tesseract.js extracts the text and a basic converter turns common math notation into LaTeX: ^ becomes ^{}, sqrt becomes \\sqrt{}, int becomes \\int, Greek letters get backslashed, etc. The result is inserted at the cursor wrapped in $$ for block math. It’s not perfect OCR (Tesseract is designed for text, not math) but it gives you a starting point that you can edit manually.Calling Margen complete. Six betas across editor, parser, cheat sheet, LaTeX, dark mode, i18n, code highlighting, PWA, import, export, onboarding, shortcuts, focus mode, word count, folders, linked notes and formula OCR."}, {"post_id": 53355, "ts": "2026-08-23T21:25:38Z", "hours": 7.2656, "text": "Margen 5.2. Onboarding, power features, and translation fixes.Language prompt on first launch. New users see a modal asking them to choose Spanish or English before the app loads. This was the top complaint from reviewers, who said the language toggle was hard to find.Onboarding tour. First-time visitors get a welcome screen explaining how Margen works: type markdown on the left, see it rendered on the right, press + for new note, press ? for cheat sheet, press “formulas” for math buttons. Also lists the keyboard shortcuts. Dismissible with one click.Keyboard shortcuts. Ctrl+B for bold, Ctrl+I for italic, Ctrl+N for new note, Ctrl+E for focus mode, Ctrl+S for save. The shortcuts wrap the selected text or insert empty markers if nothing is selected.Focus mode. A toggle button (or Ctrl+E) hides the sidebar so you can write without distractions. The editor and preview center on screen with a max width for comfortable reading.Word counter. A small character and word count appears in the editor header, updating live as you type.Translation fixes. The welcome note and the markdown cheat sheet now respect the language setting and switch between Spanish and English fully. Relative dates like “ahora mismo” now show as “just now” in English."}, {"post_id": 52997, "ts": "2026-08-23T11:47:00Z", "hours": 4.8347, "text": "Margen 5.1. Fixes based on reviewer feedback.Full i18n. Before, switching to English left several strings in Spanish because only parts of the UI were translated. Now everything visible translates: buttons, placeholders, footer, header, cheat sheet, settings panel, export/import labels. The language toggle updates the UI in real time without needing a reload.Strikethrough support. Added text syntax to the markdown parser for strikethrough text. Also added it to the cheat sheet.Auto-detect language. On first launch, Margen now checks the browser’s language setting and defaults to English or Spanish accordingly. The user can still override it in settings.Export as .md. The export button now opens a small menu with three options: export as HTML (downloads a standalone file, no new tab), export as Markdown (.md file), and print to PDF. Previously it only exported HTML and opened a new tab, which was annoying."}, {"post_id": 52215, "ts": "2026-08-22T09:50:08Z", "hours": 3.8311, "text": "Beta 4 of Margen, the final version. Four additions. Code syntax highlighting via highlight.js. Code blocks in the preview now get colored based on language. Works in dark mode too. Export and import. An export button downloads the current note as a standalone HTML file with markdown, LaTeX and code already rendered, and opens the print dialog so you can save it as PDF. An import button lets you load an existing .md file as a new note. PWA installable. A service worker caches the core files so the app works offline on desktop and Android. The manifest is generated dynamically. CDN assets like KaTeX and highlight.js are not cached to avoid bloat, so formulas and code highlighting need internet the first time, but the app itself, your notes and the markdown parser all work offline. Calling Margen done. Four betas: basic editor, parser fix and cheat sheet, LaTeX and dark mode, now code highlighting, import, export and PWA."}, {"post_id": 46300, "ts": "2026-08-13T13:07:03Z", "hours": 5.9975, "text": "Beta 3 of Margen adds LaTeX support, dark mode and multi-language. LaTeX is the big one. KaTeX loads from CDN the first time you need it, then renders $…$ as inline math and $$…$$ as block math. So you can write $E=mc^2$ inline or a full integral in a block. If a formula has an error it just shows the raw text instead of breaking the preview. The formula toolbar was important to me because I don’t know LaTeX syntax by heart. A “formulas” button in the editor header opens a bar with 16 buttons: square root, integral, fraction, superscript, subscript, sum, limit, Greek letters, infinity, plus-minus, inequalities, arrows. Click one and it inserts the LaTeX at the cursor position, then you just fill in the blanks. No need to remember that integral is \\int_{}^{} or that fraction is \\frac{}{}. Dark mode uses a warm dark palette instead of the usual cold gray, so it still feels like the typewriter aesthetic. The toggle is in a settings panel in the sidebar, along with an ES/EN language switch that translates the whole UI. Next version will be the last: code syntax highlighting, PDF export, and PWA installable for offline use on desktop and Android. But I’m starting to get tired, so i wil be on vacation for the next week!"}, {"post_id": 45569, "ts": "2026-08-12T04:40:53Z", "hours": 6.3206, "text": "Beta 2 of Margen fixes a usability bug and adds helpful features. Fixed the modified timestamp bug. Before, every time you opened a note to read it, it would save with modificada=now and jump to the top of the sidebar list. Now there is a dirty flag that tracks whether you actually changed anything. Opening a note to read it does not mark it as modified. The sidebar list stays stable when you are just browsing. Added a markdown cheat sheet. A ? button in the sidebar opens a floating panel with the full syntax: headers, bold, italic, lists, code blocks, links, images, blockquotes, horizontal rules. Useful for when you forget how to do something without leaving the editor. Also added a welcome note that appears on first launch with examples of every markdown feature rendered in the preview. You can delete it if you want. Changed the typography from Source Serif 4 to Bitter, a slab serif that gives a more typewriter feel without being monospaced. Still legible, but more character. I personally like this version, this is like, the base of what i want to build, i would leave it like this and thats it, but I feel that i can get better at coding if i just add more things, it would be more usefull"}, {"post_id": 45210, "ts": "2026-08-11T15:15:38Z", "hours": 7.8731, "text": "Started a new project called Margen, a markdown note editor for university notes. The idea came from wanting a clean, offline place to write notes with formulas, without the bloat of Notion or the online-only dependency of most editors. Beta 1 is the basics. A three-column layout: sidebar with the list of notes, editor pane with a monospace textarea, and a live preview pane that renders markdown as you type. The markdown parser is written from scratch, no marked.js or any library, just a chain of regex replaces handling headers, bold, italic, lists, code blocks, inline code, links, images, blockquotes and horizontal rules. The design is “digital typewriter”: white background, serif typography for the rendered content, monospace for the raw editor, thin dividing lines instead of cards or shadows. The aesthetic is deliberately calm and distraction-free, like iA Writer or Bear. Notes auto-save to localStorage 400ms after you stop typing. There is also a Ctrl+S shortcut for manual save. The sidebar shows title, first line preview and relative date for each note, and filters instantly as you type in the search bar. Next version will add subjects (folders), tags, and better organization."}]...
|
Title: Margen by @jupeme6 | Stardance
Devlogs:
St Title: Margen by @jupeme6 | Stardance
Devlogs:
Started a new project called Margen, a markdown note editor for university notes. The idea came from wanting a clean, offline place to write notes with formulas, without the bloat of Notion or the online-only dependency of most editors. Beta 1 is the basics. A three-column layout: sidebar with the list of notes, editor pane with a monospace textarea, and a live preview pane that renders markdown as you type. The markdown parser is written from scratch, no marked.js or any library, just a chain of regex replaces handling headers, bold, italic, lists, code blocks, inline code, links, images, blockquotes and horizontal rules. The design is “digital typewriter”: white background, serif typography for the rendered content, monospace for the raw editor, thin dividing lines instead of cards or shadows. The aesthetic is deliberately calm and distraction-free, like iA Writer or Bear. Notes auto-save to localStorage 400ms after you stop typing. There is also a Ctrl+S shortcut for manual save. The sidebar shows title, first line preview and relative date for each note, and filters instantly as you type in the search bar. Next version will add subjects (folders), tags, and better organization.
Beta 2 of Margen fixes a usability bug and adds helpful features. Fixed the modified timestamp bug. Before, every time you opened a note to read it, it would save with modificada=now and jump to the top of the sidebar list. Now there is a dirty flag that tracks whether you actually changed anything. Opening a note to read it does not mark it as modified. The sidebar list stays stable when you are just browsing. Added a markdown cheat sheet. A ? button in the sidebar opens a floating panel with the full syntax: headers, bold, italic, lists, code blocks, links, images, blockquotes, horizontal rules. Useful for when you forget how to do something without leaving the editor. Also added a welcome note that appears on first launch with examples of every markdown feature rendered in the preview. You can delete it if you want. Changed the typography from Source Serif 4 to Bitter, a slab serif that gives a more typewriter feel without being monospaced. Still legible, but more character. I personally like this version, this is like, the base of what i want to build, i would leave it like this and thats it, but I feel that i can get better at coding if i just add more things, it would be more usefull
Beta 3 of Margen adds LaTeX support, dark mode and multi-language. LaTeX is the big one. KaTeX loads from CDN the first time you need it, then renders $…$ as inline math and $$…$$ as block math. So you can write $E=mc^2$ inline or a full integral in a block. If a formula has an error it just shows the raw text instead of breaking the preview. The formula toolbar was important to me because I don’t know LaTeX syntax by heart. A “formulas” button in the editor header opens a bar with 16 buttons: square root, integral, fraction, superscript, subscript, sum, limit, Greek letters, infinity, plus-minus, inequalities, arrows. Click one and it inserts the LaTeX at the cursor position, then you just fill in the blanks. No need to remember that integral is \int_{}^{} or that fraction is \frac{}{}. Dark mode uses a warm dark palette instead of the usual cold gray, so it still feels like the typewriter aesthetic. The toggle is in a settings panel in the sidebar, along with an ES/EN language switch that translates the whole UI. Next version will be the last: code syntax highlighting, PDF export, and PWA installable for offline use on desktop and Android. But I’m starting to get tired, so i wil be on vacation for the next week!
Beta 4 of Margen, the final version. Four additions. Code syntax highlighting via highlight.js. Code blocks in the preview now get colored based on language. Works in dark mode too. Export and import. An export button downloads the current note as a standalone HTML file with markdown, LaTeX and code already rendered, and opens the print dialog so you can save it as PDF. An import button lets you load an existing .md file as a new note. PWA installable. A service worker caches the core files so the app works offline on desktop and Android. The manifest is generated dynamically. CDN assets like KaTeX and highlight.js are not cached to avoid bloat, so formulas and code highlighting need internet the first time, but the app itself, your notes and the markdown parser all work offline. Calling Margen done. Four betas: basic editor, parser fix and cheat sheet, LaTeX and dark mode, now code highlighting, import, export and PWA.
Margen 5.1. Fixes based on reviewer feedback.Full i18n. Before, switching to English left several strings in Spanish because only parts of the UI were translated. Now everything visible translates: buttons, placeholders, footer, header, cheat sheet, settings panel, export/import labels. The language toggle updates the UI in real time without needing a reload.Strikethrough support. Added text syntax to the markdown parser for strikethrough text. Also added it to the cheat sheet.Auto-detect language. On first launch, Margen now checks the browser’s language setting and defaults to English or Spanish accordingly. The user can still override it in settings.Export as .md. The export button now opens a small menu with three options: export as HTML (downloads a standalone file, no new tab), export as Markdown (.md file), and print to PDF. Previously it only exported HTML and opened a new tab, which was annoying.
Margen 5.2. Onboarding, power features, and translation fixes.Language prompt on first launch. New users see a modal asking them to choose Spanish or English before the app loads. This was the top complaint from reviewers, who said the language toggle was hard to find.Onboarding tour. First-time visitors get a welcome screen explaining how Margen works: type markdown on the left, see it rendered on the right, press + for new note, press ? for cheat sheet, press “formulas” for math buttons. Also lists the keyboard shortcuts. Dismissible with one click.Keyboard shortcuts. Ctrl+B for bold, Ctrl+I for italic, Ctrl+N for new note, Ctrl+E for focus mode, Ctrl+S for save. The shortcuts wrap the selected text or insert empty markers if nothing is selected.Focus mode. A toggle button (or Ctrl+E) hides the sidebar so you can write without distractions. The editor and preview center on screen with a max width for comfortable reading.Word counter. A small character and word count appears in the editor header, updating live as you type.Translation fixes. The welcome note and the markdown cheat sheet now respect the language setting and switch between Spanish and English fully. Relative dates like “ahora mismo” now show as “just now” in English.
Margen Beta 6, the final version. Three new features.Folders with colors. You can create folders (subjects) and assign notes to them. Each folder gets a color from a preset palette. The sidebar shows a folder list above the notes, click a folder to filter. A selector in the editor header lets you assign or change the folder of the current note. Useful for organizing by subject: Calculus, Physics, Programming.Linked notes. You can now link notes together using double brackets like [[Note Title]]. The parser finds the note by title and creates a clickable link in the preview. Click it and the linked note opens. If the note doesn’t exist, it shows in red with strikethrough. Useful for connecting related topics across subjects.Formula OCR. A camera button in the editor header lets you upload a photo of a math formula. Tesseract.js extracts the text and a basic converter turns common math notation into LaTeX: ^ becomes ^{}, sqrt becomes \sqrt{}, int becomes \int, Greek letters get backslashed, etc. The result is inserted at the cursor wrapped in $$ for block math. It’s not perfect OCR (Tesseract is designed for text, not math) but it gives you a starting point that you can edit manually.Calling Margen complete. Six betas across editor, parser, cheat sheet, LaTeX, dark mode, i18n, code highlighting, PWA, import, export, onboarding, shortcuts, focus mode, word count, folders, linked notes and formula OCR.
Ships:
What did you make? A markdown note editor called Margen, built with a “digital typewriter” aesthetic. The app is a three-column layout: a sidebar with the list of notes, a raw markdown editor pane, and a live preview pane that renders the markdown as you type. The markdown parser is written from scratch, no marked.js or any library, just a chain of regex and line-by-line processing. Built in four planned betas, currently on Beta 3. Beta 1 was the basics: editor, preview, note list, search, auto-save. Beta 2 fixed a bug where opening a note to read it would mark it as modified, added a markdown cheat sheet accessible via a button, and rewrote the markdown parser which had bugs with lists, blockquotes and code blocks. Beta 3 added LaTeX support via KaTeX for math formulas, a formula toolbar with 16 buttons that insert LaTeX at the cursor so you don’t need to know LaTeX syntax, a dark mode with a warm dark palette, and an ES/EN language toggle. Everything is local-first, stored in localStorage, no account, no server, no tracking. The goal is a clean, offline place to write university notes with formulas, without the bloat of Notion or the online-only dependency of most editors. What was challenging? The markdown parser was the hardest part. My first version used a single regex per element type, which broke on multi-line constructs like lists and blockquotes. The blockquote bug was sneaky: after escaping HTML, the > character becomes >, but my regex was looking for > literally, so blockquotes never matched. Rewrote the parser to process line by line, opening and closing ul/ol/blockquote tags as it goes, and protecting code blocks in a temporary array so other regexes don’t touch them. The LaTeX integration had a loading order issue. KaTeX loads from CDN asynchronously, so the first renderMathInElement call would fail because the library wasn’t ready yet. Had to chain the loads: first KaTeX CSS, then KaTeX JS, then the auto-render extension, and only then try to render. If a formula has a syntax error, I set throwOnError to false so it shows the raw LaTeX instead of breaking the whole preview. The dirty flag bug from Beta 2 was a design problem. Before, every time you opened a note it would save with modificada=now and jump to the top of the sidebar, which made browsing notes frustrating. Had to track whether the user actually changed anything before marking a note as modified. What are you proud of? The markdown parser, written entirely from scratch, no library. About 150 lines of regex and line-by-line processing, handles headers, bold, italic, lists, code blocks, inline code, links, images, blockquotes and horizontal rules. The formula toolbar with 16 buttons that insert LaTeX at the cursor position, so you can write math without knowing LaTeX syntax. And the “digital typewriter” aesthetic: Bitter serif for rendered content, Inter for UI, JetBrains Mono for the raw editor, thin dividing lines instead of cards or shadows. What should people know so they can test your project? Open the demo URL. A welcome note with markdown examples appears on first launch. Click the + button in the sidebar to create a new note. Type markdown in the left pane, see it rendered live in the right pane. Click the ? button to open a markdown cheat sheet. Click the “formulas” button in the editor header to open a toolbar with 16 math buttons (square root, integral, fraction, etc.) that insert LaTeX at the cursor. Click the “ajustes” button to switch between light/dark mode and ES/EN language. Notes auto-save to localStorage, nothing is sent anywhere. Live demo: https://notjuangamer10.github.io/margen/ Source: https://github.com/notjuangamer10/margen
What did you make? A markdown note editor called Margen with a digital typewriter aesthetic. Three columns: sidebar with notes, raw markdown editor, live preview. The parser is written from scratch, no library. Six betas added LaTeX support with KaTeX, a formula toolbar, dark mode, ES/EN i18n, code highlighting, PWA offline, import/export, folders with colors, linked notes via [[wiki-style]] syntax, and formula OCR via Tesseract.js. Local-first, no account, no server. What was challenging? The markdown parser broke on multi-line constructs. Rewrote it line-by-line. KaTeX loads async so had to chain CSS then JS then auto-render. Formula OCR needed a text-to-LaTeX converter since Tesseract is for text not math. What are you proud of? The parser from scratch, the formula toolbar for non-LaTeX users, and the whole thing working offline as a PWA. What should people know so they can test? Open the demo. Choose language on first launch. Click + for new note. Type markdown, see live preview. Press ? for cheat sheet. Click “formulas” for math buttons. Click camera to scan a formula. Create folders with colors. Link notes with [[Title]]. Gear icon for dark mode and language. Live demo: https://notjuangamer10.github.io/margen/ Source: https://github.com/notjuangamer10/margen...
|
1792878577.2213483
|
1793742577.2213483
|
|
153
|
SCP - Secure Channel Protocol by @kingvon | Starda SCP - Secure Channel Protocol by @kingvon | Stardance...
|
kingvon
|
1
|
25.0
|
392
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-23T16:42:26Z", "hours": 25.0, "multiplier": 15.56, "payout": 392, "blessing": "neutral", "text": "Secure Channel Protocol (SCP) is a TLS-inspired protocol with its own ciphersuite and handshake sequence made in Go. It comes in a go package so anyone can use this protocol to build their projects upon. i made this project as a challenge to myself because i wanted to make “my own protocol” so i decided to go for a security protcol, this was a really fun experience it taught me applied cryptography more deeply and i learnt about various things in TLS. this project right now is just a handshake implementation with minimal crypto wrappers i wrote around already made functions, this is just the first version, i will be implementing my own crypto primitives like key exchange and stuff in future versions. you can try this project in THREE different ways!: watching a live handshake simulation @ scp.pratiksingh.xyz trying the small encrypted cli chat app i made on top of the protocol (check out github readme) creating your own app on top of my protocol! i have made simple wrapper functions to make it easier for curious devs to try it. there are documentation too! check out the specs page on demo site and readme for details :3", "repo": "https://github.com/pratiksingh94/scp/", "demo": "https://scp.pratiksingh.xyz/"}]...
|
[{"post_id": 32551, "ts": "202 [{"post_id": 32551, "ts": "2026-07-21T20:09:05Z", "hours": 1.3506, "text": "Wrote docs yeah, wrote docs, thats it bye lol golang docs system is nice at first i was writing everything in another docs readme but it was so damn boring and i started looking around for automated docs like its in fastapi of python, then i found out i can write comments and stuff and people can use go doc command and there are also crawlers by pkg.go.dev which can show my go docs on the website so yeah that dont focus on screenshot, i am waiting for it to detect the license so it can show docs"}, {"post_id": 32244, "ts": "2026-07-21T09:04:10Z", "hours": 0.4667, "text": "Readme update one more step closer towards shipping didnt mention the SPEC.md in it, i wont use that since i have made /spec page in visualizer site"}, {"post_id": 32228, "ts": "2026-07-21T08:16:32Z", "hours": 0.4619, "text": "Fixed go modules gonna push it as package soon so had to fix some go module problems or go get command wont work and did some over the internet testing"}, {"post_id": 31937, "ts": "2026-07-20T19:03:39Z", "hours": 3.0483, "text": "Added Spec page yes, added a page for ALL details you made need about it, PLEASE READ IT i have put so much efforts into that so you better read it includes this table of contents: 1.Overview 2.Packet Format 3.Message Types 4.Handshake Protocol 5.Key Derivation 6.Data Phase 7.Cryptographic Primitives 8.Wire Format Reference"}, {"post_id": 30288, "ts": "2026-07-17T18:53:22Z", "hours": 5.8408, "text": "Handshake Simulation Visualizer completed the entire bomboclat visualizer so its a website with go backend which is running a totally real handshake sequence, which is a simulation ofc but the crypto stuff is real, no packets are being sent tho after asking multiple people in #stardance i decided to go with monotone default colors of tailwind, and someone suggested CRT line effect so i added that too which made it hella cool. it features a 26 step sequence showing everything from keypair generation to data phase, shows from both client and server sides with cool cards, i love this so much yes i did it all in one devlog, its a just a small dev log server and not the main thing of this project, the main is still the protocol and the package so i will do on that with some documentations and specs page. will be hosted soon on my nest container"}, {"post_id": 28520, "ts": "2026-07-14T20:40:26Z", "hours": 3.8081, "text": "Visualizer WebSocket Server so not just that, i also changed the folder structure a bit, and some other very small things which i couldnt dev log cuz they were too small but yes the main thing i did was making a visualize backend, it uses websockets and simulates an entire handshake and data transfer, all the crypto work is real in the server but no packet is being sent, so its just steps one by one explaining the work that is being done. been a bit busy for a while so couldnt code properly :("}, {"post_id": 24989, "ts": "2026-07-08T21:39:58Z", "hours": 0.9981, "text": "First app: Encrypted Chat i am so happy, i have wrote the FIRST thingy on top of secure channel protocol!!! my own damn lil TLS. this is a very basic client server chat, server listens on a port and client connects, they it reads input from stdin the server connects using command: ./scp listen --port 2008 --psk test the client connects using command: ./scp connect --host localhost:2008 --psk test the PSK is pre-shared (well, duh) using the --psk flag well this is a very basic terminal chat app, i can ship the project as it is rn as its a nice MVP but i want to make a visualizer cuz i know damn well NO one gonna run it like this lol, and i want to make a cool visualizer that shows every step of handshake the first screenshot shows the chat, top one is the server and bottom is client the second screenshot shows the wireshark capture of this beautiful exchange, ofc its encrypted hehe i love this"}, {"post_id": 24881, "ts": "2026-07-08T18:48:10Z", "hours": 0.6858, "text": "Session Functions wow this made it complete on a function definition level, like i just have to make some wrappers around it so, i made 3 functions for the Session struct Send() -> takes plaintext, encrypts it with the session key and nonce from session, sends it Receive() -> decodes MsgData packet, decrypts using session key and nonce received FROM the packet (so nonces dont go out of sync) and returns plaintext Close() -> what do you think lmao in the screenshot you can see the plaintext and ciphertext being logged, thats an exchange between client and server!"}, {"post_id": 24587, "ts": "2026-07-08T09:11:33Z", "hours": 3.4375, "text": "Handshake 🤝 so i made the handshake sequence its the same one from SPEC.md where i decided first, didnt change anything for some reason cant paste here pls check SPEC.md on github lmao but in short it goes like this: client and server exchange hello messages with their PSK Proof, Public Key, Nonce (16 bytes) and then key exchange and some session key derivation happens, then Done messages are exchanged which is encrypted with the session key, so it proves both party derived same session key at the end the handshake functions returns the session (which i have to work on) there are some things left to do like cleaning up the code, its a bit messy right now i will make it a bit more modular and easy to read later for testing i used net.Pipe , it gives nice two mock connections type shit, i thought of using real tcp connection first but found this better thing while going through GoLang net library docs not much to see in image tbh, it just shows the debug print statements i added, those are exchanges between client and server"}, {"post_id": 23028, "ts": "2026-07-05T19:16:11Z", "hours": 2.9708, "text": "Crypto Functions so i wrote all the crypto functions or helpers whatever you want to call it. i did that because see for me TLS or even this project is just a group of cipher suites and we are using them to perform a handshake, so the cipher suite is the most important part, and ofc my project will only have one cipher suite, so i first implemented those functions Functions implemented: GenerateKeypair() -> generates an X25519 public and private key pair SharedSecret() -> takes private key and peer public key and performs ECDH using those keys ComputePSKProof() -> outputs the HMAC result of a psk and the given data DeriveSessionKey() -> the final function which uses HKDF and outputs a session key, which will be used to encrypt/decrypt Encrypt() -> encrypts using the given session key, it uses ChaCha20-Poly1305 to encrypt plaintext Decrypt() -> decrypts the ciphertext from given key and i also wrote tests for them, writing tests for me is an uncommon thing i wont lie lol but this time i am testing these functions from tests is because this is a protocol library, if another project wants to use my protocol to build on they can easily import and thats why i dont wanna test in random cmd and build things like it is intended for my planned project only, so i am treating it as a proper library and writing function and their tests, and so far things are doing really good. had some problems in ECDH because i was messing up the output parameters order but i fixed it after a while. ignore the weird ahhh numbers output, thats the nonce counter helper function i made i forgot to remove the debug prints lol"}, {"post_id": 22165, "ts": "2026-07-04T14:18:15Z", "hours": 2.1317, "text": "Packet Envelop and Payload Encoders/Decoders hiii SPEC.md so at first i made SPEC.md where i have decided on everything that it will have, all structures, handshake sequence, etc (please read it :3) Packet structure then i made a basic packet envelop struct [1 byte: msg type] [4 bytes: payload length] [N bytes: payload] that will be the structure, and i wrote WritePacket() and ReadPacket() functions for it, and also some tests Payload structures and i decided on payload structures for each message type and wrote encoder and decoder for all those types, except Done message type because its just one thing in payload you can check in SPEC.md the payload structures since i dont have anything ready to show, i will show the test output"}]...
|
Title: SCP - Secure Channel Protocol by @kingvon | Title: SCP - Secure Channel Protocol by @kingvon | Stardance
Devlogs:
Packet Envelop and Payload Encoders/Decoders hiii SPEC.md so at first i made SPEC.md where i have decided on everything that it will have, all structures, handshake sequence, etc (please read it :3) Packet structure then i made a basic packet envelop struct [1 byte: msg type] [4 bytes: payload length] [N bytes: payload] that will be the structure, and i wrote WritePacket() and ReadPacket() functions for it, and also some tests Payload structures and i decided on payload structures for each message type and wrote encoder and decoder for all those types, except Done message type because its just one thing in payload you can check in SPEC.md the payload structures since i dont have anything ready to show, i will show the test output
Crypto Functions so i wrote all the crypto functions or helpers whatever you want to call it. i did that because see for me TLS or even this project is just a group of cipher suites and we are using them to perform a handshake, so the cipher suite is the most important part, and ofc my project will only have one cipher suite, so i first implemented those functions Functions implemented: GenerateKeypair() -> generates an X25519 public and private key pair SharedSecret() -> takes private key and peer public key and performs ECDH using those keys ComputePSKProof() -> outputs the HMAC result of a psk and the given data DeriveSessionKey() -> the final function which uses HKDF and outputs a session key, which will be used to encrypt/decrypt Encrypt() -> encrypts using the given session key, it uses ChaCha20-Poly1305 to encrypt plaintext Decrypt() -> decrypts the ciphertext from given key and i also wrote tests for them, writing tests for me is an uncommon thing i wont lie lol but this time i am testing these functions from tests is because this is a protocol library, if another project wants to use my protocol to build on they can easily import and thats why i dont wanna test in random cmd and build things like it is intended for my planned project only, so i am treating it as a proper library and writing function and their tests, and so far things are doing really good. had some problems in ECDH because i was messing up the output parameters order but i fixed it after a while. ignore the weird ahhh numbers output, thats the nonce counter helper function i made i forgot to remove the debug prints lol
Handshake 🤝 so i made the handshake sequence its the same one from SPEC.md where i decided first, didnt change anything for some reason cant paste here pls check SPEC.md on github lmao but in short it goes like this: client and server exchange hello messages with their PSK Proof, Public Key, Nonce (16 bytes) and then key exchange and some session key derivation happens, then Done messages are exchanged which is encrypted with the session key, so it proves both party derived same session key at the end the handshake functions returns the session (which i have to work on) there are some things left to do like cleaning up the code, its a bit messy right now i will make it a bit more modular and easy to read later for testing i used net.Pipe , it gives nice two mock connections type shit, i thought of using real tcp connection first but found this better thing while going through GoLang net library docs not much to see in image tbh, it just shows the debug print statements i added, those are exchanges between client and server
Session Functions wow this made it complete on a function definition level, like i just have to make some wrappers around it so, i made 3 functions for the Session struct Send() -> takes plaintext, encrypts it with the session key and nonce from session, sends it Receive() -> decodes MsgData packet, decrypts using session key and nonce received FROM the packet (so nonces dont go out of sync) and returns plaintext Close() -> what do you think lmao in the screenshot you can see the plaintext and ciphertext being logged, thats an exchange between client and server!
First app: Encrypted Chat i am so happy, i have wrote the FIRST thingy on top of secure channel protocol!!! my own damn lil TLS. this is a very basic client server chat, server listens on a port and client connects, they it reads input from stdin the server connects using command: ./scp listen --port 2008 --psk test the client connects using command: ./scp connect --host localhost:2008 --psk test the PSK is pre-shared (well, duh) using the --psk flag well this is a very basic terminal chat app, i can ship the project as it is rn as its a nice MVP but i want to make a visualizer cuz i know damn well NO one gonna run it like this lol, and i want to make a cool visualizer that shows every step of handshake the first screenshot shows the chat, top one is the server and bottom is client the second screenshot shows the wireshark capture of this beautiful exchange, ofc its encrypted hehe i love this
Visualizer WebSocket Server so not just that, i also changed the folder structure a bit, and some other very small things which i couldnt dev log cuz they were too small but yes the main thing i did was making a visualize backend, it uses websockets and simulates an entire handshake and data transfer, all the crypto work is real in the server but no packet is being sent, so its just steps one by one explaining the work that is being done. been a bit busy for a while so couldnt code properly :(
Handshake Simulation Visualizer completed the entire bomboclat visualizer so its a website with go backend which is running a totally real handshake sequence, which is a simulation ofc but the crypto stuff is real, no packets are being sent tho after asking multiple people in #stardance i decided to go with monotone default colors of tailwind, and someone suggested CRT line effect so i added that too which made it hella cool. it features a 26 step sequence showing everything from keypair generation to data phase, shows from both client and server sides with cool cards, i love this so much yes i did it all in one devlog, its a just a small dev log server and not the main thing of this project, the main is still the protocol and the package so i will do on that with some documentations and specs page. will be hosted soon on my nest container
Added Spec page yes, added a page for ALL details you made need about it, PLEASE READ IT i have put so much efforts into that so you better read it includes this table of contents: 1.Overview 2.Packet Format 3.Message Types 4.Handshake Protocol 5.Key Derivation 6.Data Phase 7.Cryptographic Primitives 8.Wire Format Reference
Fixed go modules gonna push it as package soon so had to fix some go module problems or go get command wont work and did some over the internet testing
Readme update one more step closer towards shipping didnt mention the SPEC.md in it, i wont use that since i have made /spec page in visualizer site
Wrote docs yeah, wrote docs, thats it bye lol golang docs system is nice at first i was writing everything in another docs readme but it was so damn boring and i started looking around for automated docs like its in fastapi of python, then i found out i can write comments and stuff and people can use go doc command and there are also crawlers by pkg.go.dev which can show my go docs on the website so yeah that dont focus on screenshot, i am waiting for it to detect the license so it can show docs
Ships:
Secure Channel Protocol (SCP) is a TLS-inspired protocol with its own ciphersuite and handshake sequence made in Go. It comes in a go package so anyone can use this protocol to build their projects upon. i made this project as a challenge to myself because i wanted to make “my own protocol” so i decided to go for a security protcol, this was a really fun experience it taught me applied cryptography more deeply and i learnt about various things in TLS. this project right now is just a handshake implementation with minimal crypto wrappers i wrote around already made functions, this is just the first version, i will be implementing my own crypto primitives like key exchange and stuff in future versions. you can try this project in THREE different ways!: watching a live handshake simulation @ scp.pratiksingh.xyz trying the small encrypted cli chat app i made on top of the protocol (check out github readme) creating your own app on top of my protocol! i have made simple wrapper functions to make it easier for curious devs to try it. there are documentation too! check out the specs page on demo site and readme for details :3...
|
1792975826.130917
|
1793062226.130917
|
|
1911
|
Ranked Bot by @Polokalap | Stardance
|
Polokalap
|
1
|
58.21
|
391
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-11T21:42:13Z", "hours": 51.0, "multiplier": 8.79, "payout": 391, "blessing": "neutral", "text": "This is a Discord bot for a Discord-based Minecraft pvp tierlist. Basically there are testers who are good players, and they can tier test people in queues. This bot manages those tests and some other stuff like moderation.", "repo": "https://github.com/Polokalap/Ranked_Bot", "demo": "https://dc.ranked.hu"}]...
|
[{"post_id": 33736, "ts": "202 [{"post_id": 33736, "ts": "2026-07-23T21:48:41Z", "hours": 1.8114, "text": "Fixed admin-profile command, added banned rank and fixed some minor issues"}, {"post_id": 32081, "ts": "2026-07-21T00:08:57Z", "hours": 5.3975, "text": "I did some bug fixes and stuff, I wish I didn’t have to count 5 hours. I just need to post to resubmit, so I guess I made the readme actually useable and also fixed some minor issues."}, {"post_id": 9258, "ts": "2026-06-15T15:25:32Z", "hours": 5.2731, "text": "Added /admin-profile and retired tiers for normal /profile command (I also fixed some smaller stuff, but the bot is pretty much done at this point!)"}, {"post_id": 8416, "ts": "2026-06-13T23:58:29Z", "hours": 2.3478, "text": "Added /spin command"}, {"post_id": 8184, "ts": "2026-06-13T17:10:26Z", "hours": 3.1311, "text": "HT Tickets added woohoo"}, {"post_id": 7558, "ts": "2026-06-12T17:12:44Z", "hours": 2.8197, "text": "Did very little work today, I just cannot concentrate. Added a high tier ticket system ui, will make the backend later today or tomorrow."}, {"post_id": 7020, "ts": "2026-06-11T19:34:30Z", "hours": 16.2056, "text": "Added a queue system that I’ll make a video on when the bot releases. Yes 3 lines for 16h"}, {"post_id": 4553, "ts": "2026-06-07T21:59:21Z", "hours": 3.6322, "text": "Added queue ping selector :O Yes this took this many hours, because I had to create bugfixes, literally remake the db, and update the db creds. in the bot, the api."}, {"post_id": 3087, "ts": "2026-06-05T23:59:37Z", "hours": 0.5494, "text": "Added reaction emojis"}, {"post_id": 2920, "ts": "2026-06-05T20:30:29Z", "hours": 2.275, "text": "Added the ability to look up profiles by /profile minecraft_name:Polokalap Also started working on tier testing and swapped displaying tiers from text to emojis."}, {"post_id": 2441, "ts": "2026-06-04T22:48:11Z", "hours": 0.7422, "text": "Added welcome message HELLO"}, {"post_id": 2422, "ts": "2026-06-04T21:54:24Z", "hours": 2.4406, "text": "Added /profile command"}, {"post_id": 1747, "ts": "2026-06-03T22:42:48Z", "hours": 1.2375, "text": "Created ticket panel!"}, {"post_id": 1667, "ts": "2026-06-03T20:12:12Z", "hours": 0.79, "text": "I’m pretty sure I added archiving, I don’t really know. Also, I swapped out .env to data.json for channel ids"}, {"post_id": 1545, "ts": "2026-06-03T16:58:26Z", "hours": 1.9872, "text": "Now you can create and close tickets!! It also sends a cute lil’ embed that you can edit in json :D"}, {"post_id": 1019, "ts": "2026-06-02T20:14:40Z", "hours": 0.855, "text": "Hello :3 I made the bot time out the user if they spammed blocked content!"}, {"post_id": 947, "ts": "2026-06-02T18:28:30Z", "hours": 2.1811, "text": "Dear diary, Today, I added listeners when a message gets updated, so people can’t bypass the filter system by sending a message then editing it to a url, or something blocked. I also added another detection method that works the following way: Message is: “ https://youtube.com meow uwu :3 also look at this 18+ video https://blocked.url ” The old system would’ve allowed this, because it’s remove any white spaces, so the message becomes: “ https://youtube.commeowuwu:3alsolookatthis18+video https://blocked.url ” Then, it’d check if it contains a blocked sequence of characters, which is “://” in that case. Then, it’d check if it contains any of the “good” domains, and if it does, it’d allow the user to send the message. That was a bad system, and I rushed it. The new system does this: Message gets chunked: [“https://youtube.com”, “meow”, “uwu”, “:3”, “also”, “look”, “at”, “this”, “18+”, “video”, “https://blocked.url”] And it iterates trough every field. So now, if a url is present in a chunk, it’d only check that url. Also I added new translation keys."}, {"post_id": 461, "ts": "2026-06-01T22:14:14Z", "hours": 0.7564, "text": "I added a system that sends the moderators a report about a flag in their own channel. I also added flags for encouraging self-harm."}, {"post_id": 444, "ts": "2026-06-01T21:17:11Z", "hours": 3.4722, "text": "Added a language and a moderation system. You have a filter.json in src/resources and you can set up rules in it without ever touching code. Here’s the syntax: { “flags”: [ { “name”: “Gyűlölkődés”, “description”: “A gyűlölködő meggnyílvánulások nem megengedettek a szerveren!”, “punishment”: “ONE_HOUR”, “flags”: [ ], “ignore”: [ ], “always”: [ “nigger”, “nigga”, “cigány”, “cigris”, “cigo”, “nigris”, “nigg”, “buzi” ] } ] } When someone types one of the words out form “always”, it’ll punish them no matter what. If they send something that’s in “flags”, it’ll check if it also contains something from “ignore”. This is a bad system, but it works fine for now. Also, it punishes the user from the “punishment” field. You can set the following parameters: NONE, FIVE_MIN, ONE_HOUR, ONE_DAY, THREE_DAYS, SEVEN_DAYS, KICK, BAN. As you can see from the linked image, it lets people bypass the moderation system with one of the following permissions: MANAGE_CHANNEL, MESSAGE_MANAGE. I also added a language system, so what value you set in .env for “LANGUAGE”, it’ll use that +”.json” for every message. That’ll be useful when translating."}]...
|
Title: Ranked Bot by @Polokalap | Stardance
Devlo Title: Ranked Bot by @Polokalap | Stardance
Devlogs:
Added a language and a moderation system. You have a filter.json in src/resources and you can set up rules in it without ever touching code. Here’s the syntax: { “flags”: [ { “name”: “Gyűlölkődés”, “description”: “A gyűlölködő meggnyílvánulások nem megengedettek a szerveren!”, “punishment”: “ONE_HOUR”, “flags”: [ ], “ignore”: [ ], “always”: [ “nigger”, “nigga”, “cigány”, “cigris”, “cigo”, “nigris”, “nigg”, “buzi” ] } ] } When someone types one of the words out form “always”, it’ll punish them no matter what. If they send something that’s in “flags”, it’ll check if it also contains something from “ignore”. This is a bad system, but it works fine for now. Also, it punishes the user from the “punishment” field. You can set the following parameters: NONE, FIVE_MIN, ONE_HOUR, ONE_DAY, THREE_DAYS, SEVEN_DAYS, KICK, BAN. As you can see from the linked image, it lets people bypass the moderation system with one of the following permissions: MANAGE_CHANNEL, MESSAGE_MANAGE. I also added a language system, so what value you set in .env for “LANGUAGE”, it’ll use that +”.json” for every message. That’ll be useful when translating.
I added a system that sends the moderators a report about a flag in their own channel. I also added flags for encouraging self-harm.
Dear diary, Today, I added listeners when a message gets updated, so people can’t bypass the filter system by sending a message then editing it to a url, or something blocked. I also added another detection method that works the following way: Message is: “ https://youtube.com meow uwu :3 also look at this 18+ video https://blocked.url ” The old system would’ve allowed this, because it’s remove any white spaces, so the message becomes: “ https://youtube.commeowuwu:3alsolookatthis18+video https://blocked.url ” Then, it’d check if it contains a blocked sequence of characters, which is “://” in that case. Then, it’d check if it contains any of the “good” domains, and if it does, it’d allow the user to send the message. That was a bad system, and I rushed it. The new system does this: Message gets chunked: [“https://youtube.com”, “meow”, “uwu”, “:3”, “also”, “look”, “at”, “this”, “18+”, “video”, “https://blocked.url”] And it iterates trough every field. So now, if a url is present in a chunk, it’d only check that url. Also I added new translation keys.
Hello :3 I made the bot time out the user if they spammed blocked content!
Now you can create and close tickets!! It also sends a cute lil’ embed that you can edit in json :D
I’m pretty sure I added archiving, I don’t really know. Also, I swapped out .env to data.json for channel ids
Created ticket panel!
Added /profile command
Added welcome message HELLO
Added the ability to look up profiles by /profile minecraft_name:Polokalap Also started working on tier testing and swapped displaying tiers from text to emojis.
Added reaction emojis
Added queue ping selector :O Yes this took this many hours, because I had to create bugfixes, literally remake the db, and update the db creds. in the bot, the api.
Added a queue system that I’ll make a video on when the bot releases. Yes 3 lines for 16h
Did very little work today, I just cannot concentrate. Added a high tier ticket system ui, will make the backend later today or tomorrow.
HT Tickets added woohoo
Added /spin command
Added /admin-profile and retired tiers for normal /profile command (I also fixed some smaller stuff, but the bot is pretty much done at this point!)
I did some bug fixes and stuff, I wish I didn’t have to count 5 hours. I just need to post to resubmit, so I guess I made the readme actually useable and also fixed some minor issues.
Fixed admin-profile command, added banned rank and fixed some minor issues
Ships:
This is a Discord bot for a Discord-based Minecraft pvp tierlist. Basically there are testers who are good players, and they can tier test people in queues. This bot manages those tests and some other stuff like moderation....
|
1792993856.3096318
|
1793080256.3096318
|
|
22045
|
cctf.rs by @riverdalecoder | Stardance
|
riverdalecoder
|
1
|
36.28
|
391
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-09T18:05:43Z", "hours": 36.0, "multiplier": 11.29, "payout": 391, "blessing": "neutral", "text": "custom framework for a ctf platform written in rust. second ship on it will be the finalized platform instead of just the framework!! hope you enjoy!!", "repo": "https://github.com/TogiFerretFerret/cctf.rs", "demo": "https://ctf.river.hackclub.app/docs"}]...
|
[{"post_id": 25587, "ts": "202 [{"post_id": 25587, "ts": "2026-07-09T22:44:36Z", "hours": 0.2769, "text": "currently doing jp tl"}, {"post_id": 25416, "ts": "2026-07-09T18:00:54Z", "hours": 3.9936, "text": "ladida ship in a box"}, {"post_id": 23758, "ts": "2026-07-06T21:47:52Z", "hours": 3.8386, "text": "Fixed the import typos (FileService comma, Multipart import) Finished main.rs file_service wiring (with the gdrive RCLONE_REMOTE env override) + all test AppState sites Your routes + API_ROUTES entries are in (with your // TODO: make configurable on the body limit — left as-is) Added openapi /api/v1/files paths (multipart upload → ChallengeFile, download → binary) + ctf-file-missing key + English fluent strings Refactored the upload handler’s loop → while let (clippy never_loop)"}, {"post_id": 21913, "ts": "2026-07-04T02:52:15Z", "hours": 0.8875, "text": "i am locked in"}, {"post_id": 21885, "ts": "2026-07-04T01:54:05Z", "hours": 0.5717, "text": "wahoo this did not take 30 minutes (i kid this is not my only change)"}, {"post_id": 21864, "ts": "2026-07-04T01:06:37Z", "hours": 0.6411, "text": "CONCISEIFY"}, {"post_id": 21738, "ts": "2026-07-03T20:34:34Z", "hours": 0.5481, "text": "my payout should be at LEAST this much lmao (im kidding, almost)"}, {"post_id": 21701, "ts": "2026-07-03T20:00:01Z", "hours": 0.7075, "text": "i gave up on trying to write commit messages"}, {"post_id": 21663, "ts": "2026-07-03T18:52:33Z", "hours": 1.6639, "text": "yes i am starting to write real commit messages"}, {"post_id": 20606, "ts": "2026-07-02T07:39:00Z", "hours": 1.0633, "text": "tipscript"}, {"post_id": 20585, "ts": "2026-07-02T06:24:44Z", "hours": 1.0033, "text": "openapi"}, {"post_id": 20556, "ts": "2026-07-02T05:17:08Z", "hours": 0.69, "text": "i passed 20 hours lmao"}, {"post_id": 20513, "ts": "2026-07-02T03:51:04Z", "hours": 0.63, "text": "integration tests"}, {"post_id": 20480, "ts": "2026-07-02T02:41:29Z", "hours": 0.6553, "text": "MAIIIIIIN"}, {"post_id": 20464, "ts": "2026-07-02T01:49:59Z", "hours": 0.6083, "text": "me when doctests+refactor"}, {"post_id": 20413, "ts": "2026-07-02T00:30:37Z", "hours": 0.5308, "text": "email worker done"}, {"post_id": 20370, "ts": "2026-07-01T23:12:08Z", "hours": 1.4994, "text": "smtpp"}, {"post_id": 18934, "ts": "2026-06-30T03:35:14Z", "hours": 0.4983, "text": "pem; todolo"}, {"post_id": 18868, "ts": "2026-06-30T02:06:27Z", "hours": 1.4889, "text": "smtp; also checkout https://www.youtube.com/watch?v=PVwUMu1OVOo its really good"}, {"post_id": 17367, "ts": "2026-06-28T03:46:24Z", "hours": 0.5025, "text": "wow"}, {"post_id": 16042, "ts": "2026-06-26T02:04:24Z", "hours": 1.4167, "text": "whee all tests pass. still working on backend and excited to continue working on backend."}, {"post_id": 15963, "ts": "2026-06-25T22:30:14Z", "hours": 0.2867, "text": "i hate freeze time"}, {"post_id": 15704, "ts": "2026-06-25T15:16:48Z", "hours": 0.3469, "text": "rhai bad"}, {"post_id": 15685, "ts": "2026-06-25T14:34:31Z", "hours": 0.71, "text": "everything works except for this??? sigh"}, {"post_id": 15155, "ts": "2026-06-24T16:56:56Z", "hours": 0.4889, "text": "tests still pass, this time with some fixes to the instancer"}, {"post_id": 15121, "ts": "2026-06-24T15:57:56Z", "hours": 0.3278, "text": "yaya all tests pass"}, {"post_id": 15076, "ts": "2026-06-24T14:31:22Z", "hours": 0.3611, "text": "improved instance reaper"}, {"post_id": 14766, "ts": "2026-06-24T00:00:02Z", "hours": 0.6339, "text": "WIP Kubernetes instancer"}, {"post_id": 14424, "ts": "2026-06-23T15:29:45Z", "hours": 2.0428, "text": "something something testcases dont pass"}, {"post_id": 13714, "ts": "2026-06-22T14:12:25Z", "hours": 0.9958, "text": "rust is throwing a lot of errors, i might be debugging for a while; implemented scoreboardservice and added backend to support accuracy-based scoreboards"}, {"post_id": 13475, "ts": "2026-06-22T02:09:33Z", "hours": 0.4306, "text": "IT. IS. DONE (this one file lmao)"}, {"post_id": 13469, "ts": "2026-06-22T01:42:18Z", "hours": 0.4508, "text": "😭 i hate oauth"}, {"post_id": 13460, "ts": "2026-06-22T01:13:00Z", "hours": 1.1869, "text": "i hate rust. period."}, {"post_id": 13407, "ts": "2026-06-21T23:13:42Z", "hours": 0.3619, "text": "giant wip repos file"}, {"post_id": 13398, "ts": "2026-06-21T22:48:13Z", "hours": 0.7606, "text": "more types"}, {"post_id": 13236, "ts": "2026-06-21T17:50:50Z", "hours": 0.8161, "text": "got down all the types for challenges done, which will take a while to implement. however, it’s setup for modularity in the future which is good."}, {"post_id": 12806, "ts": "2026-06-20T22:58:50Z", "hours": 1.9642, "text": "i spent two hours writing a localized jwt system; this was DEFINITELY worth my time :trembling_thumbs_up: all jokes aside, very excited to be working on this project"}]...
|
Title: cctf.rs by @riverdalecoder | Stardance
Dev Title: cctf.rs by @riverdalecoder | Stardance
Devlogs:
i spent two hours writing a localized jwt system; this was DEFINITELY worth my time :trembling_thumbs_up: all jokes aside, very excited to be working on this project
got down all the types for challenges done, which will take a while to implement. however, it’s setup for modularity in the future which is good.
more types
giant wip repos file
i hate rust. period.
😭 i hate oauth
IT. IS. DONE (this one file lmao)
rust is throwing a lot of errors, i might be debugging for a while; implemented scoreboardservice and added backend to support accuracy-based scoreboards
something something testcases dont pass
WIP Kubernetes instancer
improved instance reaper
yaya all tests pass
tests still pass, this time with some fixes to the instancer
everything works except for this??? sigh
rhai bad
i hate freeze time
whee all tests pass. still working on backend and excited to continue working on backend.
wow
smtp; also checkout https://www.youtube.com/watch?v=PVwUMu1OVOo its really good
pem; todolo
smtpp
email worker done
me when doctests+refactor
MAIIIIIIN
integration tests
i passed 20 hours lmao
openapi
tipscript
yes i am starting to write real commit messages
i gave up on trying to write commit messages
my payout should be at LEAST this much lmao (im kidding, almost)
CONCISEIFY
wahoo this did not take 30 minutes (i kid this is not my only change)
i am locked in
Fixed the import typos (FileService comma, Multipart import) Finished main.rs file_service wiring (with the gdrive RCLONE_REMOTE env override) + all test AppState sites Your routes + API_ROUTES entries are in (with your // TODO: make configurable on the body limit — left as-is) Added openapi /api/v1/files paths (multipart upload → ChallengeFile, download → binary) + ctf-file-missing key + English fluent strings Refactored the upload handler’s loop → while let (clippy never_loop)
ladida ship in a box
currently doing jp tl
Ships:
custom framework for a ctf platform written in rust. second ship on it will be the finalized platform instead of just the framework!! hope you enjoy!!...
|
1792968840.766353
|
1793055240.766353
|
|
31732
|
Fragments by @polarizedGale1 | Stardance
|
polarizedGale1
|
1
|
26.0
|
391
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-28T17:00:35Z", "hours": 26.0, "multiplier": 14.97, "payout": 391, "blessing": "neutral", "text": "I made a procedurally generated maze game with dynamically resizing floors. This was my first time using c in a project exclusively. Before, I used it but mainly as glue code to bind to a rust or odin project. Implementing a more sophisticated generation algorithm and collision was challenging.", "repo": "https://github.com/DhaiShah25/Fragments", "demo": "https://polarizedgale.itch.io/fragments"}]...
|
[{"post_id": 56729, "ts": "202 [{"post_id": 56729, "ts": "2026-08-28T16:29:08Z", "hours": 1.2322, "text": "I fixed the issue where maze generation would break on mazes larger than 15x15 because uint8_t would overflow. Also, I added centered labels and fixed resolution issues like labels appearing offscreen. I removed the old physical buttons meant for touch screens because this is becoming desktop only (web is included for this release but not onwards). Also, mazes now change size depending on which floor they belong to."}, {"post_id": 56672, "ts": "2026-08-28T15:06:33Z", "hours": 4.7328, "text": "I re-implemented the map algorithm to use Prim’s algorithm instead of sidewinder. I also changed it to use cells with bitflags for the walls instead of doubling the map size. Maps can now be dynamically sized instead of using a compile time constant so on different levels I can make them larger or smaller. I also tweaked Prim’s algorithm to generate a braid maze instead of a perfect maze."}, {"post_id": 52468, "ts": "2026-08-22T16:24:07Z", "hours": 5.6569, "text": "I finally got time to work on this again. I cleaned up the code a bit and made maze generation generic over any size. I also collapsed the 2d maze to be 1d to hopefully help with cache locality under certain actions."}, {"post_id": 26912, "ts": "2026-07-11T23:30:58Z", "hours": 4.0783, "text": "I added proper collisions for the maze that is generated. I also added proper font sizing options, fixed web platform compilation, created a GUI start screen, properly modularized the the code to be based off the tile size, and refactored some of the code."}, {"post_id": 26215, "ts": "2026-07-10T21:38:41Z", "hours": 3.3317, "text": "I added working maze generation based off the sidewinder algorithm using bitwise operations for the maze creation. Each level is procedurally generated and randomly places the picture frame fragment in the level. I temporarily removed collisions for moving outside of the map. I now need to add collisions with the maze and to clamp the camera to the screen."}, {"post_id": 25505, "ts": "2026-07-09T20:28:03Z", "hours": 1.2736, "text": "Finished up the starting animation but without any of the proper artwork. Everything is smooth and I refactored the animation code into a function."}, {"post_id": 24995, "ts": "2026-07-08T21:54:53Z", "hours": 2.4094, "text": "I created an animation at the beginning explaining the story before the gameplay would start."}, {"post_id": 24220, "ts": "2026-07-07T17:15:41Z", "hours": 1.0428, "text": "I setup better movement, a basic tutorial flow, and changed some colors. I also changed the font to be rendering Iosevka instead of the default font and sub-setted to minimize bundle size."}, {"post_id": 24145, "ts": "2026-07-07T14:59:24Z", "hours": 0.4497, "text": "Added proper bounds checking for the player. I usually don’t work in c which is why it took a while."}, {"post_id": 23871, "ts": "2026-07-07T02:11:32Z", "hours": 1.8908, "text": "I properly linked raylib using it’s template. This took a while because nix makes stuff very odd to package and build when it requires dependencies. I also got proper 2d movement working."}]...
|
Title: Fragments by @polarizedGale1 | Stardance
D Title: Fragments by @polarizedGale1 | Stardance
Devlogs:
I properly linked raylib using it’s template. This took a while because nix makes stuff very odd to package and build when it requires dependencies. I also got proper 2d movement working.
Added proper bounds checking for the player. I usually don’t work in c which is why it took a while.
I setup better movement, a basic tutorial flow, and changed some colors. I also changed the font to be rendering Iosevka instead of the default font and sub-setted to minimize bundle size.
I created an animation at the beginning explaining the story before the gameplay would start.
Finished up the starting animation but without any of the proper artwork. Everything is smooth and I refactored the animation code into a function.
I added working maze generation based off the sidewinder algorithm using bitwise operations for the maze creation. Each level is procedurally generated and randomly places the picture frame fragment in the level. I temporarily removed collisions for moving outside of the map. I now need to add collisions with the maze and to clamp the camera to the screen.
I added proper collisions for the maze that is generated. I also added proper font sizing options, fixed web platform compilation, created a GUI start screen, properly modularized the the code to be based off the tile size, and refactored some of the code.
I finally got time to work on this again. I cleaned up the code a bit and made maze generation generic over any size. I also collapsed the 2d maze to be 1d to hopefully help with cache locality under certain actions.
I re-implemented the map algorithm to use Prim’s algorithm instead of sidewinder. I also changed it to use cells with bitflags for the walls instead of doubling the map size. Maps can now be dynamically sized instead of using a compile time constant so on different levels I can make them larger or smaller. I also tweaked Prim’s algorithm to generate a braid maze instead of a perfect maze.
I fixed the issue where maze generation would break on mazes larger than 15x15 because uint8_t would overflow. Also, I added centered labels and fixed resolution issues like labels appearing offscreen. I removed the old physical buttons meant for touch screens because this is becoming desktop only (web is included for this release but not onwards). Also, mazes now change size depending on which floor they belong to.
Ships:
I made a procedurally generated maze game with dynamically resizing floors. This was my first time using c in a project exclusively. Before, I used it but mainly as glue code to bind to a rust or odin project. Implementing a more sophisticated generation algorithm and collision was challenging....
|
1792968877.9418674
|
1793055277.9418674
|
|
34985
|
Hyper Slide by @MuhammadAayanMirza | Stardance
|
MuhammadAayanMirza
|
1
|
46.0
|
391
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-09T12:22:30Z", "hours": 46.0, "multiplier": 7.12, "payout": 391, "blessing": "neutral", "text": "This Is the first ever game I made, a simple sliding game where the player object is constantly moving forward, and has to avoid obstacles by moving left or right using the “A” and “D” keys. You can pause the game by pressing Spacebar. It has 3 levels; “Water Slide” which introduces you to the controls and feel of the game, then comes “Ice Slide” which acts as a filler level to lead you to the more challenging “Space Slide” level in which you there is an invisible floor so you have to stay close to the obstacles because that is where the floor exists but also not too close because colliding with the obstacles make the level restart. Have fun playing it!!", "repo": "https://github.com/MuhammadAayanMirza/Hyper-Slide/", "demo": "https://muhammadaayanmirza.itch.io/hyper-slide"}]...
|
[{"post_id": 43716, "ts": "202 [{"post_id": 43716, "ts": "2026-08-09T03:58:00Z", "hours": 2.6356, "text": "I made the “Water Slide” and “Space Level” a bit longer and more enjoyable to play by adding more obstacles towards the end. The space level in my opinion is the best level for playing now because of the invisible floor and that you have to guess where to go. I also fixed a lot of bugs like for some reason when you started the space level, it would auto complete and take you to the end screen. Also now when you press “Select” in the character selection scene, it takes you to the main menu indicating that your character has been selecting. I’m quite happy with how the game turned out. Keep in mind this is my first game ever and there will be some bugs and things people might not like but I like to learn and I’m gonna keep going and making things better!"}, {"post_id": 43195, "ts": "2026-08-08T10:06:23Z", "hours": 2.5872, "text": "So, I know I said that I’m gonna make a UFO skin but I made a rocket skin instead…It is still pretty cool though, I think. Also importing this into unity and then making it a playable character was a nightmare!! the mesh collider was all weirded out then I added a box collider and added the rocket to the load characters script but for some reason it was spawning 10 metres behind the actual spawn location and the reason is because when I modelled it in fusion it was not modelled in the centre of the base plane so that was fiddling with all that. Also because the rocket ship is bigger than the cube and normal ship characters I had to adjust some of the obstacles aswell so the rocket could complete all of the levels. I also did a whole play through of the game because I thought the game was now finished and ready to publish but after playing it fully and testing every single thing, I have realised that the levels are too short and not fun enough to play so I’m gonna extend the map of the levels and make it more enjoyable to play not just a 2 minute game."}, {"post_id": 42618, "ts": "2026-08-07T13:10:34Z", "hours": 2.3889, "text": "Completed making the end screen for the game with a lot of iterations as I was not liking the earlier ones. Now I’m happy with this. Also made a very informative and useful Readme file on GitHub for the game which took some time. I corrected the obstacle placement for the space level aswell and now I’m looking forward to publishing this game on itch.io. The only thing I’m contemplating on is should I make a UFO Skin for the character or not."}, {"post_id": 41954, "ts": "2026-08-06T14:12:18Z", "hours": 2.3772, "text": "I completed the Space-level with the invisible ground and some ramps in the middle that are visible. The player has to stay close to the obstacles to guess where the path is but also be careful at the same time to not collide with the obstacles. I think it is a fun concept for the game. I think I’m gonna leave the game with only these three levels and if the response after the release of the game is good then I will make the game better and add even more levels with cooler mechanics!! for now I think I’m gonna start putting the finishing touches and make the end screen."}, {"post_id": 41368, "ts": "2026-08-05T15:17:01Z", "hours": 1.8667, "text": "Made a Skybox for the space level by using blender. I made it a starry sky using blender shader options and nodes. I also decided to make the ground invisible in the space level becuase it looked way better and it makes the player think more and makes the player to stay with the obstacles because they are where the ground is but also away from them because they are still obstacles, only the ramp in the middle of the path is visible. I don’t know if this is a good decision but I currently like the idea of an invisible floor so I’m sticking with it for now."}, {"post_id": 40834, "ts": "2026-08-04T16:45:42Z", "hours": 1.6717, "text": "I learned Blender “geometry nodes” they are really complex ad you have to use like a million math nodes to make a good asteroid model, which I did. I am extremely happy how it turned out. The space level finally feels more ‘spacey’. I also added a ramp to go over a pitfall in this level so the game doesn’t feel repititive or boring after the first two levels."}, {"post_id": 40076, "ts": "2026-08-03T13:32:47Z", "hours": 1.7331, "text": "Started working on Level 3. I’m making it space themed and I 3D modelled asteroids for the obstacles but I didn’t quite like how they turned out so I remodelled them thrice but something still feels off. I am using them here as place holders for something better. I also created a layout for the obstacles using them but I am still thinking how to make em better."}, {"post_id": 39390, "ts": "2026-08-02T10:30:39Z", "hours": 1.0333, "text": "Updated the Menu Screen’s background image to the water level as it seemed cooler and I have changed the level order. So, now the first level is the water level with an easy obstacle course which I also made in this session. Second level will be the snowy level I made previously. I tried to vary the sizes and positioning of the obstacles so that they don’t feel repititive. Onto the next level!!"}, {"post_id": 39295, "ts": "2026-08-02T05:29:12Z", "hours": 1.4133, "text": "Making the second level interesting by making the whole terrain water and and adding a pebble border on the side so you don’t escape the obstacle course. I used the capsule 3d object to make the pebbles and stones for the obstacles. Now I have to create a nice layout for the obstacles which is fun to play with."}, {"post_id": 39010, "ts": "2026-08-01T17:37:52Z", "hours": 0.6667, "text": "Learning Shaders to create a water ripple effect for the second level as it will be a Beach Themed level. When I made the shader it looked perfect in the shader window to me but when I attached it to the “Ground” object the Moroni shader effect streched and I didn’t know how to fix it, I searched up online and found out that I have to add nodes like position and swizzle and set swizzle to xz and connect that to the uv element of the voronoi and it worked!! Now I have cool looking moving water effect. yayyayaya!!"}, {"post_id": 38901, "ts": "2026-08-01T14:12:09Z", "hours": 0.6281, "text": "Just learned about particle systems and made these subtle snowish particles for the first level and also adjusted the obstacle layout. Now the level feels pretty complete so I think I’ll move on to the next level. (Also changed the pause key to Spacebar as it felt more natural to use)"}, {"post_id": 38801, "ts": "2026-08-01T11:18:07Z", "hours": 1.2722, "text": "Made the obstacles layout in the first level more interesting and slightly harder so it makes the player more engaged and have more fun playing. Also corrected the game manager script because sometimes when you collided with the last obstacle and flew a bit forwards you would also collide with the “finish line’ object and it would display a “level complete” canvas which is wrong as you have collided with the last obstacle so I changed the script and added an if statement for the finish line to check if player has collided with the obstacle or not."}, {"post_id": 38670, "ts": "2026-08-01T05:31:15Z", "hours": 2.3906, "text": "I made hilly Terrain for The First Level, corrected tree placement, added an Icy Texture to the Sliding Floor and made a Snow Mound 3D Model as The Obstacles For This Level. I found it quite hard to morph Terrain to my liking but in the end it worked out. The 3D model of the Snow Mounds wasn’t making a good Mesh Collider so I went back in Blender and added a solidify modifier to the model and then the mesh collider worked very well."}, {"post_id": 38194, "ts": "2026-07-31T14:02:35Z", "hours": 2.3772, "text": "I Made The Menu Screen Look Way Better And Corrected The Trees Placement In The Scene Of Level 1. I Really Like How it Turned Out!! I Even Downloaded Fonts For The Menu Screen, I Played Around With Lighting And Fog Settings Aswell To Get A Nice Scene!!"}, {"post_id": 38051, "ts": "2026-07-31T07:23:18Z", "hours": 0.9342, "text": "Still Working on The Terrain, Trying To Give The First Level A Snowy Vibe With Varying Height Of The Terrain And Adding The Trees. Still Not Happy With The Layout, I’m In The Experimentation Phase With This Right Now. What Else Could I Add?"}, {"post_id": 38033, "ts": "2026-07-31T05:55:38Z", "hours": 1.2469, "text": "I’m Working On Making The Terrain Better In The Game, I Don’t Use Blender A lot But It Seemed The Best Option For Visual 3d Models So, I Made A Tree!! Also Did Some Bug Fixes In Unity. Rate My Tree…"}, {"post_id": 37580, "ts": "2026-07-30T12:32:42Z", "hours": 0.8, "text": "Experimenting A lot With Skyboxes And Terrains, I’m Finding It Difficult To Make The Game Look Good!!"}, {"post_id": 37528, "ts": "2026-07-30T10:31:02Z", "hours": 1.9181, "text": "The Camera Following Finally Works!!! It Only Took 3 Tutorials, 2 Hours, Lots Of C# Script Changes And Some Juice :D Also The Ship Model Now Loads In With Its Correctly Rotated Position And The Distance Tracker At The Top Works Well Too Now!! The Character Selection Still Has a Weird bug That It Keeps Going Back To The Cube, Will Fix That And Then It Would Be Time For Aesthetics!!! (Making The Game Look A lot Better hehe.)"}, {"post_id": 37451, "ts": "2026-07-30T06:26:19Z", "hours": 3.0731, "text": "It Took Me Ages To Get The Character Selection To Work And To Write The Code For It. It Was Very Challenging!! But Now My Camera Is Broken As It Had A Fixed Object To Follow Before But Now It Has To Follow Newly Spawned Object. I Also Have To Make The Screen More Aesthetically Pleasing But Coding When You Don’t Know What You Are Doin Is Very Hard!!"}, {"post_id": 37148, "ts": "2026-07-29T17:17:38Z", "hours": 1.5983, "text": "Successfully Added A Pause Feature Using The “P” Key. Also There Was A Bug Regarding The Collison Of The Ship 3D Model With Obstacle Which Was Fixed In This Session And Now I Want To Change The Base Ground To Water So It Looks Cooler!! Hopefully That Will Look Good!"}, {"post_id": 36855, "ts": "2026-07-29T05:29:41Z", "hours": 0.7333, "text": "Imported The 3D Model Into Unity But Colours Were Not Showing So I Tried Different Mesh Files And “.Fbx” Worked For Me It Imported With Colours Thankfully. I Added All The Components Required For The Ship Model So It Can Be A Playable Skin, It Is Quite Fun!! Now I Have To Figure Out A Method On How To Change The Skins In Game"}, {"post_id": 36473, "ts": "2026-07-28T16:39:30Z", "hours": 0.8833, "text": "I Published The Game On Itch.io After Creating Its Build And Stuff. After Publishing I Am Now Working on The 3D Models For The Skins Of The Cube. First One I Made Right Now Is A Ship!! Do You Like It?"}, {"post_id": 35720, "ts": "2026-07-27T10:30:09Z", "hours": 2.3728, "text": "I Completed The Core Game, It Has 3 Levels, A Menu And End Screen, Cool Layouts For The Levels, And A Cool Distance Tracker At The Top. Now I’m Getting Ready To Publish It Online!!"}, {"post_id": 35118, "ts": "2026-07-26T10:54:24Z", "hours": 1.7664, "text": "Just Completed One Whole Level, If You Hit An Obstacle You Reset. Also Created A Cool Looking level Complete Screen With An Animation. I’m Having A Ton Of Fun Making This Game And Also Play Testing It. Took Me A Few Tries To Complete The First level. Gonna Hopefull Make New Levels Now And See How To Go From One Level To Another Using Code!!"}, {"post_id": 35077, "ts": "2026-07-26T08:22:23Z", "hours": 2.1989, "text": "Created A Short Level To Test The Speed Of The Player And Added Game Manager Which Currently Tells The Console When Game Is Over. Added Fog To The Environment So That It Gives A Polished Look To The Game, At The Top It Says How Much Distance You Have Travelled For Now But I Soon Wanna Replace It With No. Of Attempts Or No. Of Deaths."}, {"post_id": 35006, "ts": "2026-07-26T04:50:52Z", "hours": 0.7533, "text": "I Added The First Obstacle In The Game, Made The Player Body Stop When It Collides With The Obstacle Body, Made The Camera Follow The Player Body, Created A Tag For Obstacles To Reference In The Code Files, And Made A Material For The Obstacle."}, {"post_id": 34966, "ts": "2026-07-26T03:06:27Z", "hours": 0.9558, "text": "I Finally Figured Out How To Make The If Command Work In Unity To Get A Key, I’m Following A Brackeys Tutorial For This And He Was Writing Old Code Which Now In Default Unity Doesn’t Work You Have To Change The Active Input Handling Setting To “Both” Instead Of “Input System Package (New)”. That Took A While To Figure Out!! Now My A And D Keys Work As Left And Right Keys, Finally!!!"}, {"post_id": 34142, "ts": "2026-07-24T17:22:16Z", "hours": 0.6925, "text": "In This Session I Connected My Unity With VS Code, And I Tried To Display A Simple Message Which Did Not Work Sadly But After Trial And Error It Finally Did And Now I’m Adding Physics And Forces To The Cube!!"}, {"post_id": 33994, "ts": "2026-07-24T11:56:59Z", "hours": 0.7667, "text": "It Is My First Time Making A Game And Using Unity. I Am Following A Tutorial And As Of Now I have Learned How To Create A 3D Object Like This Cube, Learned How To Add Materials To The Objects And How To Change The Camera Angle, etc."}]...
|
Title: Hyper Slide by @MuhammadAayanMirza | Starda Title: Hyper Slide by @MuhammadAayanMirza | Stardance
Devlogs:
It Is My First Time Making A Game And Using Unity. I Am Following A Tutorial And As Of Now I have Learned How To Create A 3D Object Like This Cube, Learned How To Add Materials To The Objects And How To Change The Camera Angle, etc.
In This Session I Connected My Unity With VS Code, And I Tried To Display A Simple Message Which Did Not Work Sadly But After Trial And Error It Finally Did And Now I’m Adding Physics And Forces To The Cube!!
I Finally Figured Out How To Make The If Command Work In Unity To Get A Key, I’m Following A Brackeys Tutorial For This And He Was Writing Old Code Which Now In Default Unity Doesn’t Work You Have To Change The Active Input Handling Setting To “Both” Instead Of “Input System Package (New)”. That Took A While To Figure Out!! Now My A And D Keys Work As Left And Right Keys, Finally!!!
I Added The First Obstacle In The Game, Made The Player Body Stop When It Collides With The Obstacle Body, Made The Camera Follow The Player Body, Created A Tag For Obstacles To Reference In The Code Files, And Made A Material For The Obstacle.
Created A Short Level To Test The Speed Of The Player And Added Game Manager Which Currently Tells The Console When Game Is Over. Added Fog To The Environment So That It Gives A Polished Look To The Game, At The Top It Says How Much Distance You Have Travelled For Now But I Soon Wanna Replace It With No. Of Attempts Or No. Of Deaths.
Just Completed One Whole Level, If You Hit An Obstacle You Reset. Also Created A Cool Looking level Complete Screen With An Animation. I’m Having A Ton Of Fun Making This Game And Also Play Testing It. Took Me A Few Tries To Complete The First level. Gonna Hopefull Make New Levels Now And See How To Go From One Level To Another Using Code!!
I Completed The Core Game, It Has 3 Levels, A Menu And End Screen, Cool Layouts For The Levels, And A Cool Distance Tracker At The Top. Now I’m Getting Ready To Publish It Online!!
I Published The Game On Itch.io After Creating Its Build And Stuff. After Publishing I Am Now Working on The 3D Models For The Skins Of The Cube. First One I Made Right Now Is A Ship!! Do You Like It?
Imported The 3D Model Into Unity But Colours Were Not Showing So I Tried Different Mesh Files And “.Fbx” Worked For Me It Imported With Colours Thankfully. I Added All The Components Required For The Ship Model So It Can Be A Playable Skin, It Is Quite Fun!! Now I Have To Figure Out A Method On How To Change The Skins In Game
Successfully Added A Pause Feature Using The “P” Key. Also There Was A Bug Regarding The Collison Of The Ship 3D Model With Obstacle Which Was Fixed In This Session And Now I Want To Change The Base Ground To Water So It Looks Cooler!! Hopefully That Will Look Good!
It Took Me Ages To Get The Character Selection To Work And To Write The Code For It. It Was Very Challenging!! But Now My Camera Is Broken As It Had A Fixed Object To Follow Before But Now It Has To Follow Newly Spawned Object. I Also Have To Make The Screen More Aesthetically Pleasing But Coding When You Don’t Know What You Are Doin Is Very Hard!!
The Camera Following Finally Works!!! It Only Took 3 Tutorials, 2 Hours, Lots Of C# Script Changes And Some Juice :D Also The Ship Model Now Loads In With Its Correctly Rotated Position And The Distance Tracker At The Top Works Well Too Now!! The Character Selection Still Has a Weird bug That It Keeps Going Back To The Cube, Will Fix That And Then It Would Be Time For Aesthetics!!! (Making The Game Look A lot Better hehe.)
Experimenting A lot With Skyboxes And Terrains, I’m Finding It Difficult To Make The Game Look Good!!
I’m Working On Making The Terrain Better In The Game, I Don’t Use Blender A lot But It Seemed The Best Option For Visual 3d Models So, I Made A Tree!! Also Did Some Bug Fixes In Unity. Rate My Tree…
Still Working on The Terrain, Trying To Give The First Level A Snowy Vibe With Varying Height Of The Terrain And Adding The Trees. Still Not Happy With The Layout, I’m In The Experimentation Phase With This Right Now. What Else Could I Add?
I Made The Menu Screen Look Way Better And Corrected The Trees Placement In The Scene Of Level 1. I Really Like How it Turned Out!! I Even Downloaded Fonts For The Menu Screen, I Played Around With Lighting And Fog Settings Aswell To Get A Nice Scene!!
I made hilly Terrain for The First Level, corrected tree placement, added an Icy Texture to the Sliding Floor and made a Snow Mound 3D Model as The Obstacles For This Level. I found it quite hard to morph Terrain to my liking but in the end it worked out. The 3D model of the Snow Mounds wasn’t making a good Mesh Collider so I went back in Blender and added a solidify modifier to the model and then the mesh collider worked very well.
Made the obstacles layout in the first level more interesting and slightly harder so it makes the player more engaged and have more fun playing. Also corrected the game manager script because sometimes when you collided with the last obstacle and flew a bit forwards you would also collide with the “finish line’ object and it would display a “level complete” canvas which is wrong as you have collided with the last obstacle so I changed the script and added an if statement for the finish line to check if player has collided with the obstacle or not.
Just learned about particle systems and made these subtle snowish particles for the first level and also adjusted the obstacle layout. Now the level feels pretty complete so I think I’ll move on to the next level. (Also changed the pause key to Spacebar as it felt more natural to use)
Learning Shaders to create a water ripple effect for the second level as it will be a Beach Themed level. When I made the shader it looked perfect in the shader window to me but when I attached it to the “Ground” object the Moroni shader effect streched and I didn’t know how to fix it, I searched up online and found out that I have to add nodes like position and swizzle and set swizzle to xz and connect that to the uv element of the voronoi and it worked!! Now I have cool looking moving water effect. yayyayaya!!
Making the second level interesting by making the whole terrain water and and adding a pebble border on the side so you don’t escape the obstacle course. I used the capsule 3d object to make the pebbles and stones for the obstacles. Now I have to create a nice layout for the obstacles which is fun to play with.
Updated the Menu Screen’s background image to the water level as it seemed cooler and I have changed the level order. So, now the first level is the water level with an easy obstacle course which I also made in this session. Second level will be the snowy level I made previously. I tried to vary the sizes and positioning of the obstacles so that they don’t feel repititive. Onto the next level!!
Started working on Level 3. I’m making it space themed and I 3D modelled asteroids for the obstacles but I didn’t quite like how they turned out so I remodelled them thrice but something still feels off. I am using them here as place holders for something better. I also created a layout for the obstacles using them but I am still thinking how to make em better.
I learned Blender “geometry nodes” they are really complex ad you have to use like a million math nodes to make a good asteroid model, which I did. I am extremely happy how it turned out. The space level finally feels more ‘spacey’. I also added a ramp to go over a pitfall in this level so the game doesn’t feel repititive or boring after the first two levels.
Made a Skybox for the space level by using blender. I made it a starry sky using blender shader options and nodes. I also decided to make the ground invisible in the space level becuase it looked way better and it makes the player think more and makes the player to stay with the obstacles because they are where the ground is but also away from them because they are still obstacles, only the ramp in the middle of the path is visible. I don’t know if this is a good decision but I currently like the idea of an invisible floor so I’m sticking with it for now.
I completed the Space-level with the invisible ground and some ramps in the middle that are visible. The player has to stay close to the obstacles to guess where the path is but also be careful at the same time to not collide with the obstacles. I think it is a fun concept for the game. I think I’m gonna leave the game with only these three levels and if the response after the release of the game is good then I will make the game better and add even more levels with cooler mechanics!! for now I think I’m gonna start putting the finishing touches and make the end screen.
Completed making the end screen for the game with a lot of iterations as I was not liking the earlier ones. Now I’m happy with this. Also made a very informative and useful Readme file on GitHub for the game which took some time. I corrected the obstacle placement for the space level aswell and now I’m looking forward to publishing this game on itch.io. The only thing I’m contemplating on is should I make a UFO Skin for the character or not.
So, I know I said that I’m gonna make a UFO skin but I made a rocket skin instead…It is still pretty cool though, I think. Also importing this into unity and then making it a playable character was a nightmare!! the mesh collider was all weirded out then I added a box collider and added the rocket to the load characters script but for some reason it was spawning 10 metres behind the actual spawn location and the reason is because when I modelled it in fusion it was not modelled in the centre of the base plane so that was fiddling with all that. Also because the rocket ship is bigger than the cube and normal ship characters I had to adjust some of the obstacles aswell so the rocket could complete all of the levels. I also did a whole play through of the game because I thought the game was now finished and ready to publish but after playing it fully and testing every single thing, I have realised that the levels are too short and not fun enough to play so I’m gonna extend the map of the levels and make it more enjoyable to play not just a 2 minute game.
I made the “Water Slide” and “Space Level” a bit longer and more enjoyable to play by adding more obstacles towards the end. The space level in my opinion is the best level for playing now because of the invisible floor and that you have to guess where to go. I also fixed a lot of bugs like for some reason when you started the space level, it would auto complete and take you to the end screen. Also now when you press “Select” in the character selection scene, it takes you to the main menu indicating that your character has been selecting. I’m quite happy with how the game turned out. Keep in mind this is my first game ever and there will be some bugs and things people might not like but I like to learn and I’m gonna keep going and making things better!
Ships:
This Is the first ever game I made, a simple sliding game where the player object is constantly moving forward, and has to avoid obstacles by moving left or right using the “A” and “D” keys. You can pause the game by pressing Spacebar. It has 3 levels; “Water Slide” which introduces you to the controls and feel of the game, then comes “Ice Slide” which acts as a filler level to lead you to the more challenging “Space Slide” level in which you there is an invisible floor so you have to stay close to the obstacles because that is where the floor exists but also not too close because colliding with the obstacles make the level restart. Have fun playing it!!...
|
1792993749.470845
|
1793080149.470845
|
|
26452
|
Orbital by @Mehmet | Stardance
|
Mehmet
|
2
|
32.0
|
390
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-07T19:39:02Z", "hours": 17.0, "multiplier": 12.19, "payout": 201, "blessing": "neutral", "text": "I built Orbital, the all-in-one project that encompasses whatever you need from a 2D astronomical simulator. When first loading it up, a window titled “Orbital” pops up, and you will see a star right at the center. You can change the window dimensions however you would like, whether fullscreen or resized small. This is where the fun starts: I spent tireless hours implementing a slingshot mechanism where you can intuitively and easily launch “orbitals,” as I like to call them. You can think of these as small planets that you can send to orbit around each other and around bigger stars, masses, and objects that you create yourself. The starting star is just to get you going. Controls and Features: • Navigation: Use the WASD keys and/or arrow keys to navigate around this 2D world and find different orbits across the gigantic canvas. It does not have an end (unless you spend 10 hours of unemployment trying to find it, but I am sure you are not that stubborn). • Mass Adjustment: Use the plus (+) and minus (-) keys to change the mass of the objects you throw into the simulation. • Physics: It runs on full n-body physics; nothing is hard-coded and everything is dynamic. No matter how quirky and interesting your orbits are, they will be solely and originally yours. • Visuals: The colors change up every once in a while. I really tried to make it as minimalist and physics-identifying as possible. • Reset: Press the R key on your keyboard to reset the world and start from a fresh universe, marked by the reset star that kickstarts everything again. I am really proud of the n-body physics because it was surprisingly manageable and cool to work on. Where I really struggled was on advanced merging. Normally, if objects are touching, you can simply merge them. But when objects move super fast, one frame they are far away, and by the next frame, high velocity math teleports them right past or into the other object. If you slingshot a planet relatively fast, it could easily glitch and teleport through objects. To fix this, I had to calculate whether the path the object took from frame 0 to frame 1 intersected any other objects along its trajectory. That was an especially hard, albeit depressing challenge, but nevertheless, it was encountered and defeated so you could enjoy astronomical bliss. Thank you!", "repo": "https://github.com/SameRainbows/Starshell", "demo": "https://github.com/SameRainbows/Orbital/releases/tag/v1.0.0"}, {"ship_num": 2, "ts": "2026-07-05T15:30:25Z", "hours": 15.0, "multiplier": 12.8, "payout": 189, "blessing": "neutral", "text": "Initial Ship Update (v1.0.0) What did I make? I built Orbital , a 2D gravitational physics sandbox created entirely in Python using only standard library modules ( turtle and tkinter ). Orbits are not hardcoded; they emerge dynamically from Newton’s Law of Universal Gravitation calculated between every single body frame-by-frame. You can interactively slingshot planets into orbit, pan a camera infinitely around the universe using WASD or Arrow keys, adjust the laws of physics on the fly using a Tkinter-based HUD, and watch planets collide and merge under the conservation of momentum. What was challenging? The Coordinates Separation: Early on, a planet’s physics position was its drawing position. To build a panning camera, I had to decouple them—creating a 9-element list structure to track world coordinates privately while subtracting camera offsets only for rendering. The “Tunneling” Bug: Fast slingshotted planets would frequently phase straight through the central star between frames. I solved this by implementing Continuous Collision Detection (CCD)—using vector dot-product projection to check if the line segment traveled during a frame intersected the star. Singularity Prevention: As merging planets got infinitesimally close, the gravity force equation approached divide-by-zero, creating infinite force that would sling bodies off screen at lightspeed. I had to write custom logic to disable gravity between two bodies the exact frame they overlap. A Responsive HUD: Nesting Tkinter widgets on a Turtle ScrolledCanvas caused nesting errors. I resolved this by passing the raw screen._root as the parent, and binding the canvas <Configure> event to dynamically slide the widgets so they stay pinned to the top-right corner when resizing. What am I proud of? Conserving Density: When two bodies merge, the new object’s size is calculated using sqrt(r1² + r2²) rather than just adding the radii. This ensures area is conserved, keeping physical density mathematically consistent. Conservation of Momentum: If you launch two equal-mass planets head-on at the same speed, they will perfectly cancel out and stop dead in space upon impact, exactly as real-world physics dictates. What should people know so they can test my project? Slingshot: Click, drag, and release to fling planets into the cosmos. HUD Controls: Adjust the Gravity slider to warp orbits in real-time, and slide the Mass slider to change the size and weight of the next planet you launch. Color Picker: Click the color button to cycle the launching color (the button text dynamically updates to show what is selected). Navigation: Use WASD or Arrow keys to pan the camera around. Rebuilding: Press the Reset button to wipe the board and start a clean universe. No Python installed? Zero-dependency, standalone executables for Windows , macOS , and Linux are automatically built and attached directly to the GitHub Release!", "repo": "https://github.com/SameRainbows/Starshell", "demo": "https://github.com/SameRainbows/Orbital/releases/tag/v1.0.0"}]...
|
[{"post_id": 63802, "ts": "202 [{"post_id": 63802, "ts": "2026-09-07T19:26:27Z", "hours": 1.2872, "text": "I updated the project. I was notified that it initially crashed on macOS, and the arrow keys were a bit janky on macOS as well. All of that has been completely fixed, and I’ve updated the readme and the latest code on GitHub to encompass those changes."}, {"post_id": 38456, "ts": "2026-07-31T20:42:59Z", "hours": 0.3458, "text": "A few cleanups on the size of the grid."}, {"post_id": 37557, "ts": "2026-07-30T11:27:46Z", "hours": 0.4203, "text": "Today I changed the title card of the window that pops up. A few other updates: • I tweaked the final game feel a bit. • I made the initial spawning star spawn in a sort of light yellow color, and I also added that light yellow color to the colors list. • I made sure that the window of the simulation is also in dark mode, so you get more encapsulated in it."}, {"post_id": 37243, "ts": "2026-07-29T20:01:14Z", "hours": 0.3844, "text": "Added a background grid so that you get a sense of spatial bigness and tininess. You get a feel for how big and small your orbitals really are."}, {"post_id": 36907, "ts": "2026-07-29T09:37:56Z", "hours": 0.5981, "text": "I finally got the complex merging done. Before, when an orbital was going too fast, one frame it was at the back of another orbital, and the next frame, it was in front of it. Since its velocity was so high, the radii didn’t ever collide, so it just went through other ones without merging. That was really not acceptable, so I worked a lot on making sure it works. How I did it is actually very interesting: Get the starting position of the moving object and its ending position on the next frame. Get the coordinates of the target object you want to check for a potential merge. Draw a line from where the moving object started to where it ended, and check if the target object is intersecting that line (calculating what percentage along that line the checked object sits). If it intersects, you merge them."}, {"post_id": 34557, "ts": "2026-07-25T11:31:10Z", "hours": 1.9503, "text": "Added some instructions to make it easier, added more colors, and I’m now working on making more rigorous merge logic."}, {"post_id": 31787, "ts": "2026-07-20T13:42:17Z", "hours": 0.7153, "text": "Today I added zooming that works with scrolling up and scrolling down appropriately: when you scroll down, everything gets smaller, and when you scroll up, everything gets bigger. Mass and gravity, of course, stay the same. I made sure that the sling function (basically spawning new orbitals) works flawlessly. Our aim function—which draws that mini press-and-drag indicator to make it easier to see where you are spawning orbitals—is also working with both camera differentiation and zoom differentiation. This way, you can zoom all the way out and still spawn orbitals in the correct way, or zoom all the way in and spawn them super close up. All the physics and rendering works beautifully."}, {"post_id": 31286, "ts": "2026-07-19T15:52:23Z", "hours": 0.4508, "text": "I made some more intuitive user changes: Slingshot Dampening: Now, the slingshot isn’t like an Angry Bird slingshot that propels your particles to the other side of the universe (though you could do that if you want, just open the code). All the slingshot coordinates and values are now multiplied by 0.2. We’re nerfing it a lot, but it seems more intuitive that way. Since you don’t know it’s nerfed, you won’t notice there is a higher capacity. In our case, a higher capacity actually means friction. Don’t get me wrong: it’s not particle friction, because they go super fast. It’s friction when trying to get orbits to work. Repository Tweaks: Calling the script from_scratch.py was killing me, so I found something simpler: orbital.py. It’s much better. I updated the GitHub repository so that the current release is orbital.py (the refactored version). While main.py (the previous version) has a few more features right now, orbital.py is much cleaner. Main.py was more of a learning run, and I feel like I’m bringing my A-game with this new refactor. Look and Feel: I really liked the black background and white orbitals of the previous main.py version, so I changed the clinical-seeming style of from_scratch.py. I scrapped that look and made sure the new orbital.py has some taste."}, {"post_id": 30665, "ts": "2026-07-18T12:54:27Z", "hours": 0.4531, "text": "I fixed the “merging from hell”. The first issue was the radius calculation. When two circles merge, simply adding their radii ( r1 + r2 ) is physically wrong because the combined area grows way too fast. In reality, the area of the circles should add up: A_new = A1 + A2 . By plugging in the area formula π × r² , we get π × r_new² = (π × r1²) + (π × r2²) . The π cancels out completely, leaving r_new = math.sqrt(r1² + r2²) . I updated the collision code with this, and now the combined masses have physically accurate sizes.To make this look right, I also fixed the visual scaling issue. Previously, every particle rendered at shapesize(1, 1) regardless of its actual mass or radius. I changed the instantiator so that a body’s shapesize dynamically scales with its physics radius: self.turt.shapesize(self.radius / 10, self.radius / 10) . Now when objects collide, you can actually see the merged planet grow on the screen.Lastly, I added a quick reset button . Pressing the R key runs a function that loops through the current objects, hides all their turtles to prevent visual ghosts, clears the main objects list, resets the camera back to center coordinates, and spawns a fresh central star"}, {"post_id": 30329, "ts": "2026-07-17T20:01:25Z", "hours": 0.7283, "text": "Hey, I added merging, but it’s “merging out of hell” because I made a very unphysically true and crude (if you’d call it that), but working prototype of merge_collisions and the merge function itself. It works as I intended, but not physically truly. Right now, it adds the radii of the circles themselves. If you think about it, that’s physically wrong because there’s a big difference between adding the areas of the circles versus their radii. That’s something I want to get right, so the next time I’m working on it, I’ll make sure to fix it so that we are adding the areas of the circles rather than their radii. I also found a bit of a problem where the merged objects themselves have a shape size of (1, 1). That’s not right because if you merge two objects with shape size 1, you’d expect the new shape size to be 2. Right now, no matter how many objects you merge, it still stays at 1, resulting in a very, very dense circle. I’m going to change that so we add the areas themselves, and have that new, bigger area update the visual representation of those astronomical objects. I’ll keep you guys updated. See you next time."}, {"post_id": 29651, "ts": "2026-07-16T18:34:38Z", "hours": 2.6961, "text": "Lots of stuff today: Camera movement: I added camera movement to our new refractor. Better version of the sling: The older one just expected you to press, drag, and release without seeing much of an indicator. While that works if you know the program a bit, I think a direct, laser-esque pointer that shows you actively as you’re pressing, dragging, and releasing is more intuitive and easier to work with. So I added that. Now we have intuitive camera movement and intuitive spawning. For this refactor, we won’t have any UI. All the sliders for gravity and mass will be per keyboard or hotkey."}, {"post_id": 27197, "ts": "2026-07-12T15:21:09Z", "hours": 0.7889, "text": "Welcome! Today, I fully migrated to the object-oriented programming architecture. Earlier, the class wasn’t really full OOP; it was just a hidden list factory that appended the stuff via a class instead of doing it manually. I wanted to change that because this is going to be a refactor in an OOP perspective , and that’s what I did.I made sure that all the formulas used the latest changes:1. Earlier, they would use the index of the objects inside the objs list of lists. It would be something like object1 and the index of whichever element it wants to access, like mass , radius , velocity , or coordinates. It was very sloppy, and you had to keep up with what each index meant.2. With an OOP version, you just write object1.mass , object1.x , or object1.vx . Each and every line is more intuitive.I also worked more on the planet spawning . Remember, this is a new file with a different perspective of trying to remake this in an OOP sense, using classes and the benefits that ensue from them.Additionally, today I implemented the balancing of the canvas differences in Tkinter and Turtle :- In Turtle, the (0, 0) coordinate is directly in the middle of the screen .- In Tkinter, it’s at the absolute top left of the screen.You have to make sure that all the formulas and all the logic get the correct version, which in my project is the Turtle version . I added and worked out the logic that would make sure that balance is kept."}, {"post_id": 26600, "ts": "2026-07-11T14:59:24Z", "hours": 0.7944, "text": "Actively working on making Orbital (via the from_scratch.py file) more object-oriented. I think OOP (object-oriented programming) will be a great addition to Orbital because we have lots of stuff that can be simplified. These could be new particles, like new planets, and I think grouping everything into classes would be a better way to handle these. Right now, our sling function just does the same thing again and again. A class that could be called any time we want to make a new particle is probably the way to go. I’ll keep you guys updated."}, {"post_id": 25989, "ts": "2026-07-10T15:20:31Z", "hours": 0.7464, "text": "Today I spent all my time on from_scratch.py to really get to understand the physics of it all. Before, I just relied on a few formulas.That’s why I’m going to try and maximize my gains from this project by re-understanding all the logic and trying to write it from scratch, using only my notes and not looking at any AI or code from main.py .It’s going good! I added quite a few functions:- A distance function- A force function- An angle function (all of these take two objects, by the way — I still have the same objs list, which is a list of lists)- A velocity update function called velo_update that takes an object , a force , angle , and mass , and updates the velocities of those objects depending on their forces, angles, and massMaybe I can cut back on mass . I don’t know why I added it, since we can already get it from the objs list with our object parameter. I’ll look into that.I also created the scaffold for an update function, which is going to be the main function . I added screen.ontimer(update, 10) to run it every 10 milliseconds. It’s just the main scaffold for now, but I’m really focusing on the logic of it all."}, {"post_id": 25611, "ts": "2026-07-10T00:02:56Z", "hours": 3.3097, "text": "Hey, this is another mini devlog. I just wanted to say that while waiting for my initial ship to get reviewed, I was working on reviewing my current code and remembering how every part interacted. I’m doing this by making a from-scratch.py file where I just try to build the general project from the ground up with my direct understanding and recall of it, without looking at every line of code. This is like a mini side quest in the background so that as the file gets big, I don’t lose where I’m going. Right now, it just has the basic functions like distance and force, and has two Python turtles set to circles with different colors. I’m going to build this from the ground up and really focus on the struggle and pain through the process. I want to maximize my gains from this project this way."}, {"post_id": 23423, "ts": "2026-07-06T11:33:26Z", "hours": 0.8419, "text": "The UI was a very wretched default gray, and to be honest, it didn’t look so visually appealing. Mine still isn’t all peaches and cream, but it’s less of a distraction and more of a subtlety in the grand scheme of things. I changed this to a better, harmonizing dark charcoal color that I think goes pretty well with the minimalist design of all-white Orbitals and a pure black background."}, {"post_id": 22825, "ts": "2026-07-05T12:58:40Z", "hours": 0.5425, "text": "Hey, remember the UI I had in earlier? Well, when you change the window size, it just stays hard-coded. If you maximize your window, there’s suddenly a piece of UI that was supposed to help you navigate the simulator that’s in your way. So, I did some math so that the UI is at the perfect top right of any shape and size of the windows you make. It’s a dynamic UI layout, and it’s dynamic enough to survive window resizing. Pretty cool."}, {"post_id": 22811, "ts": "2026-07-05T12:15:42Z", "hours": 1.3161, "text": "Today I added some UI, so we have some actually good interactive elements. We can use sliders to, in real time, update our gravity. And I also added a reset button that basically lets you clean up all the messes and start from a fresh place."}, {"post_id": 22124, "ts": "2026-07-04T12:42:36Z", "hours": 2.3839, "text": "This is not a full devlog. Because I’m typing this on my phone. Came to say that I’m working on adding a minimalistic UI to the project, like small buttons and maybe sliders for mass and color control. Using tkinter, the underlying library in which turtle was built. I don’t have any screenshots with me, so enjoy this photo from my gallery, shot at the beach at night."}, {"post_id": 21435, "ts": "2026-07-03T11:55:53Z", "hours": 3.6731, "text": "Today I added merging. Now, objects that get too close to each other don’t do weird physics-breaking stuff. They intuitively merge into an object with a total mass, total area, and a new velocity depending on the previous velocities. This way, you can actually build complex systems that fall apart in at least an ordered way. There was a slight problem if the objects were going too fast: because of their speed, one frame they would be behind each other and the next frame they would be ahead of each other. I had to do some math to see if the path they took went through the object we were checking. That was a very fun, intuitive piece to work on, and merging now works very intuitively and very well."}, {"post_id": 19114, "ts": "2026-06-30T11:02:05Z", "hours": 1.3767, "text": "Added camera movement with WASD. Now, the objects that run out of your view aren’t lost forever: you can catch up to them with only your keyboard and a few fingers."}, {"post_id": 18601, "ts": "2026-06-29T19:53:31Z", "hours": 2.1206, "text": "I finally added slingshotting! Basically, the planets aren’t hidden in the code itself anymore; they are right at your fingertips. You can spawn planets just by clicking and dragging. It’s that simple. This was a feature I wanted for a very long time, and I’m really satisfied with how it turned out."}, {"post_id": 16991, "ts": "2026-06-27T15:56:02Z", "hours": 0.7453, "text": "Devlog #2 — N-Body Physics Today I implemented dynamic physics and dynamic moving. Basically, before, the move function—the function on a one-millisecond timer that updated everything—was extremely hard-coded. It just used the data of the existing two turtles (the two bodies I made myself), and it definitely wasn’t scalable. So that was what I tackled today. Now, the main function that runs our whole physics simulation is a tad bit less torturous."}, {"post_id": 16363, "ts": "2026-06-26T16:57:58Z", "hours": 2.59, "text": "I’m building Starshell, a 2D astronomical physics simulator in pure Python turtle. No game engine, no physics library—just the standard library, a turtle canvas, and physics and math. The idea in my head is quite simple: I want to simulate how gravity actually works. Bodies with mass attract each other, their paths bend, and orbits merge. Eventually, I want collisions, multi-body chaos, and a UI where you click to place stars and planets. Today’s milestone was the first orbit. To get here, I didn’t just plug in some formulas; I had to build the physics chains from a blank turtle canvas: Distance between two bodies Gravitational force: F = G × (m1 × m2) / r² Direction of that force: atan2(y, x) Force components: splitting into x and y with cos and sin Acceleration: a = F / m Velocity update: adding acceleration each frame Position update: moving the turtle by velocity each frame The orbit isn’t actually hard to code. The planet doesn’t know it’s supposed to go in a circle; I don’t tell it to trace a circle. It just responds to the pull of the star every single frame. The circle is what falls out of the math when the initial velocity is balanced just right. One of the trickiest moments was realizing my gravitational constant (G = 1) made the force so small—around 0.0004—that compared to my velocity of two units per frame, the planet just flew away in a straight line. I couldn’t see any curve at all, let alone an orbit. Cranking the gravity up to something like 1,000 to 1,600 (found by experimentation) made the orbits visible. That moment when the blue dot actually curved and came back around in a full orbit felt very satisfying. Next up, I want multiple bodies that interact with each other, not just a fixed point (aka a star). Follow Along!"}]...
|
Title: Orbital by @Mehmet | Stardance
Devlogs:
I’ Title: Orbital by @Mehmet | Stardance
Devlogs:
I’m building Starshell, a 2D astronomical physics simulator in pure Python turtle. No game engine, no physics library—just the standard library, a turtle canvas, and physics and math. The idea in my head is quite simple: I want to simulate how gravity actually works. Bodies with mass attract each other, their paths bend, and orbits merge. Eventually, I want collisions, multi-body chaos, and a UI where you click to place stars and planets. Today’s milestone was the first orbit. To get here, I didn’t just plug in some formulas; I had to build the physics chains from a blank turtle canvas: Distance between two bodies Gravitational force: F = G × (m1 × m2) / r² Direction of that force: atan2(y, x) Force components: splitting into x and y with cos and sin Acceleration: a = F / m Velocity update: adding acceleration each frame Position update: moving the turtle by velocity each frame The orbit isn’t actually hard to code. The planet doesn’t know it’s supposed to go in a circle; I don’t tell it to trace a circle. It just responds to the pull of the star every single frame. The circle is what falls out of the math when the initial velocity is balanced just right. One of the trickiest moments was realizing my gravitational constant (G = 1) made the force so small—around 0.0004—that compared to my velocity of two units per frame, the planet just flew away in a straight line. I couldn’t see any curve at all, let alone an orbit. Cranking the gravity up to something like 1,000 to 1,600 (found by experimentation) made the orbits visible. That moment when the blue dot actually curved and came back around in a full orbit felt very satisfying. Next up, I want multiple bodies that interact with each other, not just a fixed point (aka a star). Follow Along!
Devlog #2 — N-Body Physics Today I implemented dynamic physics and dynamic moving. Basically, before, the move function—the function on a one-millisecond timer that updated everything—was extremely hard-coded. It just used the data of the existing two turtles (the two bodies I made myself), and it definitely wasn’t scalable. So that was what I tackled today. Now, the main function that runs our whole physics simulation is a tad bit less torturous.
I finally added slingshotting! Basically, the planets aren’t hidden in the code itself anymore; they are right at your fingertips. You can spawn planets just by clicking and dragging. It’s that simple. This was a feature I wanted for a very long time, and I’m really satisfied with how it turned out.
Added camera movement with WASD. Now, the objects that run out of your view aren’t lost forever: you can catch up to them with only your keyboard and a few fingers.
Today I added merging. Now, objects that get too close to each other don’t do weird physics-breaking stuff. They intuitively merge into an object with a total mass, total area, and a new velocity depending on the previous velocities. This way, you can actually build complex systems that fall apart in at least an ordered way. There was a slight problem if the objects were going too fast: because of their speed, one frame they would be behind each other and the next frame they would be ahead of each other. I had to do some math to see if the path they took went through the object we were checking. That was a very fun, intuitive piece to work on, and merging now works very intuitively and very well.
This is not a full devlog. Because I’m typing this on my phone. Came to say that I’m working on adding a minimalistic UI to the project, like small buttons and maybe sliders for mass and color control. Using tkinter, the underlying library in which turtle was built. I don’t have any screenshots with me, so enjoy this photo from my gallery, shot at the beach at night.
Today I added some UI, so we have some actually good interactive elements. We can use sliders to, in real time, update our gravity. And I also added a reset button that basically lets you clean up all the messes and start from a fresh place.
Hey, remember the UI I had in earlier? Well, when you change the window size, it just stays hard-coded. If you maximize your window, there’s suddenly a piece of UI that was supposed to help you navigate the simulator that’s in your way. So, I did some math so that the UI is at the perfect top right of any shape and size of the windows you make. It’s a dynamic UI layout, and it’s dynamic enough to survive window resizing. Pretty cool.
The UI was a very wretched default gray, and to be honest, it didn’t look so visually appealing. Mine still isn’t all peaches and cream, but it’s less of a distraction and more of a subtlety in the grand scheme of things. I changed this to a better, harmonizing dark charcoal color that I think goes pretty well with the minimalist design of all-white Orbitals and a pure black background.
Hey, this is another mini devlog. I just wanted to say that while waiting for my initial ship to get reviewed, I was working on reviewing my current code and remembering how every part interacted. I’m doing this by making a from-scratch.py file where I just try to build the general project from the ground up with my direct understanding and recall of it, without looking at every line of code. This is like a mini side quest in the background so that as the file gets big, I don’t lose where I’m going. Right now, it just has the basic functions like distance and force, and has two Python turtles set to circles with different colors. I’m going to build this from the ground up and really focus on the struggle and pain through the process. I want to maximize my gains from this project this way.
Today I spent all my time on from_scratch.py to really get to understand the physics of it all. Before, I just relied on a few formulas.That’s why I’m going to try and maximize my gains from this project by re-understanding all the logic and trying to write it from scratch, using only my notes and not looking at any AI or code from main.py .It’s going good! I added quite a few functions:- A distance function- A force function- An angle function (all of these take two objects, by the way — I still have the same objs list, which is a list of lists)- A velocity update function called velo_update that takes an object , a force , angle , and mass , and updates the velocities of those objects depending on their forces, angles, and massMaybe I can cut back on mass . I don’t know why I added it, since we can already get it from the objs list with our object parameter. I’ll look into that.I also created the scaffold for an update function, which is going to be the main function . I added screen.ontimer(update, 10) to run it every 10 milliseconds. It’s just the main scaffold for now, but I’m really focusing on the logic of it all.
Actively working on making Orbital (via the from_scratch.py file) more object-oriented. I think OOP (object-oriented programming) will be a great addition to Orbital because we have lots of stuff that can be simplified. These could be new particles, like new planets, and I think grouping everything into classes would be a better way to handle these. Right now, our sling function just does the same thing again and again. A class that could be called any time we want to make a new particle is probably the way to go. I’ll keep you guys updated.
Welcome! Today, I fully migrated to the object-oriented programming architecture. Earlier, the class wasn’t really full OOP; it was just a hidden list factory that appended the stuff via a class instead of doing it manually. I wanted to change that because this is going to be a refactor in an OOP perspective , and that’s what I did.I made sure that all the formulas used the latest changes:1. Earlier, they would use the index of the objects inside the objs list of lists. It would be something like object1 and the index of whichever element it wants to access, like mass , radius , velocity , or coordinates. It was very sloppy, and you had to keep up with what each index meant.2. With an OOP version, you just write object1.mass , object1.x , or object1.vx . Each and every line is more intuitive.I also worked more on the planet spawning . Remember, this is a new file with a different perspective of trying to remake this in an OOP sense, using classes and the benefits that ensue from them.Additionally, today I implemented the balancing of the canvas differences in Tkinter and Turtle :- In Turtle, the (0, 0) coordinate is directly in the middle of the screen .- In Tkinter, it’s at the absolute top left of the screen.You have to make sure that all the formulas and all the logic get the correct version, which in my project is the Turtle version . I added and worked out the logic that would make sure that balance is kept.
Lots of stuff today: Camera movement: I added camera movement to our new refractor. Better version of the sling: The older one just expected you to press, drag, and release without seeing much of an indicator. While that works if you know the program a bit, I think a direct, laser-esque pointer that shows you actively as you’re pressing, dragging, and releasing is more intuitive and easier to work with. So I added that. Now we have intuitive camera movement and intuitive spawning. For this refactor, we won’t have any UI. All the sliders for gravity and mass will be per keyboard or hotkey.
Hey, I added merging, but it’s “merging out of hell” because I made a very unphysically true and crude (if you’d call it that), but working prototype of merge_collisions and the merge function itself. It works as I intended, but not physically truly. Right now, it adds the radii of the circles themselves. If you think about it, that’s physically wrong because there’s a big difference between adding the areas of the circles versus their radii. That’s something I want to get right, so the next time I’m working on it, I’ll make sure to fix it so that we are adding the areas of the circles rather than their radii. I also found a bit of a problem where the merged objects themselves have a shape size of (1, 1). That’s not right because if you merge two objects with shape size 1, you’d expect the new shape size to be 2. Right now, no matter how many objects you merge, it still stays at 1, resulting in a very, very dense circle. I’m going to change that so we add the areas themselves, and have that new, bigger area update the visual representation of those astronomical objects. I’ll keep you guys updated. See you next time.
I fixed the “merging from hell”. The first issue was the radius calculation. When two circles merge, simply adding their radii ( r1 + r2 ) is physically wrong because the combined area grows way too fast. In reality, the area of the circles should add up: A_new = A1 + A2 . By plugging in the area formula π × r² , we get π × r_new² = (π × r1²) + (π × r2²) . The π cancels out completely, leaving r_new = math.sqrt(r1² + r2²) . I updated the collision code with this, and now the combined masses have physically accurate sizes.To make this look right, I also fixed the visual scaling issue. Previously, every particle rendered at shapesize(1, 1) regardless of its actual mass or radius. I changed the instantiator so that a body’s shapesize dynamically scales with its physics radius: self.turt.shapesize(self.radius / 10, self.radius / 10) . Now when objects collide, you can actually see the merged planet grow on the screen.Lastly, I added a quick reset button . Pressing the R key runs a function that loops through the current objects, hides all their turtles to prevent visual ghosts, clears the main objects list, resets the camera back to center coordinates, and spawns a fresh central star
I made some more intuitive user changes: Slingshot Dampening: Now, the slingshot isn’t like an Angry Bird slingshot that propels your particles to the other side of the universe (though you could do that if you want, just open the code). All the slingshot coordinates and values are now multiplied by 0.2. We’re nerfing it a lot, but it seems more intuitive that way. Since you don’t know it’s nerfed, you won’t notice there is a higher capacity. In our case, a higher capacity actually means friction. Don’t get me wrong: it’s not particle friction, because they go super fast. It’s friction when trying to get orbits to work. Repository Tweaks: Calling the script from_scratch.py was killing me, so I found something simpler: orbital.py. It’s much better. I updated the GitHub repository so that the current release is orbital.py (the refactored version). While main.py (the previous version) has a few more features right now, orbital.py is much cleaner. Main.py was more of a learning run, and I feel like I’m bringing my A-game with this new refactor. Look and Feel: I really liked the black background and white orbitals of the previous main.py version, so I changed the clinical-seeming style of from_scratch.py. I scrapped that look and made sure the new orbital.py has some taste.
Today I added zooming that works with scrolling up and scrolling down appropriately: when you scroll down, everything gets smaller, and when you scroll up, everything gets bigger. Mass and gravity, of course, stay the same. I made sure that the sling function (basically spawning new orbitals) works flawlessly. Our aim function—which draws that mini press-and-drag indicator to make it easier to see where you are spawning orbitals—is also working with both camera differentiation and zoom differentiation. This way, you can zoom all the way out and still spawn orbitals in the correct way, or zoom all the way in and spawn them super close up. All the physics and rendering works beautifully.
Added some instructions to make it easier, added more colors, and I’m now working on making more rigorous merge logic.
I finally got the complex merging done. Before, when an orbital was going too fast, one frame it was at the back of another orbital, and the next frame, it was in front of it. Since its velocity was so high, the radii didn’t ever collide, so it just went through other ones without merging. That was really not acceptable, so I worked a lot on making sure it works. How I did it is actually very interesting: Get the starting position of the moving object and its ending position on the next frame. Get the coordinates of the target object you want to check for a potential merge. Draw a line from where the moving object started to where it ended, and check if the target object is intersecting that line (calculating what percentage along that line the checked object sits). If it intersects, you merge them.
Added a background grid so that you get a sense of spatial bigness and tininess. You get a feel for how big and small your orbitals really are.
Today I changed the title card of the window that pops up. A few other updates: • I tweaked the final game feel a bit. • I made the initial spawning star spawn in a sort of light yellow color, and I also added that light yellow color to the colors list. • I made sure that the window of the simulation is also in dark mode, so you get more encapsulated in it.
A few cleanups on the size of the grid.
I updated the project. I was notified that it initially crashed on macOS, and the arrow keys were a bit janky on macOS as well. All of that has been completely fixed, and I’ve updated the readme and the latest code on GitHub to encompass those changes.
Ships:
Initial Ship Update (v1.0.0) What did I make? I built Orbital , a 2D gravitational physics sandbox created entirely in Python using only standard library modules ( turtle and tkinter ). Orbits are not hardcoded; they emerge dynamically from Newton’s Law of Universal Gravitation calculated between every single body frame-by-frame. You can interactively slingshot planets into orbit, pan a camera infinitely around the universe using WASD or Arrow keys, adjust the laws of physics on the fly using a Tkinter-based HUD, and watch planets collide and merge under the conservation of momentum. What was challenging? The Coordinates Separation: Early on, a planet’s physics position was its drawing position. To build a panning camera, I had to decouple them—creating a 9-element list structure to track world coordinates privately while subtracting camera offsets only for rendering. The “Tunneling” Bug: Fast slingshotted planets would frequently phase straight through the central star between frames. I solved this by implementing Continuous Collision Detection (CCD)—using vector dot-product projection to check if the line segment traveled during a frame intersected the star. Singularity Prevention: As merging planets got infinitesimally close, the gravity force equation approached divide-by-zero, creating infinite force that would sling bodies off screen at lightspeed. I had to write custom logic to disable gravity between two bodies the exact frame they overlap. A Responsive HUD: Nesting Tkinter widgets on a Turtle ScrolledCanvas caused nesting errors. I resolved this by passing the raw screen._root as the parent, and binding the canvas <Configure> event to dynamically slide the widgets so they stay pinned to the top-right corner when resizing. What am I proud of? Conserving Density: When two bodies merge, the new object’s size is calculated using sqrt(r1² + r2²) rather than just adding the radii. This ensures area is conserved, keeping physical density mathematically consistent. Conservation of Momentum: If you launch two equal-mass planets head-on at the same speed, they will perfectly cancel out and stop dead in space upon impact, exactly as real-world physics dictates. What should people know so they can test my project? Slingshot: Click, drag, and release to fling planets into the cosmos. HUD Controls: Adjust the Gravity slider to warp orbits in real-time, and slide the Mass slider to change the size and weight of the next planet you launch. Color Picker: Click the color button to cycle the launching color (the button text dynamically updates to show what is selected). Navigation: Use WASD or Arrow keys to pan the camera around. Rebuilding: Press the Reset button to wipe the board and start a clean universe. No Python installed? Zero-dependency, standalone executables for Windows , macOS , and Linux are automatically built and attached directly to the GitHub Release!
I built Orbital, the all-in-one project that encompasses whatever you need from a 2D astronomical simulator. When first loading it up, a window titled “Orbital” pops up, and you will see a star right at the center. You can change the window dimensions however you would like, whether fullscreen or resized small. This is where the fun starts: I spent tireless hours implementing a slingshot mechanism where you can intuitively and easily launch “orbitals,” as I like to call them. You can think of these as small planets that you can send to orbit around each other and around bigger stars, masses, and objects that you create yourself. The starting star is just to get you going. Controls and Features: • Navigation: Use the WASD keys and/or arrow keys to navigate around this 2D world and find different orbits across the gigantic canvas. It does not have an end (unless you spend 10 hours of unemployment trying to find it, but I am sure you are not that stubborn). • Mass Adjustment: Use the plus (+) and minus (-) keys to change the mass of the objects you throw into the simulation. • Physics: It runs on full n-body physics; nothing is hard-coded and everything is dynamic. No matter how quirky and interesting your orbits are, they will be solely and originally yours. • Visuals: The colors change up every once in a while. I really tried to make it as minimalist and physics-identifying as possible. • Reset: Press the R key on your keyboard to reset the world and start from a fresh universe, marked by the reset star that kickstarts everything again. I am really proud of the n-body physics because it was surprisingly manageable and cool to work on. Where I really struggled was on advanced merging. Normally, if objects are touching, you can simply merge them. But when objects move super fast, one frame they are far away, and by the next frame, high velocity math teleports them right past or into the other object. If you slingshot a planet relatively fast, it could easily glitch and teleport through objects. To fix this, I had to calculate whether the path the object took from frame 0 to frame 1 intersected any other objects along its trajectory. That was an especially hard, albeit depressing challenge, but nevertheless, it was encountered and defeated so you could enjoy astronomical bliss. Thank you!...
|
1792986740.0189917
|
1793073140.0189917
|
|
7702
|
Spark (Build!) by @henry1155 | Stardance
|
henry1155
|
2
|
124.0
|
389
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-19T02:24:20Z", "hours": 2.0, "multiplier": 5.0, "payout": 11, "blessing": "neutral", "text": "hey! re-ship with an edited video! (and the bonus updatelog!)(NOTE: EPILEPSY WARNING! (it is an edit after all)) ( https://www.youtube.com/watch?v=ktODngPF7UI ) (i have fond memories of this, it was the saturday before the week of outpost and i stayed up to 6 AM edited, after a full day of getting footage and stuff (and dealing with goofy kdenlive crashes)) i also somehow did 10hrs+ that day so that was pretty insane! anyways, thanks for reviewing :D", "repo": "https://github.com/HenryLi-0/spark", "demo": ""}, {"ship_num": 2, "ts": "2026-07-24T05:33:19Z", "hours": 122.0, "multiplier": 5.0, "payout": 378, "blessing": "neutral", "text": "Well, after 120+ hours of building across some 18 days, and another hundred hours of CAD previously, it’s a good time to present Spark, this time irl! Anyways, after last summer, I fell into a sort of hole of demotivation where I didn’t really see what I was “working towards” in terms of school and just waiting six months for the FRC build season to start. In order to try to get my creativity and to prove to myself I wasn’t washed, I decided to throw myself into the deep end and to create a 3D printer. That said, 9 months later and way too many demotivation breaks, I locked in after exams and fully assembled and programmed and tested the build in 18 days! It features a coreXY gantry system, along with a passive tool changing setup with latches and the friction of the top docking piece. This kept the overall motor count to be 5 (2 for xy, 2 for z, 1 for tool). The tool changing setup and printing is nowhere near perfect (after all, this thing’s mostly made of PLA and was programmed in a week), but it’s definitely able to be tuned and better perfected with more programming time! In the end, Spark did achieve its goal of sparking some figurative sparks for me to continue building! After this, it was shipped off and exhibited at Open Sauce in California as part of Outpost where I’ve met amazing people and learned more about 3D printers and how to design them better!", "repo": "https://github.com/HenryLi-0/spark", "demo": ""}]...
|
[{"post_id": 70376, "ts": "202 [{"post_id": 70376, "ts": "2026-09-19T02:12:33Z", "hours": 2.1469, "text": "7/28/2026 - 81st Update! Note: I wrote this back on 7/28/2026 but never published it here! (What? The return of Spark?) Well, not exactly, this is more of a thing for the latest announcement in #stardance-bulletin ! Here’s the edited video from a while back! It’s kinda for vertical/short form content, also, BIG EPILEPSY WARNING!!! While you’re here, you should definitely check out fermion , the “spark v2” in a way! It has a very different architecture (that’s surprisingly hard to cad), so check that out! Anyways, here’s the log without further ado… There’s really not that much to say. On July 26th, Spark was repackaged into a box and put into storage, almost a week after returning to New York City. It’s still in an operational state, with few wires disconnected, only with the WiFi credentials incorrect. For a logged 9 months and 2 weeks, a total of 287 days, with 80 progress updates in that time, Spark’s been on my mind for a long while, no doubt about that. Across the more than 64k words, 240+ hours, from the definitely overscoped original concept to the rush to finish it before Blueprint ended, Spark has existed between two whole YSWS programs, one used for design and one used for build. I have to say, with more than three quarters of a year, a lot has changed, both outside, in my actual life, and with Spark, as the idea changed through every log, slowly and carefully. There were highs and lows, and really, really, low lows, from feeling lost at the end of day 9 of build, to the excitment of the first motor turning during day 11. But now, it’s all neatly packed in the garage, waiting to be used another day. Spark isn’t gone, it still physically exists. It may not be resting on a giant wooden board I use for soldering next to my bed, but it still exists next to me through all the hard CAD and build days. It’s strange, this sudden change. For the last week, I haven’t really done much besides plan. And that’s probably a good thing, given all the planning Spark took. I haven’t really done much build, I haven’t really felt anything. Post convention depressions, I have to say, is hitting pretty hard. After such insane fun and wonder for a week, it’s suddenly back to a cool, rainy day, here in New York City. Sleeping through the afternoon, after sleeping not enough hours in the morning. As the rain starts pouring from the sky again, I’ve been wondering what the meaning of joy is. Alas, it might just be time. Adapting to such changes is obviously difficult, and the road of projects is too. But that doesn’t mean roadstops aren’t along the way. As I wrap up this update log, I want to leave a quick quote, one of my favorites. It probably sounds like a dumb platitude to say “it’s not the destination, it’s the journey”, but truth is, we’re made up of journeys. You’re never going to be who you’re supposed to be unless you take that road. … There is room in there for surprise, for deviations, for re-evaluations. I wouldn’t dare deprive you of that adventure. You only get one , after all. I know, you’re tired; resting is part of the journey too. But not giving up… Winter, in Housepets! (Rick Griffin, Dec 25, 2020) That said, what’s next? Well, first we’re gonna take a stepping stone. What’s next is still in concept form, but the unique constraints might require a custom PCB, which is where river comes in. First, it’s gonna be a quick project, just a custom PCB music player, just to jog the electrical skills. But after a quick skip over a stream, what’s truly next? What’s the successor to Spark? What’s next to rival its top 1 status? Fermion. See ya around."}, {"post_id": 33890, "ts": "2026-07-24T05:24:31Z", "hours": 1.5761, "text": "7/23/2026 - 80th Update! well. so im back from open sauce! actually, flight entered back to NYC on the morning of 7/21/2026, but the last two days have really just trying to get back in motion lol (turns out having crazy fun and instantly returning to “normal life” is somewhat rough) anyways, it’s 9:18 PM, here’s a recap! i dont think timelapsing all the work there would be reasonable (i estimate probably around 8 hours of work?), but yeah, mostly just config tuning and working on irl stuff, the base plate sort of didnt like the flight (but it’s really alright? basically the screws kinda ripped through the tape a bit) after the return flight, one of the LM2596’s input wires fell out, took a bit to get it in (haha get it screwdriver bit), anyways, still got a lot to do, i think for now im gonna just finish the update log on the stardance site, then update all the graphics over here, and yeah, prepare for something new??? (i have some ideas…) anyways, i think im gonna prep the stardance project to ship, idk if i can? ok, 11:00 PM, updated the front image, gonna work on updating some stuff ok, 11:06 PM (almost typed AM, that would be funny), added the open sauce image to the readme, brb! back at 12:42 AM, yeah, i think it’s a good time to ship? mfw fixing the position so the aspect ratio for the banner and the project banner (the different pages) are so so hard to get correct anyways, yeah, gonna copy this stuff over and we should be good to go? well, 1:22 AM, for now, good night!"}, {"post_id": 33812, "ts": "2026-07-24T01:35:42Z", "hours": 11.3686, "text": "7/11/2026 - 78th Update! in theory, the last one? in reality, probably not. anyways, it’s 3:22 PM, today’s reveal/edit day! of course, i got a bit of table clean up to do and recording, but i also wanted to play around with the settings a little more to get a somewhat better print? (and maybe test another print since this ones a little small) anyways, parent meeting at 5 PM today, gonna be attending on the side while probably editing? im planning on doing two more test prints before then test 1: turned layer speeds from 90mm/s to 70mm/s increase flow ratio from 1.15 to 1.21 decrease skirt loops from 7 to 5 ok, 3:43 PM, sliced and uploaded, heaters all heated, ready to go! gonna use the bathroom, seems to be printing well though! back at 3:55 PM, it printed well and ended well! gonna modify the ending gcode to cool down, analyzing results now! kinda wanna replace the middle tape strip since i kinda messed up and removed a ripped a bit of it while scrapping the skirts off (whoops), gonna go for one more print, im pretty satisfied, this ones gonna be a bigger test print (not a benchy yet though), im thinking calibration cube? test 2: increase flow rate from 1.21 to 1.30 decreae rotation distance from 6.4 to 6.0 increase deretraction speed from 6mm/s to 6.5mm/s decrease jerk for x (5mm/s to 4.5mm/s) y (5mm/s to 4.5mm/s) z (0.2mm/s to 0.175mm/s) x (0.3mm/s to 0.25mm/s) gonna use this makerworld one for this! intrested to see how this one goes! it’s more of a z axis and consistency ending test should have just enough filament? expecting like 2-3cm left on the top after this? might not have enough on the top but that should be fine? hopefully? i mean, if i see the filaments about to run out id rather end the test? idk footage time yeah its kinda… erm. it kinda failed to print beyond the base layer, seems to just struggle with grabbing filament on its side, let me get a straw real quick, nvm, just used a piece of filament taped down for it, i think its just a filament grabbing issue (probably fighting against the curl?), so yeah, this should straighten that out a bit? test 3 (aka, 2 again), decided not to change anything, here we go! gonna focus on footage for this one so that might have been the… worst prints ive seen, but sure ok, just added the filament from the spool, should be ready for a bigger test? test 4: changed max volumetric speed from 5mm^3/s to 3mm^3/s turned flow ratio from 1.3 down to 1.22 rotation distance reverted from 6.0 back to 6.4 oh yeah heres the image of the cube yeah, gonna go for a 50% benchy erm 50 minute print uhh, well, 5:50 PM, now or never, i guess imma setup for a reveal scene ok, created a nice set for filming, gonna be doing mostly footage stuff while this prints, not really any timelapse? i guess i could? ok, hopefully printing and footage done by 7PM, then probably editing or dinner sometime around there (yes, todays the end day i think, at least my goal) ok, quite some time later, gonna speedrun dinner, its 7:31 PM though i was away for a bit before then welcome back, 9:11 PM, did a bit of footage getting earlier, here goes a print so. half way through. turns out our cold end/heatsink or whatever kinda doesnt cool it well enough. essentially, yeah. it just started curling up halfway in. yeah. however, it did successfuly print half of it! test 5: turned layer speeds from 70mm/s to 80mm/s changed max volumetric speed from 4mm^3/s to 3mm^3/s (seems like i forgot to do it whoops) most devious gcode modifications and slicer shenanigans later devious part 2 well, it’s 6:02 AM now, after lots of editing, submitted the forms, time to head off to bed! and yeah, good night!"}, {"post_id": 26773, "ts": "2026-07-11T19:21:48Z", "hours": 7.0922, "text": "7/10/2026 - 77th Update! wow, 77 updates, so it’s now 10:00 PM, idk what happened to this afternoon (basically just vanished, went to some job in the morning, slept when i got home, ate lunch at 4 PM, slept again, ate dinner at 8 PM, then showered and now it’s somehow 10:00 PM) im thinking media is gonna have to be moved to tomorrow, my only goal today is to find diamonds get the printing to work reliably here’s a couple ideas i brainstormed last night increase the extruder heating temperature should make it way easier for the gearing to push as well double check gearing probably not this now that i think about it, but check docs double check rotation distance again, probably correct add extra pressure in the config similar to the first idea as in trying to actually push more filament slow things down even more very sad but self explanatory if we overextrude, that’s ok, we just need to find the tuning sweet spot where it is actually decent, but of course, the more important goal is to actually get some reasonable stream of filament flowing out (constantly extruding is not optimal but it’s whatever) ok, upped the printing temperature by 10C, also decreased a lot of speeds, 10:33 PM, hopefully ready to test? ok, prepping the stuff, gotta clean the nozzle too, ok 10:40 PM, ready to go! well that didnt print anything ok, so shoving filament down the throat extrudes, pushing filament from far above works well (it does slam left and right but still functions fine), the velocity isnt correct AT ALL (might just be from the compression/friction), hmm ive been suggested to look into the heatbreak and stuff, so gonna take a look at that, idk a bit of a break later, the gearing is sus, trying to move it with the top off and only the heatsink attached, seems off it’s been two hours and ive been playing with so so so many configurations (probably at least thirty?), moving spacers, adding rubber bands, readjusting, measuring, and i think ive come to a point where it’s “ok”. it goes out ok (3 rotations of the motor connection results in: ~1.8cm pushing fast, ~1.7cm pushing slow, idk for expected), but it’s basically incapable of going back up for some reason. it also produces a good amount of force out, but, as mentioned before, barely any up (skips a bunch) ok, played around a bit more, idk, retraction worked for a second randomly, idk, installed it back on, ready to test again 3:36 AM, did a couple of cursed things in the config, specifically making it extrude 4x as much, along with making the deretraction speed higher in the slicer, that said, here we go! ey it printed something! its still really fuzzy so i guess we still got more work to do (that was v1.4), ok v1.5 uploaded, let’s see! 4:12 AM, here we go oh yeah also added fancy ending gcode lol hmm, it’s more complete, but stll missing stuff, ok, 4:27 AM, the birds are probably coming out soon, v1.6 going! well that didnt end well huh seems like the issue was just that the filament wasnt fully loaded, whoops ok, v1.7 uploaded with some print skirts on the outside to help with the missing start extruding, flow rate also increased, let’s see, it’s 4:54 AM, so last print of the day! uh oh it seems to be underextruding now, ok, 5:09 AM, here’s v1.8 ow was in the middle of cleaning the print bed and a piece of the skirt just went straight under my fingernail ouch well, with the sun rising, here’s the end of today! imo v1.5/v1.6 is my favorite, but it’s getting there in terms of smaller details, so i think tomorrow one or two more test prints and then a benchy would be a smart move? idk, the benchy’s just for the reveal video (yes i will try to fit in media here!) well, 5:33 AM, that’s it for me tonight (tomorrow morning?), and yeah, good night!"}, {"post_id": 25756, "ts": "2026-07-10T06:22:05Z", "hours": 4.8033, "text": "7/9/2026 - 76th Update! yo and welcome back! it’s 8:57 PM at night, don’t have much time to waste now, today’s hopefully printing day? (with the actual printer of course) saw online last night from like a video from 6 years ago that using blue painters tape is a good idea (why does my s key consistently fall out now aaaaa), well look what i got here (figuratively), it’s a roll of scotch blue 2090 tape! ok, watched a couple of enlightening videos, so, i think we’re just gonna use some blue tape, seems pretty much good enough for our purpose, not sure if i really want to get orca slicer just now, i think i just want the printer to at least extrude something at this point in time? center is roughly (50.00, 77.50, ~) right now, ok, wrote a little something to center the stuff so (0, 0, 0) should hopefully be the center? yeah, close enough! ok, it’s probably a good time to apply the tape ok, tape applied, cleaned the nozzle, planning on doing the paper thing right after, then we need to print like something flat real quick (if it works, since we still need to do the config stuff for the extruder) quick 20 minute break to let it cool down later, it’s 11:07 PM, time for the paper stuff! so it doesnt really do a good job at staying level, but i do have a solution in mind, aka, having weights on both the sides to keep it flat. yeah. or a rubber band thing stretching the entire length. anyways, configs inputted! so at this point, the thing we need to focus on is getting the extruder config up and running! ok, set up the slicer with the stuff, gear ratio is start (14) to mid (28->14) to final (28->12), where it ends ok, gonna do a test “print”! it’s in quotes since it’s actually not gonna have any filament, just gonna make sure the motion works/makes sense ok, 12:31 AM, let’s run it! ok, temperature below min or something (as in the gcode stuff) 12:40 AM and still figuring stuff out, hold on a second… ok, it’s running! at least, the stuffs moving, not sure if it’s printing well? idk, gonna watch it go! it’s going! that looks… fairly realistic? idk why the heatbed’s at 60.7C right now ok, 12:54 AM, filament loaded on the top in a semi precarious matter, things are ready! 12:57 AM, here we go! timelapse running on my phone, let’s see it! heat bed termperature good, extruder temperature rising, oh turns out i have to have the tab active for it to update the graph visually, whoops well, reached the temperature, let’s see something? oh it just stopped itself because axis werent homed, ok, test 2! 1:03 AM, z axis is lifting, here we go! hmm so the extruder didnt really try… anything. like it wasnt running the whole time (unless it’s just a really small amount that the gearing cant handle?) ok the issue might just be i didnt push the filament in enough, since i just gave it multiple aggresive tugs and a whole bunch just came out of the nozzle, 1:14 AM, here we go again! (i do not want to know what the weird vapors or gasses it just released (yes i saw it, which isnt a very good thing)) also, wow, the heating controls are tuned really nicely! ok, 1:17 AM, z axis going up again so wasnt extruding anything, had to push on it to move, and that resulted in an obvious pile of sad sad so i feel like this is a bit of a gearing thing, since small amount arent really wanting to come out at least it got the rough shape correct? hmm i want to try it out without me pushing on the filament, expecting nothing to happen but who knows yeah i think its just really under extruding, probably because of slip inside? 1:43 AM, trying again, yep, nothing good, it’s now 2:00 AM, gonna go to sleep at this point yeah. idk. the one on the left is forced filament, the middle had a bit of push at the beginning, the last one was mostly by itself. yeah, idk what to do at this point. it’s 2:03 AM, idk what to do, and yeah, we’re kinda behind schedule. anyways, good night!"}, {"post_id": 25175, "ts": "2026-07-09T06:59:41Z", "hours": 4.6269, "text": "7/8/2026 - 75th Update! mfw when the stardance bot tells me that only 10 hours per devlog counts now that’s just rude well, welcome back! 5:01 PM today and starting things off in a bad mood. guess we gotta waste our precious time by cleaning stuff up anyways, 15 minutes later and some serious condensing (each day is like 5 sentences max), back to work! got some unfinished business to do while we work on today’s stuff! so a series of event have occured and now it’s 10:13 PM. oops. for a second i got scared something was wrong but turns out the connecting wire to the inlet thing was just a bit disconnected, trying to access the web interface right now… oh it’s because im on downstairs wifi. oh. gonna be following this for calibration! not exactly sure why there’s so many connection issues today. ok, while that’s connecting, gonna print the latch parts so my s key finally fell off. oh. that’s not good (yes im touching the little button under it) ok, w repair, cleaned it up, the key still does the weird tilt thing, but it stays in there, so that’s good so uh it fell out again. not good. ssssssssssssssssssssssssssssssssssssssssssssssssss oh i guess im gonna keep that, i just need to be more mindful of where i press it i guess, problem is currently that the mcu keeps disconnecting whenever i change the extruder temperature, which is kinda weird hmm mightve been an electrical thing? so i just spent an hour trying to come up a solution for the extruder, none of them are reliable or possible (rubber band placement just gets in the way). so yeah. whys it working now i guess the solution is grinding the gears down? whys the “rushed for display” extruder the only working one now, wow ok, latches made, no rubber bands since that just doesnt work (both the track and the thing), idk, later issue, right now i guess we’re gonna tune z stuff or gonna just try to make it as flat as possible? i think for now let’s just assume perfect flatness for time, let’s replace the heater section of 1 with the one of 3 and just basically use tool 3 instead for time (since the gearing apparently works???) (please stay that way) i guess making it as flat as possible is the best idea for now ok so it’s now 2:32 AM, the docking bay and the latches are added (ngl, they are bending because of a fillet), gonna ignore the fact that it’s slightly broken (nothing tape can’t fix), it does work, takes a bit of force though (as always) 7/7/2026: DONE - print, assemble, and add latches 7/8/2026 DONE - heating tuning DONE GOOD - z bed tuning GOOD - either assume perfect flatness or work on bed mesh/calibration g code should be able to run easily (simple commands of course) look into how to print stuff PRINTING WORKING BY EOD it’s 2:50 AM, tested it out, IT EXTRUDES! YAY! (like i let go of the filament after pushing it to the cooling area and then it extruded!!! by itself with its own gearing!!!) the clicking noises are a bit questionable but sure, ill take it! also did the z paper thingy! missed opportunity to call it cerberus, i might just add that somewhere… anyways, here’s the extruded stuff picture! woo! i mean, what a way to end the day! ok, it’s 2:56 AM, that’s about it for tonight, gonna copy paste this into the website for today’s log and yeah, good night!"}, {"post_id": 24973, "ts": "2026-07-08T21:15:36Z", "hours": 37.5192, "text": "I’ve just been told 75% of my time spent on this log doesn’t count (apparently), so instead of dedicating probably an extra two hours of unlogged time to write a clean version, yall gonna get my thoughts DAILY, straight from the source, raw updatelog content. just kidding, there’s now a world limit so im just gonna speedrun this (since no one reads this and i read my own raw thoughts) 7/2/2026 Mostly electronics work, on 7/1/2026 night, realized that I can actually gently pry off the jst connector shells, removed a good amount of them. Wrote a devlog, worked on tuning the extruder filament tgrabbing gears. After dinner, printed some stuffs, then started adding the corexy belting path. Spent a long time, didn’t really feel very motivated at 3:42 AM and ended the day almost finishing assembling the belts and with not working extruders. 7/3/2026 Woke up early, last night wasn’t a fun night, increased the gear scale, finally actually put the corexy belt together. The filament gears now grab, though it does skip when too much filament is put in. After fixing the shaft collar and adding it back, reassembled the test tool and it attaches! The corexy does have quite a bit of friction, but the tool is assembled! However, waiting on terminal stuffs. Rest of the day is starting the electronics stuff. 7/4/2026 Motors not moving? Removed wires from housing and fix phases, motors now moving! Wondered why one motor was faster, then they both became slow. Fans wired, heaters wired, more testing, heaters can heat up! 7/5/2026 Bad sleep schedule strikes again, some soldering and added the limit switches, more stuff sent to print. A bit of config editing later and the corexy moves properly now! With the correct x and y axis! Filament doesnt really grab very well, idk.More intense filament testing, extruder can reach 230C! 7/6/2026 Really late start, more tool printing, more tool assembly, all tools and extruders are assembled now! 7/7/2026 Schedule and todo list made, support bracket set to print, top shaft supports made a printed, belts tensioned again. Some fixing later, two part inlet case CAD done and sent to print and attached, second tool head also wired up. There’s your week of updatelogs compressed into a format because theres a character limit. From now on, all devlogs will be the updatelogs and not be as extra refined, since I don’t get time counted for writing these, and it’s really a pain and insult to just say that more than a whole 24 hour day worth of actual work doesn’t count because someone added a time limit per log out of nowhere."}, {"post_id": 21018, "ts": "2026-07-02T19:40:26Z", "hours": 22.1556, "text": "it’s been four days oops More Assembly and Electronics! 6/28/2026 Ok, it’s z axis day! Gonna try to keep these recaps short since I’ve mostly been writing giant blobs of text with little images recently, since moving photos from my phone to the laptop and into the update log is a bit annoying, but yeah, z axis and motor mounts were started today! 6/29/2026 Realizing that time was really running out, along with the fact that NYC is attempting to reach high temperatures out of nowhere, a schedule was made and coreXY pulley stands were sent to print! First things first though, the z axis lift base thing was added , and some electronics stuff was started! It’s a little different from the wiring diagram, along with the fact we’re using a raspberry pi 4b, and a couple other stuff. Also, the docking bay got redesigned! 6/30/2026 Anyways, coreXY stuff printed and the layer is assembled! The gantry has a bit of wobble (and the bearings aren’t a tight fit), but nothing some hot glue can’t help with! (Well, maybe the wobble). Anyways, mainsail flashed on the raspberry pi 4 and figured out the weird issues! Also, reminder to switch the jumper thing for input form the side to the usb power.. so, the t rods hit the gantry too, along with the fact that the build plate doesn’t exist. Decently productive day, 5 days left. 7/1/2026 go go go New month, and leectronics work continues! Sacrificed the aliexpress USB power cable, split the wires, and attached it to the LM2596, looks good! Also learned how to crimp today, so that’s pretty cool. There’s also a picture of the thermistor of the heater bed in the mainsail graph somewhere down there! Unfortuantely, I don’t have free JST connectors on ahdn, so we’re gonna be doing sketchy stuff with a dupont connector in there (the pitches are a bit different, yes, i know it’s crazy sketchy, shhhhh) Anyways, after setting tool stuff to print, went downstairs and (thanks to my dad) got the t screws cut and a 15x15 build plate out of some aluminum (it’s like 1.3-1.6mm thick?). We did have to make it out of sheet aluminum that was laying around, but it came out alright, the holes are just a little misaligned but that’s a bit on me. Anyways, realized the tool stuff printed was super cursed, had to work on redesigning a lot of parts, specifically the sahft collar, the gearing (no more bearings should be needed, all the stuff should be using filament as deadaxles). Anyways, we have to fix this cad stuff (half way done), then hopefully belt the corexy and do electronics while it prints tomorrow (aka, today)? Well, that’s it for now, gotta go fast (sonic reference?), only four days left…"}, {"post_id": 17873, "ts": "2026-06-28T20:10:07Z", "hours": 14.5661, "text": "What do you mean 14hrs+ passed? Anyways, here’s a quick recap! Frame Assembly and Even More Printing! 6/25/2026 On a kinda windy day in NYC, printing continues! But hold up, what’s this? Yes, it’s also extrusions cutting day! While printing the stands for the bottom of the printer (after printing a whole bunch of gussets the previous day) after optimizing the print settings, I did some quick reviewing of the extrusion and rod cut lengths and then realized that I miscounted the middle frame y extrusions, it should’ve been three instead of two. So there wasn’t enough length for this extra extrusion (the tmm extrusion). Yeah. Anyways, not shortening the print area by 6cm to get the length, so calculated the linear rod cut lengths and headed downstairs. Huge thanks to my dad for cutting all these extrusions and rods! Now that I think about it, I did work with a blade saw up down thing before (idk what its called, a cold saw but its not cold and goes to higher rpms), but not with a handheld grinder before (i think that’s what it’s called?). Anyways, I learned that the little aluminum chips (that you can’t eat unfortunately) is actually the material, since you lose material every time you cut! This means that some extrusions are a little shorter, but the gussets helped work fine with this! Anyways, after seeing real sparks from the rods getting cut and theneating dinner, finished printing the stands and then realized the bmm extrusion doesn’t have any support. Yeah. Anyways, counted the number of extrusions and ended that day starting a little bit of assembly! 6/26/2026 Frame assembly day! Not much to say other than it involved roughly 5 hours of manual screwing with a screwdriver (using a drill did not really end that well, yes, I tried, probably a skill issue though). Anyways, printed a good amount of tool base stuff at the same time (the tool base print fell on my foot off a table (ouch)), and did a lot of frame assembly! In fact, used 203 T-nuts and 128 screws! Mostly just a lot of tedious work, but hey, the main frame’s done! 6/27/2026 Oh that’s yesterday! Anyways, first part of the day was just me at the doctor’s office, so couldn’t get much done, but I did set an x slider block to print, and it came out pretty well! Also, all three extruders got assembled! And the starts of the tool base! Nothing else much though, unfortunately! Well, that’s it for now, not writing today’s (6/28/2026) since that’s still happening right now, see ya after corexy assembly! (hopefully???)"}, {"post_id": 15511, "ts": "2026-06-25T06:29:33Z", "hours": 11.0467, "text": "Well, it’s been another hot second, ya miss me? Jokes aside, here’s the recap of the last three days! 6/21/2026 haha funny number day Anyways, back to CAD fixing! After a quick little script writing for counting words in all the updatelogs (there’s around enough for a small novel, not including anything on the Blueprint site which is actually fully rewritten by the way, so that’s pretty cool!). Oh that’s a big list todo… again, check out the GitHub repo for more details! Anyways, today’s latch day, since, well you kinda need to finalize the latch design before fixing the docking bay… One spring print later, turns out the original idea wasn’t the best. Apart from being really weird to test (both prints weren’t really willing to stretch, and were really easily stretched beyond its maximum), so new design time! This time with rubber bands instead of springs! Oh yeah, we changed the idea, it’s no longer a top down spring locking thing, it’s more sideways, essentially this idea. ( Here’s the original plan, however the space restrictions really didn’t work out…) 6/22/2026 Since the latch design got ready to test… what do you mean it’s not ready… well, yeah, turns out there were quite a good number of oversights in the original version, so two more hours of fixing the structure later, it’s printed! It looked pretty promising, but has its own set of issues. For instance, the slider doesn’t lock since the rails kinda don’t keep it in, the guide does work (which is really good!, but gets a bit caught in a couple areas. The latch also uses filament for the smaller parts and pivot bits, which is a bit annoying but it alright… though, the rubberbands do need to be pretty strong for this to work. Also, a couple of small adjustments and keeping the pivot upwards so it doesn’t enter the latch the wrong way (it doesn’t work through the bottom path), and needs a bit more alignment stuff, but it’s pretty promising for a prototype! 6/24/2026 What happened to yesterday? Well, kinda got tired after an exam and just kinda didn’t do anything for the rest of the day. Anyways, it’s currently 2:19 AM (not counting this for the time by the way!), so this is technically today’s summary! Basically, we’re behind schedule, so we should probably start printing stuff that’s pretty much finalized (gussets, etc.) and isn’t gonna change anytime soon, just so we can CAD at the same time to speed things up (spoiler, not much CAD work was done today…). However, 22 corner gussets and 4 three way gussets were printed today! 4.95 hours of printing later (including a couple of failed prints), roughly 131.3g of filament was used (not including failed prints)! That’s some scary fast usage… Also, opened a fresh roll of white filament! Gotta say, I don’t really like the resulting surface finish of the Inland filament (got it last year at Micro Center and never opened it), but it’s probably something with print settings and what not. I mean, I can also print it out in vibrant pink? (that’s the only unopened one I have from bambulab…) I’d probably just use Polymaker or Bambu filament from now on, the prices are all relatively the same at $20/spool. (If anyone has any cool discounts or cheaper but reliable places, I’m all ears!) Anyways, yeah, quite a lot of writing, wow… anyways, that’s it for now! I think I’m just gonna continue doing logs every couple of days since sometimes I don’t feel like it, but I’ll try to keep up the consistency! Catch y’all in a bit!"}, {"post_id": 12953, "ts": "2026-06-21T06:14:36Z", "hours": 7.57, "text": "Well, it’s been a hot second, Spark progress resumes! (This site editor kinda has text way too big for my liking, gonna write this in notepad first…) Anyways, Blueprint rules still apply here, most of my thinking and extensive writing is going to be located inside the repository itself (under updatelogs), while here serves as a mroe general overview of what’s going on. So, what’s going on? There’s already 3 days worth of stuff done, so let’s go through them! 6/12/2026 Basically a brief recap of some test prints here and there! More importantly, I just drafted up a pretty decently sized todo list of stuff we need to fix in the CAD, before we can start multitasking printing and doing other stuff. Tested prints include the bearing stacks, frame gussets, and tool plates! This basically gave information that some dimensions were a bit off (bearings were 4mm tall, not 3mm, frame gussets could be a bit thicker, tool plate had some sus screw locations (material too thin in some places))! It also suggested other changes to make. 6/19/2026 Giant schedule! Again, see the whole thing over there, basically a really rushed schedule on when stuff needs to get done, the goal is to finish in a bit more than two weeks. After that, a whole bunch of CAD fixes! From the stuff mentioned before to some fixes with screw lengths being somewhat impossible for the top of the tool to fixing the filament not having anywhere to go, to starting work on fixing the docking bay! Overall a really productive day! 6/20/2026 Oh, that’s today… anyways, not as productive, currently trying to implement an actually working spring latch system for it to actual work (the other version just doesn’t work). However, it’s a bit hard to think about, and the space isn’t exactly optimal (it’s kinda tightly packed…). Didn’t finish it, gonna continue with it tomorrow and take some time to think about any possible oversights or anything! And that’s it for now! Decently large first log (not as big as the ones in updatelogs lol), but I’ll try to see if I can do this daily for the site, but no promises! Ok, see ya hopefully tomorrow!"}]...
|
Title: Spark (Build!) by @henry1155 | Stardance
D Title: Spark (Build!) by @henry1155 | Stardance
Devlogs:
Well, it’s been a hot second, Spark progress resumes! (This site editor kinda has text way too big for my liking, gonna write this in notepad first…) Anyways, Blueprint rules still apply here, most of my thinking and extensive writing is going to be located inside the repository itself (under updatelogs), while here serves as a mroe general overview of what’s going on. So, what’s going on? There’s already 3 days worth of stuff done, so let’s go through them! 6/12/2026 Basically a brief recap of some test prints here and there! More importantly, I just drafted up a pretty decently sized todo list of stuff we need to fix in the CAD, before we can start multitasking printing and doing other stuff. Tested prints include the bearing stacks, frame gussets, and tool plates! This basically gave information that some dimensions were a bit off (bearings were 4mm tall, not 3mm, frame gussets could be a bit thicker, tool plate had some sus screw locations (material too thin in some places))! It also suggested other changes to make. 6/19/2026 Giant schedule! Again, see the whole thing over there, basically a really rushed schedule on when stuff needs to get done, the goal is to finish in a bit more than two weeks. After that, a whole bunch of CAD fixes! From the stuff mentioned before to some fixes with screw lengths being somewhat impossible for the top of the tool to fixing the filament not having anywhere to go, to starting work on fixing the docking bay! Overall a really productive day! 6/20/2026 Oh, that’s today… anyways, not as productive, currently trying to implement an actually working spring latch system for it to actual work (the other version just doesn’t work). However, it’s a bit hard to think about, and the space isn’t exactly optimal (it’s kinda tightly packed…). Didn’t finish it, gonna continue with it tomorrow and take some time to think about any possible oversights or anything! And that’s it for now! Decently large first log (not as big as the ones in updatelogs lol), but I’ll try to see if I can do this daily for the site, but no promises! Ok, see ya hopefully tomorrow!
Well, it’s been another hot second, ya miss me? Jokes aside, here’s the recap of the last three days! 6/21/2026 haha funny number day Anyways, back to CAD fixing! After a quick little script writing for counting words in all the updatelogs (there’s around enough for a small novel, not including anything on the Blueprint site which is actually fully rewritten by the way, so that’s pretty cool!). Oh that’s a big list todo… again, check out the GitHub repo for more details! Anyways, today’s latch day, since, well you kinda need to finalize the latch design before fixing the docking bay… One spring print later, turns out the original idea wasn’t the best. Apart from being really weird to test (both prints weren’t really willing to stretch, and were really easily stretched beyond its maximum), so new design time! This time with rubber bands instead of springs! Oh yeah, we changed the idea, it’s no longer a top down spring locking thing, it’s more sideways, essentially this idea. ( Here’s the original plan, however the space restrictions really didn’t work out…) 6/22/2026 Since the latch design got ready to test… what do you mean it’s not ready… well, yeah, turns out there were quite a good number of oversights in the original version, so two more hours of fixing the structure later, it’s printed! It looked pretty promising, but has its own set of issues. For instance, the slider doesn’t lock since the rails kinda don’t keep it in, the guide does work (which is really good!, but gets a bit caught in a couple areas. The latch also uses filament for the smaller parts and pivot bits, which is a bit annoying but it alright… though, the rubberbands do need to be pretty strong for this to work. Also, a couple of small adjustments and keeping the pivot upwards so it doesn’t enter the latch the wrong way (it doesn’t work through the bottom path), and needs a bit more alignment stuff, but it’s pretty promising for a prototype! 6/24/2026 What happened to yesterday? Well, kinda got tired after an exam and just kinda didn’t do anything for the rest of the day. Anyways, it’s currently 2:19 AM (not counting this for the time by the way!), so this is technically today’s summary! Basically, we’re behind schedule, so we should probably start printing stuff that’s pretty much finalized (gussets, etc.) and isn’t gonna change anytime soon, just so we can CAD at the same time to speed things up (spoiler, not much CAD work was done today…). However, 22 corner gussets and 4 three way gussets were printed today! 4.95 hours of printing later (including a couple of failed prints), roughly 131.3g of filament was used (not including failed prints)! That’s some scary fast usage… Also, opened a fresh roll of white filament! Gotta say, I don’t really like the resulting surface finish of the Inland filament (got it last year at Micro Center and never opened it), but it’s probably something with print settings and what not. I mean, I can also print it out in vibrant pink? (that’s the only unopened one I have from bambulab…) I’d probably just use Polymaker or Bambu filament from now on, the prices are all relatively the same at $20/spool. (If anyone has any cool discounts or cheaper but reliable places, I’m all ears!) Anyways, yeah, quite a lot of writing, wow… anyways, that’s it for now! I think I’m just gonna continue doing logs every couple of days since sometimes I don’t feel like it, but I’ll try to keep up the consistency! Catch y’all in a bit!
What do you mean 14hrs+ passed? Anyways, here’s a quick recap! Frame Assembly and Even More Printing! 6/25/2026 On a kinda windy day in NYC, printing continues! But hold up, what’s this? Yes, it’s also extrusions cutting day! While printing the stands for the bottom of the printer (after printing a whole bunch of gussets the previous day) after optimizing the print settings, I did some quick reviewing of the extrusion and rod cut lengths and then realized that I miscounted the middle frame y extrusions, it should’ve been three instead of two. So there wasn’t enough length for this extra extrusion (the tmm extrusion). Yeah. Anyways, not shortening the print area by 6cm to get the length, so calculated the linear rod cut lengths and headed downstairs. Huge thanks to my dad for cutting all these extrusions and rods! Now that I think about it, I did work with a blade saw up down thing before (idk what its called, a cold saw but its not cold and goes to higher rpms), but not with a handheld grinder before (i think that’s what it’s called?). Anyways, I learned that the little aluminum chips (that you can’t eat unfortunately) is actually the material, since you lose material every time you cut! This means that some extrusions are a little shorter, but the gussets helped work fine with this! Anyways, after seeing real sparks from the rods getting cut and theneating dinner, finished printing the stands and then realized the bmm extrusion doesn’t have any support. Yeah. Anyways, counted the number of extrusions and ended that day starting a little bit of assembly! 6/26/2026 Frame assembly day! Not much to say other than it involved roughly 5 hours of manual screwing with a screwdriver (using a drill did not really end that well, yes, I tried, probably a skill issue though). Anyways, printed a good amount of tool base stuff at the same time (the tool base print fell on my foot off a table (ouch)), and did a lot of frame assembly! In fact, used 203 T-nuts and 128 screws! Mostly just a lot of tedious work, but hey, the main frame’s done! 6/27/2026 Oh that’s yesterday! Anyways, first part of the day was just me at the doctor’s office, so couldn’t get much done, but I did set an x slider block to print, and it came out pretty well! Also, all three extruders got assembled! And the starts of the tool base! Nothing else much though, unfortunately! Well, that’s it for now, not writing today’s (6/28/2026) since that’s still happening right now, see ya after corexy assembly! (hopefully???)
it’s been four days oops More Assembly and Electronics! 6/28/2026 Ok, it’s z axis day! Gonna try to keep these recaps short since I’ve mostly been writing giant blobs of text with little images recently, since moving photos from my phone to the laptop and into the update log is a bit annoying, but yeah, z axis and motor mounts were started today! 6/29/2026 Realizing that time was really running out, along with the fact that NYC is attempting to reach high temperatures out of nowhere, a schedule was made and coreXY pulley stands were sent to print! First things first though, the z axis lift base thing was added , and some electronics stuff was started! It’s a little different from the wiring diagram, along with the fact we’re using a raspberry pi 4b, and a couple other stuff. Also, the docking bay got redesigned! 6/30/2026 Anyways, coreXY stuff printed and the layer is assembled! The gantry has a bit of wobble (and the bearings aren’t a tight fit), but nothing some hot glue can’t help with! (Well, maybe the wobble). Anyways, mainsail flashed on the raspberry pi 4 and figured out the weird issues! Also, reminder to switch the jumper thing for input form the side to the usb power.. so, the t rods hit the gantry too, along with the fact that the build plate doesn’t exist. Decently productive day, 5 days left. 7/1/2026 go go go New month, and leectronics work continues! Sacrificed the aliexpress USB power cable, split the wires, and attached it to the LM2596, looks good! Also learned how to crimp today, so that’s pretty cool. There’s also a picture of the thermistor of the heater bed in the mainsail graph somewhere down there! Unfortuantely, I don’t have free JST connectors on ahdn, so we’re gonna be doing sketchy stuff with a dupont connector in there (the pitches are a bit different, yes, i know it’s crazy sketchy, shhhhh) Anyways, after setting tool stuff to print, went downstairs and (thanks to my dad) got the t screws cut and a 15x15 build plate out of some aluminum (it’s like 1.3-1.6mm thick?). We did have to make it out of sheet aluminum that was laying around, but it came out alright, the holes are just a little misaligned but that’s a bit on me. Anyways, realized the tool stuff printed was super cursed, had to work on redesigning a lot of parts, specifically the sahft collar, the gearing (no more bearings should be needed, all the stuff should be using filament as deadaxles). Anyways, we have to fix this cad stuff (half way done), then hopefully belt the corexy and do electronics while it prints tomorrow (aka, today)? Well, that’s it for now, gotta go fast (sonic reference?), only four days left…
I’ve just been told 75% of my time spent on this log doesn’t count (apparently), so instead of dedicating probably an extra two hours of unlogged time to write a clean version, yall gonna get my thoughts DAILY, straight from the source, raw updatelog content. just kidding, there’s now a world limit so im just gonna speedrun this (since no one reads this and i read my own raw thoughts) 7/2/2026 Mostly electronics work, on 7/1/2026 night, realized that I can actually gently pry off the jst connector shells, removed a good amount of them. Wrote a devlog, worked on tuning the extruder filament tgrabbing gears. After dinner, printed some stuffs, then started adding the corexy belting path. Spent a long time, didn’t really feel very motivated at 3:42 AM and ended the day almost finishing assembling the belts and with not working extruders. 7/3/2026 Woke up early, last night wasn’t a fun night, increased the gear scale, finally actually put the corexy belt together. The filament gears now grab, though it does skip when too much filament is put in. After fixing the shaft collar and adding it back, reassembled the test tool and it attaches! The corexy does have quite a bit of friction, but the tool is assembled! However, waiting on terminal stuffs. Rest of the day is starting the electronics stuff. 7/4/2026 Motors not moving? Removed wires from housing and fix phases, motors now moving! Wondered why one motor was faster, then they both became slow. Fans wired, heaters wired, more testing, heaters can heat up! 7/5/2026 Bad sleep schedule strikes again, some soldering and added the limit switches, more stuff sent to print. A bit of config editing later and the corexy moves properly now! With the correct x and y axis! Filament doesnt really grab very well, idk.More intense filament testing, extruder can reach 230C! 7/6/2026 Really late start, more tool printing, more tool assembly, all tools and extruders are assembled now! 7/7/2026 Schedule and todo list made, support bracket set to print, top shaft supports made a printed, belts tensioned again. Some fixing later, two part inlet case CAD done and sent to print and attached, second tool head also wired up. There’s your week of updatelogs compressed into a format because theres a character limit. From now on, all devlogs will be the updatelogs and not be as extra refined, since I don’t get time counted for writing these, and it’s really a pain and insult to just say that more than a whole 24 hour day worth of actual work doesn’t count because someone added a time limit per log out of nowhere.
7/8/2026 - 75th Update! mfw when the stardance bot tells me that only 10 hours per devlog counts now that’s just rude well, welcome back! 5:01 PM today and starting things off in a bad mood. guess we gotta waste our precious time by cleaning stuff up anyways, 15 minutes later and some serious condensing (each day is like 5 sentences max), back to work! got some unfinished business to do while we work on today’s stuff! so a series of event have occured and now it’s 10:13 PM. oops. for a second i got scared something was wrong but turns out the connecting wire to the inlet thing was just a bit disconnected, trying to access the web interface right now… oh it’s because im on downstairs wifi. oh. gonna be following this for calibration! not exactly sure why there’s so many connection issues today. ok, while that’s connecting, gonna print the latch parts so my s key finally fell off. oh. that’s not good (yes im touching the little button under it) ok, w repair, cleaned it up, the key still does the weird tilt thing, but it stays in there, so that’s good so uh it fell out again. not good. ssssssssssssssssssssssssssssssssssssssssssssssssss oh i guess im gonna keep that, i just need to be more mindful of where i press it i guess, problem is currently that the mcu keeps disconnecting whenever i change the extruder temperature, which is kinda weird hmm mightve been an electrical thing? so i just spent an hour trying to come up a solution for the extruder, none of them are reliable or possible (rubber band placement just gets in the way). so yeah. whys it working now i guess the solution is grinding the gears down? whys the “rushed for display” extruder the only working one now, wow ok, latches made, no rubber bands since that just doesnt work (both the track and the thing), idk, later issue, right now i guess we’re gonna tune z stuff or gonna just try to make it as flat as possible? i think for now let’s just assume perfect flatness for time, let’s replace the heater section of 1 with the one of 3 and just basically use tool 3 instead for time (since the gearing apparently works???) (please stay that way) i guess making it as flat as possible is the best idea for now ok so it’s now 2:32 AM, the docking bay and the latches are added (ngl, they are bending because of a fillet), gonna ignore the fact that it’s slightly broken (nothing tape can’t fix), it does work, takes a bit of force though (as always) 7/7/2026: DONE - print, assemble, and add latches 7/8/2026 DONE - heating tuning DONE GOOD - z bed tuning GOOD - either assume perfect flatness or work on bed mesh/calibration g code should be able to run easily (simple commands of course) look into how to print stuff PRINTING WORKING BY EOD it’s 2:50 AM, tested it out, IT EXTRUDES! YAY! (like i let go of the filament after pushing it to the cooling area and then it extruded!!! by itself with its own gearing!!!) the clicking noises are a bit questionable but sure, ill take it! also did the z paper thingy! missed opportunity to call it cerberus, i might just add that somewhere… anyways, here’s the extruded stuff picture! woo! i mean, what a way to end the day! ok, it’s 2:56 AM, that’s about it for tonight, gonna copy paste this into the website for today’s log and yeah, good night!
7/9/2026 - 76th Update! yo and welcome back! it’s 8:57 PM at night, don’t have much time to waste now, today’s hopefully printing day? (with the actual printer of course) saw online last night from like a video from 6 years ago that using blue painters tape is a good idea (why does my s key consistently fall out now aaaaa), well look what i got here (figuratively), it’s a roll of scotch blue 2090 tape! ok, watched a couple of enlightening videos, so, i think we’re just gonna use some blue tape, seems pretty much good enough for our purpose, not sure if i really want to get orca slicer just now, i think i just want the printer to at least extrude something at this point in time? center is roughly (50.00, 77.50, ~) right now, ok, wrote a little something to center the stuff so (0, 0, 0) should hopefully be the center? yeah, close enough! ok, it’s probably a good time to apply the tape ok, tape applied, cleaned the nozzle, planning on doing the paper thing right after, then we need to print like something flat real quick (if it works, since we still need to do the config stuff for the extruder) quick 20 minute break to let it cool down later, it’s 11:07 PM, time for the paper stuff! so it doesnt really do a good job at staying level, but i do have a solution in mind, aka, having weights on both the sides to keep it flat. yeah. or a rubber band thing stretching the entire length. anyways, configs inputted! so at this point, the thing we need to focus on is getting the extruder config up and running! ok, set up the slicer with the stuff, gear ratio is start (14) to mid (28->14) to final (28->12), where it ends ok, gonna do a test “print”! it’s in quotes since it’s actually not gonna have any filament, just gonna make sure the motion works/makes sense ok, 12:31 AM, let’s run it! ok, temperature below min or something (as in the gcode stuff) 12:40 AM and still figuring stuff out, hold on a second… ok, it’s running! at least, the stuffs moving, not sure if it’s printing well? idk, gonna watch it go! it’s going! that looks… fairly realistic? idk why the heatbed’s at 60.7C right now ok, 12:54 AM, filament loaded on the top in a semi precarious matter, things are ready! 12:57 AM, here we go! timelapse running on my phone, let’s see it! heat bed termperature good, extruder temperature rising, oh turns out i have to have the tab active for it to update the graph visually, whoops well, reached the temperature, let’s see something? oh it just stopped itself because axis werent homed, ok, test 2! 1:03 AM, z axis is lifting, here we go! hmm so the extruder didnt really try… anything. like it wasnt running the whole time (unless it’s just a really small amount that the gearing cant handle?) ok the issue might just be i didnt push the filament in enough, since i just gave it multiple aggresive tugs and a whole bunch just came out of the nozzle, 1:14 AM, here we go again! (i do not want to know what the weird vapors or gasses it just released (yes i saw it, which isnt a very good thing)) also, wow, the heating controls are tuned really nicely! ok, 1:17 AM, z axis going up again so wasnt extruding anything, had to push on it to move, and that resulted in an obvious pile of sad sad so i feel like this is a bit of a gearing thing, since small amount arent really wanting to come out at least it got the rough shape correct? hmm i want to try it out without me pushing on the filament, expecting nothing to happen but who knows yeah i think its just really under extruding, probably because of slip inside? 1:43 AM, trying again, yep, nothing good, it’s now 2:00 AM, gonna go to sleep at this point yeah. idk. the one on the left is forced filament, the middle had a bit of push at the beginning, the last one was mostly by itself. yeah, idk what to do at this point. it’s 2:03 AM, idk what to do, and yeah, we’re kinda behind schedule. anyways, good night!
7/10/2026 - 77th Update! wow, 77 updates, so it’s now 10:00 PM, idk what happened to this afternoon (basically just vanished, went to some job in the morning, slept when i got home, ate lunch at 4 PM, slept again, ate dinner at 8 PM, then showered and now it’s somehow 10:00 PM) im thinking media is gonna have to be moved to tomorrow, my only goal today is to find diamonds get the printing to work reliably here’s a couple ideas i brainstormed last night increase the extruder heating temperature should make it way easier for the gearing to push as well double check gearing probably not this now that i think about it, but check docs double check rotation distance again, probably correct add extra pressure in the config similar to the first idea as in trying to actually push more filament slow things down even more very sad but self explanatory if we overextrude, that’s ok, we just need to find the tuning sweet spot where it is actually decent, but of course, the more important goal is to actually get some reasonable stream of filament flowing out (constantly extruding is not optimal but it’s whatever) ok, upped the printing temperature by 10C, also decreased a lot of speeds, 10:33 PM, hopefully ready to test? ok, prepping the stuff, gotta clean the nozzle too, ok 10:40 PM, ready to go! well that didnt print anything ok, so shoving filament down the throat extrudes, pushing filament from far above works well (it does slam left and right but still functions fine), the velocity isnt correct AT ALL (might just be from the compression/friction), hmm ive been suggested to look into the heatbreak and stuff, so gonna take a look at that, idk a bit of a break later, the gearing is sus, trying to move it with the top off and only the heatsink attached, seems off it’s been two hours and ive been playing with so so so many configurations (probably at least thirty?), moving spacers, adding rubber bands, readjusting, measuring, and i think ive come to a point where it’s “ok”. it goes out ok (3 rotations of the motor connection results in: ~1.8cm pushing fast, ~1.7cm pushing slow, idk for expected), but it’s basically incapable of going back up for some reason. it also produces a good amount of force out, but, as mentioned before, barely any up (skips a bunch) ok, played around a bit more, idk, retraction worked for a second randomly, idk, installed it back on, ready to test again 3:36 AM, did a couple of cursed things in the config, specifically making it extrude 4x as much, along with making the deretraction speed higher in the slicer, that said, here we go! ey it printed something! its still really fuzzy so i guess we still got more work to do (that was v1.4), ok v1.5 uploaded, let’s see! 4:12 AM, here we go oh yeah also added fancy ending gcode lol hmm, it’s more complete, but stll missing stuff, ok, 4:27 AM, the birds are probably coming out soon, v1.6 going! well that didnt end well huh seems like the issue was just that the filament wasnt fully loaded, whoops ok, v1.7 uploaded with some print skirts on the outside to help with the missing start extruding, flow rate also increased, let’s see, it’s 4:54 AM, so last print of the day! uh oh it seems to be underextruding now, ok, 5:09 AM, here’s v1.8 ow was in the middle of cleaning the print bed and a piece of the skirt just went straight under my fingernail ouch well, with the sun rising, here’s the end of today! imo v1.5/v1.6 is my favorite, but it’s getting there in terms of smaller details, so i think tomorrow one or two more test prints and then a benchy would be a smart move? idk, the benchy’s just for the reveal video (yes i will try to fit in media here!) well, 5:33 AM, that’s it for me tonight (tomorrow morning?), and yeah, good night!
7/11/2026 - 78th Update! in theory, the last one? in reality, probably not. anyways, it’s 3:22 PM, today’s reveal/edit day! of course, i got a bit of table clean up to do and recording, but i also wanted to play around with the settings a little more to get a somewhat better print? (and maybe test another print since this ones a little small) anyways, parent meeting at 5 PM today, gonna be attending on the side while probably editing? im planning on doing two more test prints before then test 1: turned layer speeds from 90mm/s to 70mm/s increase flow ratio from 1.15 to 1.21 decrease skirt loops from 7 to 5 ok, 3:43 PM, sliced and uploaded, heaters all heated, ready to go! gonna use the bathroom, seems to be printing well though! back at 3:55 PM, it printed well and ended well! gonna modify the ending gcode to cool down, analyzing results now! kinda wanna replace the middle tape strip since i kinda messed up and removed a ripped a bit of it while scrapping the skirts off (whoops), gonna go for one more print, im pretty satisfied, this ones gonna be a bigger test print (not a benchy yet though), im thinking calibration cube? test 2: increase flow rate from 1.21 to 1.30 decreae rotation distance from 6.4 to 6.0 increase deretraction speed from 6mm/s to 6.5mm/s decrease jerk for x (5mm/s to 4.5mm/s) y (5mm/s to 4.5mm/s) z (0.2mm/s to 0.175mm/s) x (0.3mm/s to 0.25mm/s) gonna use this makerworld one for this! intrested to see how this one goes! it’s more of a z axis and consistency ending test should have just enough filament? expecting like 2-3cm left on the top after this? might not have enough on the top but that should be fine? hopefully? i mean, if i see the filaments about to run out id rather end the test? idk footage time yeah its kinda… erm. it kinda failed to print beyond the base layer, seems to just struggle with grabbing filament on its side, let me get a straw real quick, nvm, just used a piece of filament taped down for it, i think its just a filament grabbing issue (probably fighting against the curl?), so yeah, this should straighten that out a bit? test 3 (aka, 2 again), decided not to change anything, here we go! gonna focus on footage for this one so that might have been the… worst prints ive seen, but sure ok, just added the filament from the spool, should be ready for a bigger test? test 4: changed max volumetric speed from 5mm^3/s to 3mm^3/s turned flow ratio from 1.3 down to 1.22 rotation distance reverted from 6.0 back to 6.4 oh yeah heres the image of the cube yeah, gonna go for a 50% benchy erm 50 minute print uhh, well, 5:50 PM, now or never, i guess imma setup for a reveal scene ok, created a nice set for filming, gonna be doing mostly footage stuff while this prints, not really any timelapse? i guess i could? ok, hopefully printing and footage done by 7PM, then probably editing or dinner sometime around there (yes, todays the end day i think, at least my goal) ok, quite some time later, gonna speedrun dinner, its 7:31 PM though i was away for a bit before then welcome back, 9:11 PM, did a bit of footage getting earlier, here goes a print so. half way through. turns out our cold end/heatsink or whatever kinda doesnt cool it well enough. essentially, yeah. it just started curling up halfway in. yeah. however, it did successfuly print half of it! test 5: turned layer speeds from 70mm/s to 80mm/s changed max volumetric speed from 4mm^3/s to 3mm^3/s (seems like i forgot to do it whoops) most devious gcode modifications and slicer shenanigans later devious part 2 well, it’s 6:02 AM now, after lots of editing, submitted the forms, time to head off to bed! and yeah, good night!
7/23/2026 - 80th Update! well. so im back from open sauce! actually, flight entered back to NYC on the morning of 7/21/2026, but the last two days have really just trying to get back in motion lol (turns out having crazy fun and instantly returning to “normal life” is somewhat rough) anyways, it’s 9:18 PM, here’s a recap! i dont think timelapsing all the work there would be reasonable (i estimate probably around 8 hours of work?), but yeah, mostly just config tuning and working on irl stuff, the base plate sort of didnt like the flight (but it’s really alright? basically the screws kinda ripped through the tape a bit) after the return flight, one of the LM2596’s input wires fell out, took a bit to get it in (haha get it screwdriver bit), anyways, still got a lot to do, i think for now im gonna just finish the update log on the stardance site, then update all the graphics over here, and yeah, prepare for something new??? (i have some ideas…) anyways, i think im gonna prep the stardance project to ship, idk if i can? ok, 11:00 PM, updated the front image, gonna work on updating some stuff ok, 11:06 PM (almost typed AM, that would be funny), added the open sauce image to the readme, brb! back at 12:42 AM, yeah, i think it’s a good time to ship? mfw fixing the position so the aspect ratio for the banner and the project banner (the different pages) are so so hard to get correct anyways, yeah, gonna copy this stuff over and we should be good to go? well, 1:22 AM, for now, good night!
7/28/2026 - 81st Update! Note: I wrote this back on 7/28/2026 but never published it here! (What? The return of Spark?) Well, not exactly, this is more of a thing for the latest announcement in #stardance-bulletin ! Here’s the edited video from a while back! It’s kinda for vertical/short form content, also, BIG EPILEPSY WARNING!!! While you’re here, you should definitely check out fermion , the “spark v2” in a way! It has a very different architecture (that’s surprisingly hard to cad), so check that out! Anyways, here’s the log without further ado… There’s really not that much to say. On July 26th, Spark was repackaged into a box and put into storage, almost a week after returning to New York City. It’s still in an operational state, with few wires disconnected, only with the WiFi credentials incorrect. For a logged 9 months and 2 weeks, a total of 287 days, with 80 progress updates in that time, Spark’s been on my mind for a long while, no doubt about that. Across the more than 64k words, 240+ hours, from the definitely overscoped original concept to the rush to finish it before Blueprint ended, Spark has existed between two whole YSWS programs, one used for design and one used for build. I have to say, with more than three quarters of a year, a lot has changed, both outside, in my actual life, and with Spark, as the idea changed through every log, slowly and carefully. There were highs and lows, and really, really, low lows, from feeling lost at the end of day 9 of build, to the excitment of the first motor turning during day 11. But now, it’s all neatly packed in the garage, waiting to be used another day. Spark isn’t gone, it still physically exists. It may not be resting on a giant wooden board I use for soldering next to my bed, but it still exists next to me through all the hard CAD and build days. It’s strange, this sudden change. For the last week, I haven’t really done much besides plan. And that’s probably a good thing, given all the planning Spark took. I haven’t really done much build, I haven’t really felt anything. Post convention depressions, I have to say, is hitting pretty hard. After such insane fun and wonder for a week, it’s suddenly back to a cool, rainy day, here in New York City. Sleeping through the afternoon, after sleeping not enough hours in the morning. As the rain starts pouring from the sky again, I’ve been wondering what the meaning of joy is. Alas, it might just be time. Adapting to such changes is obviously difficult, and the road of projects is too. But that doesn’t mean roadstops aren’t along the way. As I wrap up this update log, I want to leave a quick quote, one of my favorites. It probably sounds like a dumb platitude to say “it’s not the destination, it’s the journey”, but truth is, we’re made up of journeys. You’re never going to be who you’re supposed to be unless you take that road. … There is room in there for surprise, for deviations, for re-evaluations. I wouldn’t dare deprive you of that adventure. You only get one , after all. I know, you’re tired; resting is part of the journey too. But not giving up… Winter, in Housepets! (Rick Griffin, Dec 25, 2020) That said, what’s next? Well, first we’re gonna take a stepping stone. What’s next is still in concept form, but the unique constraints might require a custom PCB, which is where river comes in. First, it’s gonna be a quick project, just a custom PCB music player, just to jog the electrical skills. But after a quick skip over a stream, what’s truly next? What’s the successor to Spark? What’s next to rival its top 1 status? Fermion. See ya around.
Ships:
Well, after 120+ hours of building across some 18 days, and another hundred hours of CAD previously, it’s a good time to present Spark, this time irl! Anyways, after last summer, I fell into a sort of hole of demotivation where I didn’t really see what I was “working towards” in terms of school and just waiting six months for the FRC build season to start. In order to try to get my creativity and to prove to myself I wasn’t washed, I decided to throw myself into the deep end and to create a 3D printer. That said, 9 months later and way too many demotivation breaks, I locked in after exams and fully assembled and programmed and tested the build in 18 days! It features a coreXY gantry system, along with a passive tool changing setup with latches and the friction of the top docking piece. This kept the overall motor count to be 5 (2 for xy, 2 for z, 1 for tool). The tool changing setup and printing is nowhere near perfect (after all, this thing’s mostly made of PLA and was programmed in a week), but it’s definitely able to be tuned and better perfected with more programming time! In the end, Spark did achieve its goal of sparking some figurative sparks for me to continue building! After this, it was shipped off and exhibited at Open Sauce in California as part of Outpost where I’ve met amazing people and learned more about 3D printers and how to design them better!
hey! re-ship with an edited video! (and the bonus updatelog!)(NOTE: EPILEPSY WARNING! (it is an edit after all)) ( https://www.youtube.com/watch?v=ktODngPF7UI ) (i have fond memories of this, it was the saturday before the week of outpost and i stayed up to 6 AM edited, after a full day of getting footage and stuff (and dealing with goofy kdenlive crashes)) i also somehow did 10hrs+ that day so that was pretty insane! anyways, thanks for reviewing :D...
|
1793001023.87465
|
1793087423.87465
|
|
46689
|
donOS X by @boredon | Stardance
|
boredon
|
1
|
26.0
|
389
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-24T17:02:11Z", "hours": 26.0, "multiplier": 12.71, "payout": 389, "blessing": "neutral", "text": "What did you make? I made a web-based operating system inspired by y2k aesthetics and webcore, with a design language created to be unique. What was challenging? The bit that took the longest was actually nailing the design to go forward with, but that was just one of many struggles. Getting the screen to fit perfectly inside the CRT monitor, as well as applying the overlay for the 3D effect, forced me to dive deeper into CSS more than I ever have and discover this absolute gem called cqi. This was also my first time ever using JavaScript seriously, so learning how to store things locally, build functions and map those functions to elements was definitely a steep hill to climb, and I wouldn’t say I’ve reached the peak quite yet. However, this projects has taught me a lot about JavaScript syntaxing and best practices, which I plan to implement extensively in future projects. What are you proud of? Honestly? Everything! It was a really daunting task at first, but the hardest part of anything is starting. Once I started, I picked up a momentum that was pretty much impossible to stop, if it weren’t for the time constraints of course (I have school very soon). I’m proud of the JavaScript I’ve learnt, however basic it was, and I’m glad I had the opportunity to dive headfirst into something I’ve never dabbled in before. Any last words, buckaroo? I plan to add a LOT to this project in the near future, and I’m mobilizing as much time as I can to invest in this project. If you have the time, please let me know what else I can implement as you give feedback. …oh…and also… “Tails is the best fictional character in the universe,” I say as they drag me to the padded room…", "repo": "https://github.com/Donald-Mutuku/donOS-X", "demo": "https://donald-mutuku.github.io/donOS-X/"}]...
|
[{"post_id": 53910, "ts": "202 [{"post_id": 53910, "ts": "2026-08-24T16:49:04Z", "hours": 4.5711, "text": "webOS devlog 5 two-in-one?? paint app and start menu! in record time (yes, 4 hours is record time), i managed to create a basic painting app and a start menu! carrying over my knowledge about localStorage to making the save and new functions of Paint really sped things up. that said, setting up the viewport of the canvas so that you could edit a whole screen worth of content was a bit of a headache: i tried setting the paint window to just clip content, but that meant when it was resized from a larger to smaller then larger size again, only the content visible in the smaller size was preserved. so i had to set up a big, invisible viewport and a window so that you can scroll the viewport, and the whole beautiful art you made can be restored. features included in Paint™: draw. can u believe that? can u believe u can draw in a Paint app? change the brush colour (i know, mindblowing) fill the canvas with your choice of colour erase (this took me wayyyy too long to figure out wth) make multiple paintings and save each. that’s right, u can make and save as many incomplete art panels as the average manga artist (no shade). view all of your paintings. each painting is saved like a clickable file on the desktop. that’s so cool, as long as you don’t refresh the page because idk how to write to ur pc storage. sue me. start menu was very easy, probably cuz it’s so basic but i’m not really building it beyond that for now. unfortunately for the 0.5 people that have been following along, this might be my last devlog… before my first ship! i want to account for all the progress i’ve made thus far, so i’ll be shipping the first rendition of donOS X later today for the world to enjoy (or hate on, whichever fits ur personality). thanks for reading! like this devlog. now."}, {"post_id": 53302, "ts": "2026-08-23T19:18:22Z", "hours": 6.7169, "text": "webOS devlog 4 notepad babyyy!! update: you can now try out my website live on my project page! go on, treat yourself… my coding efficiency needs to be studied…. wdym 6 hours for a notepad app… anywayss, i got it done nice and clean, and now i have something actually functional!! and the best part is, i did it 99% without AI!! the all-new Notepad™ features: bold and italic formatting. now your notes look expressive . whoop whoop the ability to save your notes to the desktop! as long as you don’t refresh your tab, your cute little notes stay on the desktop, with your questionably long names dynamically fitting with some fancy flexbox formatting the ability to make NEW notes. that’s right, you can populate this poor desktop with a bajillion notes if you want, as long as bajllion means less than around 20. don’t push it buddy. soon: tails appears if you call out to him 👀👀👀 things i’ll definitely do in the next devlog: manage time properly (yikes) browser. what’s a desktop without a means to doomscroll a game. if i can’t code solitaire, sorry guys, pong is the best i can do ….tails…. ok byebye"}, {"post_id": 52385, "ts": "2026-08-22T14:37:10Z", "hours": 3.4147, "text": "webOS devlog 3 draggable and closable windows!! i need to speed this up wthhh but yeah, u read the title. we now have proper dragging windows. last time, they cursor would fly off screen if u dragged too far (it still kinda does if u shake the windows too much, but no idea how to fix that yet), but now, they, y’know. Drag hmm what else. oh, right. i added desktop icons, so that you can access your favourite time-wasting apps more efficiently close buttons, so that you can kill your favorite time-wasting apps. sidenote on this, this took longest because the guide initially just set it up for one window, so i had to basically learn javascript myself to learn how to apply it to all windows. Hope. Tails!!!! not enough yet tho >:("}, {"post_id": 51876, "ts": "2026-08-21T19:15:02Z", "hours": 3.1472, "text": "webOS devlog 2 welcome screen!!! yippee i managed to make my welcome screen, fitting neatly inside a draggable window template which i’ll apply to other windows in the future. this took way longer than expected again, mostly because the drag function allowed the user to drag beyond the screen boundaries, which i fixed by adding clampPosition function that ensures the window never crosses the screen’s dimensions. i also created custom window buttons and dialog buttons, though none of them are functional just yet. things to do: more Tails. duh. make the window buttons do stuff add desktop icons games?? 👀👀 (foreshadowing x2) see y’all tomorrow. i’m so tired"}, {"post_id": 51534, "ts": "2026-08-21T09:23:55Z", "hours": 7.6553, "text": "webOS devlog 1 seven hours over 3 days for… almost nothing huh 😭😭. i actually spent most of this time trying to decide what design style i’d use. i tried mimicking the Wii U, then the Wii, then the PS VITA, then i read the mission requirements and realized it needs to have draggable windows … sigh…. anyway, i managed to set the base desktop for my OS with a LOT of enhancements, including: a CRT monitor frame, complete with shadows and gradients to create the illusion of 3 dimensions great responsiveness to ensure the monitor maintains its aspect ratio while fitting on practically any screen a custom cursor within the screen to mimic the old windows XP look a desktop wallpaper. it really is cool enough to have its own bullet point problems i faced? oh, boy. first of all, i had no idea how responsiveness actually worked, so i initially set all my units in px and the layout would break horribly on any display other than mine. so i had to learn to use cqi units instead and change EVERY. SINGLE. ONE. then i spent about an hour trying to figure out why everything was still broken and the gradients weren’t working, only to realize i hadn’t linked my .css file in the header. AAAAA what i’m going to add the welcome screen (should’ve been the first thing bruh) draggable windows Tails, because… Tails games? 👀👀 ok see y’all tomorrow (or probably later today yayaya)"}]...
|
Title: donOS X by @boredon | Stardance
Devlogs:
w Title: donOS X by @boredon | Stardance
Devlogs:
webOS devlog 1 seven hours over 3 days for… almost nothing huh 😭😭. i actually spent most of this time trying to decide what design style i’d use. i tried mimicking the Wii U, then the Wii, then the PS VITA, then i read the mission requirements and realized it needs to have draggable windows … sigh…. anyway, i managed to set the base desktop for my OS with a LOT of enhancements, including: a CRT monitor frame, complete with shadows and gradients to create the illusion of 3 dimensions great responsiveness to ensure the monitor maintains its aspect ratio while fitting on practically any screen a custom cursor within the screen to mimic the old windows XP look a desktop wallpaper. it really is cool enough to have its own bullet point problems i faced? oh, boy. first of all, i had no idea how responsiveness actually worked, so i initially set all my units in px and the layout would break horribly on any display other than mine. so i had to learn to use cqi units instead and change EVERY. SINGLE. ONE. then i spent about an hour trying to figure out why everything was still broken and the gradients weren’t working, only to realize i hadn’t linked my .css file in the header. AAAAA what i’m going to add the welcome screen (should’ve been the first thing bruh) draggable windows Tails, because… Tails games? 👀👀 ok see y’all tomorrow (or probably later today yayaya)
webOS devlog 2 welcome screen!!! yippee i managed to make my welcome screen, fitting neatly inside a draggable window template which i’ll apply to other windows in the future. this took way longer than expected again, mostly because the drag function allowed the user to drag beyond the screen boundaries, which i fixed by adding clampPosition function that ensures the window never crosses the screen’s dimensions. i also created custom window buttons and dialog buttons, though none of them are functional just yet. things to do: more Tails. duh. make the window buttons do stuff add desktop icons games?? 👀👀 (foreshadowing x2) see y’all tomorrow. i’m so tired
webOS devlog 3 draggable and closable windows!! i need to speed this up wthhh but yeah, u read the title. we now have proper dragging windows. last time, they cursor would fly off screen if u dragged too far (it still kinda does if u shake the windows too much, but no idea how to fix that yet), but now, they, y’know. Drag hmm what else. oh, right. i added desktop icons, so that you can access your favourite time-wasting apps more efficiently close buttons, so that you can kill your favorite time-wasting apps. sidenote on this, this took longest because the guide initially just set it up for one window, so i had to basically learn javascript myself to learn how to apply it to all windows. Hope. Tails!!!! not enough yet tho >:(
webOS devlog 4 notepad babyyy!! update: you can now try out my website live on my project page! go on, treat yourself… my coding efficiency needs to be studied…. wdym 6 hours for a notepad app… anywayss, i got it done nice and clean, and now i have something actually functional!! and the best part is, i did it 99% without AI!! the all-new Notepad™ features: bold and italic formatting. now your notes look expressive . whoop whoop the ability to save your notes to the desktop! as long as you don’t refresh your tab, your cute little notes stay on the desktop, with your questionably long names dynamically fitting with some fancy flexbox formatting the ability to make NEW notes. that’s right, you can populate this poor desktop with a bajillion notes if you want, as long as bajllion means less than around 20. don’t push it buddy. soon: tails appears if you call out to him 👀👀👀 things i’ll definitely do in the next devlog: manage time properly (yikes) browser. what’s a desktop without a means to doomscroll a game. if i can’t code solitaire, sorry guys, pong is the best i can do ….tails…. ok byebye
webOS devlog 5 two-in-one?? paint app and start menu! in record time (yes, 4 hours is record time), i managed to create a basic painting app and a start menu! carrying over my knowledge about localStorage to making the save and new functions of Paint really sped things up. that said, setting up the viewport of the canvas so that you could edit a whole screen worth of content was a bit of a headache: i tried setting the paint window to just clip content, but that meant when it was resized from a larger to smaller then larger size again, only the content visible in the smaller size was preserved. so i had to set up a big, invisible viewport and a window so that you can scroll the viewport, and the whole beautiful art you made can be restored. features included in Paint™: draw. can u believe that? can u believe u can draw in a Paint app? change the brush colour (i know, mindblowing) fill the canvas with your choice of colour erase (this took me wayyyy too long to figure out wth) make multiple paintings and save each. that’s right, u can make and save as many incomplete art panels as the average manga artist (no shade). view all of your paintings. each painting is saved like a clickable file on the desktop. that’s so cool, as long as you don’t refresh the page because idk how to write to ur pc storage. sue me. start menu was very easy, probably cuz it’s so basic but i’m not really building it beyond that for now. unfortunately for the 0.5 people that have been following along, this might be my last devlog… before my first ship! i want to account for all the progress i’ve made thus far, so i’ll be shipping the first rendition of donOS X later today for the world to enjoy (or hate on, whichever fits ur personality). thanks for reading! like this devlog. now.
Ships:
What did you make? I made a web-based operating system inspired by y2k aesthetics and webcore, with a design language created to be unique. What was challenging? The bit that took the longest was actually nailing the design to go forward with, but that was just one of many struggles. Getting the screen to fit perfectly inside the CRT monitor, as well as applying the overlay for the 3D effect, forced me to dive deeper into CSS more than I ever have and discover this absolute gem called cqi. This was also my first time ever using JavaScript seriously, so learning how to store things locally, build functions and map those functions to elements was definitely a steep hill to climb, and I wouldn’t say I’ve reached the peak quite yet. However, this projects has taught me a lot about JavaScript syntaxing and best practices, which I plan to implement extensively in future projects. What are you proud of? Honestly? Everything! It was a really daunting task at first, but the hardest part of anything is starting. Once I started, I picked up a momentum that was pretty much impossible to stop, if it weren’t for the time constraints of course (I have school very soon). I’m proud of the JavaScript I’ve learnt, however basic it was, and I’m glad I had the opportunity to dive headfirst into something I’ve never dabbled in before. Any last words, buckaroo? I plan to add a LOT to this project in the near future, and I’m mobilizing as much time as I can to invest in this project. If you have the time, please let me know what else I can implement as you give feedback. …oh…and also… “Tails is the best fictional character in the universe,” I say as they drag me to the padded room…...
|
1792979296.858166
|
1793065696.858166
|
|
25625
|
Delve by @devlsx | Stardance
|
devlsx
|
1
|
28.0
|
388
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-07T21:18:57Z", "hours": 28.0, "multiplier": 14.7, "payout": 388, "blessing": "neutral", "text": "Delve This is a little roguelike I built in Rust. It runs entirely in the terminal: no graphics, just coloured letters. You’re the @ , you climb down into a randomly generated dungeon, fight the things that live there, grab whatever loot you can, and try to get to the bottom before something eats you. It’s twelve floors deep. Getting there is the whole game. The only dependency is crossterm (for raw terminal mode, colours and key input). Everything else — the RNG, the map generator, the field of view, the monster pathfinding, the save format — I wrote myself. That was the point: I wanted to actually understand every piece instead of pulling in a crate for it. How a turn works Delve is turn-based, and the loop is dead simple: nothing moves until you do. You press a key → that becomes an Action (move, wait, pick up, descend, open the inventory, …). The game resolves your action. If you walked into a monster, that’s an attack. Then every monster takes its turn. The field of view is recomputed from your new position, the screen is redrawn, and it waits for your next key. Because the world only advances on your input, you can sit and think for as long as you like — which is very roguelike, and also means the whole thing costs zero CPU while it waits. The pieces The dungeon ( mapgen.rs ). Classic “rooms and corridors”: I scatter up to 16 non-overlapping rectangular rooms, then connect each room to the previous one with an L-shaped tunnel. Up-stairs go in the first room, down-stairs in the last. Every floor is freshly generated, so no two runs are the same. Field of view ( fov.rs ). You can only see what’s near you; everything else is dark (tiles you’ve seen before stay dimly remembered). I do it by shooting straight Bresenham lines from the player out to every square on the edge of a box around them, lighting up tiles until a ray hits a wall. It’s not the fancy “shadowcasting” algorithm everyone uses — I picked the version I could fully understand and it looks great. Monsters that hunt you ( ai.rs + pathfind.rs ). When a monster can see you it doesn’t just stumble around — it runs a real A * search to route around walls and close the distance. Lose line of sight and it goes back to idling. (The A * has a fun gotcha: Rust’s BinaryHeap is a max -heap, but A * wants the cheapest node first, so I had to reverse the ordering. That bug — it kept expanding the worst nodes — took me embarrassingly long to spot.) Fighting ( combat.rs ). Simple and readable: roll the attacker’s power with a tiny bit of variance, subtract the defender’s defense, and the rest is damage. Weapons add power, armour adds defense. Kill things for XP, level up for more HP and power. Loot ( items.rs + spawn.rs + inventory.rs ). Potions (healing, permanent strength, permanent max-HP), scrolls (teleport, magic mapping, lightning bolt, enchant weapon), plus weapons and armour drawn from tables that scale with depth — so the deeper you go, the better the gear you might find, and the nastier the things guarding it. Difficulty curve. Deeper floors spawn more monsters and meaner ones. The design is deliberately lopsided: the dungeon always wins eventually. That’s the joke the whole game is built around. Saving ( save.rs ). A save is really a suspend — the moment you load it, the file is deleted, so you can’t save-scum your way out of a bad decision. I also hand-wrote the entire save/load format by hand (parsing and all) instead of reaching for serde , just to prove to myself I could. Flavour ( flavor.rs ). Every death, descent and kill pulls a random one-liner from a little pool, so the log never reads the same way twice (“You delete the goblin from the timeline. No undo.”). Honestly the most fun part to write.", "repo": "https://github.com/AlexanderGese/delve", "demo": "https://crates.io/crates/delve-rl"}]...
|
[{"post_id": 24333, "ts": "202 [{"post_id": 24333, "ts": "2026-07-07T20:54:28Z", "hours": 2.6953, "text": "Hooked up input (wasd, arrows, hjkl, all of it) Built the real main loop with terminal setup, and it was playable start to finish Hit a bug where every keypress moved me twice. Some terminals send a press and a release event and I was reacting to both. One-line fix once I understood it Added saving. Hand-wrote the whole save format instead of using serde, dumping the map, monsters, inventory, and even the rng state to a text file Save works suspend-style, so it deletes on load and you can’t save-scum death Had a nasty bug parsing the rng state as an i64 when it’s a u64, so big values silently failed to load. Lost an hour to one wrong type Five evenings and it’s a real, funny little roguelike that saves and runs in any terminal Learned a ton of Rust. Calling it done"}, {"post_id": 24138, "ts": "2026-07-07T14:42:21Z", "hours": 5.9178, "text": "Wrote the core Game struct that owns the map, player, monsters, loot, inventory, and depth Built the turn loop. You act, then every monster takes its turn The turn loop fought the borrow checker. Moving one monster while reading all the others is something Rust hates. Split the borrows of self by hand and used a snapshot of which tiles are occupied. Took forever, but it works and monsters chase properly, so I stopped touching it Added descending the stairs Added xp and leveling. Made up the numbers and playtested until they felt okay Added rendering with remembered and visible tiles Added the hud, the message log panel, and the inventory and help screens Went from a bunch of modules to something that looks like a game in one evening"}, {"post_id": 23313, "ts": "2026-07-06T05:56:13Z", "hours": 8.3028, "text": "Added line-of-sight using a bresenham ray to check nothing solid blocks the view Added A* pathfinding so monsters route around walls to reach you Monsters keep chasing for a few turns after losing sight, so ducking around a corner won’t save you A* was a pain. Rust’s BinaryHeap is a max-heap, but A* needs the smallest cost first, so it kept finding crazy paths. Flipping the ordering fixed it and monsters got good at cornering me Added loot to make going deeper worth it. Potions (healing, strength, vitality), scrolls (teleport, magic mapping, lightning, enchant), weapons, armor, and gold Added an inventory to carry it all Added spawn tables that put more and nastier stuff deeper down Zapping the nearest monster with a lightning scroll across a room feels great Made a whole file just for the funny one-liners the game throws at you. Best part of the day"}, {"post_id": 22417, "ts": "2026-07-04T21:31:51Z", "hours": 2.9839, "text": "Put all the colors in one place Added a scrolling message log at the bottom of the screen Player and monsters use the same struct. The only thing that makes a monster is whether it has an “ai” Gave them hp, power, and defense Combat is simple. Walk into a monster to hit it Damage is attacker power plus a little random, minus defender defense Plays better than expected Added lots of monsters. Rats, bats, and kobolds up top. Orcs, zombies, and wolves lower down. Ogres, trolls, demons, and a dragon deep at the bottom Spent a long time tweaking numbers for a fair difficulty curve Died for the first time"}, {"post_id": 22014, "ts": "2026-07-04T07:59:16Z", "hours": 8.2, "text": "Cargo project set up, only dependency is crossterm Wrote own xorshift RNG (learn how they work + deterministic seeds -> reproducible dungeons) Added points, rectangles, tile types (wall/floor/corridor/stairs) Map = one flat vector indexed as 2D Rooms and corridors generator: scatter nonoverlapping rooms, join with L-shaped halls Ray-cast FOV: see only nearby and visited tiles stay dimly lit No player yet, but world is generating"}]...
|
Title: Delve by @devlsx | Stardance
Devlogs:
Carg Title: Delve by @devlsx | Stardance
Devlogs:
Cargo project set up, only dependency is crossterm Wrote own xorshift RNG (learn how they work + deterministic seeds -> reproducible dungeons) Added points, rectangles, tile types (wall/floor/corridor/stairs) Map = one flat vector indexed as 2D Rooms and corridors generator: scatter nonoverlapping rooms, join with L-shaped halls Ray-cast FOV: see only nearby and visited tiles stay dimly lit No player yet, but world is generating
Put all the colors in one place Added a scrolling message log at the bottom of the screen Player and monsters use the same struct. The only thing that makes a monster is whether it has an “ai” Gave them hp, power, and defense Combat is simple. Walk into a monster to hit it Damage is attacker power plus a little random, minus defender defense Plays better than expected Added lots of monsters. Rats, bats, and kobolds up top. Orcs, zombies, and wolves lower down. Ogres, trolls, demons, and a dragon deep at the bottom Spent a long time tweaking numbers for a fair difficulty curve Died for the first time
Added line-of-sight using a bresenham ray to check nothing solid blocks the view Added A* pathfinding so monsters route around walls to reach you Monsters keep chasing for a few turns after losing sight, so ducking around a corner won’t save you A* was a pain. Rust’s BinaryHeap is a max-heap, but A* needs the smallest cost first, so it kept finding crazy paths. Flipping the ordering fixed it and monsters got good at cornering me Added loot to make going deeper worth it. Potions (healing, strength, vitality), scrolls (teleport, magic mapping, lightning, enchant), weapons, armor, and gold Added an inventory to carry it all Added spawn tables that put more and nastier stuff deeper down Zapping the nearest monster with a lightning scroll across a room feels great Made a whole file just for the funny one-liners the game throws at you. Best part of the day
Wrote the core Game struct that owns the map, player, monsters, loot, inventory, and depth Built the turn loop. You act, then every monster takes its turn The turn loop fought the borrow checker. Moving one monster while reading all the others is something Rust hates. Split the borrows of self by hand and used a snapshot of which tiles are occupied. Took forever, but it works and monsters chase properly, so I stopped touching it Added descending the stairs Added xp and leveling. Made up the numbers and playtested until they felt okay Added rendering with remembered and visible tiles Added the hud, the message log panel, and the inventory and help screens Went from a bunch of modules to something that looks like a game in one evening
Hooked up input (wasd, arrows, hjkl, all of it) Built the real main loop with terminal setup, and it was playable start to finish Hit a bug where every keypress moved me twice. Some terminals send a press and a release event and I was reacting to both. One-line fix once I understood it Added saving. Hand-wrote the whole save format instead of using serde, dumping the map, monsters, inventory, and even the rng state to a text file Save works suspend-style, so it deletes on load and you can’t save-scum death Had a nasty bug parsing the rng state as an i64 when it’s a u64, so big values silently failed to load. Lost an hour to one wrong type Five evenings and it’s a real, funny little roguelike that saves and runs in any terminal Learned a ton of Rust. Calling it done
Ships:
Delve This is a little roguelike I built in Rust. It runs entirely in the terminal: no graphics, just coloured letters. You’re the @ , you climb down into a randomly generated dungeon, fight the things that live there, grab whatever loot you can, and try to get to the bottom before something eats you. It’s twelve floors deep. Getting there is the whole game. The only dependency is crossterm (for raw terminal mode, colours and key input). Everything else — the RNG, the map generator, the field of view, the monster pathfinding, the save format — I wrote myself. That was the point: I wanted to actually understand every piece instead of pulling in a crate for it. How a turn works Delve is turn-based, and the loop is dead simple: nothing moves until you do. You press a key → that becomes an Action (move, wait, pick up, descend, open the inventory, …). The game resolves your action. If you walked into a monster, that’s an attack. Then every monster takes its turn. The field of view is recomputed from your new position, the screen is redrawn, and it waits for your next key. Because the world only advances on your input, you can sit and think for as long as you like — which is very roguelike, and also means the whole thing costs zero CPU while it waits. The pieces The dungeon ( mapgen.rs ). Classic “rooms and corridors”: I scatter up to 16 non-overlapping rectangular rooms, then connect each room to the previous one with an L-shaped tunnel. Up-stairs go in the first room, down-stairs in the last. Every floor is freshly generated, so no two runs are the same. Field of view ( fov.rs ). You can only see what’s near you; everything else is dark (tiles you’ve seen before stay dimly remembered). I do it by shooting straight Bresenham lines from the player out to every square on the edge of a box around them, lighting up tiles until a ray hits a wall. It’s not the fancy “shadowcasting” algorithm everyone uses — I picked the version I could fully understand and it looks great. Monsters that hunt you ( ai.rs + pathfind.rs ). When a monster can see you it doesn’t just stumble around — it runs a real A * search to route around walls and close the distance. Lose line of sight and it goes back to idling. (The A * has a fun gotcha: Rust’s BinaryHeap is a max -heap, but A * wants the cheapest node first, so I had to reverse the ordering. That bug — it kept expanding the worst nodes — took me embarrassingly long to spot.) Fighting ( combat.rs ). Simple and readable: roll the attacker’s power with a tiny bit of variance, subtract the defender’s defense, and the rest is damage. Weapons add power, armour adds defense. Kill things for XP, level up for more HP and power. Loot ( items.rs + spawn.rs + inventory.rs ). Potions (healing, permanent strength, permanent max-HP), scrolls (teleport, magic mapping, lightning bolt, enchant weapon), plus weapons and armour drawn from tables that scale with depth — so the deeper you go, the better the gear you might find, and the nastier the things guarding it. Difficulty curve. Deeper floors spawn more monsters and meaner ones. The design is deliberately lopsided: the dungeon always wins eventually. That’s the joke the whole game is built around. Saving ( save.rs ). A save is really a suspend — the moment you load it, the file is deleted, so you can’t save-scum your way out of a bad decision. I also hand-wrote the entire save/load format by hand (parsing and all) instead of reaching for serde , just to prove to myself I could. Flavour ( flavor.rs ). Every death, descent and kill pulls a random one-liner from a little pool, so the log never reads the same way twice (“You delete the goblin from the timeline. No undo.”). Honestly the most fun part to write....
|
1792878739.3591366
|
1793742739.3591366
|
|
51969
|
coffeeTracker by @skyFonix | Stardance
|
skyFonix
|
1
|
38.0
|
388
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-11T18:48:25Z", "hours": 38.0, "multiplier": 8.44, "payout": 388, "blessing": "neutral", "text": "coffeeTracker The reason The reason I made this project was because my dad asked me whether I could develop a solution for tracking coffee usage at his workplace, because it was a real mess without a central system. Features User account registration without any permission First user to register automatically becomes the admin Everyone else has to be approved by the admin if the account wasn’t created from the admin dashboard The whole system works based on pools, every coffee machine at an office is considered a pool, each of them have a separate transaction list. Every user has a different balance for all of them! Clear UI with big buttons for the four main functions Drink (“Ivás”): The user can either choose a predefined strength of coffee or can enter a custom amount in gramms, people can only drink from a pool if the user has enough money to pay for the coffee and the pool has enough coffee to drink from Add coffee (“Kávé hozzáadása”): The user can register coffee that they bought with their own money!. They need to enter the amount and cost of it! Add money (“Pénz hozzáadása”): The user can register a money only transaction, the system treats it differently to a coffee add transaction, since it doesn’t physically add coffee to the pool Use Money (“Pénz felhasználása”): Since the system treats money only and coffee transactions this serves the function of using up the funds from money only transactions in the pool! Any transaction can be edited: Users can only edit their transactions for a limited time, while admins can edit all transactions at any point in time right from the dashboard! Profile pictures: Any user can set a profile picture, it has no usefulness, but it’s fun. Admins can administer profile pics to any user these pictures can also be removed! Upcoming features: Statistics: These aren’t implemented yet, because I’m not sure what will be needed in everyday usage, so I decided it’s better to let the environment decide. Difficulties: One of the biggest challenges of this project was the logic behind handling and updating transactions and pool balances I also found working with modals a bit inconvenient and ugly at times, but got used to them by the end Demo: https://democoffee.cigoria.eu ADMIN User: demoadmin Password: password USER User: demouser Password: password1", "repo": "https://github.com/FonixPython/coffeeTracker", "demo": "https://democoffee.cigoria.eu"}]...
|
[{"post_id": 78795, "ts": "202 [{"post_id": 78795, "ts": "2026-10-11T16:58:47Z", "hours": 6.9053, "text": "Final devlog before first ship! I translated the whole thing to Hungarian because the environment that it will be used in required it! I implemented a money usage transaction I also implemented editing of transactions for both users and admins, admins can edit transaction anytime, users can only edit transactions the hour after it was made! QR support was also implemented, these can be printed out and when scanned they bring the user right to the correct pool for quick transactions"}, {"post_id": 71142, "ts": "2026-09-20T10:52:55Z", "hours": 9.0417, "text": "It seems like I’m still keeping my track record of not making enough devlogs. Things that have changed since last time: I added support for profile pictures A top bar was added for access to the admin panel, user editor and the logout button! I started making the home page functional, adding coffee, adding money and drinking coffee are now functional! Challenging things: As per usual my procrastination did not help the progress of the project I spent the last half an hour figuring out why the checks for drinking coffee weren’t working, it turned out to be quite a dumb mistake Things left to do: Use money from pool function Edit transaction for users and admins Generate QR code for pool with a printable .pdf Statistics: Coffee drinking leader board Coffee buying leader board Monthly drinking summaries Drinking frequency stats throughout the day Display amount of money actually spent on coffee and amount of money that’s just money"}, {"post_id": 67364, "ts": "2026-09-13T13:25:23Z", "hours": 2.86, "text": "Accounts can finally be properly edited from the admin panel, next up is the profile picture support!"}, {"post_id": 66777, "ts": "2026-09-12T17:43:33Z", "hours": 9.7572, "text": "Damn it, I’m devloging almost 10 hours of work again! I everything I did was on the admin page side of things, forgot to devlog tho… Admin can create, edit and delete pools Admin can create, edit and delete coffee variations (how strong a coffee can be) Admin can register, accept, edit and delete users Currently the most challenging part of this project is battling my ADHD brain and trying not to procrastinate on it. :("}, {"post_id": 53987, "ts": "2026-08-24T18:23:40Z", "hours": 6.5903, "text": "Big devlog - backend work mostly finished Things added Authentication systems with tokens stored inside of a cookie CRUD for pools for admins CRUD for transactions for admins and users CRUD for variations for admins Frontend Tasks Connect the login page to backend Connect user dashboard to backend Add modals to user dashboard Add notifications to user dashboard Connect admin dashboard to backend Create statistics diagrams Backend Tasks Profile picture support, db table already there, but uploads and such aren’t yet implemented, I’m unsure of when to handle them"}, {"post_id": 51257, "ts": "2026-08-20T19:53:10Z", "hours": 1.8378, "text": "Finished with the basic design of the user dashboard! Also optimized it for mobile devices, since that’s going to be the primary target device!"}, {"post_id": 51182, "ts": "2026-08-20T18:00:46Z", "hours": 0.8058, "text": "Login panel design finished"}, {"post_id": 51092, "ts": "2026-08-20T16:17:02Z", "hours": 0.4714, "text": "Finished with schema design!"}]...
|
Title: coffeeTracker by @skyFonix | Stardance
Dev Title: coffeeTracker by @skyFonix | Stardance
Devlogs:
Finished with schema design!
Login panel design finished
Finished with the basic design of the user dashboard! Also optimized it for mobile devices, since that’s going to be the primary target device!
Big devlog - backend work mostly finished Things added Authentication systems with tokens stored inside of a cookie CRUD for pools for admins CRUD for transactions for admins and users CRUD for variations for admins Frontend Tasks Connect the login page to backend Connect user dashboard to backend Add modals to user dashboard Add notifications to user dashboard Connect admin dashboard to backend Create statistics diagrams Backend Tasks Profile picture support, db table already there, but uploads and such aren’t yet implemented, I’m unsure of when to handle them
Damn it, I’m devloging almost 10 hours of work again! I everything I did was on the admin page side of things, forgot to devlog tho… Admin can create, edit and delete pools Admin can create, edit and delete coffee variations (how strong a coffee can be) Admin can register, accept, edit and delete users Currently the most challenging part of this project is battling my ADHD brain and trying not to procrastinate on it. :(
Accounts can finally be properly edited from the admin panel, next up is the profile picture support!
It seems like I’m still keeping my track record of not making enough devlogs. Things that have changed since last time: I added support for profile pictures A top bar was added for access to the admin panel, user editor and the logout button! I started making the home page functional, adding coffee, adding money and drinking coffee are now functional! Challenging things: As per usual my procrastination did not help the progress of the project I spent the last half an hour figuring out why the checks for drinking coffee weren’t working, it turned out to be quite a dumb mistake Things left to do: Use money from pool function Edit transaction for users and admins Generate QR code for pool with a printable .pdf Statistics: Coffee drinking leader board Coffee buying leader board Monthly drinking summaries Drinking frequency stats throughout the day Display amount of money actually spent on coffee and amount of money that’s just money
Final devlog before first ship! I translated the whole thing to Hungarian because the environment that it will be used in required it! I implemented a money usage transaction I also implemented editing of transactions for both users and admins, admins can edit transaction anytime, users can only edit transactions the hour after it was made! QR support was also implemented, these can be printed out and when scanned they bring the user right to the correct pool for quick transactions
Ships:
coffeeTracker The reason The reason I made this project was because my dad asked me whether I could develop a solution for tracking coffee usage at his workplace, because it was a real mess without a central system. Features User account registration without any permission First user to register automatically becomes the admin Everyone else has to be approved by the admin if the account wasn’t created from the admin dashboard The whole system works based on pools, every coffee machine at an office is considered a pool, each of them have a separate transaction list. Every user has a different balance for all of them! Clear UI with big buttons for the four main functions Drink (“Ivás”): The user can either choose a predefined strength of coffee or can enter a custom amount in gramms, people can only drink from a pool if the user has enough money to pay for the coffee and the pool has enough coffee to drink from Add coffee (“Kávé hozzáadása”): The user can register coffee that they bought with their own money!. They need to enter the amount and cost of it! Add money (“Pénz hozzáadása”): The user can register a money only transaction, the system treats it differently to a coffee add transaction, since it doesn’t physically add coffee to the pool Use Money (“Pénz felhasználása”): Since the system treats money only and coffee transactions this serves the function of using up the funds from money only transactions in the pool! Any transaction can be edited: Users can only edit their transactions for a limited time, while admins can edit all transactions at any point in time right from the dashboard! Profile pictures: Any user can set a profile picture, it has no usefulness, but it’s fun. Admins can administer profile pics to any user these pictures can also be removed! Upcoming features: Statistics: These aren’t implemented yet, because I’m not sure what will be needed in everyday usage, so I decided it’s better to let the environment decide. Difficulties: One of the biggest challenges of this project was the logic behind handling and updating transactions and pool balances I also found working with modals a bit inconvenient and ugly at times, but got used to them by the end Demo: https://democoffee.cigoria.eu ADMIN User: demoadmin Password: password USER User: demouser Password: password1...
|
1793004934.0955114
|
1793091334.0955114
|
|
28354
|
MULTI by @Henrik_Eriksen | Stardance
|
Henrik_Eriksen
|
1
|
24.0
|
386
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-09T01:07:43Z", "hours": 24.0, "multiplier": 13.28, "payout": 386, "blessing": "neutral", "text": "Over the span of about 23 hours i have made a Arduino multi tasking game that is based very loosely upon the contraption you see in the picture to the left, the Schuhfried Universal Response panel. the panel is used when taking different tests to get your private/commercial pilots license. The gameplay loop revolves around multitasking 3 different things at once, they are as follows: ensure that you always press middle button when an x shows up on the middle screen, ensure that the potentiometer is always pointed at the lit up led(its the one to the left in the second picture) and lasty press the corresponding button combo when up and down are shown on the lower half of the lcd, you do this by pressing left and right buttons. This project has been a major challenge to me since i barely knew how to code (and arguably still dont know how write good code) when i started this project. The reason for me shipping this as software and not hardware as originally intended is since i want to get the ISS question in the shop. The question timeline would have expired before hardware starts to get reviewed. I am highly aware that my code might be very inefficient but i have been coding and learning to for about 20 days. I will now try to explain my code. The first part of the before setup is just labeling booleans and integers that will be used later(i am using integers to keep track of many things that i could use booleans for but i wasn’t aware of booleans until about 1/3 of the code was already written and i didn’t want to rewrite everything already using integers), the part of the code that i would say i am most proud of is is my fail system since it constantly works every time and i think the way i did it was a clever solution. For context the fail system works by clearing the LCD then printing YOU FAILED! Reset Arduino, the way that it ensures the Arduino is reset is by setting a delay on the code that lasts indefinitely until the Arduino is reset. A bit explanation about how the different game modes: For the upper lcd screen: An random number between 1 and 13 is generated every time the reaction time game is completed(by pressing middle button when x shows on lcd), it also gets an random number between 150ms and 500ms that determines how fast the numbers will be printed on the lcd screen. This effects your time to react and leaves it at somewhere between 450ms and 1.5s. Led minigame: a number between 1 and 2 is picked randomly, this decides what led is going to light up, it then determines if the potentiometer potentiometer is pointed at the lit up LED(i am a bit unsure if this works perfectly on pc). i determined the correct position for potentiometer my pointing it at at the leds to see what angles would work for minimum and max, this is also why i am a bit unsure as to if this works fully on pc since i dont know if the potentiometer outputs the same angle, i haven’t experienced anything indicating that this is doesn’t work on pc though during my playtesting. If you want to try my game in your web browser click the demo link and click the big green button in the top right that says start the simulation when you hover over it. And when you fail to multitask press the square in the top right of the window to stop the simulation (very important do not pause it, you have to stop it!). The controls for the minigame are as follows: 1 = leftmost button, when an X appears on the lcd screen press the middle button to complete and restart it, if the bottom half of the lcd say down press the left most button and if the lcd says up press the rightmost button(combine those inputs if up then down and down then up) and lastly for the red led lights just point the potentiometer towards it. If you find the game very hard to play on pc it is because this wasn’t designed for it, i have fully built it using my own Arduino uno and parts that come with the Arduino starter kit and verified that it works irl. Cant write more, text limit.", "repo": "https://github.com/Onlysubhenrik/multi-tasking-minigame-on-arduino-minigame-on-Arduino", "demo": "https://app.cirkitdesigner.com/project/d06255aa-6f98-41b6-9677-e4eba724c674"}]...
|
[{"post_id": 25030, "ts": "202 [{"post_id": 25030, "ts": "2026-07-08T23:30:58Z", "hours": 2.9031, "text": "Posting this devlog right before ship. The news things i have done is i scrapped the flight minigame entirely, I have reworked the reaction time mingame that plays on the upper part of the lcd. The minigame now has more variety and it is now random when the time window to press the middle button appears and random how long it lasts. (another cat picture since i have nothing else to show a picture of)"}, {"post_id": 23856, "ts": "2026-07-07T01:25:23Z", "hours": 2.32, "text": "HELLO PEOPLE, as i promised about 3 hours ago (sleep is something you can do after you have shipped) I have ported my Arduino project into web, it is now fully functional and you can try it. before you try here are the controls: 1 = leftbutton 2 = rightbutton Up = right You press the middle button when there is an x showing on the lcd screen Down = left When the left led is lit up point the potentiometer at it, and when the right led is lit up turn the potentiometer to face that. (no cat photo since i have something to show off) (btw flight is not yet implemented) (btw btw flight to start and restart the Arduino press the square and green button in the up right corner, in order to properly reset it you have to stop the simulation not pause it) As for the coding i have done i am still rewriting the up and down feature. LINK: https://app.cirkitdesigner.com/project/d06255aa-6f98-41b6-9677-e4eba724c674"}, {"post_id": 23775, "ts": "2026-07-06T22:13:04Z", "hours": 2.5831, "text": "Decided that i am going to be rewriting all the code involving the up down minigame, i will also be changing this project from hardware to software soon so in hopes of getting an ISS message in time before they sell out or the time expires. Due to me changing it from hardware to software not very much will change other than me providing a working build each devlog after this one that YOU can play by using an Arduino emulator link. I will also keep updating my GitHub when major changes are done. . (since nothing changed on the breadboard layout and nothing will change anytime in the future i will be placing a cat photo of one my cats in its place) (this photo is of Jupiter)"}, {"post_id": 21446, "ts": "2026-07-03T12:22:53Z", "hours": 4.0481, "text": "This is the biggest change i have made so far, the new things in the game are as follows: the 2 new buttons serve a purpose, new minigame where it says up, down, down then up or up then down, this minigame uses the 2 new buttons, added a new start menu where it prompts you to right button for multi and left button for a new minigame that will only be using the LCD screen, i changed the led color from green to red, and the last major change is that i made is removing useless old code. , My planned changes are making a new minigame using the lcd as the main part, and looking into if i can get the lcd backlight to work."}, {"post_id": 20423, "ts": "2026-07-02T00:47:56Z", "hours": 1.8517, "text": "Removed every bug i encountered in about 10 minutes of playtime. Removed the “good action” led because i see it as unnecessary when more minigames are added, removed unneeded parts of the code and rewrote some of it to make it less confusing. I also made and coded in 2 new buttons to be used in the future. the possibilities you have when 3 side by side buttons are available is endless. I also made the parts that decide how little time you have in the reaction time game random so that they vary from half a second to 2/3 of a second per character. Means that your time window to react will fluctuate between 1.5 and 1 second. I also made the time it takes to fail the turn minigame vary from 3-2 seconds. , my vision for the 2 new buttons so far is that they will be clicked when a prompt shows up on the bottom part of the lcd (for example left, right or a combination of the 2) might even remove the old reaction time minigame entirely and replace it with something that uses all 3 buttons. (look at picture for current breadboard layout) (i wont post code due to there being very minor changes) (open picture in its own tab to view it fully)"}, {"post_id": 20109, "ts": "2026-07-01T17:11:18Z", "hours": 3.2031, "text": "Now i have finalized the 2 main multitasking games, one of them has an LCD screen that displays an time window of 1.5 seconds. in that timeframe you have to click a button to reset the timer to 8 seconds. so for 1.5 out of those 8 seconds you have to click the button. The other feature that i made is an potentiometer that grabs a random direction (left or right) and you have 3 seconds to turn the potentiometer to the correct side. you can see the correct side by looking at the 2 leds close to it (you can guess what sides they are on). The features i intent to add now are a second minigame on the screen (utilizing the lower part of the screen and 1 or more buttons) as for what i am going to do with that minigame in terms of functionality i have not yet decided. (picture has to be opened in its own tab for it to properly show)"}, {"post_id": 19567, "ts": "2026-06-30T21:59:06Z", "hours": 4.8067, "text": "The main feature that i will use for my Multitasking game is complete, the LCD screen that displays if you loose and that has a reaction time feature and an LED that lights green once you have completed a correct action. the game revolves around you having to click an button within a 3 second timeframe, if you fail to do then the entire Arduino freezes and the LCD displays a message about how you lost and that you must restart your Arduino to reset the minigame. The way that i am making this work is by using lots of integers. an example from the code is this: int lcdx = 0; if (digitalRead(switchPin) == HIGH){ if(lcdx >=14 && lcdx <= 16){ good++; lcd.clear(); digitalWrite(goodled, HIGH); delay(1000); digitalWrite(goodled, LOW); lcdx = 0; } This is how i register if the button was pressed within the timeframe, if it was pressed within the timeframe the “goodled” lights up and the minigame pauses for a second. My insiration for this project is the multitasking deivces you have to use to get your ppl (private pilots lisence) (picture is a pilot Multitasking test device)"}, {"post_id": 18793, "ts": "2026-06-30T00:27:19Z", "hours": 0.9042, "text": "I wanted to learn how an tilt sensor works and how to practically apply it to code since i was thinking about using it for my multitasking game. when i coded up the tilt sensor based digital hourglass i discovered that the tilt sensor legs are way to short to fit properly into the socket. after discovering this i thought i would still post a develog since i spent about an hours doing this. i would say that i generally advanced my coding knowledge with this"}, {"post_id": 18683, "ts": "2026-06-29T21:26:21Z", "hours": 0.5981, "text": "just Learned the second thing needed for this project, i learned how to make a buzzer and subsequently use buttons to turn it into an keyboard instrument of sorts. here is the code: int notes[] = {262, 294, 330, 349};void setup(){ Serial.begin(9600);}void loop(){ int keyVal = analogRead(A0); Serial.println(keyVal); if (keyVal == 1023){ tone(8, notes[0]); } else if(keyVal >= 990 && keyVal <=1010){ tone(8, notes[1]); } else if (keyVal >=505 && keyVal <= 1010){ tone(8, notes[2]); } else if (keyVal >= 5 && keyVal <= 10){ tone(8, notes[3]); } else { noTone(8); }} image is still wrongly cropped, to see the whole creation open the image in its own tab"}, {"post_id": 18626, "ts": "2026-06-29T20:27:57Z", "hours": 1.0003, "text": "The first of the many Arduino skills i will have to learn. I now understand how to control an potentiometer and an servo motor. The things that i still have to learn are: How to control an lcd, how to control an tilt sensor, how to make it so that your lcd has a high score and timer on it and much more. Here is the code i am using to controll the servo via potentiometer #include <Servo.h>Servo myServo;int const potPin = A0;int potVal;int angle;void setup(){ myServo.attach(9); Serial.begin(9600);}void loop(){ potVal = analogRead(potPin); Serial.print(“potVal: “); Serial.print(potVal); angle = map(potVal, 0, 1023, 0, 179); myServo.write(angle); delay(15);} image is getting cropped incorectly"}]...
|
Title: MULTI by @Henrik_Eriksen | Stardance
Devlo Title: MULTI by @Henrik_Eriksen | Stardance
Devlogs:
The first of the many Arduino skills i will have to learn. I now understand how to control an potentiometer and an servo motor. The things that i still have to learn are: How to control an lcd, how to control an tilt sensor, how to make it so that your lcd has a high score and timer on it and much more. Here is the code i am using to controll the servo via potentiometer #include <Servo.h>Servo myServo;int const potPin = A0;int potVal;int angle;void setup(){ myServo.attach(9); Serial.begin(9600);}void loop(){ potVal = analogRead(potPin); Serial.print(“potVal: “); Serial.print(potVal); angle = map(potVal, 0, 1023, 0, 179); myServo.write(angle); delay(15);} image is getting cropped incorectly
just Learned the second thing needed for this project, i learned how to make a buzzer and subsequently use buttons to turn it into an keyboard instrument of sorts. here is the code: int notes[] = {262, 294, 330, 349};void setup(){ Serial.begin(9600);}void loop(){ int keyVal = analogRead(A0); Serial.println(keyVal); if (keyVal == 1023){ tone(8, notes[0]); } else if(keyVal >= 990 && keyVal <=1010){ tone(8, notes[1]); } else if (keyVal >=505 && keyVal <= 1010){ tone(8, notes[2]); } else if (keyVal >= 5 && keyVal <= 10){ tone(8, notes[3]); } else { noTone(8); }} image is still wrongly cropped, to see the whole creation open the image in its own tab
I wanted to learn how an tilt sensor works and how to practically apply it to code since i was thinking about using it for my multitasking game. when i coded up the tilt sensor based digital hourglass i discovered that the tilt sensor legs are way to short to fit properly into the socket. after discovering this i thought i would still post a develog since i spent about an hours doing this. i would say that i generally advanced my coding knowledge with this
The main feature that i will use for my Multitasking game is complete, the LCD screen that displays if you loose and that has a reaction time feature and an LED that lights green once you have completed a correct action. the game revolves around you having to click an button within a 3 second timeframe, if you fail to do then the entire Arduino freezes and the LCD displays a message about how you lost and that you must restart your Arduino to reset the minigame. The way that i am making this work is by using lots of integers. an example from the code is this: int lcdx = 0; if (digitalRead(switchPin) == HIGH){ if(lcdx >=14 && lcdx <= 16){ good++; lcd.clear(); digitalWrite(goodled, HIGH); delay(1000); digitalWrite(goodled, LOW); lcdx = 0; } This is how i register if the button was pressed within the timeframe, if it was pressed within the timeframe the “goodled” lights up and the minigame pauses for a second. My insiration for this project is the multitasking deivces you have to use to get your ppl (private pilots lisence) (picture is a pilot Multitasking test device)
Now i have finalized the 2 main multitasking games, one of them has an LCD screen that displays an time window of 1.5 seconds. in that timeframe you have to click a button to reset the timer to 8 seconds. so for 1.5 out of those 8 seconds you have to click the button. The other feature that i made is an potentiometer that grabs a random direction (left or right) and you have 3 seconds to turn the potentiometer to the correct side. you can see the correct side by looking at the 2 leds close to it (you can guess what sides they are on). The features i intent to add now are a second minigame on the screen (utilizing the lower part of the screen and 1 or more buttons) as for what i am going to do with that minigame in terms of functionality i have not yet decided. (picture has to be opened in its own tab for it to properly show)
Removed every bug i encountered in about 10 minutes of playtime. Removed the “good action” led because i see it as unnecessary when more minigames are added, removed unneeded parts of the code and rewrote some of it to make it less confusing. I also made and coded in 2 new buttons to be used in the future. the possibilities you have when 3 side by side buttons are available is endless. I also made the parts that decide how little time you have in the reaction time game random so that they vary from half a second to 2/3 of a second per character. Means that your time window to react will fluctuate between 1.5 and 1 second. I also made the time it takes to fail the turn minigame vary from 3-2 seconds. , my vision for the 2 new buttons so far is that they will be clicked when a prompt shows up on the bottom part of the lcd (for example left, right or a combination of the 2) might even remove the old reaction time minigame entirely and replace it with something that uses all 3 buttons. (look at picture for current breadboard layout) (i wont post code due to there being very minor changes) (open picture in its own tab to view it fully)
This is the biggest change i have made so far, the new things in the game are as follows: the 2 new buttons serve a purpose, new minigame where it says up, down, down then up or up then down, this minigame uses the 2 new buttons, added a new start menu where it prompts you to right button for multi and left button for a new minigame that will only be using the LCD screen, i changed the led color from green to red, and the last major change is that i made is removing useless old code. , My planned changes are making a new minigame using the lcd as the main part, and looking into if i can get the lcd backlight to work.
Decided that i am going to be rewriting all the code involving the up down minigame, i will also be changing this project from hardware to software soon so in hopes of getting an ISS message in time before they sell out or the time expires. Due to me changing it from hardware to software not very much will change other than me providing a working build each devlog after this one that YOU can play by using an Arduino emulator link. I will also keep updating my GitHub when major changes are done. . (since nothing changed on the breadboard layout and nothing will change anytime in the future i will be placing a cat photo of one my cats in its place) (this photo is of Jupiter)
HELLO PEOPLE, as i promised about 3 hours ago (sleep is something you can do after you have shipped) I have ported my Arduino project into web, it is now fully functional and you can try it. before you try here are the controls: 1 = leftbutton 2 = rightbutton Up = right You press the middle button when there is an x showing on the lcd screen Down = left When the left led is lit up point the potentiometer at it, and when the right led is lit up turn the potentiometer to face that. (no cat photo since i have something to show off) (btw flight is not yet implemented) (btw btw flight to start and restart the Arduino press the square and green button in the up right corner, in order to properly reset it you have to stop the simulation not pause it) As for the coding i have done i am still rewriting the up and down feature. LINK: https://app.cirkitdesigner.com/project/d06255aa-6f98-41b6-9677-e4eba724c674
Posting this devlog right before ship. The news things i have done is i scrapped the flight minigame entirely, I have reworked the reaction time mingame that plays on the upper part of the lcd. The minigame now has more variety and it is now random when the time window to press the middle button appears and random how long it lasts. (another cat picture since i have nothing else to show a picture of)
Ships:
Over the span of about 23 hours i have made a Arduino multi tasking game that is based very loosely upon the contraption you see in the picture to the left, the Schuhfried Universal Response panel. the panel is used when taking different tests to get your private/commercial pilots license. The gameplay loop revolves around multitasking 3 different things at once, they are as follows: ensure that you always press middle button when an x shows up on the middle screen, ensure that the potentiometer is always pointed at the lit up led(its the one to the left in the second picture) and lasty press the corresponding button combo when up and down are shown on the lower half of the lcd, you do this by pressing left and right buttons. This project has been a major challenge to me since i barely knew how to code (and arguably still dont know how write good code) when i started this project. The reason for me shipping this as software and not hardware as originally intended is since i want to get the ISS question in the shop. The question timeline would have expired before hardware starts to get reviewed. I am highly aware that my code might be very inefficient but i have been coding and learning to for about 20 days. I will now try to explain my code. The first part of the before setup is just labeling booleans and integers that will be used later(i am using integers to keep track of many things that i could use booleans for but i wasn’t aware of booleans until about 1/3 of the code was already written and i didn’t want to rewrite everything already using integers), the part of the code that i would say i am most proud of is is my fail system since it constantly works every time and i think the way i did it was a clever solution. For context the fail system works by clearing the LCD then printing YOU FAILED! Reset Arduino, the way that it ensures the Arduino is reset is by setting a delay on the code that lasts indefinitely until the Arduino is reset. A bit explanation about how the different game modes: For the upper lcd screen: An random number between 1 and 13 is generated every time the reaction time game is completed(by pressing middle button when x shows on lcd), it also gets an random number between 150ms and 500ms that determines how fast the numbers will be printed on the lcd screen. This effects your time to react and leaves it at somewhere between 450ms and 1.5s. Led minigame: a number between 1 and 2 is picked randomly, this decides what led is going to light up, it then determines if the potentiometer potentiometer is pointed at the lit up LED(i am a bit unsure if this works perfectly on pc). i determined the correct position for potentiometer my pointing it at at the leds to see what angles would work for minimum and max, this is also why i am a bit unsure as to if this works fully on pc since i dont know if the potentiometer outputs the same angle, i haven’t experienced anything indicating that this is doesn’t work on pc though during my playtesting. If you want to try my game in your web browser click the demo link and click the big green button in the top right that says start the simulation when you hover over it. And when you fail to multitask press the square in the top right of the window to stop the simulation (very important do not pause it, you have to stop it!). The controls for the minigame are as follows: 1 = leftmost button, when an X appears on the lcd screen press the middle button to complete and restart it, if the bottom half of the lcd say down press the left most button and if the lcd says up press the rightmost button(combine those inputs if up then down and down then up) and lastly for the red led lights just point the potentiometer towards it. If you find the game very hard to play on pc it is because this wasn’t designed for it, i have fully built it using my own Arduino uno and parts that come with the Arduino starter kit and verified that it works irl. Cant write more, text limit....
|
1792968849.592234
|
1793055249.592234
|
|
41456
|
Discoverly by @cesarmoal11 | Stardance
|
cesarmoal11
|
1
|
43.34
|
385
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-07T09:08:49Z", "hours": 39.0, "multiplier": 9.86, "payout": 385, "blessing": "neutral", "text": "I finished my web (at the moment). I’ll add new stuff soon, but right now it is a 100% real web in which people can enter and entertain theirselves (and learn a little bit). I’m so proud of it, it’s my first “real web”.", "repo": "https://github.com/cesar-molinaa/Discoverly", "demo": "https://disc0verlyy.netlify.app/"}]...
|
[{"post_id": 57343, "ts": "202 [{"post_id": 57343, "ts": "2026-08-29T13:51:40Z", "hours": 0.3339, "text": "I fixed the categories section. Right now you can see live the exact number of post in each category card. Also you can go to explore posts of the category that you prefer by doing click on the category card."}, {"post_id": 44079, "ts": "2026-08-09T16:30:26Z", "hours": 4.0081, "text": "I was adding some new functionalities to the web. Now, you can do click on the post user for seeing their profile page with the user information. Also I improve some responsive css code to do the web design better for phones."}, {"post_id": 42503, "ts": "2026-08-07T09:06:46Z", "hours": 2.2006, "text": "I was doing some changes since I upload the web to github and netlify. I do a few things (like changing sizes and a few categories)."}, {"post_id": 41979, "ts": "2026-08-06T14:49:13Z", "hours": 7.0136, "text": "I created a user-system, so now people can sign up on Discoverly thanks to firebase (which is a database). Also the user can log in with their account if they have created before. Also ther’s a page for the user settings, like name, photo, biography and his posts. The user can modify it whenever he wants. Also I implement the likes, so users can give likes to the posts. Finally, there is a section in the main page in which there are the posts with the more likes."}, {"post_id": 40999, "ts": "2026-08-04T21:42:06Z", "hours": 9.5042, "text": "I create a full-functional page for the posts. I improve the design of the upper section which includes the title, filters and navbar with some animations. Now, thanks to a lot of hard work the filters are 100% functional, so you can use them to look for your favourite posts. They can filter by category, date and also change the order. The navbar is functional too so now you can search a word and it will show you posts which includes it. I’m so proud of this because it’s my first big proyect using java script and it’s going so well."}, {"post_id": 39391, "ts": "2026-08-02T10:32:31Z", "hours": 4.5814, "text": "I made the web responsive, so now it doesnt’t matter if the user opens the web on a phone, ipad or laptop, because it’ll look nice. It’s my first time doing a responsive design and I’m so proud of how it looks. I also start improving the posts section, creating an upper section inside it with some filters, search bar and the title. Now I’m gonna do this section useful by making the filters and search bar real."}, {"post_id": 38825, "ts": "2026-08-01T12:01:30Z", "hours": 3.8342, "text": "I did a lot of different things (not as important as the previous but also important). 1. I change the place where the posts appear after they have been created. Now they appear on a different html document where you can go by using the menu. 2. I improve the search bar so the user can search on the posts section and find the post they want. I added some animations and css to make this section better. 3. I added a section which includes more information about Discoverly. It’s located after the categories section, the user can go there by doing click on the button of the beginning. I divided this section in three cards: Que es Discoverly, Su objetivo y Aprender de otra forma. 4. I create the footer at the end of the website, which includes some useful links (not all of them work yet). 5. I do some css changes to make the website prettier (like gradients and box-shadows)."}, {"post_id": 38195, "ts": "2026-07-31T14:12:03Z", "hours": 1.8511, "text": "I connected the button of the form to a section which includes posts. Now, when the user fills the form and clicks on the button, the web leads him to home. Now the user is able to go to the posts section and check all the posts which were created by him or by other users. Also if the user clicks on a post he will be able to see it better on a new page, with a bigger post and an exit button to return home."}, {"post_id": 38094, "ts": "2026-07-31T09:45:54Z", "hours": 4.3411, "text": "I spent a lot of time with this section of Discoverly, but I think it’s one of the most important parts and I’m so glad with the result. It consists on a formulary whose objective is to create a post by filling information gaps. The design is the same that the rest of the web, I used the same colors and hover animations more less. I’m so proud of the most visual part of the section, because while your writing the post, you can see at the same time the result which is going to be the other people. Also there are character-counters for some gaps, they also change its color depending on the number of characters. Finally, there is an error message at the end of the formulary, which indicates the user ti fill all the compulsory gaps the post needs. I’mm really proud of this section, it’s my first formulary and I love the connection between it and the post preview. I hope you’ll like it like I do."}, {"post_id": 37621, "ts": "2026-07-30T14:13:59Z", "hours": 1.1339, "text": "I created a section whose goal is to explain the user how to create a post. It includes a title, a brief sentence, an example post, the steps of the creation of a post, the button which lead to the page where posts are created and finally and eslogan."}, {"post_id": 37520, "ts": "2026-07-30T10:24:11Z", "hours": 0.9483, "text": "I improve the posts cards (with some help of chati) giving them a modern and professional appearance. In the future, the user will be able to change a template to write their discoveries, add images, the category… Also my idea is to allow people to give likes and post comments on the posts."}, {"post_id": 37306, "ts": "2026-07-29T22:26:07Z", "hours": 0.545, "text": "I just do the featured posts section with a few posts. These are temporal, they are only the structure for the future java script-created posts."}, {"post_id": 37286, "ts": "2026-07-29T21:46:47Z", "hours": 0.7869, "text": "I created a section for the different categories of posts. I used a grid for organize these categories (it could be more in the future). Firstly, I do it each one with a different colorful background, but I think it looks better with only one border that indicates the color of the category. I also add some hover to the cards."}, {"post_id": 37266, "ts": "2026-07-29T20:48:53Z", "hours": 1.0547, "text": "I did the web cover, which includes the title of the site, the eslogan, a brief description in spanish (because I’m spanish) of the web functionality and also a button which in the future will guide the user to another place. I’m using a palette of a few colors for now. I create a section with a search bar where the user will be able to search for different articles."}, {"post_id": 36957, "ts": "2026-07-29T11:31:24Z", "hours": 1.2283, "text": "I started the web by creating the main menu. It takes me a time to create the logo, name and brand intention: Discoverly is a site where people can learn new random things and also share their newest own discoveries. It will be organized by sections depend on the category of the knowledge. Every day people will be able to find new articles which have been created by other users. People will be able to upload articles to the blog with their recent discoveries about VERY RANDOM STUFF. With time and effort it will be a lot of articles and categories which people will be able to check and entertain themselves by reading random facts discovered by other people."}]...
|
Title: Discoverly by @cesarmoal11 | Stardance
Dev Title: Discoverly by @cesarmoal11 | Stardance
Devlogs:
I started the web by creating the main menu. It takes me a time to create the logo, name and brand intention: Discoverly is a site where people can learn new random things and also share their newest own discoveries. It will be organized by sections depend on the category of the knowledge. Every day people will be able to find new articles which have been created by other users. People will be able to upload articles to the blog with their recent discoveries about VERY RANDOM STUFF. With time and effort it will be a lot of articles and categories which people will be able to check and entertain themselves by reading random facts discovered by other people.
I did the web cover, which includes the title of the site, the eslogan, a brief description in spanish (because I’m spanish) of the web functionality and also a button which in the future will guide the user to another place. I’m using a palette of a few colors for now. I create a section with a search bar where the user will be able to search for different articles.
I created a section for the different categories of posts. I used a grid for organize these categories (it could be more in the future). Firstly, I do it each one with a different colorful background, but I think it looks better with only one border that indicates the color of the category. I also add some hover to the cards.
I just do the featured posts section with a few posts. These are temporal, they are only the structure for the future java script-created posts.
I improve the posts cards (with some help of chati) giving them a modern and professional appearance. In the future, the user will be able to change a template to write their discoveries, add images, the category… Also my idea is to allow people to give likes and post comments on the posts.
I created a section whose goal is to explain the user how to create a post. It includes a title, a brief sentence, an example post, the steps of the creation of a post, the button which lead to the page where posts are created and finally and eslogan.
I spent a lot of time with this section of Discoverly, but I think it’s one of the most important parts and I’m so glad with the result. It consists on a formulary whose objective is to create a post by filling information gaps. The design is the same that the rest of the web, I used the same colors and hover animations more less. I’m so proud of the most visual part of the section, because while your writing the post, you can see at the same time the result which is going to be the other people. Also there are character-counters for some gaps, they also change its color depending on the number of characters. Finally, there is an error message at the end of the formulary, which indicates the user ti fill all the compulsory gaps the post needs. I’mm really proud of this section, it’s my first formulary and I love the connection between it and the post preview. I hope you’ll like it like I do.
I connected the button of the form to a section which includes posts. Now, when the user fills the form and clicks on the button, the web leads him to home. Now the user is able to go to the posts section and check all the posts which were created by him or by other users. Also if the user clicks on a post he will be able to see it better on a new page, with a bigger post and an exit button to return home.
I did a lot of different things (not as important as the previous but also important). 1. I change the place where the posts appear after they have been created. Now they appear on a different html document where you can go by using the menu. 2. I improve the search bar so the user can search on the posts section and find the post they want. I added some animations and css to make this section better. 3. I added a section which includes more information about Discoverly. It’s located after the categories section, the user can go there by doing click on the button of the beginning. I divided this section in three cards: Que es Discoverly, Su objetivo y Aprender de otra forma. 4. I create the footer at the end of the website, which includes some useful links (not all of them work yet). 5. I do some css changes to make the website prettier (like gradients and box-shadows).
I made the web responsive, so now it doesnt’t matter if the user opens the web on a phone, ipad or laptop, because it’ll look nice. It’s my first time doing a responsive design and I’m so proud of how it looks. I also start improving the posts section, creating an upper section inside it with some filters, search bar and the title. Now I’m gonna do this section useful by making the filters and search bar real.
I create a full-functional page for the posts. I improve the design of the upper section which includes the title, filters and navbar with some animations. Now, thanks to a lot of hard work the filters are 100% functional, so you can use them to look for your favourite posts. They can filter by category, date and also change the order. The navbar is functional too so now you can search a word and it will show you posts which includes it. I’m so proud of this because it’s my first big proyect using java script and it’s going so well.
I created a user-system, so now people can sign up on Discoverly thanks to firebase (which is a database). Also the user can log in with their account if they have created before. Also ther’s a page for the user settings, like name, photo, biography and his posts. The user can modify it whenever he wants. Also I implement the likes, so users can give likes to the posts. Finally, there is a section in the main page in which there are the posts with the more likes.
I was doing some changes since I upload the web to github and netlify. I do a few things (like changing sizes and a few categories).
I was adding some new functionalities to the web. Now, you can do click on the post user for seeing their profile page with the user information. Also I improve some responsive css code to do the web design better for phones.
I fixed the categories section. Right now you can see live the exact number of post in each category card. Also you can go to explore posts of the category that you prefer by doing click on the category card.
Ships:
I finished my web (at the moment). I’ll add new stuff soon, but right now it is a 100% real web in which people can enter and entertain theirselves (and learn a little bit). I’m so proud of it, it’s my first “real web”....
|
1792990394.7465334
|
1793076794.7465334
|
|
52996
|
SatelliteTracker by @wal | Stardance
|
wal
|
1
|
25.0
|
384
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-21T19:32:53Z", "hours": 25.0, "multiplier": 15.61, "payout": 384, "blessing": "neutral", "text": "Hi everyone! I made a project called “SatelliteTracker”. So this is a cool app that tracks satellites real time built on JS and Globe.jl The project shows different satellites (not all of them, because otherwise there would be around 10 000 of them), and also can show you visible satellites based on the location you picked. The most challenging part was making it lol. The whole purpose of this project for me was to learn JS, which i for shure did, but anyways it was soo overwhelming. I am really proud of how it turned out, it looks super good, and i am proud that i commited with my idea, because now i get to show everyone this project to get a reaction like: “Yoo thats so cool!”. Apart from the jokes, i am really proud to have learned a new language and to have come out of my comfort zone. Things you should know-Starlink satellites dont always load! And also i made warnings in the console so you could see what works and what doesnt. Also, please dont refresh the page too often, otherwise celestrack will stop accepting yo requests…and you will have a looser window, you dont want that! Thank you everyone, enjoy!", "repo": "https://github.com/walterm4lon-coder/SatelliteTracker", "demo": "https://walterm4lon-coder.github.io/SatelliteTracker/"}]...
|
[{"post_id": 71899, "ts": "202 [{"post_id": 71899, "ts": "2026-09-21T18:48:20Z", "hours": 3.9111, "text": "I IMAGINED, I PROGRAMMED, I CONQUERED. The Satellite tracker might just be done! Changes!! 1. VISUALS holy hell it was harder than i expected but i made it. so i added stars, cool buttons, cool font, and allat. I am really proud of this work, because it looks really cool now 2. Loading Screen now this one is so cool, i really like how it turned out and it was pretty easy to make it. But i was honestly so tired at that point that i just wrote the first stuff that came into my mind. but i still think it turned out cool. 3. A lot of warnings! Now, for debugging, and just for sole purpose of a user, i added warnings, so when celestrack is not fetching because of extended use or its own problems (like with starlink sometimes) it just warns u and skips it. If you have reached your IP request limit to celestrack, then you will just have a longer running of loading screen and a message that you can see on the photo. (i have it because i have refreshed the page too much) AI Declaration Now in this devlog i want to also sum up how i used ai. So the sole purpose of his project was for me to learn JS, and this project was really hard for me, so i used AI of course. Mainly i used it so it gave me the general idea of the code that i should have for my ideas, and then i changed it and shaped it so that it turned out the way it did now. Also it helped me with complex tasks, like visible satellites and all the complex stuff, and, of course, debugging. But i still did it myself, and apart from doing this i was also doing a 12 hour course on JS by BroCode, shoutout to him btw! Final thoughts Well, this project was cool but waaaay harder than i expected, thats why i had to use ai. This will definitely help me in my further projects, and i am really proud of the final version. This taught me a lot, and i shure am happy to continue my journey as an engineer (i wanna be a hardware one, but for stardance its just way easier to star with software for me, so might as well learn programming too.). This is also my final project for stardance, and i am really happy. Thank you to everyone who supported me on this project, 100+ views consistently is crazy! See you somewhere in the world, the real world…"}, {"post_id": 66842, "ts": "2026-09-12T19:19:13Z", "hours": 8.8169, "text": "Stars, Satellites, and all the shiny things… Oh, wait, just satellites here.. anyways This devlog took sooo long, but now the only thing thats left is style. For now, progress: 1. All passes and Visible ones You can now see, which ones you can actually see, and which ones are blocked by earth shadow and allat. All passes ore just 0 degrees above the horizon, and visible ones are: above 10 degrees should be outside the earth shadow for us to see should be pretty dark outside should be from a group, that CelesTrack considers bright enough for us to see 2. Satellites already over u group basically the satellites that u can see already. Since those satellites are already in right time above the horizon, we dont have to wait for them, i just divide all satellites in 2 groups, where one is ones over u, and others are the ones we have to wait for, using arleadyup - true or false 3. When you click on a satellite, it actually shows it DAMNNNN I LOVE THIS FEATURE and also it shows a path. 4. 403 warning error Now, when the server answers with 403 error, for example starlink that i have some problems with, programm just skips it. 5.Camera lock in on both pages Self explainatory Plans The most important one: i might delete the starlink satellites. They just dont appear most of the time because of the server, so better drop tham so i didnt have any problems when i ship the project. Apart from that, i the only thing thats left is to add that cool style i wanted hell yeah. Thank you all if you made it so far! Sya on the next one"}, {"post_id": 62032, "ts": "2026-09-05T07:57:07Z", "hours": 6.7536, "text": "Look out of your window. Are those stars, or just satellites? Well, now you can find out, because i added the tracker page, that allows you to see, what satellites pass your selected location. I wont lie. JS is still pretty hard for me, so for this i had to use AI to help me out. But i still manage to understand almost everything from the code, so i hope its ok :) How the hell does it work? This was really tough for me to understand for the code, so for you i will make it easier. Basically, i have 2 libraries, my satellite.js, that is responsible, you guessed it, for satellites and all the info about it, and d3-geo, which is a 3d earth. When you click on the globe, the programm checks if its land or water, because i wanted it to only check satellites on land. How does it do it? Using world - atlas, that has all the coordinates of the land on the earth. If its land, then the programm for every satellite looks its way for every 30 seconds on a period of 24 hours and looks, when its going to be seen on your horizon (must be 40 degrees because of all the trees and buildings). It memorizes the first and last moment above the 40 degree mark on horizon and then it gives the results seen on the screenshot, sorted with time. Flaws, suggestions, ect. So for now it just spits out the info about sattelites, but maybe you have an idea how to make it more visual? i have no idea for now, because i dont want it to be just 60 red dots and everuthing around the point you selected. One idea i had is if you pick any sattelite of the given ones, it shows its path, but it sounds hard as hell, i may use ai again to help me… IF YOU HAVE ANY SUGGESTIONS ABOUT MY PROJECT PLEASE MENTION THEM! I WILL BE MORE THAN HAPPY TO IMPLIMENT IDEAS I LIKED!!! Of course, mentioning the suggestor. Plans Im planningin the end to add that old 90s nasa computer green/black vibe, i really am stoked to see how it will turn out. Thanks! Sorry for not devlogging earlier, was locked in on finishing the whole page"}, {"post_id": 56598, "ts": "2026-08-28T12:42:50Z", "hours": 3.9256, "text": "Wow thats hard. ##Okay, so for the progress i ve made: 1. I added A LOT of other sattelites. So now its not 1, but around 50 or 60, im not shure really. Now there are different kinds of them: -habitated ones, like ISS, Tiangong and so on, and i didnt make a limit on them because theyre the most valuable and recognisable. -CelesTrak, the brightest ones you can clearly see in the sky -GPS satellites -Starlink, but only around 20 -weather ones, like NOAA and GOES 2. every group that i named has their own color! In the future i want to make it so that you could pick only a specific group. 3. What line the satellite will follow. I believe i didnt do this on my previous devlog, anyway, i just show the line that it follows in the period of 90 mins. It goes +- 1 time around the globe, so you could see lol. yeah!"}, {"post_id": 52558, "ts": "2026-08-22T18:43:46Z", "hours": 1.2072, "text": "Started my Satellite Tracker! This project is basically tracking satellites and their orbits in real time. What have i done for now? ###1 . Connected satellite (ISS) info from celestrak. org This basically grabs the info, like name and coordinates 2. Created our planet 3. Added a dot for satellite 4. When you press on it, it spits out info about it, like speed and altitude. Im only learning JS, so i am currently using Claude to navigate me through the whole process and help me with the code, but i try to understand it very hard and i do learn!"}]...
|
Title: SatelliteTracker by @wal | Stardance
Devlo Title: SatelliteTracker by @wal | Stardance
Devlogs:
Started my Satellite Tracker! This project is basically tracking satellites and their orbits in real time. What have i done for now? ###1 . Connected satellite (ISS) info from celestrak. org This basically grabs the info, like name and coordinates 2. Created our planet 3. Added a dot for satellite 4. When you press on it, it spits out info about it, like speed and altitude. Im only learning JS, so i am currently using Claude to navigate me through the whole process and help me with the code, but i try to understand it very hard and i do learn!
Wow thats hard. ##Okay, so for the progress i ve made: 1. I added A LOT of other sattelites. So now its not 1, but around 50 or 60, im not shure really. Now there are different kinds of them: -habitated ones, like ISS, Tiangong and so on, and i didnt make a limit on them because theyre the most valuable and recognisable. -CelesTrak, the brightest ones you can clearly see in the sky -GPS satellites -Starlink, but only around 20 -weather ones, like NOAA and GOES 2. every group that i named has their own color! In the future i want to make it so that you could pick only a specific group. 3. What line the satellite will follow. I believe i didnt do this on my previous devlog, anyway, i just show the line that it follows in the period of 90 mins. It goes +- 1 time around the globe, so you could see lol. yeah!
Look out of your window. Are those stars, or just satellites? Well, now you can find out, because i added the tracker page, that allows you to see, what satellites pass your selected location. I wont lie. JS is still pretty hard for me, so for this i had to use AI to help me out. But i still manage to understand almost everything from the code, so i hope its ok :) How the hell does it work? This was really tough for me to understand for the code, so for you i will make it easier. Basically, i have 2 libraries, my satellite.js, that is responsible, you guessed it, for satellites and all the info about it, and d3-geo, which is a 3d earth. When you click on the globe, the programm checks if its land or water, because i wanted it to only check satellites on land. How does it do it? Using world - atlas, that has all the coordinates of the land on the earth. If its land, then the programm for every satellite looks its way for every 30 seconds on a period of 24 hours and looks, when its going to be seen on your horizon (must be 40 degrees because of all the trees and buildings). It memorizes the first and last moment above the 40 degree mark on horizon and then it gives the results seen on the screenshot, sorted with time. Flaws, suggestions, ect. So for now it just spits out the info about sattelites, but maybe you have an idea how to make it more visual? i have no idea for now, because i dont want it to be just 60 red dots and everuthing around the point you selected. One idea i had is if you pick any sattelite of the given ones, it shows its path, but it sounds hard as hell, i may use ai again to help me… IF YOU HAVE ANY SUGGESTIONS ABOUT MY PROJECT PLEASE MENTION THEM! I WILL BE MORE THAN HAPPY TO IMPLIMENT IDEAS I LIKED!!! Of course, mentioning the suggestor. Plans Im planningin the end to add that old 90s nasa computer green/black vibe, i really am stoked to see how it will turn out. Thanks! Sorry for not devlogging earlier, was locked in on finishing the whole page
Stars, Satellites, and all the shiny things… Oh, wait, just satellites here.. anyways This devlog took sooo long, but now the only thing thats left is style. For now, progress: 1. All passes and Visible ones You can now see, which ones you can actually see, and which ones are blocked by earth shadow and allat. All passes ore just 0 degrees above the horizon, and visible ones are: above 10 degrees should be outside the earth shadow for us to see should be pretty dark outside should be from a group, that CelesTrack considers bright enough for us to see 2. Satellites already over u group basically the satellites that u can see already. Since those satellites are already in right time above the horizon, we dont have to wait for them, i just divide all satellites in 2 groups, where one is ones over u, and others are the ones we have to wait for, using arleadyup - true or false 3. When you click on a satellite, it actually shows it DAMNNNN I LOVE THIS FEATURE and also it shows a path. 4. 403 warning error Now, when the server answers with 403 error, for example starlink that i have some problems with, programm just skips it. 5.Camera lock in on both pages Self explainatory Plans The most important one: i might delete the starlink satellites. They just dont appear most of the time because of the server, so better drop tham so i didnt have any problems when i ship the project. Apart from that, i the only thing thats left is to add that cool style i wanted hell yeah. Thank you all if you made it so far! Sya on the next one
I IMAGINED, I PROGRAMMED, I CONQUERED. The Satellite tracker might just be done! Changes!! 1. VISUALS holy hell it was harder than i expected but i made it. so i added stars, cool buttons, cool font, and allat. I am really proud of this work, because it looks really cool now 2. Loading Screen now this one is so cool, i really like how it turned out and it was pretty easy to make it. But i was honestly so tired at that point that i just wrote the first stuff that came into my mind. but i still think it turned out cool. 3. A lot of warnings! Now, for debugging, and just for sole purpose of a user, i added warnings, so when celestrack is not fetching because of extended use or its own problems (like with starlink sometimes) it just warns u and skips it. If you have reached your IP request limit to celestrack, then you will just have a longer running of loading screen and a message that you can see on the photo. (i have it because i have refreshed the page too much) AI Declaration Now in this devlog i want to also sum up how i used ai. So the sole purpose of his project was for me to learn JS, and this project was really hard for me, so i used AI of course. Mainly i used it so it gave me the general idea of the code that i should have for my ideas, and then i changed it and shaped it so that it turned out the way it did now. Also it helped me with complex tasks, like visible satellites and all the complex stuff, and, of course, debugging. But i still did it myself, and apart from doing this i was also doing a 12 hour course on JS by BroCode, shoutout to him btw! Final thoughts Well, this project was cool but waaaay harder than i expected, thats why i had to use ai. This will definitely help me in my further projects, and i am really proud of the final version. This taught me a lot, and i shure am happy to continue my journey as an engineer (i wanna be a hardware one, but for stardance its just way easier to star with software for me, so might as well learn programming too.). This is also my final project for stardance, and i am really happy. Thank you to everyone who supported me on this project, 100+ views consistently is crazy! See you somewhere in the world, the real world…
Ships:
Hi everyone! I made a project called “SatelliteTracker”. So this is a cool app that tracks satellites real time built on JS and Globe.jl The project shows different satellites (not all of them, because otherwise there would be around 10 000 of them), and also can show you visible satellites based on the location you picked. The most challenging part was making it lol. The whole purpose of this project for me was to learn JS, which i for shure did, but anyways it was soo overwhelming. I am really proud of how it turned out, it looks super good, and i am proud that i commited with my idea, because now i get to show everyone this project to get a reaction like: “Yoo thats so cool!”. Apart from the jokes, i am really proud to have learned a new language and to have come out of my comfort zone. Things you should know-Starlink satellites dont always load! And also i made warnings in the console so you could see what works and what doesnt. Also, please dont refresh the page too often, otherwise celestrack will stop accepting yo requests…and you will have a looser window, you dont want that! Thank you everyone, enjoy!...
|
1793005056.084455
|
1793091456.084455
|
|
43723
|
personal website by @pixi | Stardance
|
pixi
|
1
|
24.0
|
383
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-19T01:04:50Z", "hours": 24.0, "multiplier": 15.93, "payout": 383, "blessing": "neutral", "text": "I built my personal website in SvelteKit! This is a remake of my previous site which was made in plain HTML+CSS+JS. I made the switch because I wanted to add additional functionality to my site, such as listing my blog posts by reading my blog’s RSS feed. Components also make development SO much easier since this site uses so much repeating elements (windows, projects, artwork , etc.) This is my first Sveltekit project, so it was difficult learning the ropes at first. Even so, developing with Sveltekit is a lot more intuitive than Next.js, which I found to be a pain. This site was very much inspired by sites on neocities and nekoweb! I wanted to make a site that emulated that retro feel while still feeling practical to use!", "repo": "https://github.com/pxlinspace/personal-website", "demo": "https://pxlin.space"}]...
|
[{"post_id": 49916, "ts": "202 [{"post_id": 49916, "ts": "2026-08-18T21:40:03Z", "hours": 5.3514, "text": "Finalizing my personal website! windows are now decorated with an icon and gradient home page is now completely responsive for mobile screens made all windows evenly spaced apart added favicon spent 2 hrs animating an 88x31 button, and also added a buttons window added my site to the page webring!"}, {"post_id": 49260, "ts": "2026-08-17T23:07:34Z", "hours": 3.1861, "text": "Showing featured projects and my latest blog posts on my website’s homepage New featured projects window added a system that fetches the rss feed from my blog and uses fast-xml-parser to return data about my latest posts new blogpost component that displays the blog’s thumbnail, title, description, and date the gif of me now disappears when window shrinks the about me page is also now fully responsive with the cool cat changing size and moving to the next line"}, {"post_id": 47830, "ts": "2026-08-16T01:35:43Z", "hours": 3.6144, "text": "Adding an art page to my personal website created all of the art data (filename, description, alt desc) in a separate ts object new artwork component that processes that art data and displays it as a square the art page is responsive and will change to two columns when shrinked Whenever an artwork is clicked, it’ll show the art in full, as well as a description."}, {"post_id": 47393, "ts": "2026-08-15T09:43:02Z", "hours": 6.7469, "text": "Creating the projects page on my personal website! I’m starting to see why SvelteKit is so popular, development with it is so fun and intuitive! My name now moves in a wave and has a rainbow gradient! created the projects page There is now a ts file dedicated to importing lists of images from folders. I’m using it to import the icons and the project thumbnails. New project component for each project! Did my best to make it look elegant and concise. They’re inspired by Nicky Case’s project page"}, {"post_id": 42466, "ts": "2026-08-07T06:52:28Z", "hours": 5.1414, "text": "Rewriting my old personal website with SvelteKit! I’m was very happy with my personal website, but because it was written entirely with plain HTML CSS JS, modifying it became tedious. The code was bloated and messy, especially since there were so many repeating parts. I switched to SvelteKit to deal with this, and also because I plan on adding additional functionality to my website! Progress: Transcribed all of the old HTML CSS code into reusable Svelte components (the window divs, the sidebar links) The javascript canvas elements (the fish background and the little idiots that you can drag around) were also turned into Svelte components! Made a lot of modifications to the old about me page. Not only is it now a route, so the fish background is preserved, but it’s now a lot more stylized and some descriptions were added/changed."}]...
|
Title: personal website by @pixi | Stardance
Devl Title: personal website by @pixi | Stardance
Devlogs:
Rewriting my old personal website with SvelteKit! I’m was very happy with my personal website, but because it was written entirely with plain HTML CSS JS, modifying it became tedious. The code was bloated and messy, especially since there were so many repeating parts. I switched to SvelteKit to deal with this, and also because I plan on adding additional functionality to my website! Progress: Transcribed all of the old HTML CSS code into reusable Svelte components (the window divs, the sidebar links) The javascript canvas elements (the fish background and the little idiots that you can drag around) were also turned into Svelte components! Made a lot of modifications to the old about me page. Not only is it now a route, so the fish background is preserved, but it’s now a lot more stylized and some descriptions were added/changed.
Creating the projects page on my personal website! I’m starting to see why SvelteKit is so popular, development with it is so fun and intuitive! My name now moves in a wave and has a rainbow gradient! created the projects page There is now a ts file dedicated to importing lists of images from folders. I’m using it to import the icons and the project thumbnails. New project component for each project! Did my best to make it look elegant and concise. They’re inspired by Nicky Case’s project page
Adding an art page to my personal website created all of the art data (filename, description, alt desc) in a separate ts object new artwork component that processes that art data and displays it as a square the art page is responsive and will change to two columns when shrinked Whenever an artwork is clicked, it’ll show the art in full, as well as a description.
Showing featured projects and my latest blog posts on my website’s homepage New featured projects window added a system that fetches the rss feed from my blog and uses fast-xml-parser to return data about my latest posts new blogpost component that displays the blog’s thumbnail, title, description, and date the gif of me now disappears when window shrinks the about me page is also now fully responsive with the cool cat changing size and moving to the next line
Finalizing my personal website! windows are now decorated with an icon and gradient home page is now completely responsive for mobile screens made all windows evenly spaced apart added favicon spent 2 hrs animating an 88x31 button, and also added a buttons window added my site to the page webring!
Ships:
I built my personal website in SvelteKit! This is a remake of my previous site which was made in plain HTML+CSS+JS. I made the switch because I wanted to add additional functionality to my site, such as listing my blog posts by reading my blog’s RSS feed. Components also make development SO much easier since this site uses so much repeating elements (windows, projects, artwork , etc.) This is my first Sveltekit project, so it was difficult learning the ropes at first. Even so, developing with Sveltekit is a lot more intuitive than Next.js, which I found to be a pain. This site was very much inspired by sites on neocities and nekoweb! I wanted to make a site that emulated that retro feel while still feeling practical to use!...
|
1792972439.0545418
|
1793058839.0545418
|
|
49560
|
Synapse by @AbdurRehman | Stardance
|
AbdurRehman
|
1
|
20.0
|
383
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-20T18:37:24Z", "hours": 20.0, "multiplier": 19.0, "payout": 383, "blessing": "neutral", "text": "I made Synapse, an interactive visualization of neural activity in the human brain. It simulates a network of connected neurons and signals between them. My goal wasn’t to create an accurate model of the human brain but to create something visually compelling. The most challenging part was keeping everything performant since there are a lot of line segments, custom shaders, raycasting so that took a while. Also making the entire experience look good too took a lot of effort but I am proud of how everything looks in the end!", "repo": "https://github.com/RealAbdurRehman/synapse", "demo": "https://synapse-ruddy-delta.vercel.app"}]...
|
[{"post_id": 51190, "ts": "202 [{"post_id": 51190, "ts": "2026-08-20T18:08:31Z", "hours": 3.0606, "text": "Since the last dev log, I added an animated background and improved the lightning effects to make the scene look better. I also redesigned the loading screen and made the visualization configurable by adding a customization panel where users can control things like neuron count and connections per neuron. I also finished the README and added some final touches before deploying the app. Well, that finishes this project."}, {"post_id": 50837, "ts": "2026-08-20T08:45:33Z", "hours": 3.1586, "text": "I added a transparent brain model with fresnel effect that creates a cool looking rim around the edges of the brain. I also added a subtle animation to the effect making everything look more alive. I also added post processing effects like depth of field, vignette, chromatic aberration, and film grain. The depth of field also focuses on neurons when hovering over them making interaction feel much more immersive. Next, I’ll work on improving the background and camera and stuff."}, {"post_id": 50773, "ts": "2026-08-20T04:30:58Z", "hours": 3.1242, "text": "I added user interaction to the neurons. Neurons can now respond to the user when hovered and clicked which sends cool looking signals making everything interactive. I also added hover effects to highlight neurons under the cursor. Next, I’ll work on adding the final visuals."}, {"post_id": 49428, "ts": "2026-08-18T08:21:11Z", "hours": 2.4647, "text": "I added signal propagation between connected neurons. Signals now travel along the connections which propagate through nearby neurons with controlled probability and decay. I also tuned the settings so that they don’t become too dense or overwhelming. I also changed the neuron behavior so neurons react when they forward a signal, making the everything look like a real brain. Next, I’ll start adding user interaction."}, {"post_id": 49352, "ts": "2026-08-18T03:57:04Z", "hours": 2.5061, "text": "I added the connections between neurons. I first implemented simple straight line connections, then changed them into smooth curved paths. After that, I made the curves irregular, giving everything a more natural appearance rather than having every connection follow the same type of curve. Next, I’ll probably add interactivity of some sort."}, {"post_id": 48932, "ts": "2026-08-17T14:27:11Z", "hours": 2.1336, "text": "I continued improving the neural visualization by making the neurons look more visually impressive and natural. I added a glowing effect, different neuron sizes, and subtle pulsing so the neurons feel more alive instead of looking like static points. I also optimized the neuron system to improve how the neurons are generated and rendered making everything more efficient. Next, I’ll add other effects."}, {"post_id": 48807, "ts": "2026-08-17T10:47:25Z", "hours": 2.7111, "text": "I continued building the neural visualization by implementing a neuron system by randomly placing points in a box to generating neurons based on an actual brain model. I used a point in mesh approach basically using raycasting so neurons are only placed within the brain’s geometry. The current approach works, but generating the neurons is like really slow because each position has to be checked against the brain mesh, and if it isn’t inside, the system keeps trying until it finds a valid position. Next, I’ll improve the neuron placement by making it more efficient."}, {"post_id": 48149, "ts": "2026-08-16T13:21:31Z", "hours": 0.9894, "text": "Set up the project’s foundation by creating the Vite project with TypeScript, integrating Three.js and Tailwind CSS, and configuring the initial 3D scene with a camera, renderer, and orbit controls. I also created the Git repository for the project. and a short README for now. Next, I’ll start planning and building this app."}]...
|
Title: Synapse by @AbdurRehman | Stardance
Devlog Title: Synapse by @AbdurRehman | Stardance
Devlogs:
Set up the project’s foundation by creating the Vite project with TypeScript, integrating Three.js and Tailwind CSS, and configuring the initial 3D scene with a camera, renderer, and orbit controls. I also created the Git repository for the project. and a short README for now. Next, I’ll start planning and building this app.
I continued building the neural visualization by implementing a neuron system by randomly placing points in a box to generating neurons based on an actual brain model. I used a point in mesh approach basically using raycasting so neurons are only placed within the brain’s geometry. The current approach works, but generating the neurons is like really slow because each position has to be checked against the brain mesh, and if it isn’t inside, the system keeps trying until it finds a valid position. Next, I’ll improve the neuron placement by making it more efficient.
I continued improving the neural visualization by making the neurons look more visually impressive and natural. I added a glowing effect, different neuron sizes, and subtle pulsing so the neurons feel more alive instead of looking like static points. I also optimized the neuron system to improve how the neurons are generated and rendered making everything more efficient. Next, I’ll add other effects.
I added the connections between neurons. I first implemented simple straight line connections, then changed them into smooth curved paths. After that, I made the curves irregular, giving everything a more natural appearance rather than having every connection follow the same type of curve. Next, I’ll probably add interactivity of some sort.
I added signal propagation between connected neurons. Signals now travel along the connections which propagate through nearby neurons with controlled probability and decay. I also tuned the settings so that they don’t become too dense or overwhelming. I also changed the neuron behavior so neurons react when they forward a signal, making the everything look like a real brain. Next, I’ll start adding user interaction.
I added user interaction to the neurons. Neurons can now respond to the user when hovered and clicked which sends cool looking signals making everything interactive. I also added hover effects to highlight neurons under the cursor. Next, I’ll work on adding the final visuals.
I added a transparent brain model with fresnel effect that creates a cool looking rim around the edges of the brain. I also added a subtle animation to the effect making everything look more alive. I also added post processing effects like depth of field, vignette, chromatic aberration, and film grain. The depth of field also focuses on neurons when hovering over them making interaction feel much more immersive. Next, I’ll work on improving the background and camera and stuff.
Since the last dev log, I added an animated background and improved the lightning effects to make the scene look better. I also redesigned the loading screen and made the visualization configurable by adding a customization panel where users can control things like neuron count and connections per neuron. I also finished the README and added some final touches before deploying the app. Well, that finishes this project.
Ships:
I made Synapse, an interactive visualization of neural activity in the human brain. It simulates a network of connected neurons and signals between them. My goal wasn’t to create an accurate model of the human brain but to create something visually compelling. The most challenging part was keeping everything performant since there are a lot of line segments, custom shaders, raycasting so that took a while. Also making the entire experience look good too took a lot of effort but I am proud of how everything looks in the end!...
|
1792961506.3378031
|
1793047906.3378031
|
|
10853
|
RoFind by @KERNL | Stardance
|
KERNL
|
2
|
30.71
|
381
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-22T10:42:53Z", "hours": 15.0, "multiplier": 16.85, "payout": 260, "blessing": "neutral", "text": "I have finally implemented a basic login feature! From the past submission this version a slight change has been merged: Game Submission now requires logging in! This due to a problem where anyone can spam submission. Some elements/redundancy has been removed in the code and the pages This login feature has been the hardest part yet since i haven’t tried login techniques before. I almost gave up on the project but decided to pivot into a more simplified login form first then secure it later!", "repo": "https://github.com/rofind-main/RoFind-Site", "demo": "https://ro-find.vercel.app/"}, {"ship_num": 2, "ts": "2026-06-18T15:03:34Z", "hours": 14.0, "multiplier": 8.56, "payout": 121, "blessing": "neutral", "text": "RoFind is a community driven game discovery. RoFind features a game submission system so everyone can suggest any game they want everyone to experience too! Submitted games will be reviewed before making into the public list. Made with vanilla HTML, CSS, and JavaScript.", "repo": "https://github.com/rofind-main/RoFind-Site", "demo": "https://ro-find.vercel.app/"}]...
|
[{"post_id": 58208, "ts": "202 [{"post_id": 58208, "ts": "2026-08-30T15:49:43Z", "hours": 0.6919, "text": "8/30/26 - Game Card From a user review suggestion, I am now working on implementing the description when opening/clicking a game popup. Experimentation is my main process here since I am not a good UI designer and still looking for my style. Here is the preview of what is currently being developed. The idea here is that, in order to reduce screen clutter and make it a little more modern I have placed the game image behind the texts (inspired from other platforms, apps, designs). This should be done in just a week :). I can’t focus on this project i am addicted to osu!"}, {"post_id": 57221, "ts": "2026-08-29T10:07:28Z", "hours": 1.0158, "text": "8/29/26 - Submission fix & Future plans Thank you for all the generous comments about RoFind and the people who have tried my project! I have more plans to this project but in the mean time i will be focusing on life and taking a break a little bit from this project and expect it to be better in the future. I have fixed the ability to spam rate a game. I am also aware of other vulnerability on the project and i do have planned fixes and changes to it so stay tuned!"}, {"post_id": 52244, "ts": "2026-08-22T10:38:57Z", "hours": 3.0933, "text": "8/22/26 - User Profile I have finally found a way to implement user profiles by using OAuth (not really) but the idea is simple i only request the username and the user id and be saved locally since i don’t have much experience handling OAuth and security. I do plan on fixing that to be more secure and faster. !! Rating Collection & Comments will be implemented soon they are currently place holder to give you an idea what will be the user page hold !! Over all the plan is going okay(ish) in the roadmap. More features will be implemented!"}, {"post_id": 41255, "ts": "2026-08-05T11:08:33Z", "hours": 1.6106, "text": "8/6/26 - Login Feature I have been taking a break for a while (playing games) since this project is pretty heavy on my little brain to handle. Anyways, thanks to AI i have found a way how to handle Roblox OAuth and the login feature to be slowly worked on! I will also be reworking some things such us the popup system since i have multiple occurrences of popup tags on pages that totally sucks to find but also maintain when expanding the platform. I am currently aiming to earn a little more stardance currency (i forgot what its called) so i can buy a little more useful stuff :)"}, {"post_id": 20755, "ts": "2026-07-02T13:28:59Z", "hours": 1.4014, "text": "7/2/26 - Major Revamp I have decided to port the project into Next.js since scaling the project in the future is a pain. Further fixes will be pushed in the current Web version while also working on the revamped one!"}, {"post_id": 15618, "ts": "2026-06-25T12:23:10Z", "hours": 3.0064, "text": "6/25/26 - Users Login Update I have been having trouble on how user login would work where i wont really have much trouble maintaining the backend that much when the platform grows. Things i have been doing: Updating the homepage Updating the README credits User login OAuth and Redirects"}, {"post_id": 13648, "ts": "2026-06-22T12:20:25Z", "hours": 1.3939, "text": "6/22/26 - Submission Adjustments Thanks to @arma for finding a very confusing bug where the user would not see a “successful” message and if it failed. Things being currently worked on: User Login Backend and Frontend Performance Discord Webhook optimization (It is kinda just a spam at this point on my webhook)"}, {"post_id": 13057, "ts": "2026-06-21T11:09:55Z", "hours": 1.9503, "text": "6/21/26 - Adjustments I have made a few adjustments regarding the landing page and updated the information there. Also added some notes and updated some values on the demo page Review System Server Side IP and local based checking Custom popup added (from feedback thanks to thestarviper and Some1) (big thanks to people (especially reviewers) who commented on improving my project and my mistakes the goats)"}, {"post_id": 12962, "ts": "2026-06-21T06:46:15Z", "hours": 2.5372, "text": "6/21/26 - Review system It’s now working in the most barebone way possible Adjusted some styling to fit the overall aesthetic a little bit more More features will be worked on I am about to explode internally with this project"}, {"post_id": 12482, "ts": "2026-06-20T11:49:03Z", "hours": 0.4156, "text": "6/20/26 - Review system Got some start on review feature Still figuring out how ill take this one since i have never made/thought about a review thing Probably will take some days as i am quite busy at the moment:) Icons from LucideIcons"}, {"post_id": 11319, "ts": "2026-06-18T15:01:09Z", "hours": 1.1581, "text": "Web version is now functional (just missing searching and filtering and rate system) im working on it :)"}, {"post_id": 10588, "ts": "2026-06-17T12:25:50Z", "hours": 0.6583, "text": "I had some problems with the API im working on but ill get this done within a couple of days. my eyes got tired but i got the buttons working in the webhook"}, {"post_id": 10557, "ts": "2026-06-17T10:50:40Z", "hours": 3.415, "text": "Website Version - Submissions now implemented! Sent submissions is connected to a Discord webhook. I don’t know any other way to store the submitted tickets soooo i used Discord:)"}, {"post_id": 6234, "ts": "2026-06-10T14:12:26Z", "hours": 6.5742, "text": "Web Demo now available!"}, {"post_id": 4782, "ts": "2026-06-08T08:37:34Z", "hours": 2.0956, "text": "Changing card design"}, {"post_id": 4155, "ts": "2026-06-07T11:22:27Z", "hours": 0.3336, "text": "RoFind - Electron based Roblox community curated games list (Old Project)"}]...
|
Title: RoFind by @KERNL | Stardance
Devlogs:
RoFi Title: RoFind by @KERNL | Stardance
Devlogs:
RoFind - Electron based Roblox community curated games list (Old Project)
Changing card design
Web Demo now available!
Website Version - Submissions now implemented! Sent submissions is connected to a Discord webhook. I don’t know any other way to store the submitted tickets soooo i used Discord:)
I had some problems with the API im working on but ill get this done within a couple of days. my eyes got tired but i got the buttons working in the webhook
Web version is now functional (just missing searching and filtering and rate system) im working on it :)
6/20/26 - Review system Got some start on review feature Still figuring out how ill take this one since i have never made/thought about a review thing Probably will take some days as i am quite busy at the moment:) Icons from LucideIcons
6/21/26 - Review system It’s now working in the most barebone way possible Adjusted some styling to fit the overall aesthetic a little bit more More features will be worked on I am about to explode internally with this project
6/21/26 - Adjustments I have made a few adjustments regarding the landing page and updated the information there. Also added some notes and updated some values on the demo page Review System Server Side IP and local based checking Custom popup added (from feedback thanks to thestarviper and Some1) (big thanks to people (especially reviewers) who commented on improving my project and my mistakes the goats)
6/22/26 - Submission Adjustments Thanks to @arma for finding a very confusing bug where the user would not see a “successful” message and if it failed. Things being currently worked on: User Login Backend and Frontend Performance Discord Webhook optimization (It is kinda just a spam at this point on my webhook)
6/25/26 - Users Login Update I have been having trouble on how user login would work where i wont really have much trouble maintaining the backend that much when the platform grows. Things i have been doing: Updating the homepage Updating the README credits User login OAuth and Redirects
7/2/26 - Major Revamp I have decided to port the project into Next.js since scaling the project in the future is a pain. Further fixes will be pushed in the current Web version while also working on the revamped one!
8/6/26 - Login Feature I have been taking a break for a while (playing games) since this project is pretty heavy on my little brain to handle. Anyways, thanks to AI i have found a way how to handle Roblox OAuth and the login feature to be slowly worked on! I will also be reworking some things such us the popup system since i have multiple occurrences of popup tags on pages that totally sucks to find but also maintain when expanding the platform. I am currently aiming to earn a little more stardance currency (i forgot what its called) so i can buy a little more useful stuff :)
8/22/26 - User Profile I have finally found a way to implement user profiles by using OAuth (not really) but the idea is simple i only request the username and the user id and be saved locally since i don’t have much experience handling OAuth and security. I do plan on fixing that to be more secure and faster. !! Rating Collection & Comments will be implemented soon they are currently place holder to give you an idea what will be the user page hold !! Over all the plan is going okay(ish) in the roadmap. More features will be implemented!
8/29/26 - Submission fix & Future plans Thank you for all the generous comments about RoFind and the people who have tried my project! I have more plans to this project but in the mean time i will be focusing on life and taking a break a little bit from this project and expect it to be better in the future. I have fixed the ability to spam rate a game. I am also aware of other vulnerability on the project and i do have planned fixes and changes to it so stay tuned!
8/30/26 - Game Card From a user review suggestion, I am now working on implementing the description when opening/clicking a game popup. Experimentation is my main process here since I am not a good UI designer and still looking for my style. Here is the preview of what is currently being developed. The idea here is that, in order to reduce screen clutter and make it a little more modern I have placed the game image behind the texts (inspired from other platforms, apps, designs). This should be done in just a week :). I can’t focus on this project i am addicted to osu!
Ships:
RoFind is a community driven game discovery. RoFind features a game submission system so everyone can suggest any game they want everyone to experience too! Submitted games will be reviewed before making into the public list. Made with vanilla HTML, CSS, and JavaScript.
I have finally implemented a basic login feature! From the past submission this version a slight change has been merged: Game Submission now requires logging in! This due to a problem where anyone can spam submission. Some elements/redundancy has been removed in the code and the pages This login feature has been the hardest part yet since i haven’t tried login techniques before. I almost gave up on the project but decided to pivot into a more simplified login form first then secure it later!...
|
1792983216.6039622
|
1793069616.6039622
|
|
34136
|
compliment widget by @ducki | Stardance
|
ducki
|
1
|
51.0
|
380
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-29T09:19:05Z", "hours": 51.0, "multiplier": 7.44, "payout": 380, "blessing": "neutral", "text": "I made an Android widget app that lets people share compliments and positivity with their friends and loved ones with customizable home screen widgets. Challenges I definitly faced challenges with the widget library and my limited RAM, since the android emulator recommends 16GB of RAM, while I am working with 12GB. The testing was slower than it could have been. The widgets unique components and requirements for it, was a fun challenge, that made me have to rewrite my base code quite a lot to allow for it to run and update with the app in real time. For testing To test out the app, I have an apk that can be downloaded on Android devices, maybe this can be something to even share with others, create them a compliment list and share it to them. Just click try project to download the APK My successes I really like how the themes turned out, and all the customization. I think it really makes it look ten times better. It was worth it taking my time at midnight to fully implement it. And of course that the widget works, I already have it on my home screen, it is a great addition.", "repo": "https://github.com/Duckwastakon/compliment-widget", "demo": "https://github.com/Duckwastakon/compliment-widget/releases"}]...
|
[{"post_id": 36898, "ts": "202 [{"post_id": 36898, "ts": "2026-07-29T08:54:36Z", "hours": 4.6331, "text": "Complimet widget is finally done! Made some very interesting typos that caused the APK build to break, multiple times, but finally this app is available to anyone on github! quick changes: More themes: Added 3 more themes, peach, mint and coffee. It is now possible to see compliments on your homescreen in some color, not black/white. Small UI changes Some bug fixes like wrong text appearing. Made the README Built the project and released it Thank you to everyone who supported this project in any way!"}, {"post_id": 36268, "ts": "2026-07-28T08:15:12Z", "hours": 8.7222, "text": "compliment widget is 95% done! I will be trying to ship the project today, but depends on how many unexpected bugs appear new stuff: Finally added mass compliment pasting/writing Instead of having to write individual compliments the user can write many and the app then splits up all the lines into seperate compliments, makes it way faster to input 100, or if they already have a list of compliments to paste it in. navigator tab styling: To be fair it was wack, just white with text, now we have Icons bunch more icons to make buttons easier to understand just from visuals. more visual improvements a load of bug fixes The new additions did come with some troubles -> *Accidentaly ireversable deleted code, thank god github exsists. Mobile application development has not turned out the burden I expected it to be, totally recommend for anyone to try. The only issue being an emulator is quite ram intensive to run, I can barely run mine. Now all that is left is to export to an apk, hope there are not too many bugs and problems. How much can go wrong? only one way to find out"}, {"post_id": 32677, "ts": "2026-07-21T23:59:20Z", "hours": 9.2344, "text": "User interface designers are underrated I had never paid much attention to how apps look, but now making my first mobile application, I realise how important it is, the fact that the styling is very similar to css (I hate css) is useful for simplicity, but I have a bias from so many small mistakes that take hours to fix. Apps need the user interface to effectively tell the user what each button does, or to put attention into the main aspect. Most people would not look twice if an apps design is bad. New stuff Finally implemented the possibility to change time between new compliment generating Bunch of bug fixing And most importantly: The interface Because this is my first mobile app I must say the starting design code sucks, so I have been stuck at slowly rewriting old systems so they actually work with all the needed features. For the interface I have to rewrite the entire styleSheet for it to look okay. Hope that I can finally release soon, and not into 99 more bugs"}, {"post_id": 31964, "ts": "2026-07-20T19:46:23Z", "hours": 8.4158, "text": "IOS development is impossible maybe exaggerating a bit, but from all of my reserch i have found out that you need a mac or IOS device to be able to test IOS, now I do not have one of those .-. What does this mean: I am not gonna be releasing a IOS widget, because of not being able to make it high quality, let alone test it Instead I am gonna release it as a android app, and if it gets enough requests, add IOS support Now what have I done instead Had to remake the file hierarchy. Customization with themes for the widget and app design. File sharing and uploading. I am afraid to say I am a bit ashamed of how long it has taken for me to fix simple mistakes. Customization One of the most important parts about a widget is being able to customize it, now that is using custom themes, maybe it would be a cool addition to let people able to make custom themes, but will have to see"}, {"post_id": 30012, "ts": "2026-07-17T08:09:36Z", "hours": 8.4517, "text": "I HAVE A WIDGET I am overly happy because it just did not appear for 2 hours because I thought some line from the documented example was just a “random comment” \"use no memo\" ;. Now reading back it makes so much sense. I was insanely wrong. Adding it fixed the entire widget .-. also this widget -> only for android. and I can only hope making a ios one wont break the android one. on another note having to balance async and sync functions is a pain. had to rewrite my entire data saving system to be able to handle getting it synchronously. While doing so also found a nice tool to save data synchronously. Should I rewrite my data handling to only use one way to save data, probably but for now it works, when I get to the optimizations part and code cleaning that should get sorted. Overall must say it is a nice feeling when using some new language finding so many new tools while making a simple project, in the moment -> “Wow my headache could have been easily avoided”, but good to know the next project will be 10x faster. Not too much left to make: IOS widget Widget customization Polish the app But it is probably gonna take a good amount of time still."}, {"post_id": 29376, "ts": "2026-07-16T09:13:19Z", "hours": 5.325, "text": "Making phone applications is actually way more fun than expected okay it was partly because I switched to a new framework which makes everything more comfortable. had to rewrite all the file reading and writing, but it was 100% worth it. Now the only main thing left is the widget itself after only making my phone overheat multiple times, got the timer system working for a random compliment to appear every xx amount of time. The app is coming togheter well, only widget styling (Pain😭) improving user experience is left"}, {"post_id": 28213, "ts": "2026-07-14T11:10:16Z", "hours": 6.2661, "text": "I wanted to learn how to make phone apps, so my idea is to make a widget app, that every day displays a random compliment from a big list. Fighting with github and emulators was not fun to even start developing, but luckly was able to get all that sorted out. Was it easier after then, no, never developed something like this, everything looks so alien. Thankfully documentation exsists. I want the user to be able to make custom compliment lists, and add his own, so I started by making a system where you can create your own compliment lists, add compliments into them, and then they get saved in the apps data as a json file. hopefully adding the widget will not be too hard."}]...
|
Title: compliment widget by @ducki | Stardance
De Title: compliment widget by @ducki | Stardance
Devlogs:
I wanted to learn how to make phone apps, so my idea is to make a widget app, that every day displays a random compliment from a big list. Fighting with github and emulators was not fun to even start developing, but luckly was able to get all that sorted out. Was it easier after then, no, never developed something like this, everything looks so alien. Thankfully documentation exsists. I want the user to be able to make custom compliment lists, and add his own, so I started by making a system where you can create your own compliment lists, add compliments into them, and then they get saved in the apps data as a json file. hopefully adding the widget will not be too hard.
Making phone applications is actually way more fun than expected okay it was partly because I switched to a new framework which makes everything more comfortable. had to rewrite all the file reading and writing, but it was 100% worth it. Now the only main thing left is the widget itself after only making my phone overheat multiple times, got the timer system working for a random compliment to appear every xx amount of time. The app is coming togheter well, only widget styling (Pain😭) improving user experience is left
I HAVE A WIDGET I am overly happy because it just did not appear for 2 hours because I thought some line from the documented example was just a “random comment” "use no memo" ;. Now reading back it makes so much sense. I was insanely wrong. Adding it fixed the entire widget .-. also this widget -> only for android. and I can only hope making a ios one wont break the android one. on another note having to balance async and sync functions is a pain. had to rewrite my entire data saving system to be able to handle getting it synchronously. While doing so also found a nice tool to save data synchronously. Should I rewrite my data handling to only use one way to save data, probably but for now it works, when I get to the optimizations part and code cleaning that should get sorted. Overall must say it is a nice feeling when using some new language finding so many new tools while making a simple project, in the moment -> “Wow my headache could have been easily avoided”, but good to know the next project will be 10x faster. Not too much left to make: IOS widget Widget customization Polish the app But it is probably gonna take a good amount of time still.
IOS development is impossible maybe exaggerating a bit, but from all of my reserch i have found out that you need a mac or IOS device to be able to test IOS, now I do not have one of those .-. What does this mean: I am not gonna be releasing a IOS widget, because of not being able to make it high quality, let alone test it Instead I am gonna release it as a android app, and if it gets enough requests, add IOS support Now what have I done instead Had to remake the file hierarchy. Customization with themes for the widget and app design. File sharing and uploading. I am afraid to say I am a bit ashamed of how long it has taken for me to fix simple mistakes. Customization One of the most important parts about a widget is being able to customize it, now that is using custom themes, maybe it would be a cool addition to let people able to make custom themes, but will have to see
User interface designers are underrated I had never paid much attention to how apps look, but now making my first mobile application, I realise how important it is, the fact that the styling is very similar to css (I hate css) is useful for simplicity, but I have a bias from so many small mistakes that take hours to fix. Apps need the user interface to effectively tell the user what each button does, or to put attention into the main aspect. Most people would not look twice if an apps design is bad. New stuff Finally implemented the possibility to change time between new compliment generating Bunch of bug fixing And most importantly: The interface Because this is my first mobile app I must say the starting design code sucks, so I have been stuck at slowly rewriting old systems so they actually work with all the needed features. For the interface I have to rewrite the entire styleSheet for it to look okay. Hope that I can finally release soon, and not into 99 more bugs
compliment widget is 95% done! I will be trying to ship the project today, but depends on how many unexpected bugs appear new stuff: Finally added mass compliment pasting/writing Instead of having to write individual compliments the user can write many and the app then splits up all the lines into seperate compliments, makes it way faster to input 100, or if they already have a list of compliments to paste it in. navigator tab styling: To be fair it was wack, just white with text, now we have Icons bunch more icons to make buttons easier to understand just from visuals. more visual improvements a load of bug fixes The new additions did come with some troubles -> *Accidentaly ireversable deleted code, thank god github exsists. Mobile application development has not turned out the burden I expected it to be, totally recommend for anyone to try. The only issue being an emulator is quite ram intensive to run, I can barely run mine. Now all that is left is to export to an apk, hope there are not too many bugs and problems. How much can go wrong? only one way to find out
Complimet widget is finally done! Made some very interesting typos that caused the APK build to break, multiple times, but finally this app is available to anyone on github! quick changes: More themes: Added 3 more themes, peach, mint and coffee. It is now possible to see compliments on your homescreen in some color, not black/white. Small UI changes Some bug fixes like wrong text appearing. Made the README Built the project and released it Thank you to everyone who supported this project in any way!
Ships:
I made an Android widget app that lets people share compliments and positivity with their friends and loved ones with customizable home screen widgets. Challenges I definitly faced challenges with the widget library and my limited RAM, since the android emulator recommends 16GB of RAM, while I am working with 12GB. The testing was slower than it could have been. The widgets unique components and requirements for it, was a fun challenge, that made me have to rewrite my base code quite a lot to allow for it to run and update with the app in real time. For testing To test out the app, I have an apk that can be downloaded on Android devices, maybe this can be something to even share with others, create them a compliment list and share it to them. Just click try project to download the APK My successes I really like how the themes turned out, and all the customization. I think it really makes it look ten times better. It was worth it taking my time at midnight to fully implement it. And of course that the widget works, I already have it on my home screen, it is a great addition....
|
1792990451.2670846
|
1793076851.2670846
|
|
6839
|
Swerve Drive by @joshua_r | Stardance
|
joshua_r
|
2
|
79.0
|
379
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-19T14:57:23Z", "hours": 1.0, "multiplier": 5.0, "payout": 5, "blessing": "neutral", "text": "3D printed coaxial swerve drive! This was heavily inspired by FRC swerves and it really fun to make. Designing and everything hardware related was honestly pretty easy, but wiring was a pain. Each brushless motor driver needed 3 pwm pins on the same hardware timer and on nucleos, some of the pins serve multiple uses, creating some problems for me. Also there were a lot of times that things that seemed like software issues were actually wiring issues, like when the adafruit motor shield stopped working because its i2c connection was tied to pins A4 and A5. Overall, this was the most technologically advanced project I have ever made, partly because I was using a new microcontroller (stm32 nucleo) but also because I had to understand the math involved in driving a swerve correctly. Not to mention I was also running 4 brushless motors and 4 separate PIDs. It was really fun to build and I would definitely do it again given the opportunity. Maybe even a differential swerve next time? RESHIP FOR NEW HARDWARE MUTLIPLIER: Public video link is the video of project button.", "repo": "https://github.com/Joshuar9202/Swerve-Drive-Arduino", "demo": ""}, {"ship_num": 2, "ts": "2026-07-06T16:35:33Z", "hours": 78.0, "multiplier": 5.0, "payout": 374, "blessing": "neutral", "text": "3D printed coaxial swerve drive! This was heavily inspired by FRC swerves and it really fun to make. Designing and everything hardware related was honestly pretty easy, but wiring was a pain. Each brushless motor driver needed 3 pwm pins on the same hardware timer and on nucleos, some of the pins serve multiple uses, creating some problems for me. Also there were a lot of times that things that seemed like software issues were actually wiring issues, like when the adafruit motor shield stopped working because its i2c connection was tied to pins A4 and A5. Overall, this was the most technologically advanced project I have ever made, partly because I was using a new microcontroller (stm32 nucleo) but also because I had to understand the math involved in driving a swerve correctly. Not to mention I was also running 4 brushless motors and 4 separate PIDs. It was really fun to build and I would definitely do it again given the opportunity. Maybe even a differential swerve next time?", "repo": "https://github.com/Joshuar9202/Swerve-Drive-Arduino", "demo": ""}]...
|
[{"post_id": 70649, "ts": "202 [{"post_id": 70649, "ts": "2026-09-19T14:53:46Z", "hours": 0.9042, "text": "Finally hardware projects are getting payout multipliers like software projects! Thus, I will be reshipping my project so that I can get multiplier. (Also opensauce was awesome sauce! Only real changes made to the project were encoder offsets and tuning things at opensauce because of reassembly at the venue. Also got into a rev reel!)"}, {"post_id": 22493, "ts": "2026-07-05T00:00:05Z", "hours": 11.3317, "text": "Done! 🎉 I finished making all the things for the github like the wiring diagram and demo video. Fixed all issues with field relative control, my original math was incorrect. Also one of the modules wasn’t rotating correctly but it turns out it was just the magnet came loose. Will be submitting to Outpost soon! Demo video link: https://www.youtube.com/watch?v=bPC4PA_9ZH0"}, {"post_id": 19694, "ts": "2026-07-01T02:39:11Z", "hours": 5.0708, "text": "First Movements Tested full motion for the first time woohoo! 🎉🎊 Things surprisingly worked alright, the kinematics for the rotation while strafing is still a bit off but translation by itself works great. Also the wheels have very little traction so I’ll have to increase that somehow. Additionally, field centric control on the joystick works really well, so up on the joystick means up in real life relative to the start heading and regardless of the rotation of the robot. Things Left to Do on Hardware Add traction to the wheels Things Left to Do on Software Fix swerve kinematics for rotation"}, {"post_id": 18892, "ts": "2026-06-30T02:50:31Z", "hours": 11.6183, "text": "Integration Pain I got all the subsystems working separately but the extremely fun part of integrating them all together was the first time I truly understood why engineers hate integration. There were a plethora of pin conflicts underlying the hardware since many of the pins on the nucleo serve multiple purposes. One example of this was the adafruit motor shield’s i2c bus interfering with the front left drive motor’s FOC math since PB8 and PB9 are connected to the sda and scl pins on the Arduino headers of the nucleo. As you can see from the extremely janky wiring in the photo, just connecting the shield so it gets power on the other side of headers and manually connecting the shield to a separate i2c bus using jumper wires, I was able to finally make all the subsystems work together. This was just one example of the many problems that arose, hence why there are almost 12 hours being logged in this post, but this project is finally on the last stretch. I did also make a lot of other progress like confirming the swerve kinematics work along with the flysky controller for inputs :) Things Left to Do on Hardware Cut off the sda and scl pins on the motor shield and solder a jumper wire to the new i2c bus Things Left to Do on Software Tune the pid for FR, BR, and BL turn motors Integrate offsets into the steering angle for the motors Integrate the MPU6050 readings for field oriented swerve control"}, {"post_id": 15434, "ts": "2026-06-25T02:36:01Z", "hours": 3.0789, "text": "Side Quest The adafruit motor shield v2 that I am using to control the n20 motors suddenly stopped working today. After a long struggle, I managed to trace it back to the A4 and A5 pins being attached to the nucelo alongside the dedicated SDA and SCL pins. Since SDA and SCL are tied to A4 and A5 on normal arduinos but seemingly not on nucelos, simply removing those pins fixed all issues. A very unsatisfying end to a 3 hour struggle :( I did mange to test out the front left module, and spent some time tuning the azimuth pid. Things Left to Do on Hardware Wire management Things Left to Do on Software Test the rest of the hardware (FR, BR, and BL modules, radio communication, and gyro). Program the rest of the swerveKinematics.cpp file Program mpu6050 gyro Program in controls from the inputs from the flysky controller"}, {"post_id": 14820, "ts": "2026-06-24T02:09:04Z", "hours": 3.2439, "text": "Finished Wiring As you can tell by this extremely beautiful cable management and totally not messy arrangement of wires, I should have probably made a pcb for this (Maybe I will later). Things Left to Do on Hardware Wire management Things Left to Do on Software Test all hardware individually to isolate any potential wiring issues Program the rest of the swerveKinematics.cpp file Program in controls from the inputs from the flysky controller"}, {"post_id": 14094, "ts": "2026-06-23T02:30:21Z", "hours": 6.4664, "text": "Swerve Drivebase update Cut out bellypan out of scrap board because creating large panels isn’t really suited for 3d printing and I can drill new holes into this material easily for mounting electronics. Mounted the majority of the electronics as well. On the software side I got radio communication working and created a new .h and .cpp file for implementing radio control into the main program. Things Left to Do on Hardware Attach radio receiver and battery Wire all components together Resolder the wires on one of the n20 motors (bad connection the first time lol). Things Left to Do on Software Program the rest of the swerveKinematics.cpp file Program in controls from the inputs from the flysky controller"}, {"post_id": 12296, "ts": "2026-06-20T02:02:20Z", "hours": 8.5414, "text": "Finished Drive Base Got all the modules built and attached. Some modules are a little bit stiff so if that hinders the motors I’ll need to change some clearances, but I think its minimal enough to where it won’t matter. Things Left to Do on Hardware Build and attach bellypan for electronics Mount electronics to bellypan Wire everything up Things Left to Do on Software Test radio communication from fs-ia6B receiver to nucleo Program commands in based on controller input Program swerve kinematics in using the custom angle control and drive control functions already created"}, {"post_id": 10917, "ts": "2026-06-17T21:51:43Z", "hours": 7.2928, "text": "Swerve azimuth control Got PID working for one module, though it probably still needs to be tuned. Also I need to figure out the logic for wrapping around since the encoder measures values from 0-1023 which I have mapped to 0 to 360, but after 360 it goes back to 0 which complicates the logic a bit. I also need to implement the logic for the swerve just switching the wheel rotation direction rather than rotate the entire module 180 degrees whenever it can. Realistically, the module should only ever rotate a max of 90 degrees from one input to the next"}, {"post_id": 8164, "ts": "2026-06-13T16:37:44Z", "hours": 8.9011, "text": "Tested all hardware for the swerve drive. The latest version of SimpleFOC (2.4.0) doesn’t work for some reason but the previous version (2.3.5) works perfectly fine. The as5600 encoders work great and track the rotation of the module nicely. I also made a few design changes to make assembly easier which includes changing the design of the encoder column support and the design of the standoffs."}, {"post_id": 5328, "ts": "2026-06-09T01:59:37Z", "hours": 3.0031, "text": "Swerve module v1 assembled! The gears mesh nicely and the entire system has a lot less friction than I thought it would :) Things needed to do in terms of design: Design support for the shaft that holds the central drive gear column since right now its cantilevered. Redesign standoffs because the current design breaks too easily Design encoder for brushless drive motor so FOC can be used"}, {"post_id": 4618, "ts": "2026-06-08T00:12:06Z", "hours": 3.3511, "text": "Finished soldering wires to the motors and header pins to the encoders. Got stm32 nucleo 64 f411re working with platformio ready for programming along with the motor shield to control everything!"}, {"post_id": 3587, "ts": "2026-06-06T16:15:48Z", "hours": 1.9147, "text": "finished building one module in real life!"}, {"post_id": 2479, "ts": "2026-06-05T00:05:00Z", "hours": 1.3253, "text": "Added drive column for drive gear train which is coaxial to the encoder column which has the magnet for the as5600 to track the module’s rotation. Done with the drive module for now, moving on to the motor mounts!"}, {"post_id": 2227, "ts": "2026-06-04T16:44:41Z", "hours": 2.6103, "text": "CAD for a single module done including gear relations. No motors yet"}]...
|
Title: Swerve Drive by @joshua_r | Stardance
Devl Title: Swerve Drive by @joshua_r | Stardance
Devlogs:
CAD for a single module done including gear relations. No motors yet
Added drive column for drive gear train which is coaxial to the encoder column which has the magnet for the as5600 to track the module’s rotation. Done with the drive module for now, moving on to the motor mounts!
finished building one module in real life!
Finished soldering wires to the motors and header pins to the encoders. Got stm32 nucleo 64 f411re working with platformio ready for programming along with the motor shield to control everything!
Swerve module v1 assembled! The gears mesh nicely and the entire system has a lot less friction than I thought it would :) Things needed to do in terms of design: Design support for the shaft that holds the central drive gear column since right now its cantilevered. Redesign standoffs because the current design breaks too easily Design encoder for brushless drive motor so FOC can be used
Tested all hardware for the swerve drive. The latest version of SimpleFOC (2.4.0) doesn’t work for some reason but the previous version (2.3.5) works perfectly fine. The as5600 encoders work great and track the rotation of the module nicely. I also made a few design changes to make assembly easier which includes changing the design of the encoder column support and the design of the standoffs.
Swerve azimuth control Got PID working for one module, though it probably still needs to be tuned. Also I need to figure out the logic for wrapping around since the encoder measures values from 0-1023 which I have mapped to 0 to 360, but after 360 it goes back to 0 which complicates the logic a bit. I also need to implement the logic for the swerve just switching the wheel rotation direction rather than rotate the entire module 180 degrees whenever it can. Realistically, the module should only ever rotate a max of 90 degrees from one input to the next
Finished Drive Base Got all the modules built and attached. Some modules are a little bit stiff so if that hinders the motors I’ll need to change some clearances, but I think its minimal enough to where it won’t matter. Things Left to Do on Hardware Build and attach bellypan for electronics Mount electronics to bellypan Wire everything up Things Left to Do on Software Test radio communication from fs-ia6B receiver to nucleo Program commands in based on controller input Program swerve kinematics in using the custom angle control and drive control functions already created
Swerve Drivebase update Cut out bellypan out of scrap board because creating large panels isn’t really suited for 3d printing and I can drill new holes into this material easily for mounting electronics. Mounted the majority of the electronics as well. On the software side I got radio communication working and created a new .h and .cpp file for implementing radio control into the main program. Things Left to Do on Hardware Attach radio receiver and battery Wire all components together Resolder the wires on one of the n20 motors (bad connection the first time lol). Things Left to Do on Software Program the rest of the swerveKinematics.cpp file Program in controls from the inputs from the flysky controller
Finished Wiring As you can tell by this extremely beautiful cable management and totally not messy arrangement of wires, I should have probably made a pcb for this (Maybe I will later). Things Left to Do on Hardware Wire management Things Left to Do on Software Test all hardware individually to isolate any potential wiring issues Program the rest of the swerveKinematics.cpp file Program in controls from the inputs from the flysky controller
Side Quest The adafruit motor shield v2 that I am using to control the n20 motors suddenly stopped working today. After a long struggle, I managed to trace it back to the A4 and A5 pins being attached to the nucelo alongside the dedicated SDA and SCL pins. Since SDA and SCL are tied to A4 and A5 on normal arduinos but seemingly not on nucelos, simply removing those pins fixed all issues. A very unsatisfying end to a 3 hour struggle :( I did mange to test out the front left module, and spent some time tuning the azimuth pid. Things Left to Do on Hardware Wire management Things Left to Do on Software Test the rest of the hardware (FR, BR, and BL modules, radio communication, and gyro). Program the rest of the swerveKinematics.cpp file Program mpu6050 gyro Program in controls from the inputs from the flysky controller
Integration Pain I got all the subsystems working separately but the extremely fun part of integrating them all together was the first time I truly understood why engineers hate integration. There were a plethora of pin conflicts underlying the hardware since many of the pins on the nucleo serve multiple purposes. One example of this was the adafruit motor shield’s i2c bus interfering with the front left drive motor’s FOC math since PB8 and PB9 are connected to the sda and scl pins on the Arduino headers of the nucleo. As you can see from the extremely janky wiring in the photo, just connecting the shield so it gets power on the other side of headers and manually connecting the shield to a separate i2c bus using jumper wires, I was able to finally make all the subsystems work together. This was just one example of the many problems that arose, hence why there are almost 12 hours being logged in this post, but this project is finally on the last stretch. I did also make a lot of other progress like confirming the swerve kinematics work along with the flysky controller for inputs :) Things Left to Do on Hardware Cut off the sda and scl pins on the motor shield and solder a jumper wire to the new i2c bus Things Left to Do on Software Tune the pid for FR, BR, and BL turn motors Integrate offsets into the steering angle for the motors Integrate the MPU6050 readings for field oriented swerve control
First Movements Tested full motion for the first time woohoo! 🎉🎊 Things surprisingly worked alright, the kinematics for the rotation while strafing is still a bit off but translation by itself works great. Also the wheels have very little traction so I’ll have to increase that somehow. Additionally, field centric control on the joystick works really well, so up on the joystick means up in real life relative to the start heading and regardless of the rotation of the robot. Things Left to Do on Hardware Add traction to the wheels Things Left to Do on Software Fix swerve kinematics for rotation
Done! 🎉 I finished making all the things for the github like the wiring diagram and demo video. Fixed all issues with field relative control, my original math was incorrect. Also one of the modules wasn’t rotating correctly but it turns out it was just the magnet came loose. Will be submitting to Outpost soon! Demo video link: https://www.youtube.com/watch?v=bPC4PA_9ZH0
Finally hardware projects are getting payout multipliers like software projects! Thus, I will be reshipping my project so that I can get multiplier. (Also opensauce was awesome sauce! Only real changes made to the project were encoder offsets and tuning things at opensauce because of reassembly at the venue. Also got into a rev reel!)
Ships:
3D printed coaxial swerve drive! This was heavily inspired by FRC swerves and it really fun to make. Designing and everything hardware related was honestly pretty easy, but wiring was a pain. Each brushless motor driver needed 3 pwm pins on the same hardware timer and on nucleos, some of the pins serve multiple uses, creating some problems for me. Also there were a lot of times that things that seemed like software issues were actually wiring issues, like when the adafruit motor shield stopped working because its i2c connection was tied to pins A4 and A5. Overall, this was the most technologically advanced project I have ever made, partly because I was using a new microcontroller (stm32 nucleo) but also because I had to understand the math involved in driving a swerve correctly. Not to mention I was also running 4 brushless motors and 4 separate PIDs. It was really fun to build and I would definitely do it again given the opportunity. Maybe even a differential swerve next time?
3D printed coaxial swerve drive! This was heavily inspired by FRC swerves and it really fun to make. Designing and everything hardware related was honestly pretty easy, but wiring was a pain. Each brushless motor driver needed 3 pwm pins on the same hardware timer and on nucleos, some of the pins serve multiple uses, creating some problems for me. Also there were a lot of times that things that seemed like software issues were actually wiring issues, like when the adafruit motor shield stopped working because its i2c connection was tied to pins A4 and A5. Overall, this was the most technologically advanced project I have ever made, partly because I was using a new microcontroller (stm32 nucleo) but also because I had to understand the math involved in driving a swerve correctly. Not to mention I was also running 4 brushless motors and 4 separate PIDs. It was really fun to build and I would definitely do it again given the opportunity. Maybe even a differential swerve next time? RESHIP FOR NEW HARDWARE MUTLIPLIER: Public video link is the video of project button....
|
1792990061.9122665
|
1793076461.9122665
|
|
20483
|
Pulse by @mithbhasker | Stardance
|
mithbhasker
|
2
|
71.0
|
378
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-19T02:27:09Z", "hours": 16.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a website to help people like my dad who is a manager manage his team without multiple tools.", "repo": "https://github.com/Mithilessh2010/Pulse", "demo": "https://pulse-beta-nine.vercel.app/"}, {"ship_num": 2, "ts": "2026-08-01T05:26:05Z", "hours": 55.0, "multiplier": 9.75, "payout": 378, "blessing": "neutral", "text": "I did it for part of my startup this is the basic stuff I used a very basic AI looking UI but that is because I wanted base product out first but most core concepts I did.", "repo": "https://github.com/Mithilessh2010/Pulse", "demo": "https://pulse-beta-nine.vercel.app/"}]...
|
[{"post_id": 73434, "ts": "202 [{"post_id": 73434, "ts": "2026-09-25T02:36:18Z", "hours": 15.8133, "text": "I added some animations and to the bottom right corner of the website there is an AI chatbot and since I gave it a proper API key it can do much more making a managers life much easier"}, {"post_id": 36029, "ts": "2026-07-27T21:00:55Z", "hours": 17.9003, "text": "I couldn’t get all the API keys for the integrations so for now I am going to ship this and add things for a later ship"}, {"post_id": 28738, "ts": "2026-07-15T05:36:35Z", "hours": 10.7378, "text": "I added the rest of the buttons and made sure a quick prototype is in work it looks good to me as of now more updates will happen"}, {"post_id": 26057, "ts": "2026-07-10T17:22:29Z", "hours": 17.2972, "text": "I finished cleaning up the UI for the dashboard itself as most buttons and containers were unsatisfactory, I am going to work on getting the API keys next"}, {"post_id": 10952, "ts": "2026-06-17T23:25:23Z", "hours": 1.8375, "text": "Reworked the app shell and related screens to match the latest Pulse UI pass, added the calls surface, refreshed shared styling and auth presentation, and updated mock data, state, and assets to support the new layout. Included the current deliverables and dependency updates tied to the build changes."}, {"post_id": 10717, "ts": "2026-06-17T16:07:40Z", "hours": 1.2131, "text": "The Pulse demo data was moved to a centralized persisted store so changes are saved across navigation, page refreshes, and browser restarts. A reset option was also added in Settings to restore the original sample workspace."}, {"post_id": 10403, "ts": "2026-06-17T03:05:03Z", "hours": 1.0364, "text": "The Ask Pulse AI assistant was improved with better context, smarter fallback responses, and a request timeout to make it more reliable. The system prompt and API were updated for better flexibility, UI components were enhanced with improved interactivity, data fields were made consistent, and the deliverable was updated with the latest changes."}, {"post_id": 10364, "ts": "2026-06-17T01:27:19Z", "hours": 4.725, "text": "I just finished the Home Page, it has cool animations and fonts to really grab the person’s attention and get them more interested in using PULSE and paying to use it. As you scroll many animations will happen and I am now coding the buttons to look at more info."}]...
|
Title: Pulse by @mithbhasker | Stardance
Devlogs: Title: Pulse by @mithbhasker | Stardance
Devlogs:
I just finished the Home Page, it has cool animations and fonts to really grab the person’s attention and get them more interested in using PULSE and paying to use it. As you scroll many animations will happen and I am now coding the buttons to look at more info.
The Ask Pulse AI assistant was improved with better context, smarter fallback responses, and a request timeout to make it more reliable. The system prompt and API were updated for better flexibility, UI components were enhanced with improved interactivity, data fields were made consistent, and the deliverable was updated with the latest changes.
The Pulse demo data was moved to a centralized persisted store so changes are saved across navigation, page refreshes, and browser restarts. A reset option was also added in Settings to restore the original sample workspace.
Reworked the app shell and related screens to match the latest Pulse UI pass, added the calls surface, refreshed shared styling and auth presentation, and updated mock data, state, and assets to support the new layout. Included the current deliverables and dependency updates tied to the build changes.
I finished cleaning up the UI for the dashboard itself as most buttons and containers were unsatisfactory, I am going to work on getting the API keys next
I added the rest of the buttons and made sure a quick prototype is in work it looks good to me as of now more updates will happen
I couldn’t get all the API keys for the integrations so for now I am going to ship this and add things for a later ship
I added some animations and to the bottom right corner of the website there is an AI chatbot and since I gave it a proper API key it can do much more making a managers life much easier
Ships:
I did it for part of my startup this is the basic stuff I used a very basic AI looking UI but that is because I wanted base product out first but most core concepts I did.
I made a website to help people like my dad who is a manager manage his team without multiple tools....
|
1792994149.9695683
|
1793080549.9695683
|
|
5885
|
"FTC" Concept Robot by @akhilatyam | Stard "FTC" Concept Robot by @akhilatyam | Stardance...
|
akhilatyam
|
2
|
27.0
|
377
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-08T02:00:19Z", "hours": 16.0, "multiplier": 13.83, "payout": 218, "blessing": "neutral", "text": "Presenting IRISv3, ship number 2!!! I would like to thank all those who have been a part of my journey, but lets get into it! To preface, most stuff I cover here is covered far more in depth in my readme, I suggest you read that as well. This project is NOT a part of First, or any other program, and is simply a learning experience for me. My last FTC season ended with a loss at state, mainly due to poor robot design, while I am no longer on my team, I decided to learn how to properly cad. Through this, I have created IRISv3!! What is it? It is a bot with a 3 artifact wide intake, 3 artifact hopper, a 360* turret, and a flip out parking mechanism! The onshape link will show you the robot, and the readme will provide an in depth view of its creation and thought process. Thank you for taking your time to review, hope you like it!", "repo": "https://github.com/Akhil-Atyam/IRISv3/", "demo": "https://cad.onshape.com/documents/06fbe5ed49f948d063feffdc/w/066c47fa9ac4b7611539e011/e/148f884616f1735568a81366?renderMode=0&uiState=6a3341bfd2cc085c33aab87a"}, {"ship_num": 2, "ts": "2026-06-19T00:16:11Z", "hours": 11.0, "multiplier": 14.03, "payout": 159, "blessing": "neutral", "text": "Presenting IRISv3!!! IRISv3 is a vast improvement of my teams original robot design and is designed to be a competitive robot in this years First Tech Challenge game, Decode. It has a 16 inch wide intake which can intake 3 artifacts at once, a 3 artifact large magazine, and a 360 degree turret to score. This robot taught me a lot about cad, as I am relatively new to it. Most parts can be CNC, 3d printed, or bought online at Rev Robotics, or GoBilda. If you are on any FIRST team, whether it be FLL FTC or FRC I do hope that you see this and end up liking the design off of it. Have a great day everyone!", "repo": "https://github.com/Akhil-Atyam/IRISv3/", "demo": "https://cad.onshape.com/documents/06fbe5ed49f948d063feffdc/w/066c47fa9ac4b7611539e011/e/148f884616f1735568a81366?renderMode=0&uiState=6a3341bfd2cc085c33aab87a"}]...
|
[{"post_id": 63895, "ts": "202 [{"post_id": 63895, "ts": "2026-09-07T22:22:18Z", "hours": 4.0853, "text": "#Devlog 7: The end for now, adjustable hood, thicker plates, and blender renders. Hello guys, and welcome, to one of the final devlogs of this series!!!! Next time you see me, hopefully it will be my ship, but lets go over my progress shall we? Adjustable hood Much awaited, as mentioned in my last devlog, my only way of controlling shots was through adjusting rpm, which is very power expensive and takes time, which isn’t ideal. This is why we now have a servo powered hood! You can try this for yourself by rotating the white part of the hood.We can now quickly adjust our shooting curve, meaning faster Shoot On the Move!!! (Credits to Rafin from 14469 for some help on the hood) ##Thicker plates Now this is something I’ll admit my friends have told me FOREVER about and I was too busy to figure out why my pocketing tool didn’t work, turns out my tool radius was too high. Now that its turned down, we can actually have thicker bars! This should hopefully drastically increase durability. (0.1 -> 0.22-0.3) ##Blender renders In preperation for my ship, I have begun the process of rendering. By the time this devlog is posted, my renders should be done, and atleast my banner is a render photo now. I have never really used blender much, so this is a decent learning curve for me. I would like to thank EVERYONE who supported me during this journey, and I hope you appreciate what this project taught me and hopefully you like it too!"}, {"post_id": 62579, "ts": "2026-09-06T01:22:14Z", "hours": 5.4958, "text": "Devlog 6: Parking Mech Pt2, Rubber bands, and more! Hey guys, this is a decently lengthy devlog, so lets get into it! Parking Mech My parking mech is done! My main problem, as you saw in the last devlog is that I only had around 20 degrees of room to deploy my bellypan cause I was hitting a bar, what was my solution? Getting rid of the bar. In all seriousness, I put out a small hole in the bar that way, the arm that connects my motor and bellypan can move through. Now, we can lay all the way flat, but there is still a large footprint, as anything that touches the ground adds to my footprint. So I added a small bar that should hopefully work to reduce my footprint (anything that touches the ground) Rubber bands Following advice from my last ship, I realized it was important for people to actually know where rubber bands were. Or atleast some what to understand. For now, I have added rubber bands, but I might end up making them a bit less opaque as its hard to see inside right now. Random other changes Removed that random spur gear on the back of Shooter, thats useless Added a light bar to the back of bot and an LED to the shooter. Future plans Odometry pods, this would be amazing Adjustable hood shooter, right now I can only adjust RPM, which takes time and is expensive on power, which I know all to well can kill matches. An adjustable hood would save so much power. Quite a long post, but hopefully ship #2 soon! Thanks! PS: On image one, top is old, bottom is new."}, {"post_id": 60553, "ts": "2026-09-02T23:37:55Z", "hours": 4.1261, "text": "Devlog 5: Parking Mechanism, Part 1 Hey guys! My first main content devlog after my last ship. One of the things I left out on my first ship is a parking mechanism. One of the unique things about this challenge is the parking bonus, where if 2 bots are fully within a 18x18 zone, we get 30 points (compared to 10 for just one) I decided to build a parking mechanism for this! This is partially inspired by 10255’s design, but only for the bellypan. Motor mount and ratchet is all uniquely mine. The motor First things first, how am I going to power it? Luckily, I have one motor left out of my 8 motor limit, so its simple as that, just adding a motor! But what RPM exactly? GoBilda, where I really like to get motors from has a multitude of options. I decided to go with 30 rpm, because i feel that would be more than strong enough to lift my robot. The ratchet But whats stopping it from falling back down after i climb??? Thats why I decided to make a small inline ratchet! Hopefully, it isnt meant to hold things for long of course, but it should be long enough to last atleast 3 seconds, which is the minimum for parks. The bellypan Now this part is a wip, this will be covered in part two. But for now, its just a polycarb sheet. (thank you pic collage for the collage tool im lowk abusing it) First image is part of my inspo btw, the other 2 are my CAD."}, {"post_id": 52651, "ts": "2026-08-22T21:55:34Z", "hours": 2.4314, "text": "Reship!! Hey guys, unfortunately my project did not pass my first ship. So I’m here to fix it. (according to shipwrights due to the specifics of my design it is ok to simply show a small 3dprinter version that unfortunately broke and a previous iteration that actually was built.) This is just a devlog for my images and stuff to be here. Video of it below https://youtu.be/BBkzpUcLwDI CLARIFICATION: This robot has never competed, is meant to be competed with, or any other relation with first. While the previous iterations shown are competition bots, this bot is not. This is simply a proof of concept of a competitive bot that I used in order to learn CAD. This project was created solely for my practice and to be presented under Stardance."}, {"post_id": 11651, "ts": "2026-06-19T00:02:33Z", "hours": 0.5117, "text": "Devlog 3 : Magazine and shooter Hello guys! This time we have most of the robot done, time for an overview! Magazine The Magazine is based off a rubber band design, this way we have compliance so that we do not have to spam wheels. If you look in the photos, you can see a set of blue and black wheels, those two are connected by rubber bands. Addressing one of the concerns in my ship: The balls should not fall out. since the ramp has a hole in the center ideally the artifacts should self center and the rubber bands should hold it in place (Something I have personally seen on a real robot). I also faced another major problem, how do I get my artifacts from my mag to my shooter? Due to the form factor of my build needing a turntable, I can’t just directly send it straight into the turret, as it wouldn’t reach without adding like 50 rollers. (large rollers would collide into my turntable housing) So i devised a counter roller, which is mounted in the rear and can speedily feed things into my shooter! (this is shown in the 2nd slide image on the bottom right, look for the 2 sets of black rollers near the green ball) Shooter I decided to go for a turret, although several teams have had major success in a straight shooter (shoutout to my goats 30564). This was because I felt that shooting on the move and shooting no matter where we are is what makes something competitive, and it also is a test of my cad skills. I took inspiration of the Andymark turntable, but the form factor wouldn’t work here, so I took the bearing and put it on a custom plate. For the turret itself, its a single 6K rpm motor, which from my previous experiences was more than enough, we also have a Limelight (vision camera) on the shooter for accurate localization."}, {"post_id": 8413, "ts": "2026-06-13T23:47:37Z", "hours": 9.3075, "text": "Devlog 2: The intake Hello again guys! Welcome back to more CAD Chronicles Today, I have our intake created. There are many different types of intakes I’ve seen this year, rubber band, vector wheel, and surgical tubing. All of these have pros and cons, so lets go over them. Rubber band: Rubber band intakes is what my team used back when I was on it. It is simple, effective, and once you touch an artifact, you keep it, there is very little wrong with it. But, it is harder with those to have the intake extend the entire width of the bot, so you might not be able to intake 3 artifacts at once. Vector wheels Now theres 2 kinds, fixed, and pivoting (where the wheels can move up and down to comply with the artifacts). I decided, that for auto strategy since we might be contacting multiple artifacts at once, to go with a fixed design for this. Vector wheels can easily span the entire width of a bot, and also funnel into the center. Surgical tubing This one is a nice one, basically for those who have not seen them, it is a form of intake where there is a central hub, and tubes stick out of the hub, almost like a fan. These are supposed to catch on to artifacts and pull them in. While these are pretty good, they do not have centering and also are quite large, so they do tend to stick out the bot. Now what did I pick? You might be able to tell from my image, but I ended up picking a vector wheel intake! I decided this was the best course of action, because I can easily intake 3 artifact wide, which is good for far zone cycling and also auto pattern cycling, and also it has centering. You will see in my next devlog why centering is important!"}, {"post_id": 1503, "ts": "2026-06-03T15:58:34Z", "hours": 1.5769, "text": "Devlog #1 : The beginnings Hello guys! Welcome to my project! I would like to thank you guys for checking my project out and here I’m gonna outline a bit of what I am going to do. What is my goal? I want to create a competitive FTC style bot! My last season on my team was last year, we got to state but we placed around 20th. This year, me and my friends will hopefully start a new team, but I need to learn CAD so that I am actually well equipped to do work. I decided that cadding a robot is the best way to do this! I decided on a couple goals. I want a vector intake (to maximize possible intaking area) As much custom cnc parts as possible (both a challenge for me and also conserves space) A turret (IMO most competitive bots use a turret so time to join that league) Those 3 goals will shape the rest of this project. Drivetrain My first thing was beginning my drivetrain, as you can see below I got around half of it done so far. Sketching is a bit awkward but I’m getting the hang of it. Hopefully this works out well!"}]...
|
Title: "FTC" Concept Robot by @akhilatyam Title: "FTC" Concept Robot by @akhilatyam | Stardance
Devlogs:
Devlog #1 : The beginnings Hello guys! Welcome to my project! I would like to thank you guys for checking my project out and here I’m gonna outline a bit of what I am going to do. What is my goal? I want to create a competitive FTC style bot! My last season on my team was last year, we got to state but we placed around 20th. This year, me and my friends will hopefully start a new team, but I need to learn CAD so that I am actually well equipped to do work. I decided that cadding a robot is the best way to do this! I decided on a couple goals. I want a vector intake (to maximize possible intaking area) As much custom cnc parts as possible (both a challenge for me and also conserves space) A turret (IMO most competitive bots use a turret so time to join that league) Those 3 goals will shape the rest of this project. Drivetrain My first thing was beginning my drivetrain, as you can see below I got around half of it done so far. Sketching is a bit awkward but I’m getting the hang of it. Hopefully this works out well!
Devlog 2: The intake Hello again guys! Welcome back to more CAD Chronicles Today, I have our intake created. There are many different types of intakes I’ve seen this year, rubber band, vector wheel, and surgical tubing. All of these have pros and cons, so lets go over them. Rubber band: Rubber band intakes is what my team used back when I was on it. It is simple, effective, and once you touch an artifact, you keep it, there is very little wrong with it. But, it is harder with those to have the intake extend the entire width of the bot, so you might not be able to intake 3 artifacts at once. Vector wheels Now theres 2 kinds, fixed, and pivoting (where the wheels can move up and down to comply with the artifacts). I decided, that for auto strategy since we might be contacting multiple artifacts at once, to go with a fixed design for this. Vector wheels can easily span the entire width of a bot, and also funnel into the center. Surgical tubing This one is a nice one, basically for those who have not seen them, it is a form of intake where there is a central hub, and tubes stick out of the hub, almost like a fan. These are supposed to catch on to artifacts and pull them in. While these are pretty good, they do not have centering and also are quite large, so they do tend to stick out the bot. Now what did I pick? You might be able to tell from my image, but I ended up picking a vector wheel intake! I decided this was the best course of action, because I can easily intake 3 artifact wide, which is good for far zone cycling and also auto pattern cycling, and also it has centering. You will see in my next devlog why centering is important!
Devlog 3 : Magazine and shooter Hello guys! This time we have most of the robot done, time for an overview! Magazine The Magazine is based off a rubber band design, this way we have compliance so that we do not have to spam wheels. If you look in the photos, you can see a set of blue and black wheels, those two are connected by rubber bands. Addressing one of the concerns in my ship: The balls should not fall out. since the ramp has a hole in the center ideally the artifacts should self center and the rubber bands should hold it in place (Something I have personally seen on a real robot). I also faced another major problem, how do I get my artifacts from my mag to my shooter? Due to the form factor of my build needing a turntable, I can’t just directly send it straight into the turret, as it wouldn’t reach without adding like 50 rollers. (large rollers would collide into my turntable housing) So i devised a counter roller, which is mounted in the rear and can speedily feed things into my shooter! (this is shown in the 2nd slide image on the bottom right, look for the 2 sets of black rollers near the green ball) Shooter I decided to go for a turret, although several teams have had major success in a straight shooter (shoutout to my goats 30564). This was because I felt that shooting on the move and shooting no matter where we are is what makes something competitive, and it also is a test of my cad skills. I took inspiration of the Andymark turntable, but the form factor wouldn’t work here, so I took the bearing and put it on a custom plate. For the turret itself, its a single 6K rpm motor, which from my previous experiences was more than enough, we also have a Limelight (vision camera) on the shooter for accurate localization.
Reship!! Hey guys, unfortunately my project did not pass my first ship. So I’m here to fix it. (according to shipwrights due to the specifics of my design it is ok to simply show a small 3dprinter version that unfortunately broke and a previous iteration that actually was built.) This is just a devlog for my images and stuff to be here. Video of it below https://youtu.be/BBkzpUcLwDI CLARIFICATION: This robot has never competed, is meant to be competed with, or any other relation with first. While the previous iterations shown are competition bots, this bot is not. This is simply a proof of concept of a competitive bot that I used in order to learn CAD. This project was created solely for my practice and to be presented under Stardance.
Devlog 5: Parking Mechanism, Part 1 Hey guys! My first main content devlog after my last ship. One of the things I left out on my first ship is a parking mechanism. One of the unique things about this challenge is the parking bonus, where if 2 bots are fully within a 18x18 zone, we get 30 points (compared to 10 for just one) I decided to build a parking mechanism for this! This is partially inspired by 10255’s design, but only for the bellypan. Motor mount and ratchet is all uniquely mine. The motor First things first, how am I going to power it? Luckily, I have one motor left out of my 8 motor limit, so its simple as that, just adding a motor! But what RPM exactly? GoBilda, where I really like to get motors from has a multitude of options. I decided to go with 30 rpm, because i feel that would be more than strong enough to lift my robot. The ratchet But whats stopping it from falling back down after i climb??? Thats why I decided to make a small inline ratchet! Hopefully, it isnt meant to hold things for long of course, but it should be long enough to last atleast 3 seconds, which is the minimum for parks. The bellypan Now this part is a wip, this will be covered in part two. But for now, its just a polycarb sheet. (thank you pic collage for the collage tool im lowk abusing it) First image is part of my inspo btw, the other 2 are my CAD.
Devlog 6: Parking Mech Pt2, Rubber bands, and more! Hey guys, this is a decently lengthy devlog, so lets get into it! Parking Mech My parking mech is done! My main problem, as you saw in the last devlog is that I only had around 20 degrees of room to deploy my bellypan cause I was hitting a bar, what was my solution? Getting rid of the bar. In all seriousness, I put out a small hole in the bar that way, the arm that connects my motor and bellypan can move through. Now, we can lay all the way flat, but there is still a large footprint, as anything that touches the ground adds to my footprint. So I added a small bar that should hopefully work to reduce my footprint (anything that touches the ground) Rubber bands Following advice from my last ship, I realized it was important for people to actually know where rubber bands were. Or atleast some what to understand. For now, I have added rubber bands, but I might end up making them a bit less opaque as its hard to see inside right now. Random other changes Removed that random spur gear on the back of Shooter, thats useless Added a light bar to the back of bot and an LED to the shooter. Future plans Odometry pods, this would be amazing Adjustable hood shooter, right now I can only adjust RPM, which takes time and is expensive on power, which I know all to well can kill matches. An adjustable hood would save so much power. Quite a long post, but hopefully ship #2 soon! Thanks! PS: On image one, top is old, bottom is new.
#Devlog 7: The end for now, adjustable hood, thicker plates, and blender renders. Hello guys, and welcome, to one of the final devlogs of this series!!!! Next time you see me, hopefully it will be my ship, but lets go over my progress shall we? Adjustable hood Much awaited, as mentioned in my last devlog, my only way of controlling shots was through adjusting rpm, which is very power expensive and takes time, which isn’t ideal. This is why we now have a servo powered hood! You can try this for yourself by rotating the white part of the hood.We can now quickly adjust our shooting curve, meaning faster Shoot On the Move!!! (Credits to Rafin from 14469 for some help on the hood) ##Thicker plates Now this is something I’ll admit my friends have told me FOREVER about and I was too busy to figure out why my pocketing tool didn’t work, turns out my tool radius was too high. Now that its turned down, we can actually have thicker bars! This should hopefully drastically increase durability. (0.1 -> 0.22-0.3) ##Blender renders In preperation for my ship, I have begun the process of rendering. By the time this devlog is posted, my renders should be done, and atleast my banner is a render photo now. I have never really used blender much, so this is a decent learning curve for me. I would like to thank EVERYONE who supported me during this journey, and I hope you appreciate what this project taught me and hopefully you like it too!
Ships:
Presenting IRISv3!!! IRISv3 is a vast improvement of my teams original robot design and is designed to be a competitive robot in this years First Tech Challenge game, Decode. It has a 16 inch wide intake which can intake 3 artifacts at once, a 3 artifact large magazine, and a 360 degree turret to score. This robot taught me a lot about cad, as I am relatively new to it. Most parts can be CNC, 3d printed, or bought online at Rev Robotics, or GoBilda. If you are on any FIRST team, whether it be FLL FTC or FRC I do hope that you see this and end up liking the design off of it. Have a great day everyone!
Presenting IRISv3, ship number 2!!! I would like to thank all those who have been a part of my journey, but lets get into it! To preface, most stuff I cover here is covered far more in depth in my readme, I suggest you read that as well. This project is NOT a part of First, or any other program, and is simply a learning experience for me. My last FTC season ended with a loss at state, mainly due to poor robot design, while I am no longer on my team, I decided to learn how to properly cad. Through this, I have created IRISv3!! What is it? It is a bot with a 3 artifact wide intake, 3 artifact hopper, a 360* turret, and a flip out parking mechanism! The onshape link will show you the robot, and the readme will provide an in depth view of its creation and thought process. Thank you for taking your time to review, hope you like it!...
|
1792990060.7245624
|
1793076460.7245624
|