|
12051
|
Satellite Projector by @Roubos | Stardance
|
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Satellite Projector by @Roubos | Stardance
|
1793418929.838091
|
1794023729.838091
|
|
12052
|
Cook the Chick by @coder | Stardance
|
coder
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Cook the Chick by @coder | Stardance
|
1793487224.2114248
|
1794092024.2114248
|
|
12053
|
Nice 1 by @colbymoyer13x | Stardance
|
colbymoyer13x
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Nice 1 by @colbymoyer13x | Stardance
|
1793303798.486113
|
1793908598.486113
|
|
12054
|
Mobile Intranet App by @Stijn | Stardance
|
Stijn
|
0
|
5.99
|
0
|
[]
|
[{"post_id": 4623, "ts": "2026 [{"post_id": 4623, "ts": "2026-06-08T00:22:30Z", "hours": 5.9925, "text": "Today I started working on a mobile intranet app for Argowil. Staff at Argowil need one place to read company news, chat with coworkers, check their schedule, pick up open shifts, and track hours. Right now that’s spread across different tools. I’m building a single mobile app for it. I’m using React Native (Expo) for the app and a Go backend with MySQL. Today I set up the project and got the basics going: login, a home screen with news, and the start of the work section for schedules and open shifts. Next up: community chat and an admin side so managers can post updates and manage employees."}]...
|
Title: Mobile Intranet App by @Stijn | Stardance
Title: Mobile Intranet App by @Stijn | Stardance
Devlogs:
Today I started working on a mobile intranet app for Argowil. Staff at Argowil need one place to read company news, chat with coworkers, check their schedule, pick up open shifts, and track hours. Right now that’s spread across different tools. I’m building a single mobile app for it. I’m using React Native (Expo) for the app and a Go backend with MySQL. Today I set up the project and got the basics going: login, a home screen with news, and the start of the work section for schedules and open shifts. Next up: community chat and an admin side so managers can post updates and manage employees....
|
1793152527.3627403
|
1793757327.3627403
|
|
12055
|
VOCA by @baoxkhanh781 | Stardance
|
baoxkhanh781
|
0
|
3.33
|
0
|
[]
|
[{"post_id": 7280, "ts": "2026 [{"post_id": 7280, "ts": "2026-06-12T04:13:55Z", "hours": 1.1783, "text": "Not really used to designing on .svg but after several fixes and support from Copilot, I finally made the logos and banners for the app. It’s no longer speech_coach, welcome to VOCA!"}, {"post_id": 6049, "ts": "2026-06-10T05:07:47Z", "hours": 0.9342, "text": "continue the no front-end development streak. For now I’ve just utilized the openAI client with temporary prompt to receive the context and help analyze speech with the exact format. This wasn’t what I expecting from the final app right now, but just a test to see if it’s working. Again, I’ll have to find the logic for more effective coaching. One thing I learned was how Flask couldn’t work and would continuously restart the server if it detected changes in the OpenAI library files."}, {"post_id": 5392, "ts": "2026-06-09T04:33:05Z", "hours": 0.6097, "text": "I added a feature where the user will upload a file that will be saved in /upload and then call an OpenAI’s whisper transcription API to do the task of speech-to-text. Since the app only shows text in mere html, I’ll have to improve its look later on. It’s also important that I have to figure out the coaching logic to evaluate the user’s speech (pace, tone, filler words, audience, or what purpose?). Next step is to focus on AI’s recommendation for users’ speech improvement."}, {"post_id": 5183, "ts": "2026-06-08T21:37:13Z", "hours": 0.6103, "text": "I started foundation with Flask, a basic audio upload form, and several Python code. After several debugging, the project is currently working with a Flask web server with upload endpoint using basic HTML for audio upload. The web is also able to store audio files."}]...
|
Title: VOCA by @baoxkhanh781 | Stardance
Devlogs: Title: VOCA by @baoxkhanh781 | Stardance
Devlogs:
I started foundation with Flask, a basic audio upload form, and several Python code. After several debugging, the project is currently working with a Flask web server with upload endpoint using basic HTML for audio upload. The web is also able to store audio files.
I added a feature where the user will upload a file that will be saved in /upload and then call an OpenAI’s whisper transcription API to do the task of speech-to-text. Since the app only shows text in mere html, I’ll have to improve its look later on. It’s also important that I have to figure out the coaching logic to evaluate the user’s speech (pace, tone, filler words, audience, or what purpose?). Next step is to focus on AI’s recommendation for users’ speech improvement.
continue the no front-end development streak. For now I’ve just utilized the openAI client with temporary prompt to receive the context and help analyze speech with the exact format. This wasn’t what I expecting from the final app right now, but just a test to see if it’s working. Again, I’ll have to find the logic for more effective coaching. One thing I learned was how Flask couldn’t work and would continuously restart the server if it detected changes in the OpenAI library files.
Not really used to designing on .svg but after several fixes and support from Copilot, I finally made the logos and banners for the app. It’s no longer speech_coach, welcome to VOCA!...
|
1793249408.8500085
|
1793854208.8500085
|
|
12056
|
Roboto Doggo by @luke354543 | Stardance
|
luke354543
|
0
|
2.7
|
0
|
[]
|
[{"post_id": 18757, "ts": "202 [{"post_id": 18757, "ts": "2026-06-29T23:10:22Z", "hours": 1.2539, "text": "I have made progress with the cad, the metal servo horns that I bought a couple months ago are a bit too big for this project. I have to make the arms thicker to connect to the servo horn. I also added another part and modeled it all in the assembly."}, {"post_id": 17257, "ts": "2026-06-27T23:37:50Z", "hours": 1.0933, "text": "I started designing the real leg, its mainly going to be same as the prototype, except I need to make adjustments for the servos."}, {"post_id": 7736, "ts": "2026-06-12T22:19:19Z", "hours": 0.3569, "text": "I made a prototype leg to test the parallelogram mechanism I will be using. The purpose of the parallelegram mechanism is so that you can position the two servo motors together where the rectangular base is shown."}]...
|
Title: Roboto Doggo by @luke354543 | Stardance
De Title: Roboto Doggo by @luke354543 | Stardance
Devlogs:
I made a prototype leg to test the parallelogram mechanism I will be using. The purpose of the parallelegram mechanism is so that you can position the two servo motors together where the rectangular base is shown.
I started designing the real leg, its mainly going to be same as the prototype, except I need to make adjustments for the servos.
I have made progress with the cad, the metal servo horns that I bought a couple months ago are a bit too big for this project. I have to make the arms thicker to connect to the servo horn. I also added another part and modeled it all in the assembly....
|
1793364499.3860204
|
1793969299.3860204
|
|
12057
|
Untitled project by @Jkim | Stardance
|
Jkim
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled project by @Jkim | Stardance
|
1793389922.777509
|
1793994722.777509
|
|
12058
|
Maze solving robot by @John_G | Stardance
|
John_G
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Maze solving robot by @John_G | Stardance
|
1792770596.301382
|
1793375396.301382
|
|
12059
|
My first slack bot! by @Karli | Stardance
|
Karli
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @Karli | Stardance
|
1793188279.574819
|
1793793079.574819
|
|
12060
|
Vr controller controlled robotic arm by @jonas_kau Vr controller controlled robotic arm by @jonas_kaun | Stardance...
|
jonas_kaun
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Vr controller controlled robotic arm by @jo Title: Vr controller controlled robotic arm by @jonas_kaun | Stardance...
|
1792770541.2206776
|
1793375341.2206776
|
|
12061
|
My awesome macropad! by @Amelie | Stardance
|
Amelie
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @Amelie | Stardance
|
1793379156.5220351
|
1793983956.5220351
|
|
12062
|
Amelu, Managed Email for Your Domain by @Stijn | S Amelu, Managed Email for Your Domain by @Stijn | Stardance...
|
Stijn
|
1
|
19.71
|
179
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-21T00:51:25Z", "hours": 15.0, "multiplier": 16.47, "payout": 179, "blessing": "neutral", "text": "worked on polishing amelu this week. focused mostly on improving reliability, cleaning up the dashboard, fixing bugs, and making the overall experience smoother from onboarding to mailbox management. it’s starting to feel like a real product instead of just infrastructure glued together. if you’re trying it out, i’d love feedback on the onboarding flow and anything that feels confusing or rough around the edges.", "repo": "https://github.com/ordnary-com/amelu", "demo": "https://amelu.org"}]...
|
[{"post_id": 45196, "ts": "202 [{"post_id": 45196, "ts": "2026-08-11T14:54:28Z", "hours": 0.7947, "text": "Reported as “login screen isn’t always immediately visible.” The actual bug was upstream of LoginPage entirely. Every real route, including “/”, sits behind ProtectedRoute (App.tsx), and ProtectedRoute returned null while AuthContext’s api.me() call was still pending on first load. Most visits land on “/”, not “/login” directly, so the sequence was: render nothing -> wait for /api/me -> get 401 -> Navigate to /login -> LoginPage finally renders. The blank stretch is proportional to how long /api/me takes (cold backend, slow network), which is why it only showed up “sometimes” - a fast response made the gap invisible. Fixed ProtectedRoute.tsx to render the same “Loading…” text used by AcceptInvitePage instead of null while loading is true. Not touched: LoginPage.module.css’s 0.4s fadeIn on .loginCard. That’s a deliberate entrance animation, not a bug - once the blank-screen race above is closed, it just reads as a normal fade-in."}, {"post_id": 37710, "ts": "2026-07-30T16:48:11Z", "hours": 0.4344, "text": "/account/api-keys is a real page now. Create a key with a name, see prefix, created and last used, revoke it. The raw key is shown once in the response and never stored - api_keys (migration 0025) holds a SHA-256 hash, the same shape as sessions and organization_invitations. prefix is amelu_live_ plus 6 of the 43 random characters, purely so two keys can be told apart on screen. Keys authenticate through auth.Require, which now takes either the session cookie or Authorization: Bearer amelu_live_…, so every /api route accepted them the moment the middleware changed - no per-route work. A key acts as its owning customer with that customer’s organization role."}, {"post_id": 37647, "ts": "2026-07-30T15:15:43Z", "hours": 0.6447, "text": "New page at /account/appearance (AccountAppearancePage, sidebar entry between Password and API Keys) with a three way segmented control: Light, Dark, System. The choice is stored in localStorage under amelu.theme, so it is per device rather than on the customer record, and applies immediately without a Save button. app.css was already almost entirely token driven, so dark is one extra block: :root[data-theme=“dark”] restating –bg/–surface/–text/–border/–link plus a few –md-sys-color-* tokens. data-theme is only ever “light” or “dark” - “system” is resolved against prefers-color-scheme in ThemeContext and stamped on , which keeps duplicated media queries out of the stylesheet. An inline script in index.html stamps it before first paint, otherwise dark users got a flash of the light palette on every load. Four colours were hardcoded and had to become tokens: main’s background (#0043ce, the filler behind .container’s 28px border-top-left-radius) showed a bright blue wedge against the dark page, and md-filled-button plus .segmented-option-active/.button-pill had color: #ffffff, which is unreadable on dark’s lighter –link. Chrome blue is now –chrome-bg/–chrome-surface, navy #0a1f4a in dark. The select arrow SVG was #e8eaed, invisible on white - it was a leftover from an earlier dark theme, so it had been broken in light all along."}, {"post_id": 37514, "ts": "2026-07-30T10:03:11Z", "hours": 0.305, "text": "A reviewer said it was disappointing that you couldn’t self-host Amelu even for your own purpose. Fair point, so the license is now 1.1 with a Personal Use carve-out: run your own instance for free, for your own mailboxes and domains and your household’s, modify it, keep a fork. What still needs a separate license is the commercial half. Running it for a company or team, charging for access, or hosting mailboxes for anyone outside your household. The line is “am I the only one benefiting”, not “is money involved”. README and CONTRIBUTING both still said self-hosting was forbidden, so those moved with it. Self-hosting is unsupported though, you run your own Stalwart and your own Postgres."}, {"post_id": 34652, "ts": "2026-07-25T15:32:19Z", "hours": 2.5336, "text": "spent this day mostly on the dashboard and a couple of backend correctness bugs that had been quietly annoying me. biggest visible change: full re-theme of the app. it was still running the old dark theme from way earlier and never really matched the brand, so i redid it, brand blue topbar and sidebar, white logo, white content area, unified every single button in the app (there were like three different ad-hoc button styles floating around) to match the material “add a domain” style. sounds cosmetic but it’s the difference between something that looks like a demo and something that looks like a product. also split dns configuration into two pages instead of one giant table. now there’s an overview that just tells you at a glance what’s verified, what’s mismatched, what’s missing, with a one-click fix-via-cloudflare action, and a separate config page for people who actually want to see the raw records. most people just want the overview. fixed a genuinely annoying bug where creating a domain that already existed in stalwart (retry after a partial failure, whatever) threw a hard error instead of just adopting the existing record. now it checks for that specific failure mode and recovers instead of yelling at the user. also fixed the mailbox creation flow so it always shows you the password you ended up with, whether you typed it or generated it. previously it only showed you the password if it was auto-generated, so if you typed your own you had zero confirmation it actually saved what you thought it saved. small thing, but it was a real source of confusion. backend housekeeping: dropped a decommissioned mail node from the backup mx config (down to one backup node now, cluster’s simpler), and spent a chunk of time untangling some repo state that had gotten gnarly, stray worktree metadata that broke git status for the whole repo, plus reconciling a branch that had diverged after some readme edits landed upstream while i was working. not fun work, but the kind of thing that turns into a bigger mess the longer you leave it. feels like the product surface is converging. onward."}, {"post_id": 32095, "ts": "2026-07-21T00:50:14Z", "hours": 3.0144, "text": "been heads down on amelu again this week and it finally feels like a lot of the rough edges are getting sanded off.most of the work has been around making the actual management experience better instead of just getting features to exist. cleaned up a bunch of backend flows, simplified some of the api surface, and spent way too long chasing down all the little edge cases that only show up once you start using the product like a real customer instead of a developer. those are always the most annoying bugs because everything mostly works until it very much doesn’t.also spent some time tightening up the provisioning flow. there’s a lot of moving pieces between the dashboard, the mail server, dns, billing and background jobs, so a big focus was making those operations more reliable and idempotent. less “hope this finishes” and more “run it again and it still ends up in the right state.” not the kind of work anyone notices, but definitely the kind of work that keeps support tickets from existing.frontend got some love too. went through a bunch of the dashboard and polished the smaller interactions that had been bothering me for a while. loading states, empty states, navigation, forms, the usual death-by-a-thousand-paper-cuts stuff. it’s funny how a dozen tiny improvements end up making the whole app feel way more finished than one giant feature ever does.did a bit of housekeeping as well. cleaned up old code that survived longer than it should have, removed some duplicated logic, and generally tried to leave the codebase in a better state than i found it. always satisfying when deleting code feels like progress.still nowhere near “done” (i don’t think software ever is), but the project is definitely shifting from building the foundation to refining the experience. feels less like assembling infrastructure now and more like building something people could actually rely on every day.onward."}, {"post_id": 29409, "ts": "2026-07-16T10:40:32Z", "hours": 12.1731, "text": "ok so this week was a big one. been building amelu, which is basically an email hosting thing, self-hosted mail server (stalwart) under the hood but with a normal dashboard on top so people don’t have to touch config files to get a working inbox on their own domain. spent a good chunk of time on the backend. it’s go, talks to postgres directly (no orm, just raw sql, which honestly i like more than i expected). moved a bunch of stuff around cloudflare’s stack too, pages for the frontend, a worker sitting in front of the api, tunnel connecting into the actual server since i didn’t want to expose postgres or the mail server to the open internet. found and fixed a nasty bug where the worker was silently eating oauth redirects lol, that one took a minute to track down. also wired up stripe billing properly, rotated us off the test key onto live, which broke checkou biggest thing though: built a whole admin surface so we (ordnary staff) can actually manage amelu customers from inside helm, which is our internal company dashboard. domains, mailboxes, subscriptions, all of it, without needing to ssh into anything or run raw sql against prod. it’s hmac signed between the two services so every action gets attributed to whoever did it. also added a little workspace switcher in the sidebar so you can flip between “ordnary helm” and “ordnary amelu” like switching tabs. on top of that, built the actual marketing site from scratch. real screenshots, real pricing, wrote a whole custom license since amelu is source available but not like, fork-it-and-compete-with-us open source. also did the seo stuff properly, og images, structured data, all that. still a lot left to do but it feels like a real product now instead of a pile of scripts. onward."}]...
|
Title: Amelu, Managed Email for Your Domain by @St Title: Amelu, Managed Email for Your Domain by @Stijn | Stardance
Devlogs:
ok so this week was a big one. been building amelu, which is basically an email hosting thing, self-hosted mail server (stalwart) under the hood but with a normal dashboard on top so people don’t have to touch config files to get a working inbox on their own domain. spent a good chunk of time on the backend. it’s go, talks to postgres directly (no orm, just raw sql, which honestly i like more than i expected). moved a bunch of stuff around cloudflare’s stack too, pages for the frontend, a worker sitting in front of the api, tunnel connecting into the actual server since i didn’t want to expose postgres or the mail server to the open internet. found and fixed a nasty bug where the worker was silently eating oauth redirects lol, that one took a minute to track down. also wired up stripe billing properly, rotated us off the test key onto live, which broke checkou biggest thing though: built a whole admin surface so we (ordnary staff) can actually manage amelu customers from inside helm, which is our internal company dashboard. domains, mailboxes, subscriptions, all of it, without needing to ssh into anything or run raw sql against prod. it’s hmac signed between the two services so every action gets attributed to whoever did it. also added a little workspace switcher in the sidebar so you can flip between “ordnary helm” and “ordnary amelu” like switching tabs. on top of that, built the actual marketing site from scratch. real screenshots, real pricing, wrote a whole custom license since amelu is source available but not like, fork-it-and-compete-with-us open source. also did the seo stuff properly, og images, structured data, all that. still a lot left to do but it feels like a real product now instead of a pile of scripts. onward.
been heads down on amelu again this week and it finally feels like a lot of the rough edges are getting sanded off.most of the work has been around making the actual management experience better instead of just getting features to exist. cleaned up a bunch of backend flows, simplified some of the api surface, and spent way too long chasing down all the little edge cases that only show up once you start using the product like a real customer instead of a developer. those are always the most annoying bugs because everything mostly works until it very much doesn’t.also spent some time tightening up the provisioning flow. there’s a lot of moving pieces between the dashboard, the mail server, dns, billing and background jobs, so a big focus was making those operations more reliable and idempotent. less “hope this finishes” and more “run it again and it still ends up in the right state.” not the kind of work anyone notices, but definitely the kind of work that keeps support tickets from existing.frontend got some love too. went through a bunch of the dashboard and polished the smaller interactions that had been bothering me for a while. loading states, empty states, navigation, forms, the usual death-by-a-thousand-paper-cuts stuff. it’s funny how a dozen tiny improvements end up making the whole app feel way more finished than one giant feature ever does.did a bit of housekeeping as well. cleaned up old code that survived longer than it should have, removed some duplicated logic, and generally tried to leave the codebase in a better state than i found it. always satisfying when deleting code feels like progress.still nowhere near “done” (i don’t think software ever is), but the project is definitely shifting from building the foundation to refining the experience. feels less like assembling infrastructure now and more like building something people could actually rely on every day.onward.
spent this day mostly on the dashboard and a couple of backend correctness bugs that had been quietly annoying me. biggest visible change: full re-theme of the app. it was still running the old dark theme from way earlier and never really matched the brand, so i redid it, brand blue topbar and sidebar, white logo, white content area, unified every single button in the app (there were like three different ad-hoc button styles floating around) to match the material “add a domain” style. sounds cosmetic but it’s the difference between something that looks like a demo and something that looks like a product. also split dns configuration into two pages instead of one giant table. now there’s an overview that just tells you at a glance what’s verified, what’s mismatched, what’s missing, with a one-click fix-via-cloudflare action, and a separate config page for people who actually want to see the raw records. most people just want the overview. fixed a genuinely annoying bug where creating a domain that already existed in stalwart (retry after a partial failure, whatever) threw a hard error instead of just adopting the existing record. now it checks for that specific failure mode and recovers instead of yelling at the user. also fixed the mailbox creation flow so it always shows you the password you ended up with, whether you typed it or generated it. previously it only showed you the password if it was auto-generated, so if you typed your own you had zero confirmation it actually saved what you thought it saved. small thing, but it was a real source of confusion. backend housekeeping: dropped a decommissioned mail node from the backup mx config (down to one backup node now, cluster’s simpler), and spent a chunk of time untangling some repo state that had gotten gnarly, stray worktree metadata that broke git status for the whole repo, plus reconciling a branch that had diverged after some readme edits landed upstream while i was working. not fun work, but the kind of thing that turns into a bigger mess the longer you leave it. feels like the product surface is converging. onward.
A reviewer said it was disappointing that you couldn’t self-host Amelu even for your own purpose. Fair point, so the license is now 1.1 with a Personal Use carve-out: run your own instance for free, for your own mailboxes and domains and your household’s, modify it, keep a fork. What still needs a separate license is the commercial half. Running it for a company or team, charging for access, or hosting mailboxes for anyone outside your household. The line is “am I the only one benefiting”, not “is money involved”. README and CONTRIBUTING both still said self-hosting was forbidden, so those moved with it. Self-hosting is unsupported though, you run your own Stalwart and your own Postgres.
New page at /account/appearance (AccountAppearancePage, sidebar entry between Password and API Keys) with a three way segmented control: Light, Dark, System. The choice is stored in localStorage under amelu.theme, so it is per device rather than on the customer record, and applies immediately without a Save button. app.css was already almost entirely token driven, so dark is one extra block: :root[data-theme=“dark”] restating –bg/–surface/–text/–border/–link plus a few –md-sys-color-* tokens. data-theme is only ever “light” or “dark” - “system” is resolved against prefers-color-scheme in ThemeContext and stamped on , which keeps duplicated media queries out of the stylesheet. An inline script in index.html stamps it before first paint, otherwise dark users got a flash of the light palette on every load. Four colours were hardcoded and had to become tokens: main’s background (#0043ce, the filler behind .container’s 28px border-top-left-radius) showed a bright blue wedge against the dark page, and md-filled-button plus .segmented-option-active/.button-pill had color: #ffffff, which is unreadable on dark’s lighter –link. Chrome blue is now –chrome-bg/–chrome-surface, navy #0a1f4a in dark. The select arrow SVG was #e8eaed, invisible on white - it was a leftover from an earlier dark theme, so it had been broken in light all along.
/account/api-keys is a real page now. Create a key with a name, see prefix, created and last used, revoke it. The raw key is shown once in the response and never stored - api_keys (migration 0025) holds a SHA-256 hash, the same shape as sessions and organization_invitations. prefix is amelu_live_ plus 6 of the 43 random characters, purely so two keys can be told apart on screen. Keys authenticate through auth.Require, which now takes either the session cookie or Authorization: Bearer amelu_live_…, so every /api route accepted them the moment the middleware changed - no per-route work. A key acts as its owning customer with that customer’s organization role.
Reported as “login screen isn’t always immediately visible.” The actual bug was upstream of LoginPage entirely. Every real route, including “/”, sits behind ProtectedRoute (App.tsx), and ProtectedRoute returned null while AuthContext’s api.me() call was still pending on first load. Most visits land on “/”, not “/login” directly, so the sequence was: render nothing -> wait for /api/me -> get 401 -> Navigate to /login -> LoginPage finally renders. The blank stretch is proportional to how long /api/me takes (cold backend, slow network), which is why it only showed up “sometimes” - a fast response made the gap invisible. Fixed ProtectedRoute.tsx to render the same “Loading…” text used by AcceptInvitePage instead of null while loading is true. Not touched: LoginPage.module.css’s 0.4s fadeIn on .loginCard. That’s a deliberate entrance animation, not a bug - once the blank-screen race above is closed, it just reads as a normal fade-in.
Ships:
worked on polishing amelu this week. focused mostly on improving reliability, cleaning up the dashboard, fixing bugs, and making the overall experience smoother from onboarding to mailbox management. it’s starting to feel like a real product instead of just infrastructure glued together. if you’re trying it out, i’d love feedback on the onboarding flow and anything that feels confusing or rough around the edges....
|
1793407919.2485466
|
1793494319.2485466
|
|
12063
|
My first slack bot! by @Stijn | Stardance
|
Stijn
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @Stijn | Stardance
|
1793253033.2123253
|
1793857833.2123253
|
|
12064
|
BIT by @jaswanthsanjay | Stardance
|
jaswanthsanjay
|
0
|
109.6
|
0
|
[]
|
[{"post_id": 67181, "ts": "202 [{"post_id": 67181, "ts": "2026-09-13T07:43:23Z", "hours": 108.7961, "text": "I am working bit"}, {"post_id": 5493, "ts": "2026-06-09T09:25:43Z", "hours": 0.265, "text": "DevLog #2: On-Device Object Removal Mask Drawing UI Key Highlights from DevLog #2: State Management: Added drawing mask bitmap flows (maskImage), state clear handlers on resetting images/tools, and set the Hugging Face download endpoint URLs for all three vision models in ImageToolsViewModel.kt . Gesture-Drawing Canvas UI: Built the MaskDrawingSection in ImageToolsScreen.kt supporting real-time red transparent touch overlays, a brush size slider (10px to 100px), and quick actions to change the image or clear the mask. Mask Generation & Matching: Implemented background rendering that draws white strokes on a black canvas and scales it 1:1 to match the source image resolution for the LaMa inpainting engine. Build Verification: Successfully ran the Kotlin compiler task (BUILD SUCCESSFUL in 2m 17s)."}, {"post_id": 5482, "ts": "2026-06-09T09:05:32Z", "hours": 0.5389, "text": "Model Selection & Monitoring Real-time RAM Usage indicator Context: Power users need to know if loading a model will crash their device due to OOMs. Improvement: In HomeTopBar.kt , add a small, elegant badge next to the current model name showing the device’s current RAM consumption (e.g. [4.2 / 8.0 GB]), colored green, yellow, or red depending on memory pressure"}]...
|
Title: BIT by @jaswanthsanjay | Stardance
Devlogs Title: BIT by @jaswanthsanjay | Stardance
Devlogs:
Model Selection & Monitoring Real-time RAM Usage indicator Context: Power users need to know if loading a model will crash their device due to OOMs. Improvement: In HomeTopBar.kt , add a small, elegant badge next to the current model name showing the device’s current RAM consumption (e.g. [4.2 / 8.0 GB]), colored green, yellow, or red depending on memory pressure
DevLog #2: On-Device Object Removal Mask Drawing UI Key Highlights from DevLog #2: State Management: Added drawing mask bitmap flows (maskImage), state clear handlers on resetting images/tools, and set the Hugging Face download endpoint URLs for all three vision models in ImageToolsViewModel.kt . Gesture-Drawing Canvas UI: Built the MaskDrawingSection in ImageToolsScreen.kt supporting real-time red transparent touch overlays, a brush size slider (10px to 100px), and quick actions to change the image or clear the mask. Mask Generation & Matching: Implemented background rendering that draws white strokes on a black canvas and scales it 1:1 to match the source image resolution for the LaMa inpainting engine. Build Verification: Successfully ran the Kotlin compiler task (BUILD SUCCESSFUL in 2m 17s).
I am working bit...
|
1793170209.0585413
|
1793775009.0585413
|
|
12065
|
My first slack bot! by @rishithc | Stardance
|
rishithc
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @rishithc | Stardanc Title: My first slack bot! by @rishithc | Stardance...
|
1792918149.3427553
|
1793782149.3427553
|
|
12066
|
ComputeMarket by @Toaster496 | Stardance
|
Toaster496
|
1
|
1.0
|
10
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-17T11:41:52Z", "hours": 1.0, "multiplier": 7.94, "payout": 10, "blessing": "neutral", "text": "I’ve been building ComputeMarket, a permissionless GPU marketplace on BSC Testnet that lets anyone rent or provide compute using just an EVM wallet and no KYC. The system uses Solidity smart contracts for non-custodial escrow and a 25% protocol fee, a React web app for job management, and an Electron desktop client that spawns isolated Docker containers with GPU passthrough. I also deployed a live demo to GitHub Pages with stubbed demo accounts so people can test the UI flow instantly without installing Node, Docker, or MetaMask. The hardest part was getting cross-stack integration right without a centralized backend. Ethers v6 human-readable ABIs don’t support memory keywords, causing silent selector mismatches until I switched to standard JSON ABIs, and Docker GPU passthrough required exact NVIDIA Container Toolkit configuration that isn’t obvious from generic docs. I’m most proud of shipping a fully functional end-to-end flow where payments only release after verified results, all while keeping everything MIT licensed and verifiable on BSCScan Testnet. To test the real system, you’ll need Node.js 18+, Docker, and MetaMask configured for BSC Testnet (Chain ID 97); grab tBNB from the official faucet, clone the repo, deploy contracts with npm run deploy:testnet , and copy the output addresses into both the web app and desktop client .env files. For a quick look without setup, just visit the GitHub Pages demo to click through job creation and host registration flows immediately.", "repo": "https://github.com/Toaster496/Inavative-solutions", "demo": "https://toaster496.github.io/Inavative-solutions/"}]...
|
[{"post_id": 10572, "ts": "202 [{"post_id": 10572, "ts": "2026-06-17T11:39:17Z", "hours": 0.4886, "text": "I’ve been heads-down building ComputeMarket, a permissionless GPU marketplace on BSC Testnet that lets anyone rent or provide compute without KYC. The core stack is live: Solidity contracts handle escrow and a 25% protocol fee, a React web app connects to MetaMask, and an Electron desktop client spawns Docker containers with GPU passthrough for hosts. Most of the recent work has been ironing out integration quirks, like fixing ethers v6 ABI parsing issues and documenting the exact NVIDIA Container Toolkit setup required for GPU jobs to actually see the hardware.The system is now functional end-to-end on testnet, with verified contracts on BSCScan and deterministic local dev addresses so contributors don’t have to reconfigure environments after every restart. I’ve also been refining the host staking and dispute flow to balance security with usability, since non-custodial escrow means there’s no undo button for user errors. Next up is mainnet migration prep and improving the onboarding docs so new hosts can get running without digging through source code."}, {"post_id": 4629, "ts": "2026-06-08T00:46:02Z", "hours": 0.9706, "text": "Added quick default config’s for LLM’s"}]...
|
Title: ComputeMarket by @Toaster496 | Stardance
D Title: ComputeMarket by @Toaster496 | Stardance
Devlogs:
Added quick default config’s for LLM’s
I’ve been heads-down building ComputeMarket, a permissionless GPU marketplace on BSC Testnet that lets anyone rent or provide compute without KYC. The core stack is live: Solidity contracts handle escrow and a 25% protocol fee, a React web app connects to MetaMask, and an Electron desktop client spawns Docker containers with GPU passthrough for hosts. Most of the recent work has been ironing out integration quirks, like fixing ethers v6 ABI parsing issues and documenting the exact NVIDIA Container Toolkit setup required for GPU jobs to actually see the hardware.The system is now functional end-to-end on testnet, with verified contracts on BSCScan and deterministic local dev addresses so contributors don’t have to reconfigure environments after every restart. I’ve also been refining the host staking and dispute flow to balance security with usability, since non-custodial escrow means there’s no undo button for user errors. Next up is mainnet migration prep and improving the onboarding docs so new hosts can get running without digging through source code.
Ships:
I’ve been building ComputeMarket, a permissionless GPU marketplace on BSC Testnet that lets anyone rent or provide compute using just an EVM wallet and no KYC. The system uses Solidity smart contracts for non-custodial escrow and a 25% protocol fee, a React web app for job management, and an Electron desktop client that spawns isolated Docker containers with GPU passthrough. I also deployed a live demo to GitHub Pages with stubbed demo accounts so people can test the UI flow instantly without installing Node, Docker, or MetaMask. The hardest part was getting cross-stack integration right without a centralized backend. Ethers v6 human-readable ABIs don’t support memory keywords, causing silent selector mismatches until I switched to standard JSON ABIs, and Docker GPU passthrough required exact NVIDIA Container Toolkit configuration that isn’t obvious from generic docs. I’m most proud of shipping a fully functional end-to-end flow where payments only release after verified results, all while keeping everything MIT licensed and verifiable on BSCScan Testnet. To test the real system, you’ll need Node.js 18+, Docker, and MetaMask configured for BSC Testnet (Chain ID 97); grab tBNB from the official faucet, clone the repo, deploy contracts with npm run deploy:testnet , and copy the output addresses into both the web app and desktop client .env files. For a quick look without setup, just visit the GitHub Pages demo to click through job creation and host registration flows immediately....
|
1793505504.423738
|
1793591904.423738
|
|
12067
|
My awesome macropad! by @MariaF | Stardance
|
MariaF
|
0
|
3.29
|
0
|
[]
|
[{"post_id": 5644, "ts": "2026 [{"post_id": 5644, "ts": "2026-06-09T14:52:18Z", "hours": 0.9531, "text": "Devlog #2 continued working on the case design in Fusion 360. Fixed several issues with the PCB design, including correcting connections and reviewing the layout"}, {"post_id": 5385, "ts": "2026-06-09T04:03:49Z", "hours": 2.3414, "text": "Devlog #1 I’m trying to make my own macropad with 6 switches and 1 rotary encoder switch. This is my first time doing anything with pcbs but I was able to finish the pcb design and also work on the cad for the case. The case is almost done but i still have to create a lid for it👍"}]...
|
Title: My awesome macropad! by @MariaF | Stardance Title: My awesome macropad! by @MariaF | Stardance
Devlogs:
Devlog #1 I’m trying to make my own macropad with 6 switches and 1 rotary encoder switch. This is my first time doing anything with pcbs but I was able to finish the pcb design and also work on the cad for the case. The case is almost done but i still have to create a lid for it👍
Devlog #2 continued working on the case design in Fusion 360. Fixed several issues with the PCB design, including correcting connections and reviewing the layout...
|
1793170565.2586436
|
1793775365.2586436
|
|
12068
|
Untitled project by @veryveryhotfish | Stardance
|
veryveryhotfish
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled project by @veryveryhotfish | Star Title: Untitled project by @veryveryhotfish | Stardance...
|
1793170101.1863503
|
1793774901.1863503
|
|
12069
|
The NoisyPad by @SunnyTheTinkerer | Stardance
|
SunnyTheTinkerer
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: The NoisyPad by @SunnyTheTinkerer | Stardan Title: The NoisyPad by @SunnyTheTinkerer | Stardance...
|
1793504871.170999
|
1794109671.170999
|
|
12070
|
Untitled by @sami_bibs | Stardance
|
sami_bibs
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled by @sami_bibs | Stardance
|
1792766950.9988654
|
1793371750.9988654
|
|
12071
|
Matrix Encoder by @Silvend | Stardance
|
Silvend
|
1
|
11.0
|
131
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-24T01:53:10Z", "hours": 11.0, "multiplier": 12.37, "payout": 131, "blessing": "neutral", "text": "Hello, I am Eli, and I created a decoder/encoder that utilizes matrices! The encoder works by assigning each letter of your input text a numerical value. Then, the numbers are arranged into pairs like this: [8 5][12 12][15 0]. Finally, these small matrices are multiplied by a key matrix. This multiplication gives you the final result for the encoded message. The decoder works by taking numerical input and transforming it into a decoded message. The numerical input is also arranged into pairs. These pairs are then multiplied by the inverse of the key matrix. Finally, using the numbers you calculate for, you translate into their alphabetical equivalent. Did that make no sense? Do not worry! My website also includes a page explaining the process behind using matrices in cryptography. It does not only include text, but also little silly graphics to help you understand better. The goal isn’t just to have decoder, but also to spread my love of math to others!! Challenges: The biggest challenge I went through was that my code was not working according to my math. Instead of multiplying my pairs by the key matrix, it was multiplying them in the incorrect order. This caused the resulting output to be very off. Thankfully, was able to determine what to swap to make my encoder work. The best part: my favorite part of this project was creating the graphics. Even if they are not a major part of my project, they still add a cute whimsy to it!", "repo": "https://github.com/SILVENDz/matrixencoder", "demo": "https://silvendz.github.io/matrixencoder/"}]...
|
[{"post_id": 72502, "ts": "202 [{"post_id": 72502, "ts": "2026-09-23T02:54:19Z", "hours": 1.5458, "text": "Devlog #10: Hello! I have finalized the last couple of updates to my project. It’s been so fun! I added a new page that explains the basics of matrices(such as multiplication, finding the determinant, and solving for inverse matrices) in addition to the key page. Additionally, I just made a couple of CSS changes to the images, buttons, and lists in order for it to not look as cluttered. After this, my project should be ready to ship for approval!!"}, {"post_id": 68442, "ts": "2026-09-15T03:57:54Z", "hours": 0.6228, "text": "Devlog #9 : Hello! I apologize for the short devlog, I recently began my Third-Space project so it became kinda hard to manage both of my projects at the same time. Today, I focused mostly on simple CSS updates. I wanted to make my website a bit more “dynamic” even if the changes were minimal. You know, a little goes a long way. I just set up space for future explanations, made some dividers smaller by adding a scrolling feature, and added hover background-color change to all of the buttons!"}, {"post_id": 67739, "ts": "2026-09-13T23:31:01Z", "hours": 0.9078, "text": "Devlog #8 : Hello! I finalized the decoder!! Now, my website can both encode and decode messages. It took a while cuz I kept misspelling a bunch of stuff, but it works at last! Technically, my project is done, but I still want to add more information about matrices and cryptography for those who are also interested."}, {"post_id": 66935, "ts": "2026-09-12T22:12:45Z", "hours": 0.9322, "text": "Devlog #7: Hi! Today I revised my code to ensure that it was working according to my mathematical process. For my javascript, I just switched around the vector and matrix and defined spaces as zeros. Before, the values were not being multiplied in the correct order and a space was numerically identified as 27 rather than zero, which altered the final message by A LOT. After these fixes, the encoded message given by my code and by my math were the same!! (See images below) I’m really happy to see this project starting to work like intended. My next update will be on the decoder"}, {"post_id": 66309, "ts": "2026-09-12T02:17:19Z", "hours": 1.0292, "text": "Devlog #6: Hi! Today, I was able to get started on the actual encoder! I used a bit ai to help me understand the javascript code as well as where I could modify it in order to make it fit my matrix key. However, I ran the code through several trials and encoded the text manually, and it seems that there must be something wrong with my code. The response I got from my encoder and from my own math were pretty different… Therefore, I will try to look for what went wrong and hopefully fix it so that it works according to plan!! Once that is settled, I look forward to also adding a matrix decoder using inverse matrices."}, {"post_id": 65746, "ts": "2026-09-11T03:07:59Z", "hours": 1.3411, "text": "Devlog #5: Hi! Today I was able to work more on explaining how encoding with matrices actually works. Alongside the steps, I also included cute visual representations for the matrices. Currently, I am only missing one more visual for my explanation. I also made the containers scrollable (using overflow.y: auto) because it was slightlyyyy overwhelming without it. Now, this page is a little more organized. After I finish visually demonstrating how matrices are multiplied, I will move on to the actual encoder (the scary part) 。°(°¯᷄◠¯᷅°)°。 Also, don’t mind my kaomoji overuse.."}, {"post_id": 65149, "ts": "2026-09-10T02:47:34Z", "hours": 1.1711, "text": "Devlog #4: Hi again! Today, I was able to work more on explaining how matrices allow you to encode messages. So far, I only have my key for each letter as well as the matrix key I will be using to encode the messages. I will, more than likely, rearrange the way the images are placed on the website. Additionally, I’ll explain how messages are transformed into smaller matrices that are multiplied by the given matrix key. I’ll also explain how inverse matrices can be used to decode those messages!"}, {"post_id": 64583, "ts": "2026-09-09T02:52:11Z", "hours": 0.6175, "text": "Devlog #3: Hello! This is a tiny devlog, mainly just css updates, sorryyy. Basically, I updated the “How?” page in order for it to look like the home page. Now, both of them have marquees and placeholder divs for the input, output, explanation, and some images! I took away the lettering I did, I didn’t really like it that muchh (╥﹏╥). I will TRY to actually get started on the explanation tomorrow (beware, I’m very passionate about matrices)"}, {"post_id": 63985, "ts": "2026-09-08T02:32:42Z", "hours": 1.595, "text": "Deblog #2 : Hello again! Today, I did some text for the navigation section using Ibis paint and lapse to track my time. They came out a little lopsided, but it adds to personality of the website, in a way… I’m currently trying to make it cool using CSS. (yes, I’m trying to delay doing the actual javascript code for the encoder…) Just for detail, I did a marquee container in order for the welcome text to scroll. I plan on doing my matrix explanation next under the “HOW” section"}, {"post_id": 63328, "ts": "2026-09-07T02:56:23Z", "hours": 0.7994, "text": "Devlog #1: Hello! This is a new project I am working on called “Matrix Encoder.” The goal is for users to be able to input any message they wish to encode and the software will turn it into a list of numbers. Currently, I only plan to make an encoder, but hopefully I am able to also include decoding capabilities. So far, I started with the website layout using HTML and CSS. I included two pages using the nav tag. One will be the actual encoder and the second one will be a (NOT)small explanation of how matrices are used in cryptography! I look forward to creating art that fits the website’s terminal-esque aesthetic!"}]...
|
Title: Matrix Encoder by @Silvend | Stardance
Dev Title: Matrix Encoder by @Silvend | Stardance
Devlogs:
Devlog #1: Hello! This is a new project I am working on called “Matrix Encoder.” The goal is for users to be able to input any message they wish to encode and the software will turn it into a list of numbers. Currently, I only plan to make an encoder, but hopefully I am able to also include decoding capabilities. So far, I started with the website layout using HTML and CSS. I included two pages using the nav tag. One will be the actual encoder and the second one will be a (NOT)small explanation of how matrices are used in cryptography! I look forward to creating art that fits the website’s terminal-esque aesthetic!
Deblog #2 : Hello again! Today, I did some text for the navigation section using Ibis paint and lapse to track my time. They came out a little lopsided, but it adds to personality of the website, in a way… I’m currently trying to make it cool using CSS. (yes, I’m trying to delay doing the actual javascript code for the encoder…) Just for detail, I did a marquee container in order for the welcome text to scroll. I plan on doing my matrix explanation next under the “HOW” section
Devlog #3: Hello! This is a tiny devlog, mainly just css updates, sorryyy. Basically, I updated the “How?” page in order for it to look like the home page. Now, both of them have marquees and placeholder divs for the input, output, explanation, and some images! I took away the lettering I did, I didn’t really like it that muchh (╥﹏╥). I will TRY to actually get started on the explanation tomorrow (beware, I’m very passionate about matrices)
Devlog #4: Hi again! Today, I was able to work more on explaining how matrices allow you to encode messages. So far, I only have my key for each letter as well as the matrix key I will be using to encode the messages. I will, more than likely, rearrange the way the images are placed on the website. Additionally, I’ll explain how messages are transformed into smaller matrices that are multiplied by the given matrix key. I’ll also explain how inverse matrices can be used to decode those messages!
Devlog #5: Hi! Today I was able to work more on explaining how encoding with matrices actually works. Alongside the steps, I also included cute visual representations for the matrices. Currently, I am only missing one more visual for my explanation. I also made the containers scrollable (using overflow.y: auto) because it was slightlyyyy overwhelming without it. Now, this page is a little more organized. After I finish visually demonstrating how matrices are multiplied, I will move on to the actual encoder (the scary part) 。°(°¯᷄◠¯᷅°)°。 Also, don’t mind my kaomoji overuse..
Devlog #6: Hi! Today, I was able to get started on the actual encoder! I used a bit ai to help me understand the javascript code as well as where I could modify it in order to make it fit my matrix key. However, I ran the code through several trials and encoded the text manually, and it seems that there must be something wrong with my code. The response I got from my encoder and from my own math were pretty different… Therefore, I will try to look for what went wrong and hopefully fix it so that it works according to plan!! Once that is settled, I look forward to also adding a matrix decoder using inverse matrices.
Devlog #7: Hi! Today I revised my code to ensure that it was working according to my mathematical process. For my javascript, I just switched around the vector and matrix and defined spaces as zeros. Before, the values were not being multiplied in the correct order and a space was numerically identified as 27 rather than zero, which altered the final message by A LOT. After these fixes, the encoded message given by my code and by my math were the same!! (See images below) I’m really happy to see this project starting to work like intended. My next update will be on the decoder
Devlog #8 : Hello! I finalized the decoder!! Now, my website can both encode and decode messages. It took a while cuz I kept misspelling a bunch of stuff, but it works at last! Technically, my project is done, but I still want to add more information about matrices and cryptography for those who are also interested.
Devlog #9 : Hello! I apologize for the short devlog, I recently began my Third-Space project so it became kinda hard to manage both of my projects at the same time. Today, I focused mostly on simple CSS updates. I wanted to make my website a bit more “dynamic” even if the changes were minimal. You know, a little goes a long way. I just set up space for future explanations, made some dividers smaller by adding a scrolling feature, and added hover background-color change to all of the buttons!
Devlog #10: Hello! I have finalized the last couple of updates to my project. It’s been so fun! I added a new page that explains the basics of matrices(such as multiplication, finding the determinant, and solving for inverse matrices) in addition to the key page. Additionally, I just made a couple of CSS changes to the images, buttons, and lists in order for it to not look as cluttered. After this, my project should be ready to ship for approval!!
Ships:
Hello, I am Eli, and I created a decoder/encoder that utilizes matrices! The encoder works by assigning each letter of your input text a numerical value. Then, the numbers are arranged into pairs like this: [8 5][12 12][15 0]. Finally, these small matrices are multiplied by a key matrix. This multiplication gives you the final result for the encoded message. The decoder works by taking numerical input and transforming it into a decoded message. The numerical input is also arranged into pairs. These pairs are then multiplied by the inverse of the key matrix. Finally, using the numbers you calculate for, you translate into their alphabetical equivalent. Did that make no sense? Do not worry! My website also includes a page explaining the process behind using matrices in cryptography. It does not only include text, but also little silly graphics to help you understand better. The goal isn’t just to have decoder, but also to spread my love of math to others!! Challenges: The biggest challenge I went through was that my code was not working according to my math. Instead of multiplying my pairs by the key matrix, it was multiplying them in the incorrect order. This caused the resulting output to be very off. Thankfully, was able to determine what to swap to make my encoder work. The best part: my favorite part of this project was creating the graphics. Even if they are not a major part of my project, they still add a cute whimsy to it!...
|
1793339298.9634924
|
1793425698.9634924
|
|
12072
|
Personal Blog by @Silvend | Stardance
|
Silvend
|
1
|
20.0
|
274
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-06T01:00:27Z", "hours": 20.0, "multiplier": 13.88, "payout": 274, "blessing": "neutral", "text": "Hello! I made a personal website in order to share some of my interests and personal projects with others who might be interested. It includes information about my likes and hobbies and other things that make me “me”! The most challenging part of this project was aligning my content, specially buttons and images, using CSS. I’m really proud of how the actual CSS turned out. I liked including different color pallets per page and other decorating elements!!", "repo": "https://github.com/SILVENDz/blog", "demo": "https://silvendz.neocities.org"}]...
|
[{"post_id": 62565, "ts": "202 [{"post_id": 62565, "ts": "2026-09-06T00:43:35Z", "hours": 1.4653, "text": "Uploaded my site to neocities in order to have a demo link! I did some entries, such as an embedded link to one of my other projects. I improved some of the images by resizing and grouping them. Additionally, I updated my “Currently doing” section under the more tab."}, {"post_id": 48606, "ts": "2026-08-17T02:18:10Z", "hours": 4.3878, "text": "I started adding some of my website pages! The first one is regarding photography, I put it under hobbies. I added some images plus a comment section on the bottom using an external widget. I’m currently re-working my home page because I wanted to make my carousel with manga images actually seem infinite. It’s currently only repeating twice and then glitching, so it is something I have to work on. I might have to duplicate the container until it appears smooth. I’ve been having problems with my VS code crashing after 5 minutes of usage, but I am trying to get as much work into my website before it crashes."}, {"post_id": 10354, "ts": "2026-06-17T01:09:16Z", "hours": 5.41, "text": "I replaced the temporary images with an actual ‘About Me’ page. I made it so that the section is scrollable. I also linked a guest book as a button, which is something I found super cute! At the bottom of my home page is the slides I wanted to add. It wasn’t a big priority, just something I wanted to do for fun, but it still took so long to actually get it to work without glitching out or not sliding at all. To my more page I added a currently doing list, which will have what I am working on, reading, or watching. I also linked a mini Spotify playlist I did, just for fun and to make the website a bit more interactive. I’ll rework the layout for my blog page, and start writing some entries. My goal is to make it as interactive as possible with more links, comment sections, and maybe just silly addition to the website!"}, {"post_id": 6588, "ts": "2026-06-11T02:06:29Z", "hours": 2.8542, "text": "I have the bare bones right now for the actual blog section, but I’ll start working on the actual content soon. I have a couple of thing that I would like to talk about in here. I also plan on adding more details such as marquees and carousel-like images. For now, my next step is to work on adding comment sections to each separate blog and also adding a guest book to my home page."}, {"post_id": 5274, "ts": "2026-06-09T00:00:01Z", "hours": 4.8047, "text": "She is looking much less rough compared to last night.. I’ll start working on the actual blog part soon, I just wanted to get my home page layout done. The cat images are temporary unless I decide other wise (except the meowls, they’re 100% staying there :D) It’s not noticeable since it’s a screenshot, but I added a marquee that says “Be someone’s rainbow today!” It has to be my favorite thing out of my home page, I actually managed to make it slide. I will add a guest book button at the bottom of the home page, as well as a couple of banners or manga panels I really like and want to share with the world (it’s not a huge priority right now tho) I still struggle slightly with CSS, I am a painfully obvious beginner, but I am slowly getting the hang of it, the layout came out pretty cute. I’ll have a different color scheme for each page."}, {"post_id": 4675, "ts": "2026-06-08T02:26:19Z", "hours": 0.7883, "text": "She is looking rough right now. I believe this is my second or third time working with html and css, so it is really a work in process… I’ll continue to work on it and improve it as much as I can (plus add the actual blog stuff) It will just be a huge nerd log. Right now I just have the name, a background image, and the little meowls. My priority is to get content in fiist before beginning to elaborate in the decoration."}]...
|
Title: Personal Blog by @Silvend | Stardance
Devl Title: Personal Blog by @Silvend | Stardance
Devlogs:
She is looking rough right now. I believe this is my second or third time working with html and css, so it is really a work in process… I’ll continue to work on it and improve it as much as I can (plus add the actual blog stuff) It will just be a huge nerd log. Right now I just have the name, a background image, and the little meowls. My priority is to get content in fiist before beginning to elaborate in the decoration.
She is looking much less rough compared to last night.. I’ll start working on the actual blog part soon, I just wanted to get my home page layout done. The cat images are temporary unless I decide other wise (except the meowls, they’re 100% staying there :D) It’s not noticeable since it’s a screenshot, but I added a marquee that says “Be someone’s rainbow today!” It has to be my favorite thing out of my home page, I actually managed to make it slide. I will add a guest book button at the bottom of the home page, as well as a couple of banners or manga panels I really like and want to share with the world (it’s not a huge priority right now tho) I still struggle slightly with CSS, I am a painfully obvious beginner, but I am slowly getting the hang of it, the layout came out pretty cute. I’ll have a different color scheme for each page.
I have the bare bones right now for the actual blog section, but I’ll start working on the actual content soon. I have a couple of thing that I would like to talk about in here. I also plan on adding more details such as marquees and carousel-like images. For now, my next step is to work on adding comment sections to each separate blog and also adding a guest book to my home page.
I replaced the temporary images with an actual ‘About Me’ page. I made it so that the section is scrollable. I also linked a guest book as a button, which is something I found super cute! At the bottom of my home page is the slides I wanted to add. It wasn’t a big priority, just something I wanted to do for fun, but it still took so long to actually get it to work without glitching out or not sliding at all. To my more page I added a currently doing list, which will have what I am working on, reading, or watching. I also linked a mini Spotify playlist I did, just for fun and to make the website a bit more interactive. I’ll rework the layout for my blog page, and start writing some entries. My goal is to make it as interactive as possible with more links, comment sections, and maybe just silly addition to the website!
I started adding some of my website pages! The first one is regarding photography, I put it under hobbies. I added some images plus a comment section on the bottom using an external widget. I’m currently re-working my home page because I wanted to make my carousel with manga images actually seem infinite. It’s currently only repeating twice and then glitching, so it is something I have to work on. I might have to duplicate the container until it appears smooth. I’ve been having problems with my VS code crashing after 5 minutes of usage, but I am trying to get as much work into my website before it crashes.
Uploaded my site to neocities in order to have a demo link! I did some entries, such as an embedded link to one of my other projects. I improved some of the images by resizing and grouping them. Additionally, I updated my “Currently doing” section under the more tab.
Ships:
Hello! I made a personal website in order to share some of my interests and personal projects with others who might be interested. It includes information about my likes and hobbies and other things that make me “me”! The most challenging part of this project was aligning my content, specially buttons and images, using CSS. I’m really proud of how the actual CSS turned out. I liked including different color pallets per page and other decorating elements!!...
|
1793336135.2819467
|
1793422535.2819467
|
|
12073
|
Untitled by @John_G | Stardance
|
John_G
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled by @John_G | Stardance
|
1792792131.4129946
|
1793396931.4129946
|
|
12074
|
My awesome macropad! by @_heba_ | Stardance
|
_heba_
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @_heba_ | Stardance
|
1793462068.1145084
|
1794066868.1145084
|
|
12075
|
My first slack bot! by @rajiumu544 | Stardance
|
rajiumu544
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @rajiumu544 | Starda Title: My first slack bot! by @rajiumu544 | Stardance...
|
1793332452.0927365
|
1793937252.0927365
|
|
12076
|
My awesome macropad! by @jaid3264 | Stardance
|
jaid3264
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @jaid3264 | Stardan Title: My awesome macropad! by @jaid3264 | Stardance...
|
1792770544.6272466
|
1793375344.6272466
|
|
12077
|
My awesome macropad! by @Advita | Stardance
|
Advita
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @Advita | Stardance
|
1793253164.5410564
|
1793857964.5410564
|
|
12078
|
HackPad by @nevetsgaming | Stardance
|
nevetsgaming
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: HackPad by @nevetsgaming | Stardance
|
1793368043.4439728
|
1793972843.4439728
|
|
12079
|
My awesome macropad! by @grayson_bwb | Stardance
|
grayson_bwb
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @grayson_bwb | Star Title: My awesome macropad! by @grayson_bwb | Stardance...
|
1793425783.2285895
|
1794030583.2285895
|
|
12080
|
FNFPad by @martinho4364 | Stardance
|
martinho4364
|
0
|
1.21
|
0
|
[]
|
[{"post_id": 5434, "ts": "2026 [{"post_id": 5434, "ts": "2026-06-09T06:25:53Z", "hours": 0.4514, "text": "Finished PCB Design Finally added all the correct footprints into the design and arranged them. I had to move the keys closer together and have one slightly over the edge so that I could fit five keys in a row within the 100mm constraint. The wiring is really messy but it should work. If anyone sees some big issue with my PCB please lmk. idk why but I’ve been getting a bunch of errors on the LEDS when I ran the design inspector, so if anyone knows how to solve these, also lmk."}, {"post_id": 5393, "ts": "2026-06-09T04:34:04Z", "hours": 0.7556, "text": "FNFPad Schematic The schematics for my Hackpad are completed. I’ve never used KiCAD before, so let me know if there are issues. I ended up using a footprint from an online library for the keycaps because the footprint in the example repo wasn’t included in the resources."}]...
|
Title: FNFPad by @martinho4364 | Stardance
Devlog Title: FNFPad by @martinho4364 | Stardance
Devlogs:
FNFPad Schematic The schematics for my Hackpad are completed. I’ve never used KiCAD before, so let me know if there are issues. I ended up using a footprint from an online library for the keycaps because the footprint in the example repo wasn’t included in the resources.
Finished PCB Design Finally added all the correct footprints into the design and arranged them. I had to move the keys closer together and have one slightly over the edge so that I could fit five keys in a row within the 100mm constraint. The wiring is really messy but it should work. If anyone sees some big issue with my PCB please lmk. idk why but I’ve been getting a bunch of errors on the LEDS when I ran the design inspector, so if anyone knows how to solve these, also lmk....
|
1793307481.1146646
|
1793912281.1146646
|
|
12081
|
吃音の特徴を自己理解する by @go10mitsuki | Stardance
|
go10mitsuki
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: 吃音の特徴を自己理解する by @go10mitsuki | Stardance
|
1793249382.2818127
|
1793854182.2818127
|
|
12082
|
Tracker by @jucavoli | Stardance
|
jucavoli
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Tracker by @jucavoli | Stardance
|
1793465785.0985394
|
1794070585.0985394
|
|
12083
|
My awesome macropad! by @noor_builds | Stardance
|
noor_builds
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @noor_builds | Star Title: My awesome macropad! by @noor_builds | Stardance...
|
1793278476.4972062
|
1793883276.4972062
|
|
12084
|
fraktalized by @swedishsplidney | Stardance
|
swedishsplidney
|
1
|
70.0
|
1361
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-02T06:36:27Z", "hours": 70.0, "multiplier": 19.43, "payout": 1361, "blessing": "neutral", "text": "fraktalized ship: fraktalized is an an open-source, cross-platform, ultra smooth real time fractal explorer built using a hybrid architecture of Qt6 (QML/C++) and openGL (GLSL 330 core / 4.3 compute shaders). fraktalized currently has 10 fractal sets: mandelbrot set: the classic fractal set julia set: cool swirly stuff, complete with adjustable constant coords burning ship set: cool pointy stuff newton set: kinda spidery looking buddhabrot: like the mandelbrot but galaxy looking anti-buddhabrot: reverse buddhabrot barnsley fern: looks very naturey mandelbulb: like the mandelbrot but 3d menger sponge: cube, but with infinite* surface ar a icebox: spiky box! there is both a set of 3 precompiled binaries on the github and a demo video: https://youtu.be/x9lH_pPzvbw", "repo": "https://github.com/swedishsplidney/fraktalized", "demo": "https://github.com/swedishsplidney/fraktalized/releases"}]...
|
[{"post_id": 20591, "ts": "202 [{"post_id": 20591, "ts": "2026-07-02T06:34:20Z", "hours": 0.7767, "text": "extra ui tweaks and readme updates added some images of 3d fractals to the readme, did some general ui tweaks, and some idiot proofing now its time to ship!!!"}, {"post_id": 20559, "ts": "2026-07-02T05:22:07Z", "hours": 4.9961, "text": "probably the final commit :o most of this was spent idiot proofing, going through all my code and making sure that everything works well and actually makes sense i also updated the tutorial to be a bit better a major amount of time was spent figuring out how to get windows to actually compile i swear windows is the bane of my entire existence its not reflected in the devlog hours, but i did also make a demo video to show off some of the features mystery link other than that, it was mostly ui and readme updates :)"}, {"post_id": 19733, "ts": "2026-07-01T03:52:28Z", "hours": 9.76, "text": "i set up a full tutorial system the hard part was doing the whole thing where it darkens everywhere except the thing the tutorial is yapping about… also, right now, the tutorial is really really easy to break, so i might have to implement some idiot proofing or something to be honest, adding the whole darkening thing was really simple, but actually getting it to work was really annoying for some reason. it essentially just gets the xy coord for each corner of the specified element, and then makes a dark block everywhere except inside those 4 corners. also, i made it so the tutorial saves to the same json file as the preset manager, so that you only have to do the tutorial one time and it doesnt just get in your way every single time you open it. aside from that, most of this time was spent trying to figure out how to get it to automatically build on github when i push a release. i did this successfully for my other project, but the problem so far has been linking the qml for the binaries on the different platforms. specifically, windows just really really doesnt want to behave, its starting to feel like getting a discord mod to eat anything other than gamersupps and pizza rolls overall, maybe getting close to shipping? it honestly just depends on how much more features and idiot proofing i want to add if this sounds interesting, check out (and star ) the repo here"}, {"post_id": 14222, "ts": "2026-06-23T07:20:06Z", "hours": 8.5239, "text": "3d wasd controls (wowie zowie) the math for this was super hard, especially because i want it to work alongside with the other classic orbit style controls lol i ended up adding a toggle in the sidebar, which felt like the cleanest way to do it, but did mean doing more qml also, i pretty much had to guess when setting up all my vectors so i spent like 15 presidential terms messing around with positives and negatives and 1.0f / 0.0f everywhere until doing stuff in the right directions actually did the right thing, which was hard also had to implement auto horizon correction so things d also added some live 3d settings, which took a while, but now theres a live slider for both the mandelbulb power (exponent), and the brightness (which was hard) and, theres now a math section in the readme, which i spent a lot of time pondering while making, but if you’re at all, check out the “mathy information” section of the readme https://github.com/swedishsplidney/fraktalized (also star the repo ) exploring the mandelbulb in wasd mode genuinely feels like exploring an alien planet in a spaceship, lowk super fun"}, {"post_id": 11771, "ts": "2026-06-19T04:47:05Z", "hours": 8.7492, "text": "3d is finally working!!!!! i have been having an epic samurai battle against opengl and 3d fractal math for what feels like forever, but it finally works, and I have a working 3d mandelbulb explorer!!! i have actually been working on getting 3d working for the past multiple devlogs, it just took me sooo incredibly long to actually figure it out that i never really mentioned it. the longest step was figuring out the controls. when i first started working on the 3d mode, then it was literally just a cube, and i had to figure out a good way to be able to rotate it the hard part wasn’t even trying to figure out how to do the math to rotate the vertices, the hard part was trying to figure out how the thing should actually rotate what i figured out how to do is having an orbit style camera, where dragging side to side rotates the model along its own local yaw, and then dragging up and down changes the camera’s global pitch. this way the model’s roll never changes (because that makes the model look tilted or skewed). i had to spend an embarassingly long amount of time trying to figure the logic of an orbital camera… the camera is also slerped (like lerping but 3d) so it feels smooth color mappping on the 3d was actually surprisingly easy, i just did it in a very similar way to the 2d escape time ones, except with an extra dimension (its not as hard as it sounds) one other major change was when i added the ability to add and remove gradient stops. this way, instead of always having 4 gradient stops, you can have anywhere from 2 to 16 stops, for more customizeability. also, the readme is updated, go check it out! (and star the repo ) https://github.com/swedishsplidney/fraktalized below: video demonstrating the 3d and camera system"}, {"post_id": 10469, "ts": "2026-06-17T06:25:16Z", "hours": 7.9178, "text": "added iterative function system fractals basically, iterative function fractals are fractals that start at a set point, then repeatedly apply the same affine transformations (scaling, rotating, shifting), making an infinitely repeating, self-same fractal. as far as actually getting this setup and working, i had to make a whole new compute shader that involves a lot of math and for loops to iterate forever getting ifs fractals to render was a particular challenge, and i almost exploded my gpu and accidentally caused a vram cache overflow causing my display output to break. in the end, it turns out the trick was to not send 4,000,000 worker threads to the gpu all at once, and to do them 3-4 at a time also finally got working on the whole 3d system, which will likely take forever, and completely does not work right now, but hopefully i will have figured out how in the world to get working 3d stuff by the next devlog 🙏 check out the github! -> https://github.com/swedishsplidney/fraktalized image: barnsley fern, rendered in 4k"}, {"post_id": 9130, "ts": "2026-06-15T08:45:47Z", "hours": 6.9228, "text": "added support for trajectory based fractals most people know the normal fractals (the ones ive covered so far), such as the mandelbrot and julia sets, that test wether or not a point escapes and maps how long it takes to escape trajectory fractals look really cool, and the difference is that they map the trajectory that 𝑧 takes on its way out, while incrementing a counter for every pixel it steps on. getting this to work was a lot of work, and required to write a whole new shader file from scratch, except instead of a .frag/.vert combo, it was a compute shader (.glsl). instead of simply running a loop and writing color data to each independent pixel like with the escape-time fractals do, the trajectory shader has to pick a random (x, y) starting coord, and then track its orbit across the complex plane, writing data to random pixels as it goes. this required me to use atomics, because if 2 orbits cross, instead of one overwriting each other, you have to use imageAtomicAdd() to make sure that the brightness stacks up. one other issue was that at first it was super grainy, which was fixed by assigning each gpu thread 50 random sampled to increase detail substantially. i also nearly exploded my gpu because i accidentally had the render system run 50+ compute sequences at the same time, so i now have each compute wait for the one before it to finish in other happenings, there is now a preset feature that writes your current color setup set, zoom, center, etc. to a JSON file to be loaded later also added the newton set, but its a less interesting escape-time fractal, so not covered in as much detail image: buddhabrot set, rendered at 4k"}, {"post_id": 7949, "ts": "2026-06-13T08:09:58Z", "hours": 5.9558, "text": "added the burning ship fractal, anti aliasing, and completely overhauled the color system to use a gradient input instead of one color. burning ship fractal: so the burning ship fractal is made when you take the mandelbrot equation, but you take the absolute value of the real and imaginary parts before squaring, basically destroying the symmetry: 𝑧ₙ₊₁ = (|𝑅𝑒(𝑍ₙ)| + 𝑖|𝐼𝑚(𝑍ₙ)|)² + 𝐶 this makes it look super duper cool (as seen in the image below) gradient-based color mapping so before, the color was just calculated using one color tint and boosting brightness quadratically near the edges. now, it takes in a gradient (calculated between 4 color inputs), and does the same color mapping but essentially moves what color it uses as the iterations increase. the hard part is figuring out how to get a good input system in qml with this, but I was able to do it using some colordialogues and a lot of trial and error. the new color input system is kinda like creating a gradient in photoshop or illustrator, with 4 little handles that you can drag across and change their colors. anti aliasing also added anti aliasing, or more specifically, ssaa (super sampling anti aliasing), with a selector to choose between off, 2x, and 3x so basically it renders the entire fractal at a higher resolution (2x or 3x) and then averages the color of every pixel block (2x2 or 3x3 respectively) and then displays that. this results in a much, much smoother image at the cost of much higher resource usage. while i was screwing around with dynamic resolutions, i also added a resolution slider to change the rendered resolution to anywhere from 25 to 150% of the window resolution. turning it up past 100% basically just gives the ssaa architecture more information to work with, making it even smoother my graphics card isnt very powerful and it basically stays pinned at 99% usage and 100% clock when i have anti aliasing turned on and the iterations above like 200. image: burning ship fractal, rendered at 4k with 150% resolution scale and 3x ssaa"}, {"post_id": 6713, "ts": "2026-06-11T07:42:55Z", "hours": 4.1331, "text": "now has a render to file feature basically you just import a custom resolution and it takes your current center and renders at that resolution with your current parameters. the hard part is that it uses a completely different framebuffer object from the regular viewport. while testing i did almost explode my gpu when pushing the resolution to almost 32k, which is kinda unreasonable, but this was a good opportunity to add a tiled render system basically it just splits up the image into 2000x2000 pixel sections and renders them, and then it does some math to position it the weird thing is that opengl is kinda goofy and likes to mirror stuff for some reason (literally no idea why) so theres some math to render it in reverse (which means that its actually correct) also increased the rendering to 64 bit, meaning it is now 536,870,912 times more accurate compared to the 32 bit one, and also means you can zoom in more than twice as far with better quality, but it is much more gpu intensive… this image is one of the cooler ones i rendered out at 4k, it kinda looks like colliding galaxies or something"}, {"post_id": 6139, "ts": "2026-06-10T10:13:47Z", "hours": 6.7264, "text": "is now fully interactive and honestly feels super great, especially compared to my last devlog where it was static and unchanging entirely added working real-time render parameters such as panning and zooming with mouse, and custom iteration setup and color setup on the sidebar. lots and lots and lots of quality of life features, such as: the reset button for if you get lost adjustable iteration slider min/max direct text enter for iterations hideable iteration min/max menu camera smoothing color clamping so it doesnt look deep fried also added the julia set (which is what is in the image) so basically, both the mandelbrot and julia sets are the same quadratic recurrence relation on the complex plane: 𝑧ₙ₊₁ = (𝑧ₙ)² + 𝑐 the main difference is that you start at the origin (𝑧₀ = 0) and change the constant 𝑐 for every single pixel on the screen based on its coordinates, but with the julia set the constant 𝑐 is the same everywhere, and the starting point 𝑧₀ changes based on the pixel’s coordinate, so you are testing how different starting points react to the same gravitational pull of 𝑐. the nice thing is that you can change the constant 𝑐 in the julia set, and completely change how the fractal looks, so i added that as an input field too looks really really cool lowk"}, {"post_id": 4855, "ts": "2026-06-08T12:00:00Z", "hours": 5.5808, "text": "working mandelbrot fractal rendering through opengl!!!!! using qt/qml and raw opengl shaders together was a mistake they really dont like working together and i had to spend 3 straight hours (its 5:42am at the time of this devlog) debugging an eternal tug of war between qt and opengl because qt kept overwriting what i wanted to happen the worst part is that an opengl fragment shader cant really debug to the log so if something is on fire over there i just kinda have to guess to fix it eventually i just gave up and switched to framebuffer objects, which i lowk should have done from the start the funnest part was actually writing the equations for the mandelbrot set lol (it also looks super pretty): so basically the Mandelbrot set is the set of all complex parameters 𝑐 ∈ ℂ for which the orbit of 𝑧₀ = 0 under quadratic recurrence remains bounded. in the shader, i just separate its multiplication into real and imaginary components: Re(𝑧ₙ₊₁) = 𝑥² + 𝑦² + Re(𝑐) Im(𝑧ₙ₊₁) = 2𝑥𝑦 + Im(𝑐) also infinity is impossible so the iterations are capped at 100 sorry if this was too nerdy or long lmao"}]...
|
Title: fraktalized by @swedishsplidney | Stardance Title: fraktalized by @swedishsplidney | Stardance
Devlogs:
working mandelbrot fractal rendering through opengl!!!!! using qt/qml and raw opengl shaders together was a mistake they really dont like working together and i had to spend 3 straight hours (its 5:42am at the time of this devlog) debugging an eternal tug of war between qt and opengl because qt kept overwriting what i wanted to happen the worst part is that an opengl fragment shader cant really debug to the log so if something is on fire over there i just kinda have to guess to fix it eventually i just gave up and switched to framebuffer objects, which i lowk should have done from the start the funnest part was actually writing the equations for the mandelbrot set lol (it also looks super pretty): so basically the Mandelbrot set is the set of all complex parameters 𝑐 ∈ ℂ for which the orbit of 𝑧₀ = 0 under quadratic recurrence remains bounded. in the shader, i just separate its multiplication into real and imaginary components: Re(𝑧ₙ₊₁) = 𝑥² + 𝑦² + Re(𝑐) Im(𝑧ₙ₊₁) = 2𝑥𝑦 + Im(𝑐) also infinity is impossible so the iterations are capped at 100 sorry if this was too nerdy or long lmao
is now fully interactive and honestly feels super great, especially compared to my last devlog where it was static and unchanging entirely added working real-time render parameters such as panning and zooming with mouse, and custom iteration setup and color setup on the sidebar. lots and lots and lots of quality of life features, such as: the reset button for if you get lost adjustable iteration slider min/max direct text enter for iterations hideable iteration min/max menu camera smoothing color clamping so it doesnt look deep fried also added the julia set (which is what is in the image) so basically, both the mandelbrot and julia sets are the same quadratic recurrence relation on the complex plane: 𝑧ₙ₊₁ = (𝑧ₙ)² + 𝑐 the main difference is that you start at the origin (𝑧₀ = 0) and change the constant 𝑐 for every single pixel on the screen based on its coordinates, but with the julia set the constant 𝑐 is the same everywhere, and the starting point 𝑧₀ changes based on the pixel’s coordinate, so you are testing how different starting points react to the same gravitational pull of 𝑐. the nice thing is that you can change the constant 𝑐 in the julia set, and completely change how the fractal looks, so i added that as an input field too looks really really cool lowk
now has a render to file feature basically you just import a custom resolution and it takes your current center and renders at that resolution with your current parameters. the hard part is that it uses a completely different framebuffer object from the regular viewport. while testing i did almost explode my gpu when pushing the resolution to almost 32k, which is kinda unreasonable, but this was a good opportunity to add a tiled render system basically it just splits up the image into 2000x2000 pixel sections and renders them, and then it does some math to position it the weird thing is that opengl is kinda goofy and likes to mirror stuff for some reason (literally no idea why) so theres some math to render it in reverse (which means that its actually correct) also increased the rendering to 64 bit, meaning it is now 536,870,912 times more accurate compared to the 32 bit one, and also means you can zoom in more than twice as far with better quality, but it is much more gpu intensive… this image is one of the cooler ones i rendered out at 4k, it kinda looks like colliding galaxies or something
added the burning ship fractal, anti aliasing, and completely overhauled the color system to use a gradient input instead of one color. burning ship fractal: so the burning ship fractal is made when you take the mandelbrot equation, but you take the absolute value of the real and imaginary parts before squaring, basically destroying the symmetry: 𝑧ₙ₊₁ = (|𝑅𝑒(𝑍ₙ)| + 𝑖|𝐼𝑚(𝑍ₙ)|)² + 𝐶 this makes it look super duper cool (as seen in the image below) gradient-based color mapping so before, the color was just calculated using one color tint and boosting brightness quadratically near the edges. now, it takes in a gradient (calculated between 4 color inputs), and does the same color mapping but essentially moves what color it uses as the iterations increase. the hard part is figuring out how to get a good input system in qml with this, but I was able to do it using some colordialogues and a lot of trial and error. the new color input system is kinda like creating a gradient in photoshop or illustrator, with 4 little handles that you can drag across and change their colors. anti aliasing also added anti aliasing, or more specifically, ssaa (super sampling anti aliasing), with a selector to choose between off, 2x, and 3x so basically it renders the entire fractal at a higher resolution (2x or 3x) and then averages the color of every pixel block (2x2 or 3x3 respectively) and then displays that. this results in a much, much smoother image at the cost of much higher resource usage. while i was screwing around with dynamic resolutions, i also added a resolution slider to change the rendered resolution to anywhere from 25 to 150% of the window resolution. turning it up past 100% basically just gives the ssaa architecture more information to work with, making it even smoother my graphics card isnt very powerful and it basically stays pinned at 99% usage and 100% clock when i have anti aliasing turned on and the iterations above like 200. image: burning ship fractal, rendered at 4k with 150% resolution scale and 3x ssaa
added support for trajectory based fractals most people know the normal fractals (the ones ive covered so far), such as the mandelbrot and julia sets, that test wether or not a point escapes and maps how long it takes to escape trajectory fractals look really cool, and the difference is that they map the trajectory that 𝑧 takes on its way out, while incrementing a counter for every pixel it steps on. getting this to work was a lot of work, and required to write a whole new shader file from scratch, except instead of a .frag/.vert combo, it was a compute shader (.glsl). instead of simply running a loop and writing color data to each independent pixel like with the escape-time fractals do, the trajectory shader has to pick a random (x, y) starting coord, and then track its orbit across the complex plane, writing data to random pixels as it goes. this required me to use atomics, because if 2 orbits cross, instead of one overwriting each other, you have to use imageAtomicAdd() to make sure that the brightness stacks up. one other issue was that at first it was super grainy, which was fixed by assigning each gpu thread 50 random sampled to increase detail substantially. i also nearly exploded my gpu because i accidentally had the render system run 50+ compute sequences at the same time, so i now have each compute wait for the one before it to finish in other happenings, there is now a preset feature that writes your current color setup set, zoom, center, etc. to a JSON file to be loaded later also added the newton set, but its a less interesting escape-time fractal, so not covered in as much detail image: buddhabrot set, rendered at 4k
added iterative function system fractals basically, iterative function fractals are fractals that start at a set point, then repeatedly apply the same affine transformations (scaling, rotating, shifting), making an infinitely repeating, self-same fractal. as far as actually getting this setup and working, i had to make a whole new compute shader that involves a lot of math and for loops to iterate forever getting ifs fractals to render was a particular challenge, and i almost exploded my gpu and accidentally caused a vram cache overflow causing my display output to break. in the end, it turns out the trick was to not send 4,000,000 worker threads to the gpu all at once, and to do them 3-4 at a time also finally got working on the whole 3d system, which will likely take forever, and completely does not work right now, but hopefully i will have figured out how in the world to get working 3d stuff by the next devlog 🙏 check out the github! -> https://github.com/swedishsplidney/fraktalized image: barnsley fern, rendered in 4k
3d is finally working!!!!! i have been having an epic samurai battle against opengl and 3d fractal math for what feels like forever, but it finally works, and I have a working 3d mandelbulb explorer!!! i have actually been working on getting 3d working for the past multiple devlogs, it just took me sooo incredibly long to actually figure it out that i never really mentioned it. the longest step was figuring out the controls. when i first started working on the 3d mode, then it was literally just a cube, and i had to figure out a good way to be able to rotate it the hard part wasn’t even trying to figure out how to do the math to rotate the vertices, the hard part was trying to figure out how the thing should actually rotate what i figured out how to do is having an orbit style camera, where dragging side to side rotates the model along its own local yaw, and then dragging up and down changes the camera’s global pitch. this way the model’s roll never changes (because that makes the model look tilted or skewed). i had to spend an embarassingly long amount of time trying to figure the logic of an orbital camera… the camera is also slerped (like lerping but 3d) so it feels smooth color mappping on the 3d was actually surprisingly easy, i just did it in a very similar way to the 2d escape time ones, except with an extra dimension (its not as hard as it sounds) one other major change was when i added the ability to add and remove gradient stops. this way, instead of always having 4 gradient stops, you can have anywhere from 2 to 16 stops, for more customizeability. also, the readme is updated, go check it out! (and star the repo ) https://github.com/swedishsplidney/fraktalized below: video demonstrating the 3d and camera system
3d wasd controls (wowie zowie) the math for this was super hard, especially because i want it to work alongside with the other classic orbit style controls lol i ended up adding a toggle in the sidebar, which felt like the cleanest way to do it, but did mean doing more qml also, i pretty much had to guess when setting up all my vectors so i spent like 15 presidential terms messing around with positives and negatives and 1.0f / 0.0f everywhere until doing stuff in the right directions actually did the right thing, which was hard also had to implement auto horizon correction so things d also added some live 3d settings, which took a while, but now theres a live slider for both the mandelbulb power (exponent), and the brightness (which was hard) and, theres now a math section in the readme, which i spent a lot of time pondering while making, but if you’re at all, check out the “mathy information” section of the readme https://github.com/swedishsplidney/fraktalized (also star the repo ) exploring the mandelbulb in wasd mode genuinely feels like exploring an alien planet in a spaceship, lowk super fun
i set up a full tutorial system the hard part was doing the whole thing where it darkens everywhere except the thing the tutorial is yapping about… also, right now, the tutorial is really really easy to break, so i might have to implement some idiot proofing or something to be honest, adding the whole darkening thing was really simple, but actually getting it to work was really annoying for some reason. it essentially just gets the xy coord for each corner of the specified element, and then makes a dark block everywhere except inside those 4 corners. also, i made it so the tutorial saves to the same json file as the preset manager, so that you only have to do the tutorial one time and it doesnt just get in your way every single time you open it. aside from that, most of this time was spent trying to figure out how to get it to automatically build on github when i push a release. i did this successfully for my other project, but the problem so far has been linking the qml for the binaries on the different platforms. specifically, windows just really really doesnt want to behave, its starting to feel like getting a discord mod to eat anything other than gamersupps and pizza rolls overall, maybe getting close to shipping? it honestly just depends on how much more features and idiot proofing i want to add if this sounds interesting, check out (and star ) the repo here
probably the final commit :o most of this was spent idiot proofing, going through all my code and making sure that everything works well and actually makes sense i also updated the tutorial to be a bit better a major amount of time was spent figuring out how to get windows to actually compile i swear windows is the bane of my entire existence its not reflected in the devlog hours, but i did also make a demo video to show off some of the features mystery link other than that, it was mostly ui and readme updates :)
extra ui tweaks and readme updates added some images of 3d fractals to the readme, did some general ui tweaks, and some idiot proofing now its time to ship!!!
Ships:
fraktalized ship: fraktalized is an an open-source, cross-platform, ultra smooth real time fractal explorer built using a hybrid architecture of Qt6 (QML/C++) and openGL (GLSL 330 core / 4.3 compute shaders). fraktalized currently has 10 fractal sets: mandelbrot set: the classic fractal set julia set: cool swirly stuff, complete with adjustable constant coords burning ship set: cool pointy stuff newton set: kinda spidery looking buddhabrot: like the mandelbrot but galaxy looking anti-buddhabrot: reverse buddhabrot barnsley fern: looks very naturey mandelbulb: like the mandelbrot but 3d menger sponge: cube, but with infinite* surface ar a icebox: spiky box! there is both a set of 3 precompiled binaries on the github and a demo video: https://youtu.be/x9lH_pPzvbw...
|
1793433230.8521228
|
1793519630.8521228
|
|
12085
|
Untitled by @s_oconnell | Stardance
|
s_oconnell
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled by @s_oconnell | Stardance
|
1793372001.0114956
|
1793976801.0114956
|
|
12086
|
Hand tracker by @Selim | Stardance
|
Selim
|
2
|
17.0
|
135
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-07T18:45:43Z", "hours": 15.0, "multiplier": 8.87, "payout": 118, "blessing": "neutral", "text": "I finished the wiring up the servos to the pca9685 board and connected the servos to my 3d printed hand model and its so much fun to use and mess around with, this project is by far my favourite. Its officially done and there are two ways to use it: you can use the website hand tracker just to mess around with it, see the values of the fingers and its reaction speed. Googles media pipe model has issues as you move your hand closer and further from the webcam but there’s nothing I can do to fix as it’s an issue with the model, not my code. grab a pico, pca9685 board, breadboard and some wires, 3d printer/ access to a 3d printer and build the whole project, I will attach the 3d model and wiring diagram once I finish them so anyone can build it from scratch and have their own robotic hand at home!", "repo": "https://github.com/Echo-Sel/Hand-Tracker", "demo": "https://echo-sel.github.io/Hand-Tracker/"}, {"ship_num": 2, "ts": "2026-06-16T21:54:43Z", "hours": 2.0, "multiplier": 9.65, "payout": 17, "blessing": "neutral", "text": "I’ve finally reached a point with this code as to where I feel comfortable moving onto reprinting the hand and cleaning it up, for a potential final product! So far the code can: ✅ Host a website ✅ connect with the browser and host port ✅ allow for webcam access and capture ✅ track finger movements and turn them into percentages (with an overlay) ✅ turns the percentages into numbers that it can decipher ✅ turns the numbers into servo values ✅ move the servo’s within a 5ms time frame (requires external hardware) Next steps: 📥 Motor smoothing to allow for more fluid movements Excluding the code im going to start working on the pcb and adjusting the CAD for the actual hand model to allow for a better looking build. Im really excited to see this project finally come to an end!", "repo": "https://github.com/Echo-Sel/Hand-Tracker", "demo": "https://echo-sel.github.io/Hand-Tracker/"}]...
|
[{"post_id": 60803, "ts": "202 [{"post_id": 60803, "ts": "2026-09-03T12:21:38Z", "hours": 2.9067, "text": "I finally finished all of the functional design for my code and refreshed my html! the big new stuff I changed was the switch over to tiny web and it felt soooo much cleaner and easier to use and just look at. Since the I changed the main structure it took me a while to re organize everything to work with tiny web. I added logging everywhere because I kept running into issues where my could would just stop working, and I refreshed the html because the old colours annoyed me. I think i’m almost done now and i’m so excited to put everything together and test it! (P.S look how much cleaner the terminal output looks im in awe)"}, {"post_id": 26950, "ts": "2026-07-12T01:24:31Z", "hours": 11.99, "text": "This hand code has been traumatizing me for too long, ive restructured it and began adding PID tuning for the motors to turn more smooth and human-like, ive also been trying to bug fix packet loss and random noise being sent back and forth, im going to begin working on the pcb and maybe a third version of the projects CAD! im really excited to finally be finished with the code and take a step back and look at what ive made, hopefully you can all take this step back with me"}, {"post_id": 8292, "ts": "2026-06-13T19:44:41Z", "hours": 1.3464, "text": "Webpage refresh: I added Css to make the website look a lot better and aesthetically pleasing, I also added a slider to allow multiple hands to be tracked. For my next steps I want to add different texts boxes for each hand as currently it gets the percent openness from the least number, not the average."}, {"post_id": 4658, "ts": "2026-06-08T02:01:56Z", "hours": 0.7225, "text": "This was my first ‘real’ project where I work on the design and printing, electrical and programming all of the same system, and its taken me all year but it has been one of the funnest things I’ve done in forever. Ive been working on this project on and off starting last summer, and it has been such an amazing learning experience, I’ve been working on the code recently but with the star dance challenge opening, I thought it would be good to post this here as I continue work on it. What I have here is going to be mainly focused on the programming until I feel good with it, then I’ll move on to and quickly finish the pcb. Please feel free to try out the hand tracking software and provide feedback!"}]...
|
Title: Hand tracker by @Selim | Stardance
Devlogs Title: Hand tracker by @Selim | Stardance
Devlogs:
This was my first ‘real’ project where I work on the design and printing, electrical and programming all of the same system, and its taken me all year but it has been one of the funnest things I’ve done in forever. Ive been working on this project on and off starting last summer, and it has been such an amazing learning experience, I’ve been working on the code recently but with the star dance challenge opening, I thought it would be good to post this here as I continue work on it. What I have here is going to be mainly focused on the programming until I feel good with it, then I’ll move on to and quickly finish the pcb. Please feel free to try out the hand tracking software and provide feedback!
Webpage refresh: I added Css to make the website look a lot better and aesthetically pleasing, I also added a slider to allow multiple hands to be tracked. For my next steps I want to add different texts boxes for each hand as currently it gets the percent openness from the least number, not the average.
This hand code has been traumatizing me for too long, ive restructured it and began adding PID tuning for the motors to turn more smooth and human-like, ive also been trying to bug fix packet loss and random noise being sent back and forth, im going to begin working on the pcb and maybe a third version of the projects CAD! im really excited to finally be finished with the code and take a step back and look at what ive made, hopefully you can all take this step back with me
I finally finished all of the functional design for my code and refreshed my html! the big new stuff I changed was the switch over to tiny web and it felt soooo much cleaner and easier to use and just look at. Since the I changed the main structure it took me a while to re organize everything to work with tiny web. I added logging everywhere because I kept running into issues where my could would just stop working, and I refreshed the html because the old colours annoyed me. I think i’m almost done now and i’m so excited to put everything together and test it! (P.S look how much cleaner the terminal output looks im in awe)
Ships:
I’ve finally reached a point with this code as to where I feel comfortable moving onto reprinting the hand and cleaning it up, for a potential final product! So far the code can: ✅ Host a website ✅ connect with the browser and host port ✅ allow for webcam access and capture ✅ track finger movements and turn them into percentages (with an overlay) ✅ turns the percentages into numbers that it can decipher ✅ turns the numbers into servo values ✅ move the servo’s within a 5ms time frame (requires external hardware) Next steps: 📥 Motor smoothing to allow for more fluid movements Excluding the code im going to start working on the pcb and adjusting the CAD for the actual hand model to allow for a better looking build. Im really excited to see this project finally come to an end!
I finished the wiring up the servos to the pca9685 board and connected the servos to my 3d printed hand model and its so much fun to use and mess around with, this project is by far my favourite. Its officially done and there are two ways to use it: you can use the website hand tracker just to mess around with it, see the values of the fingers and its reaction speed. Googles media pipe model has issues as you move your hand closer and further from the webcam but there’s nothing I can do to fix as it’s an issue with the model, not my code. grab a pico, pca9685 board, breadboard and some wires, 3d printer/ access to a 3d printer and build the whole project, I will attach the 3d model and wiring diagram once I finish them so anyone can build it from scratch and have their own robotic hand at home!...
|
1793483409.2413745
|
1793569809.2413745
|
|
12087
|
SaaSGuard by @karthiktummala | Stardance
|
karthiktummala
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: SaaSGuard by @karthiktummala | Stardance
|
1793235300.8866277
|
1793840100.8866277
|
|
12088
|
SaasGaurd by @sanjayv | Stardance
|
sanjayv
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: SaasGaurd by @sanjayv | Stardance
|
1793181256.7605948
|
1793786056.7605948
|
|
12089
|
My awesome macropad! by @Boxhead422 | Stardance
|
Boxhead422
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @Boxhead422 | Stard Title: My awesome macropad! by @Boxhead422 | Stardance...
|
1793490714.148725
|
1794095514.148725
|
|
12090
|
My awesome macropad! by @victoriad | Stardance
|
victoriad
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @victoriad | Starda Title: My awesome macropad! by @victoriad | Stardance...
|
1792795703.0820265
|
1793400503.0820265
|
|
12091
|
My first slack bot! by @benjamohor | Stardance
|
benjamohor
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @benjamohor | Starda Title: My first slack bot! by @benjamohor | Stardance...
|
1793458510.3360515
|
1794063310.3360515
|
|
12092
|
Artists of Tomorrow by @anishbatra2010 | Stardance
|
anishbatra2010
|
1
|
2.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-08T04:03:28Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Here is the complete text you can copy and paste into the modal text box: I did a security audit and code hardening pass on the Artists of Tomorrow website, while successfully troubleshooting and repairing my editor’s broken Hackatime integration. What did you make? Code Hardening: Created a custom sanitizeURL utility across all dynamic gallery scripts ( latin-america-school.js , asia-competition-gallery.js , and latin-america-competition.js ) to block malicious javascript: and data: link payloads and prevent Cross-Site Scripting (XSS). Link Security: Added rel=\"noopener noreferrer\" attributes to external anchor tags in leaders-of-tomorrow.html to prevent tab-nabbing attacks. Hackatime Fix: Resolved a persistent “Initialized” tracking freeze by correcting the API key format for the Hackatime backend, disabling problematic VS Code AI tracking syncs ( sync_ai_disabled = true ) causing SQLite crashes, and force-flushing queued offline coding time to the server. What was challenging? Diagnosing why the WakaTime CLI was freezing. It turned out to be a double issue: the Hack Club Hackatime server didn’t accept the standard waka_ API key prefix, and my editor was throwing SQLite database errors trying to sync AI metadata, which locked up the sync loop entirely. What are you proud of? Hardening the codebase against XSS without breaking any of the existing DOM structure or vanilla JS gallery animations, and successfully syncing all of my logged offline hours back to the Hack Club dashboard. What should people know so they can test your project? The site runs entirely as a static vanilla HTML/CSS/JS site. You can test it locally by running: python3 -m http.server 8080 And going to http://localhost:8080 . All the security sanitation works under the hood when loading school artwork metadata and external links!", "repo": "https://github.com/iDxtry/Artists-of-Tomorrow", "demo": "https://artistsoftomorrow.org/"}]...
|
[{"post_id": 4703, "ts": "2026 [{"post_id": 4703, "ts": "2026-06-08T03:59:51Z", "hours": 0.9319, "text": "Performed a security audit and hardened the codebase against XSS and tab-nabbing vulnerabilities. I wrote a custom sanitizeURL wrapper for the existing escapeHTML utility across the gallery JavaScript files to strictly block malicious javascript: and data: protocols. I also patched an external target=”_blank” link in the Leaders of Tomorrow page to include rel=“noopener noreferrer”, and cleaned up outdated form-handling references in our AGENTS.md documentation."}, {"post_id": 4665, "ts": "2026-06-08T02:08:36Z", "hours": 0.5847, "text": "Artists of Tomorrow - Project Showcase Here is a summary of the major features and technical upgrades completed on the Artists of Tomorrow website, along with screenshots showing the changes in action. Key Achievements Site-wide Asia & India Regional Refactoring The Goal: Cleanly transition the website structure from a single-country profile (India) to a continent/country format (Asia/India) to match the Latin America profile format. What changed: Renamed all regional files dynamically via Git: nathupur-india.html → nathupur-asia.html, india-competition-gallery.html → asia-competition-gallery.html, and their respective JS support files. Restructured the Asia Partner School profile to match the Latin America format: removed the localized winner gallery and replaced it with a dynamic 37-item Student Artwork Submission carousel. Updated navigation menus, footers, headers, metadata, Leaflet map pins, and data attributes across all 13 HTML pages. Asia Partner School Profile Review Asia Partner School Profile Dual-Currency Prize Money Display The Goal: Present prize structures clearly for both regional cohorts (INR ₹ for India, USD $ for Latin America) without cluttering the UI. What changed: Redesigned the prize cards on the Home and Competition pages to support side-by-side dual currencies: 1st Place: ₹3,000 / $50 2nd Place: ₹2,000 / $30 3rd Place: ₹1,000 / $15 Implemented a flexible layout system (.prize-amounts CSS class) using flexbox, ensuring a clean horizontal display on desktop and responsive vertical stacking on mobile. Dual Currency Prize Cards Review Dual Currency Prize Cards Cloudflare Pages CDN & Dynamic Image Pathing The Goal: Render over 2,000+ student submission images without overloading Git or pushing massive file structures to GitHub. What changed: Deployed the entire project (including the git-ignored images/latin-america folder) to Cloudflare Pages using Wrangler CLI. Integrated a dynamic resolution path utility in the codebase: when window.AOT_CDN_BASE_URL is set to https://aot-images.pages.dev/ , the site dynamically redirects all requests for git-ignored Latin American images to load instantly from the Cloudflare Pages CDN. Added a development fallback to local paths, enabling fully offline local development. Interactive Directory Search & Dynamic Division Listing The Goal: Ensure that searches in the school directories behave predictably and layout correctly, and hide empty content boxes. What changed: Fixed a bug where filtered/hidden school card wrappers were still showing as blank space by adding CSS rules (.school-directory-card[hidden] { display: none !important; }). Optimized the school profile lists so they dynamically format active age ranges (e.g. showing Ages 8-11, 12-15 and automatically hiding any age division with 0 submissions). School Directory Search Review School Directory Search Year Rollover Rolled over the campaign, art prompt headers, and copyright documentation from 2025 to 2026 site-wide."}]...
|
Title: Artists of Tomorrow by @anishbatra2010 | St Title: Artists of Tomorrow by @anishbatra2010 | Stardance
Devlogs:
Artists of Tomorrow - Project Showcase Here is a summary of the major features and technical upgrades completed on the Artists of Tomorrow website, along with screenshots showing the changes in action. Key Achievements Site-wide Asia & India Regional Refactoring The Goal: Cleanly transition the website structure from a single-country profile (India) to a continent/country format (Asia/India) to match the Latin America profile format. What changed: Renamed all regional files dynamically via Git: nathupur-india.html → nathupur-asia.html, india-competition-gallery.html → asia-competition-gallery.html, and their respective JS support files. Restructured the Asia Partner School profile to match the Latin America format: removed the localized winner gallery and replaced it with a dynamic 37-item Student Artwork Submission carousel. Updated navigation menus, footers, headers, metadata, Leaflet map pins, and data attributes across all 13 HTML pages. Asia Partner School Profile Review Asia Partner School Profile Dual-Currency Prize Money Display The Goal: Present prize structures clearly for both regional cohorts (INR ₹ for India, USD $ for Latin America) without cluttering the UI. What changed: Redesigned the prize cards on the Home and Competition pages to support side-by-side dual currencies: 1st Place: ₹3,000 / $50 2nd Place: ₹2,000 / $30 3rd Place: ₹1,000 / $15 Implemented a flexible layout system (.prize-amounts CSS class) using flexbox, ensuring a clean horizontal display on desktop and responsive vertical stacking on mobile. Dual Currency Prize Cards Review Dual Currency Prize Cards Cloudflare Pages CDN & Dynamic Image Pathing The Goal: Render over 2,000+ student submission images without overloading Git or pushing massive file structures to GitHub. What changed: Deployed the entire project (including the git-ignored images/latin-america folder) to Cloudflare Pages using Wrangler CLI. Integrated a dynamic resolution path utility in the codebase: when window.AOT_CDN_BASE_URL is set to https://aot-images.pages.dev/ , the site dynamically redirects all requests for git-ignored Latin American images to load instantly from the Cloudflare Pages CDN. Added a development fallback to local paths, enabling fully offline local development. Interactive Directory Search & Dynamic Division Listing The Goal: Ensure that searches in the school directories behave predictably and layout correctly, and hide empty content boxes. What changed: Fixed a bug where filtered/hidden school card wrappers were still showing as blank space by adding CSS rules (.school-directory-card[hidden] { display: none !important; }). Optimized the school profile lists so they dynamically format active age ranges (e.g. showing Ages 8-11, 12-15 and automatically hiding any age division with 0 submissions). School Directory Search Review School Directory Search Year Rollover Rolled over the campaign, art prompt headers, and copyright documentation from 2025 to 2026 site-wide.
Performed a security audit and hardened the codebase against XSS and tab-nabbing vulnerabilities. I wrote a custom sanitizeURL wrapper for the existing escapeHTML utility across the gallery JavaScript files to strictly block malicious javascript: and data: protocols. I also patched an external target=”_blank” link in the Leaders of Tomorrow page to include rel=“noopener noreferrer”, and cleaned up outdated form-handling references in our AGENTS.md documentation.
Ships:
Here is the complete text you can copy and paste into the modal text box: I did a security audit and code hardening pass on the Artists of Tomorrow website, while successfully troubleshooting and repairing my editor’s broken Hackatime integration. What did you make? Code Hardening: Created a custom sanitizeURL utility across all dynamic gallery scripts ( latin-america-school.js , asia-competition-gallery.js , and latin-america-competition.js ) to block malicious javascript: and data: link payloads and prevent Cross-Site Scripting (XSS). Link Security: Added rel="noopener noreferrer" attributes to external anchor tags in leaders-of-tomorrow.html to prevent tab-nabbing attacks. Hackatime Fix: Resolved a persistent “Initialized” tracking freeze by correcting the API key format for the Hackatime backend, disabling problematic VS Code AI tracking syncs ( sync_ai_disabled = true ) causing SQLite crashes, and force-flushing queued offline coding time to the server. What was challenging? Diagnosing why the WakaTime CLI was freezing. It turned out to be a double issue: the Hack Club Hackatime server didn’t accept the standard waka_ API key prefix, and my editor was throwing SQLite database errors trying to sync AI metadata, which locked up the sync loop entirely. What are you proud of? Hardening the codebase against XSS without breaking any of the existing DOM structure or vanilla JS gallery animations, and successfully syncing all of my logged offline hours back to the Hack Club dashboard. What should people know so they can test your project? The site runs entirely as a static vanilla HTML/CSS/JS site. You can test it locally by running: python3 -m http.server 8080 And going to http://localhost:8080 . All the security sanitation works under the hood when loading school artwork metadata and external links!...
|
1793455070.296076
|
1793541470.296076
|
|
12093
|
starDSA by @killcalico | Stardance
|
killcalico
|
0
|
2.06
|
0
|
[]
|
[{"post_id": 8560, "ts": "2026 [{"post_id": 8560, "ts": "2026-06-14T07:09:07Z", "hours": 2.0606, "text": "wrote header and .c files for basic vector implementation in c resizing, push/pop functions, getting and setting, and two different initializer functions a fun exercise in memory management"}]...
|
Title: starDSA by @killcalico | Stardance
Devlogs Title: starDSA by @killcalico | Stardance
Devlogs:
wrote header and .c files for basic vector implementation in c resizing, push/pop functions, getting and setting, and two different initializer functions a fun exercise in memory management...
|
1793317746.9397953
|
1793922546.9397953
|
|
12094
|
My awesome macropad! by @johnb | Stardance
|
johnb
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @johnb | Stardance
|
1793390149.270154
|
1793994949.270154
|
|
12095
|
My awesome macropad! by @matthew_lin11 | Stardance
|
matthew_lin11
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @matthew_lin11 | St Title: My awesome macropad! by @matthew_lin11 | Stardance...
|
1793231508.9356337
|
1793836308.9356337
|
|
12096
|
FRC YOLO Detection by @lemony-tater | Stardance
|
lemony-tater
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: FRC YOLO Detection by @lemony-tater | Stard Title: FRC YOLO Detection by @lemony-tater | Stardance...
|
1793386424.306668
|
1793991224.306668
|
|
12097
|
Minesweeper by @averagestardancefan | Stardance
|
averagestardancefan
|
1
|
4.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-24T05:25:06Z", "hours": 4.0, "multiplier": 2.5, "payout": 0, "blessing": "neutral", "text": "Here it is, my Minesweeper game! Function: This game plays straight in your Java terminal. You are given instructions, choose the size of your game board, then use coordinates to place flags, weed out mines, and use logic to clear the whole board. There are three main ways to play this game: Download the .zip file from the github release, unzip it, and double click on the application file within it. Download the .java file from the github project files or release files and open it using VS Code. Use the demo links through CodeHS to play, though it can be a bit glitchy and slow. The links are also in github, in the README and in the release description. I recommend the VS Code route, it’s just the easiest. Summary of logic: When you give the program the coordinate you wish to play, it uses a basic recursive flood fill to fill all adjacent tiles with no mines nearby. After you choose and it fills, it can either stop the program because you hit a mine, or it will continue until the number of mines on the board matches the number of unchecked tiles, meaning that you found all the mines. Challenges: Still the hardest thing of either of these was figuring out how to turn the .java file into a .zip that can run without downloading all of Java. The hardest challenge with this game specifically was probably making all of the checks that make sure your input is valid because there were a lot of cases to consider and even so I probably missed one which will be caught somewhere along the way.", "repo": "https://github.com/garetelis/Minesweeper", "demo": "https://github.com/garetelis/Minesweeper/releases/tag/1.0.0"}]...
|
[{"post_id": 14882, "ts": "202 [{"post_id": 14882, "ts": "2026-06-24T04:59:18Z", "hours": 1.9133, "text": "After I ironed out a few bugs with the fill system, I worked on the actual game part where the user inputs the spaces on the board they would like to play and I think it is working how it should now. As an improvement from the last game, the maze game, that I made, I added instructions at the beginning and I used the built in Java colors to make the whole thing look a bit better. I am much happier with this game than the last and I think it is even more fun to play. The mechanism was a bit easier to code."}, {"post_id": 5415, "ts": "2026-06-09T05:18:45Z", "hours": 1.6411, "text": "Oh yeah, it’s all coming together now"}, {"post_id": 4668, "ts": "2026-06-08T02:09:56Z", "hours": 0.4675, "text": "I got it to randomly place the mines and put a number on each tile for how many mines are around it."}]...
|
Title: Minesweeper by @averagestardancefan | Stard Title: Minesweeper by @averagestardancefan | Stardance
Devlogs:
I got it to randomly place the mines and put a number on each tile for how many mines are around it.
Oh yeah, it’s all coming together now
After I ironed out a few bugs with the fill system, I worked on the actual game part where the user inputs the spaces on the board they would like to play and I think it is working how it should now. As an improvement from the last game, the maze game, that I made, I added instructions at the beginning and I used the built in Java colors to make the whole thing look a bit better. I am much happier with this game than the last and I think it is even more fun to play. The mechanism was a bit easier to code.
Ships:
Here it is, my Minesweeper game! Function: This game plays straight in your Java terminal. You are given instructions, choose the size of your game board, then use coordinates to place flags, weed out mines, and use logic to clear the whole board. There are three main ways to play this game: Download the .zip file from the github release, unzip it, and double click on the application file within it. Download the .java file from the github project files or release files and open it using VS Code. Use the demo links through CodeHS to play, though it can be a bit glitchy and slow. The links are also in github, in the README and in the release description. I recommend the VS Code route, it’s just the easiest. Summary of logic: When you give the program the coordinate you wish to play, it uses a basic recursive flood fill to fill all adjacent tiles with no mines nearby. After you choose and it fills, it can either stop the program because you hit a mine, or it will continue until the number of mines on the board matches the number of unchecked tiles, meaning that you found all the mines. Challenges: Still the hardest thing of either of these was figuring out how to turn the .java file into a .zip that can run without downloading all of Java. The hardest challenge with this game specifically was probably making all of the checks that make sure your input is valid because there were a lot of cases to consider and even so I probably missed one which will be caught somewhere along the way....
|
1793300169.9028182
|
1793386569.9028182
|
|
12098
|
My first slack bot! by @Jkim | Stardance
|
Jkim
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @Jkim | Stardance
|
1793220599.007324
|
1793825399.007324
|
|
12099
|
Trident Events by @itsartsign | Stardance
|
itsartsign
|
0
|
5.86
|
0
|
[]
|
[{"post_id": 6123, "ts": "2026 [{"post_id": 6123, "ts": "2026-06-10T09:17:50Z", "hours": 0.6036, "text": "DEVLOG #8: Ouch, that hurts! I added a Roles system (PARTICIPANT, SPECTATOR, STAFF, ADMIN) as well as setRole(Player player, Role role) , getPlayers(Role role) and updateState(Player player) You now automatically get assigned spectator on death and participant on event start. This system is still very primative and I will adjust how roles are managed in the future as required. Challenges: I spent 10 minutes debugging because of a typo in my messages.yml causing the showTitle() to fail because of an invalid message. I’m going to add null saftey to my MessageManager to return some error if a configuration value is null, to help me catch these earlier in the future. Todo: Role Displaynames Add displaynames to the roles in the config (For use in chat formatting. This will be difficult as I will need a raw text as well as a stylised one) Update Chat Formatting to use actual roles Setup staff role permissions"}, {"post_id": 6065, "ts": "2026-06-10T06:04:05Z", "hours": 1.0464, "text": "DEVLOG #7: OOOO Shiny I’ve added a lot of stuff in one hour! MESSAGES UPDATE You can now use predefined placeholders in the messages.yml in the format of {index} . These are replaced by predetermined variables. CHAT FORMATTING Chat formatting has been added! I plan to implement a placeholder for the users role soon, right now it’s just hard-coded in the messages file as PARTICIPANT <username> ▶ <message> SUBCOMMANDS: EXTENDED Added tab completion to the subcommand’s subcommands! More specifically the kit actions are auto completed now. ROLES PREP Began preparation for event roles (Participant, Spectator, Staff, Admin). All this means so far is adding an enum BUG FIXES Fixed some bugs, most notably where my messages file would take two restarts to overwrite the updated version due to me initializing my file too soon."}, {"post_id": 6014, "ts": "2026-06-10T02:38:35Z", "hours": 0.9817, "text": "DEVLOG #6: Kits II Implemented tab completion for the kits sub commands sub commands. Added kit deletion and kit listing as well. Next steps are recoding the Tab Completer in preperation for the phase management system"}, {"post_id": 5875, "ts": "2026-06-09T20:39:00Z", "hours": 0.4983, "text": "DEVLOG #5: Hey, where are my items? I’ve added a functioning kits system to the plugin! You can now save your inventory including armor and offhand slot as a kit by using /event kit save <name> , and load a kit by using /event kit get <name> . Kits are saved to /kits/<kit>.yml in my plugins data folder. It has support for enchants, custom display names, and persistent data container data."}, {"post_id": 5489, "ts": "2026-06-09T09:18:35Z", "hours": 0.3453, "text": "DEVLOG #4: %placeholders% I’ve implemented a PlaceholderAPI integration to the project, with current expansions containing %event_state% , and `%event_version%. I plan to implement placeholders for things such as border sizes, times, etc."}, {"post_id": 5453, "ts": "2026-06-09T07:34:23Z", "hours": 0.9225, "text": "DEVLOG #3: Messages, messages, and more messages Implemented a messages.yml for storing the messages used in the plugin, as well as a /event reload subcommand to reload the configuration. I will eventually move MessagesManager.java to a dedicated ConfigurationManager when I require more files, but for now it works fine. I also tidied up the formatting and pushed my changes to the github."}, {"post_id": 5366, "ts": "2026-06-09T03:22:25Z", "hours": 0.3489, "text": "DEVLOG #2: Commands! I created a BaseCommand.java to contain the code for the base /event command, as well as a simple tab completer for the arguments. I also started work on the EventManager which will hold values such as the event state."}, {"post_id": 5314, "ts": "2026-06-09T01:37:32Z", "hours": 0.7567, "text": "DEVLOG #1: Event State I’ve added an enum to store all of the event states. I had to learn how to use and create enums in Java for this, and they will be very useful in future development."}, {"post_id": 4746, "ts": "2026-06-08T06:11:04Z", "hours": 0.3536, "text": "DEVLOG #0: Setup Setup the initial plugin using the Paper template and shared the project on GitHub"}]...
|
Title: Trident Events by @itsartsign | Stardance
Title: Trident Events by @itsartsign | Stardance
Devlogs:
DEVLOG #0: Setup Setup the initial plugin using the Paper template and shared the project on GitHub
DEVLOG #1: Event State I’ve added an enum to store all of the event states. I had to learn how to use and create enums in Java for this, and they will be very useful in future development.
DEVLOG #2: Commands! I created a BaseCommand.java to contain the code for the base /event command, as well as a simple tab completer for the arguments. I also started work on the EventManager which will hold values such as the event state.
DEVLOG #3: Messages, messages, and more messages Implemented a messages.yml for storing the messages used in the plugin, as well as a /event reload subcommand to reload the configuration. I will eventually move MessagesManager.java to a dedicated ConfigurationManager when I require more files, but for now it works fine. I also tidied up the formatting and pushed my changes to the github.
DEVLOG #4: %placeholders% I’ve implemented a PlaceholderAPI integration to the project, with current expansions containing %event_state% , and `%event_version%. I plan to implement placeholders for things such as border sizes, times, etc.
DEVLOG #5: Hey, where are my items? I’ve added a functioning kits system to the plugin! You can now save your inventory including armor and offhand slot as a kit by using /event kit save <name> , and load a kit by using /event kit get <name> . Kits are saved to /kits/<kit>.yml in my plugins data folder. It has support for enchants, custom display names, and persistent data container data.
DEVLOG #6: Kits II Implemented tab completion for the kits sub commands sub commands. Added kit deletion and kit listing as well. Next steps are recoding the Tab Completer in preperation for the phase management system
DEVLOG #7: OOOO Shiny I’ve added a lot of stuff in one hour! MESSAGES UPDATE You can now use predefined placeholders in the messages.yml in the format of {index} . These are replaced by predetermined variables. CHAT FORMATTING Chat formatting has been added! I plan to implement a placeholder for the users role soon, right now it’s just hard-coded in the messages file as PARTICIPANT <username> ▶ <message> SUBCOMMANDS: EXTENDED Added tab completion to the subcommand’s subcommands! More specifically the kit actions are auto completed now. ROLES PREP Began preparation for event roles (Participant, Spectator, Staff, Admin). All this means so far is adding an enum BUG FIXES Fixed some bugs, most notably where my messages file would take two restarts to overwrite the updated version due to me initializing my file too soon.
DEVLOG #8: Ouch, that hurts! I added a Roles system (PARTICIPANT, SPECTATOR, STAFF, ADMIN) as well as setRole(Player player, Role role) , getPlayers(Role role) and updateState(Player player) You now automatically get assigned spectator on death and participant on event start. This system is still very primative and I will adjust how roles are managed in the future as required. Challenges: I spent 10 minutes debugging because of a typo in my messages.yml causing the showTitle() to fail because of an invalid message. I’m going to add null saftey to my MessageManager to return some error if a configuration value is null, to help me catch these earlier in the future. Todo: Role Displaynames Add displaynames to the roles in the config (For use in chat formatting. This will be difficult as I will need a raw text as well as a stylised one) Update Chat Formatting to use actual roles Setup staff role permissions...
|
1793354164.0338573
|
1793958964.0338573
|
|
12100
|
Antigravity Unofficial API by @cycloneaddons | Sta Antigravity Unofficial API by @cycloneaddons | Stardance...
|
cycloneaddons
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Antigravity Unofficial API by @cycloneaddon Title: Antigravity Unofficial API by @cycloneaddons | Stardance...
|
1793314353.616579
|
1793919153.616579
|