|
387
|
InfinityAI by @srinivasa07 | Stardance
|
srinivasa07
|
1
|
28.56
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-04T22:37:13Z", "hours": 28.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made InfinityAI, a website where you can log in and talk to an AI. It can remember things, upload files, help with code, use voice buttons, make AI agents, and make workflows. The hard part was making all the buttons and pages work together. To test it, make an account, chat, upload a file, save a memory, and try Jarvis.", "repo": "https://github.com/srinivasagudi0/InfinityAI--Intel", "demo": "https://infinityai-intel.vercel.app"}]...
|
[{"post_id": 33594, "ts": "202 [{"post_id": 33594, "ts": "2026-07-23T17:17:36Z", "hours": 0.5647, "text": "Finishing off"}, {"post_id": 22457, "ts": "2026-07-04T22:33:49Z", "hours": 28.2506, "text": "Forgot to devlog, sorry! But anyways, I built InfinityAI into a simple web app. I added: Login and signup Chat File uploads Memory Code help Voice buttons AI agents Workflows Jarvis Render hosting setup I also fixed the page tabs and UI bugs."}]...
|
Title: InfinityAI by @srinivasa07 | Stardance
Dev Title: InfinityAI by @srinivasa07 | Stardance
Devlogs:
Forgot to devlog, sorry! But anyways, I built InfinityAI into a simple web app. I added: Login and signup Chat File uploads Memory Code help Voice buttons AI agents Workflows Jarvis Render hosting setup I also fixed the page tabs and UI bugs.
Finishing off
Ships:
I made InfinityAI, a website where you can log in and talk to an AI. It can remember things, upload files, help with code, use voice buttons, make AI agents, and make workflows. The hard part was making all the buttons and pages work together. To test it, make an account, chat, upload a file, save a memory, and try Jarvis....
|
1792878549.1240633
|
1793742549.1240633
|
|
7783
|
DuskCoffee by @Diqi | Stardance
|
Diqi
|
1
|
28.49
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-30T01:36:55Z", "hours": 27.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I built DuskCoffee, a fullstack web application for a modern coffee shop catalog and guest ordering system. Built with Node.js, Express, and Vanilla JavaScript, paired with a cloud-managed MySQL database on Aiven and live hosting on Railway over HTTPS. The most challenging part was managing environment configurations, fixing strict SSL connections between Node.js and Aiven MySQL, and setting up proper routing to prevent API errors. I’m really proud of getting a complete cloud database pipeline running smoothly with zero-downtime deployment setup! To test the project, navigate through the Menu/Products tab to see live data pulled straight from the cloud database, or try out the feedback/contact form", "repo": "https://github.com/zDiqim7/DuskCoffee", "demo": "https://duskcoffee-production.up.railway.app/index.html#home"}]...
|
[{"post_id": 59493, "ts": "202 [{"post_id": 59493, "ts": "2026-09-01T11:15:30Z", "hours": 0.8606, "text": "rewrite the readme"}, {"post_id": 57802, "ts": "2026-08-30T03:12:00Z", "hours": 0.6333, "text": "OTP UX Fix and SMTP IPv4 Compatibility Summary This update focused on two main issues in the OTP flow: improving the user experience when the send-code button is pressed, and making the Gmail SMTP fallback more reliable on Railway by forcing IPv4 instead of the blocked IPv6 path. 1) OTP Send Button UX Improvement Problem The previous OTP flow allowed users to click the “Send Code” button repeatedly while the backend was still processing the request. This created a poor user experience and could trigger duplicate email sends or repeated requests. Fix The frontend button logic was updated so that while the OTP request is in progress: the button is disabled, the text changes to “Sending…”, repeated clicks are prevented, the button returns to “Send Code” after the request finishes, the user receives a clearer success/error message in English.This makes the request flow feel intentional and prevents confusion during slow network conditions. 2) SMTP IPv4 Fix for Railway: Problem The app was trying to connect to Gmail SMTP using Railway’s outbound networking stack. Railway was preferring IPv6 resolution for Gmail, which caused outbound connections to fail with unreachable network errors. Root Cause The SMTP connection attempted to reach Gmail over IPv6, but the Railway container did not have a working outbound route for that address family. As a result, the backend could not complete the SMTP connection, even though the app code itself was otherwise valid. Fix The Nodemailer transport was updated to force IPv4 resolution by setting: jsfamily: 4 This keeps the existing SMTP host configuration ( host: process.env.SMTP_HOST ) but forces Node.js to use IPv4 instead of attempting the failing IPv6 route.Additional timeout settings were also added to prevent request hangs: jsconnectionTimeout: 10000,greetingTimeout: 5000,socketTimeout: 10000, This ensures that if SMTP is blocked or slow, the backend responds quickly with a clear error instead of leaving the browser hanging with a generic network issue. Outcome The OTP flow is now more stable and user-friendly: the button cannot be spam-clicked, users receive better status feedback, the SMTP connection is more resilient in Railway when Gmail is accessed over IPv4. This patch addresses the UX problem and the deployment-specific SMTP issue without changing the overall app architecture."}, {"post_id": 57481, "ts": "2026-08-29T17:15:16Z", "hours": 1.1842, "text": "Summary : Email delivery system integration (Contact Form + OTP), Railway deployment debugging, and infrastructure troubleshooting. What’s Complete Email Service Architecture (Priority-Based Fallback) Status: Fully Integrated & Production-Ready Contact Form Email Flow File: src/routes/contact.js Priority 1 (Production): Resend API — works on Railway, no outbound restrictions Priority 2 (Local Dev): Nodemailer + Gmail SMTP (port 587, TLS) Format: Visitor name in sender, reply-to set to visitor email for direct Gmail replies Testing: Verified via curl — email successfully delivered to [email protected] OTP Email Flow File: src/routes/auth.js Priority 1 (Production): Resend API — handles 6-digit OTP codes Priority 2 (Local Dev): Nodemailer + Gmail SMTP Timeout: 5-minute code expiration Verified: Code generation and storage logic working correctly 2. Frontend Contact Form Fix Status: Resolved Event Binding Issue Problem: DOMContentLoaded event wrapper in contact.js was unreliable because script loads after DOM already ready Solution: Removed wrapper, direct event attachment at script execution- Added: Console debug logging for form submission tracking and error diagnosis Result: Form submission now reliably attaches event listeners and sends fetch requests 3. Railway Deployment Testing* Status: Contact form working in production Domain: https://duskcoffee-production.up.railway.app Tested by: User (Kaedara) — successfully sent contact message Response logs show: Payload received, message queued, response returned to frontend Email delivery: Via Resend (Nodemailer fallback blocked due to Railway SMTP restrictions)"}, {"post_id": 57180, "ts": "2026-08-29T09:03:32Z", "hours": 0.7717, "text": "Project Goes Live! Status: Core Architecture Deployed & Live (Railway + Aiven DB). Whats working perfect: Database Migration & Cloud Infrastructure: Successfully migrated local MariaDB schema to Aiven Managed Cloud MySQL. Backend Deployment: Node.js / Express backend is live on Railway with dynamic port handling and SSL configuration (rejectUnauthorized: false). Catalog APIs: Core catalog endpoints (/api/products/menu & /api/products/beans) are returning 200 OK responses directly from the cloud database. Guest Checkout Schema: Relational database schema refactored to support seamless guest ordering (orders and order_items tables with proper menu_id & product_id key constraints). Next things to do (Might do later): Email OTP Verification MechanismCurrent Status: Temporarily disabled.Future Idea: Swapping Resend for Nodemailer with Gmail App Passwords so guests can actually get their verification codes… if I feel like setting up SMTP again. Order Queue & Confirmation FlowCurrent Status: The database saves transactions fine, but the post-checkout experience is pretty plain right now.Future Idea: Adding a real-time order queue screen (pending $\\rightarrow$ paid $\\rightarrow$ completed) and an instant digital receipt, assuming I don’t get distracted by another project. Contact Form MailerCurrent Status: The UI form looks nice, but submit doesn’t send anything yet.Future Idea: Hooking it up to the mailer service whenever I get around to fixing the email pipeline. Next Steps after that (Maybe) Mess around with Nodemailer in Express routes for OTP. Auto-clear the localStorage cart after checkout. Call it a day and grab an actual coffee"}, {"post_id": 56694, "ts": "2026-08-28T15:39:07Z", "hours": 2.6636, "text": "Summary Today’s work focused on aligning the project with the intended business flow: guest checkout with email OTP validation, instead of traditional user registration/login. The backend, schema, and cart payload were cleaned up to remove account-based flow and enforce a consistent transaction model. What changed Removed the account-based auth flow from the project. No more users table in the database. No more login and register endpoints. Kept the guest checkout path as the only legitimate order flow. Customer browses without logging in. Customer enters name, phone, and email on checkout. Email OTP is sent and validated before the order is placed. Fixed the order schema to match the real business model. orders.customer_phone is used as the canonical phone field. orders.total remains the canonical total value. Refined the order item model. order_items now stores either menu_id or product_id , never both. This avoids the earlier issue where product_id was effectively a stringly-typed placeholder and not a real product reference. Resolved cart identity collisions. Menu and product items can share the same numeric id , so the cart now distinguishes them using item_type . Created a separate seed.sql file for catalog data. Schema file now defines structure only. Seed file loads initial menu and product records. Key architecture decision The system now follows a single contract: Guest checkout only Email OTP verification required before order placement Orders stored in orders Line items stored in order_items Each order item references either: a menu item, or a product item This avoids duplicated and confusing legacy fields such as phone , total_amount , and users authentication. Validation I verified the JavaScript syntax for the changed backend and cart code: node --check passed for the modified JavaScript files. No editor errors were reported for the updated route and cart logic. Notes / Follow-up The remaining operational step is database migration/import: recreate the local MariaDB database import the cleaned schema import the seed file start the app and test the OTP checkout flow end-to-end"}, {"post_id": 52931, "ts": "2026-08-23T09:39:25Z", "hours": 1.7053, "text": "Guest Checkout and email OTP refactor Removed the need for users to create an account before browsing or ordering. Kept the storefront experience frictionless: users can still browse products and add items to the cart without logging in. Added checkout.html Added a checkout flow that collects: full name, phone number, email, 6-digit OTP code Added a “Send Code” button in the checkout form to trigger email verification before order placement. Implemented OTP storage with a temporary in-memory map and expiration logic. Added backend endpoints for:sending OTP emailsverifying OTP codessubmitting guest checkout orders after successful validationUpdated the order flow to store guest customer data directly in the database instead of requiring a registered user session. Kept the storefront experience frictionless: users can still browse products and add items to the cart without logging in. REMOVE auth.html"}, {"post_id": 52488, "ts": "2026-08-22T17:04:13Z", "hours": 2.8456, "text": "Overview : Refactored the DuskCoffee client and backend to replace static mockups with a dynamic, data-driven system. Implemented checkout calculations, order submission endpoints, schema updates for order persistence, and a local JSON fallback mechanism for offline development. File Changes SummaryEdited Files: checkout.html — Updated UI container structure to support dynamic order rendering.checkout. js — Added localStorage cart parsing, dynamic item rendering, price computations (subtotal, tax, delivery), and API POST triggers. menu.html — Removed duplicate static .menu-full-card markup to rely on JavaScript rendering. script.js — Refactored fetch logic to hit live API endpoints first, falling back to static JSON on failure. schema.sql — Extended database schema with orders and order_items tables; verified product image paths. server.js — Mounted orders API route and configured server initialization. Added Files: orders.js — Express route handler to process incoming checkout payloads and persist orders to MariaDB. menu-fallback.json — Static fallback dataset containing all 16 menu items for local development. checkout.html - Static checkout page but with dynamic/sync data with what item’s user add to cart"}, {"post_id": 48915, "ts": "2026-08-17T14:08:30Z", "hours": 2.4075, "text": "add dynamic notif “add to cart”"}, {"post_id": 47529, "ts": "2026-08-15T14:28:43Z", "hours": 0.7072, "text": "make the contact section look better i thnk, tryna user resend for the logic of sending messages, but it didnt work when i tried it myself for testing. well ill think about that later, i got bigger problem here, how to deploy this thing as full stack web 😭"}, {"post_id": 47450, "ts": "2026-08-15T11:48:12Z", "hours": 10.4225, "text": "add auth page for both sign in and signup"}, {"post_id": 6268, "ts": "2026-06-10T15:10:44Z", "hours": 3.4931, "text": "edit 8/15/2026, i decided to seperate the menu-producs.html to each has it own page"}, {"post_id": 2626, "ts": "2026-06-05T08:10:50Z", "hours": 0.4014, "text": "Key Features: Navbar - Navigation menu with Home, About Us, Menu, Products, and Contact links; includes search bar and shopping cart Hero Section - Eye-catching welcome banner with call-to-action (“Order Now”) About Us - Company story and values with images Menu Section - Showcases coffee beverages and food items (Croissant, Cappuccino, Americano, etc.) with prices Interactive Elements - Hamburger menu for mobile, search functionality, click-outside handlers will add more soon….."}]...
|
Title: DuskCoffee by @Diqi | Stardance
Devlogs:
K Title: DuskCoffee by @Diqi | Stardance
Devlogs:
Key Features: Navbar - Navigation menu with Home, About Us, Menu, Products, and Contact links; includes search bar and shopping cart Hero Section - Eye-catching welcome banner with call-to-action (“Order Now”) About Us - Company story and values with images Menu Section - Showcases coffee beverages and food items (Croissant, Cappuccino, Americano, etc.) with prices Interactive Elements - Hamburger menu for mobile, search functionality, click-outside handlers will add more soon…..
edit 8/15/2026, i decided to seperate the menu-producs.html to each has it own page
add auth page for both sign in and signup
make the contact section look better i thnk, tryna user resend for the logic of sending messages, but it didnt work when i tried it myself for testing. well ill think about that later, i got bigger problem here, how to deploy this thing as full stack web 😭
add dynamic notif “add to cart”
Overview : Refactored the DuskCoffee client and backend to replace static mockups with a dynamic, data-driven system. Implemented checkout calculations, order submission endpoints, schema updates for order persistence, and a local JSON fallback mechanism for offline development. File Changes SummaryEdited Files: checkout.html — Updated UI container structure to support dynamic order rendering.checkout. js — Added localStorage cart parsing, dynamic item rendering, price computations (subtotal, tax, delivery), and API POST triggers. menu.html — Removed duplicate static .menu-full-card markup to rely on JavaScript rendering. script.js — Refactored fetch logic to hit live API endpoints first, falling back to static JSON on failure. schema.sql — Extended database schema with orders and order_items tables; verified product image paths. server.js — Mounted orders API route and configured server initialization. Added Files: orders.js — Express route handler to process incoming checkout payloads and persist orders to MariaDB. menu-fallback.json — Static fallback dataset containing all 16 menu items for local development. checkout.html - Static checkout page but with dynamic/sync data with what item’s user add to cart
Guest Checkout and email OTP refactor Removed the need for users to create an account before browsing or ordering. Kept the storefront experience frictionless: users can still browse products and add items to the cart without logging in. Added checkout.html Added a checkout flow that collects: full name, phone number, email, 6-digit OTP code Added a “Send Code” button in the checkout form to trigger email verification before order placement. Implemented OTP storage with a temporary in-memory map and expiration logic. Added backend endpoints for:sending OTP emailsverifying OTP codessubmitting guest checkout orders after successful validationUpdated the order flow to store guest customer data directly in the database instead of requiring a registered user session. Kept the storefront experience frictionless: users can still browse products and add items to the cart without logging in. REMOVE auth.html
Summary Today’s work focused on aligning the project with the intended business flow: guest checkout with email OTP validation, instead of traditional user registration/login. The backend, schema, and cart payload were cleaned up to remove account-based flow and enforce a consistent transaction model. What changed Removed the account-based auth flow from the project. No more users table in the database. No more login and register endpoints. Kept the guest checkout path as the only legitimate order flow. Customer browses without logging in. Customer enters name, phone, and email on checkout. Email OTP is sent and validated before the order is placed. Fixed the order schema to match the real business model. orders.customer_phone is used as the canonical phone field. orders.total remains the canonical total value. Refined the order item model. order_items now stores either menu_id or product_id , never both. This avoids the earlier issue where product_id was effectively a stringly-typed placeholder and not a real product reference. Resolved cart identity collisions. Menu and product items can share the same numeric id , so the cart now distinguishes them using item_type . Created a separate seed.sql file for catalog data. Schema file now defines structure only. Seed file loads initial menu and product records. Key architecture decision The system now follows a single contract: Guest checkout only Email OTP verification required before order placement Orders stored in orders Line items stored in order_items Each order item references either: a menu item, or a product item This avoids duplicated and confusing legacy fields such as phone , total_amount , and users authentication. Validation I verified the JavaScript syntax for the changed backend and cart code: node --check passed for the modified JavaScript files. No editor errors were reported for the updated route and cart logic. Notes / Follow-up The remaining operational step is database migration/import: recreate the local MariaDB database import the cleaned schema import the seed file start the app and test the OTP checkout flow end-to-end
Project Goes Live! Status: Core Architecture Deployed & Live (Railway + Aiven DB). Whats working perfect: Database Migration & Cloud Infrastructure: Successfully migrated local MariaDB schema to Aiven Managed Cloud MySQL. Backend Deployment: Node.js / Express backend is live on Railway with dynamic port handling and SSL configuration (rejectUnauthorized: false). Catalog APIs: Core catalog endpoints (/api/products/menu & /api/products/beans) are returning 200 OK responses directly from the cloud database. Guest Checkout Schema: Relational database schema refactored to support seamless guest ordering (orders and order_items tables with proper menu_id & product_id key constraints). Next things to do (Might do later): Email OTP Verification MechanismCurrent Status: Temporarily disabled.Future Idea: Swapping Resend for Nodemailer with Gmail App Passwords so guests can actually get their verification codes… if I feel like setting up SMTP again. Order Queue & Confirmation FlowCurrent Status: The database saves transactions fine, but the post-checkout experience is pretty plain right now.Future Idea: Adding a real-time order queue screen (pending $\rightarrow$ paid $\rightarrow$ completed) and an instant digital receipt, assuming I don’t get distracted by another project. Contact Form MailerCurrent Status: The UI form looks nice, but submit doesn’t send anything yet.Future Idea: Hooking it up to the mailer service whenever I get around to fixing the email pipeline. Next Steps after that (Maybe) Mess around with Nodemailer in Express routes for OTP. Auto-clear the localStorage cart after checkout. Call it a day and grab an actual coffee
Summary : Email delivery system integration (Contact Form + OTP), Railway deployment debugging, and infrastructure troubleshooting. What’s Complete Email Service Architecture (Priority-Based Fallback) Status: Fully Integrated & Production-Ready Contact Form Email Flow File: src/routes/contact.js Priority 1 (Production): Resend API — works on Railway, no outbound restrictions Priority 2 (Local Dev): Nodemailer + Gmail SMTP (port 587, TLS) Format: Visitor name in sender, reply-to set to visitor email for direct Gmail replies Testing: Verified via curl — email successfully delivered to [email protected] OTP Email Flow File: src/routes/auth.js Priority 1 (Production): Resend API — handles 6-digit OTP codes Priority 2 (Local Dev): Nodemailer + Gmail SMTP Timeout: 5-minute code expiration Verified: Code generation and storage logic working correctly 2. Frontend Contact Form Fix Status: Resolved Event Binding Issue Problem: DOMContentLoaded event wrapper in contact.js was unreliable because script loads after DOM already ready Solution: Removed wrapper, direct event attachment at script execution- Added: Console debug logging for form submission tracking and error diagnosis Result: Form submission now reliably attaches event listeners and sends fetch requests 3. Railway Deployment Testing* Status: Contact form working in production Domain: https://duskcoffee-production.up.railway.app Tested by: User (Kaedara) — successfully sent contact message Response logs show: Payload received, message queued, response returned to frontend Email delivery: Via Resend (Nodemailer fallback blocked due to Railway SMTP restrictions)
OTP UX Fix and SMTP IPv4 Compatibility Summary This update focused on two main issues in the OTP flow: improving the user experience when the send-code button is pressed, and making the Gmail SMTP fallback more reliable on Railway by forcing IPv4 instead of the blocked IPv6 path. 1) OTP Send Button UX Improvement Problem The previous OTP flow allowed users to click the “Send Code” button repeatedly while the backend was still processing the request. This created a poor user experience and could trigger duplicate email sends or repeated requests. Fix The frontend button logic was updated so that while the OTP request is in progress: the button is disabled, the text changes to “Sending…”, repeated clicks are prevented, the button returns to “Send Code” after the request finishes, the user receives a clearer success/error message in English.This makes the request flow feel intentional and prevents confusion during slow network conditions. 2) SMTP IPv4 Fix for Railway: Problem The app was trying to connect to Gmail SMTP using Railway’s outbound networking stack. Railway was preferring IPv6 resolution for Gmail, which caused outbound connections to fail with unreachable network errors. Root Cause The SMTP connection attempted to reach Gmail over IPv6, but the Railway container did not have a working outbound route for that address family. As a result, the backend could not complete the SMTP connection, even though the app code itself was otherwise valid. Fix The Nodemailer transport was updated to force IPv4 resolution by setting: jsfamily: 4 This keeps the existing SMTP host configuration ( host: process.env.SMTP_HOST ) but forces Node.js to use IPv4 instead of attempting the failing IPv6 route.Additional timeout settings were also added to prevent request hangs: jsconnectionTimeout: 10000,greetingTimeout: 5000,socketTimeout: 10000, This ensures that if SMTP is blocked or slow, the backend responds quickly with a clear error instead of leaving the browser hanging with a generic network issue. Outcome The OTP flow is now more stable and user-friendly: the button cannot be spam-clicked, users receive better status feedback, the SMTP connection is more resilient in Railway when Gmail is accessed over IPv4. This patch addresses the UX problem and the deployment-specific SMTP issue without changing the overall app architecture.
rewrite the readme
Ships:
I built DuskCoffee, a fullstack web application for a modern coffee shop catalog and guest ordering system. Built with Node.js, Express, and Vanilla JavaScript, paired with a cloud-managed MySQL database on Aiven and live hosting on Railway over HTTPS. The most challenging part was managing environment configurations, fixing strict SSL connections between Node.js and Aiven MySQL, and setting up proper routing to prevent API errors. I’m really proud of getting a complete cloud database pipeline running smoothly with zero-downtime deployment setup! To test the project, navigate through the Menu/Products tab to see live data pulled straight from the cloud database, or try out the feedback/contact form...
|
1793098377.712292
|
1793184777.712292
|
|
38108
|
DotC by @tux | Stardance
|
tux
|
0
|
28.48
|
0
|
[]
|
[{"post_id": 38944, "ts": "202 [{"post_id": 38944, "ts": "2026-08-01T15:38:22Z", "hours": 10.4094, "text": "Every compiler has that moment where it just stops being a token re-arranger and starts becoming a real compiler. For DotC it was when I realized that the next thing I wanted to add was everything. I was secretly asking myself in this process: “How big is this thing?” So before any of that, I built one function to answer that question, and I made the whole compiler route through it. Struct layout asks it. Array sizing asks it. sizeof asks it. It felt overkill at the time. It turned out to be the best decision in the project because every feature since has been a variation on how does this change the answer. Structs Structs were interesting. Structs look pretty straightforward and simple – I know famous last words – until you have this: struct Node* next; . To parse the pointer to Node , you need Node to exist, but Node only becomes complete after you parse it’s own body. It’s a classic problem of Chicken and egg. Now how did I fix this? Well what I did was register the name as an empty shell the instant you see it, fill it in later. So in this case lies are a good thing. Layout was the moment I felt like crying. One pass computes every field offset and the total size, shared by both “where’s this field” and “how big it is”, so they can never disagree. Bit-fields just gew that same pass to pack bits into shared storage. And unions just used structs infra. Arrays Arrays were quite boring honestly. int grid[3][4] is just an array of arrays. The nightmare was decay. In an expression, an array name stops being an array and becomes a ptr right. I got that wrong in type inference once, and it made me want to cry. A fresh address is 64 bits, and if anything decided it was 32-bit, the upper half just went away. And it was a pain to debug. The Std For now I only have a stddef.h with NULL , size_t , ptrdiff_t , include guards. Nothing crazy. Then I got to the part that needed a bit of… “work”. offsetof which cannot be written in portable C. Everyone cheats and so will I and I’m not hiding that. Builtins I cheated. Now everyone in their mother knows what an intrinsic is. So what intrinsics are supported? Well…: __builtin_unreachable , __builtin_expect , byte-swaps, and – of course – __builtin_offsetof . Experimental Added a little bit of an experimental CMake support, but it’s nothing stable or safe yet."}, {"post_id": 36391, "ts": "2026-07-28T13:52:49Z", "hours": 3.5236, "text": "The ENUM has entered the chat and well did a bit of cleanup + better console system. But just as a quick question how have y’all been doing on your projects? Also what keyword should I add next? Well enough of a rant let me really talk now: Added the enum keyword to the lexer reserved word list. On the paper side, EnumDecl AST nodes got built and registered in a new EnumRegistry that tracks member->value mappings. Simultaneously, operators tokens were unified into a single TokenKind.Operator with a seperate C# enum called OperatorKind that maps to all the operators. Fixed != parsing, unsigned comparison codegen, enum member overflow, bare unsigned keyword ussage, and duplicate enum member detection. Now alongside enum I also added typedef . It supports both the simple typedef <type> <alias> and typedef enum { ... } <alias> forms. Now I was talking about the EnumRegistry and the other one was TypeAliasREgistry, but to make it more maintainable I unifed it all under a generic NameRegistry<T> base. I did a lot of cleanup on the parser project that I’m not really go into because it’s a bit pointless. I overhauled the diagnostic system alongisde just the CLI. I moved from System.CommandLine to Spectre.Console.Cli . Now the most recent thing was the diagnostic system when it comes to multiple errors. I replaced Pidgin’s combinator-based recovery with custom Parser<TToken, T> subclasses. I added a RecoverableList that tries to parse each item, on failure it reports the error, skips the offending token, and advances to the next ; before retrying. And a few other things such as dropping AOT because of reflection and keeping R2R, SingleFile, and selfcontained. And if you look at the images you can see the new diagnostic system and the typedef and enum keyword working,and working together."}, {"post_id": 35629, "ts": "2026-07-27T05:41:49Z", "hours": 4.3356, "text": "So it’s been a day or 2 since the last devlog, but I’ve been on vacation and just been a little busy with life, anyhow enough of a rant. This devlog goes over what I’ve added; that being: while loops, char and unsigned integer types, signed and unsigned aware comparison codegen, and a bit of better cross-platform toolchain support. while loops were implemented E2E. The lexer recongizes the while keyword, a new WhileStatement AST node holds the info, and the parser backing it. Now the codegen emits the loop as a loopTop label, a conditional branch via the existing infra, the body statements, and a jmp loopTop . Now keep in mind this is basically a debug build, but now let’s say you have this C code: int main () { char x = 0 ; while ( x < 15 ) { x = x + 1 ; } return x ; } To keep it bluntly this is the ASM: _TEXT SEGMENT main PROC push rbp mov rbp, rsp sub rsp, 16 mov eax, 0 mov byte ptr [rbp-8], al @while_top0: cmp byte ptr [rbp-8], 15 jge @while_end2 @while_body1: movsx eax, byte ptr [rbp-8] add eax, 1 mov byte ptr [rbp-8], al jmp @while_top0 @while_end2: movsx eax, byte ptr [rbp-8] mov rsp, rbp pop rbp ret main ENDP _TEXT ENDS END But if you want an explanation: Now I’m going to skip the setting up the stack frame, but baically the first few instrctions setup the stack frame and reserve 16 bytes. Now you see we have a variable x which is a char . Now a char on x64 is 1 byte. So that’s what this does: mov eax, 0 mov byte ptr [rbp-8], al We zero it out and then store the low byte ( al ) into x ‘s stack slot. Now that’s cool and all, but what about the while loop!! Well before we can do anything we have a condition: x < 15 or while (x < 15) and that is the part of the @while_top0 . @while_top0: cmp byte ptr [rbp-8], 15 jge @while_end2 We take x and compare it directly against 15 as a byte and jumps out of the loop if x >= 15. Now what about the body? Well the body ( x = x + 1; ) gets evaluated in this body: @while_body1: movsx eax, byte ptr [rbp-8] add eax, 1 mov byte ptr [rbp-8], al jmp @while_top0 This code loads x , sign-extending it into a full 32-bit eax which is needed because arithmetic promotes char to int in C. It adds 1, then truncates back down to a byte when storing into x . Then it jumps back to re-check the condition. What about the end? Well this: @while_end2: movsx eax, byte ptr [rbp-8] mov rsp, rbp pop rbp ret Now this sign-extends x into eax one more time as the return value, tears down the frame, and returns. Now unsigned works, but uhh that’s a lot of instructions, but yeah this is DotC with a while. Now the cross-platform system it mainly reliant on Wine as this compiler only really emits MASM for right now and it requires kernel32.lib… so maybe in the future. And to my Linux people: yes, that is PowerShell, not Bash, and also it’s Kitty. And to my .NET people: yeah I’m using VSCode over Rider on Linux. it’s just lighter weight and I really don’t need a full IDE at the moment."}, {"post_id": 34168, "ts": "2026-07-24T18:02:43Z", "hours": 10.2089, "text": "So, my last C compiler I forgot to install Wakatime 😅, so this is a revamp of the last C compiler, but I’m applying some knowledge to this one. Now I kicked the whole thing off with a few different C# projects and scaffolded. The libraries I chose for this project are Pidgin , System.CommandLine , and Serilog . For my first commit I already had some work done, but it was 3.6k LOC across 64 files and it had a working lexer with keyword/punctuator recognition and trivia handling. It had a recursive-descent parser with expression parsing, statement parsing, and declaration parsing. I had AST node types as C# records for expressions, operators, and statements with x86 MASM code generation with expression and statement lowering and a symbol table. I had a CLI with a few different flags and what not. And quite a few unit tests (generated by my pookie Claude) and yeah. Now a little later(yesterday) I added if/else control flow with a IfStatement AST node with all sorts of things and else keyword and all sorts of things. Added a semantic analyzer to validate if-statement conditions and Boolean compat. Now last night I did have Claude go through and add some unit tests and cleanup the codebase, so removing unused using statements and cleanup the parser and remove warnings. Also orchestrated it to refactor a bit of the parser into a few different files instead of one big file and had it fix an issue with a diagnostic code being reused that was–well–wrong. Now I will say the biggest pain in my butt has been naming conflicts with Pidgin, but that’s not too bad."}]...
|
Title: DotC by @tux | Stardance
Devlogs:
So, my l Title: DotC by @tux | Stardance
Devlogs:
So, my last C compiler I forgot to install Wakatime 😅, so this is a revamp of the last C compiler, but I’m applying some knowledge to this one. Now I kicked the whole thing off with a few different C# projects and scaffolded. The libraries I chose for this project are Pidgin , System.CommandLine , and Serilog . For my first commit I already had some work done, but it was 3.6k LOC across 64 files and it had a working lexer with keyword/punctuator recognition and trivia handling. It had a recursive-descent parser with expression parsing, statement parsing, and declaration parsing. I had AST node types as C# records for expressions, operators, and statements with x86 MASM code generation with expression and statement lowering and a symbol table. I had a CLI with a few different flags and what not. And quite a few unit tests (generated by my pookie Claude) and yeah. Now a little later(yesterday) I added if/else control flow with a IfStatement AST node with all sorts of things and else keyword and all sorts of things. Added a semantic analyzer to validate if-statement conditions and Boolean compat. Now last night I did have Claude go through and add some unit tests and cleanup the codebase, so removing unused using statements and cleanup the parser and remove warnings. Also orchestrated it to refactor a bit of the parser into a few different files instead of one big file and had it fix an issue with a diagnostic code being reused that was–well–wrong. Now I will say the biggest pain in my butt has been naming conflicts with Pidgin, but that’s not too bad.
So it’s been a day or 2 since the last devlog, but I’ve been on vacation and just been a little busy with life, anyhow enough of a rant. This devlog goes over what I’ve added; that being: while loops, char and unsigned integer types, signed and unsigned aware comparison codegen, and a bit of better cross-platform toolchain support. while loops were implemented E2E. The lexer recongizes the while keyword, a new WhileStatement AST node holds the info, and the parser backing it. Now the codegen emits the loop as a loopTop label, a conditional branch via the existing infra, the body statements, and a jmp loopTop . Now keep in mind this is basically a debug build, but now let’s say you have this C code: int main () { char x = 0 ; while ( x < 15 ) { x = x + 1 ; } return x ; } To keep it bluntly this is the ASM: _TEXT SEGMENT main PROC push rbp mov rbp, rsp sub rsp, 16 mov eax, 0 mov byte ptr [rbp-8], al @while_top0: cmp byte ptr [rbp-8], 15 jge @while_end2 @while_body1: movsx eax, byte ptr [rbp-8] add eax, 1 mov byte ptr [rbp-8], al jmp @while_top0 @while_end2: movsx eax, byte ptr [rbp-8] mov rsp, rbp pop rbp ret main ENDP _TEXT ENDS END But if you want an explanation: Now I’m going to skip the setting up the stack frame, but baically the first few instrctions setup the stack frame and reserve 16 bytes. Now you see we have a variable x which is a char . Now a char on x64 is 1 byte. So that’s what this does: mov eax, 0 mov byte ptr [rbp-8], al We zero it out and then store the low byte ( al ) into x ‘s stack slot. Now that’s cool and all, but what about the while loop!! Well before we can do anything we have a condition: x < 15 or while (x < 15) and that is the part of the @while_top0 . @while_top0: cmp byte ptr [rbp-8], 15 jge @while_end2 We take x and compare it directly against 15 as a byte and jumps out of the loop if x >= 15. Now what about the body? Well the body ( x = x + 1; ) gets evaluated in this body: @while_body1: movsx eax, byte ptr [rbp-8] add eax, 1 mov byte ptr [rbp-8], al jmp @while_top0 This code loads x , sign-extending it into a full 32-bit eax which is needed because arithmetic promotes char to int in C. It adds 1, then truncates back down to a byte when storing into x . Then it jumps back to re-check the condition. What about the end? Well this: @while_end2: movsx eax, byte ptr [rbp-8] mov rsp, rbp pop rbp ret Now this sign-extends x into eax one more time as the return value, tears down the frame, and returns. Now unsigned works, but uhh that’s a lot of instructions, but yeah this is DotC with a while. Now the cross-platform system it mainly reliant on Wine as this compiler only really emits MASM for right now and it requires kernel32.lib… so maybe in the future. And to my Linux people: yes, that is PowerShell, not Bash, and also it’s Kitty. And to my .NET people: yeah I’m using VSCode over Rider on Linux. it’s just lighter weight and I really don’t need a full IDE at the moment.
The ENUM has entered the chat and well did a bit of cleanup + better console system. But just as a quick question how have y’all been doing on your projects? Also what keyword should I add next? Well enough of a rant let me really talk now: Added the enum keyword to the lexer reserved word list. On the paper side, EnumDecl AST nodes got built and registered in a new EnumRegistry that tracks member->value mappings. Simultaneously, operators tokens were unified into a single TokenKind.Operator with a seperate C# enum called OperatorKind that maps to all the operators. Fixed != parsing, unsigned comparison codegen, enum member overflow, bare unsigned keyword ussage, and duplicate enum member detection. Now alongside enum I also added typedef . It supports both the simple typedef <type> <alias> and typedef enum { ... } <alias> forms. Now I was talking about the EnumRegistry and the other one was TypeAliasREgistry, but to make it more maintainable I unifed it all under a generic NameRegistry<T> base. I did a lot of cleanup on the parser project that I’m not really go into because it’s a bit pointless. I overhauled the diagnostic system alongisde just the CLI. I moved from System.CommandLine to Spectre.Console.Cli . Now the most recent thing was the diagnostic system when it comes to multiple errors. I replaced Pidgin’s combinator-based recovery with custom Parser<TToken, T> subclasses. I added a RecoverableList that tries to parse each item, on failure it reports the error, skips the offending token, and advances to the next ; before retrying. And a few other things such as dropping AOT because of reflection and keeping R2R, SingleFile, and selfcontained. And if you look at the images you can see the new diagnostic system and the typedef and enum keyword working,and working together.
Every compiler has that moment where it just stops being a token re-arranger and starts becoming a real compiler. For DotC it was when I realized that the next thing I wanted to add was everything. I was secretly asking myself in this process: “How big is this thing?” So before any of that, I built one function to answer that question, and I made the whole compiler route through it. Struct layout asks it. Array sizing asks it. sizeof asks it. It felt overkill at the time. It turned out to be the best decision in the project because every feature since has been a variation on how does this change the answer. Structs Structs were interesting. Structs look pretty straightforward and simple – I know famous last words – until you have this: struct Node* next; . To parse the pointer to Node , you need Node to exist, but Node only becomes complete after you parse it’s own body. It’s a classic problem of Chicken and egg. Now how did I fix this? Well what I did was register the name as an empty shell the instant you see it, fill it in later. So in this case lies are a good thing. Layout was the moment I felt like crying. One pass computes every field offset and the total size, shared by both “where’s this field” and “how big it is”, so they can never disagree. Bit-fields just gew that same pass to pack bits into shared storage. And unions just used structs infra. Arrays Arrays were quite boring honestly. int grid[3][4] is just an array of arrays. The nightmare was decay. In an expression, an array name stops being an array and becomes a ptr right. I got that wrong in type inference once, and it made me want to cry. A fresh address is 64 bits, and if anything decided it was 32-bit, the upper half just went away. And it was a pain to debug. The Std For now I only have a stddef.h with NULL , size_t , ptrdiff_t , include guards. Nothing crazy. Then I got to the part that needed a bit of… “work”. offsetof which cannot be written in portable C. Everyone cheats and so will I and I’m not hiding that. Builtins I cheated. Now everyone in their mother knows what an intrinsic is. So what intrinsics are supported? Well…: __builtin_unreachable , __builtin_expect , byte-swaps, and – of course – __builtin_offsetof . Experimental Added a little bit of an experimental CMake support, but it’s nothing stable or safe yet....
|
1792640914.3488455
|
1793245714.3488455
|
|
37767
|
Voronoi Converter for Autodesk Fusion by @GabrielD Voronoi Converter for Autodesk Fusion by @GabrielD | Stardance...
|
GabrielD
|
1
|
28.47
|
374
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-29T19:11:53Z", "hours": 23.0, "multiplier": 16.32, "payout": 374, "blessing": "neutral", "text": "I built a script that converts bodies in fusion to 3D voronoi patterns! I think that the most challenging part for me was connecting SciPy’s voronoi tools with fusion’s api. You can check out a result of my project below or you can download it and try it yourself at github!", "repo": "https://github.com/Gabriel-Dalmolin/Voronoi-Converter-for-Autodesk-Fusion", "demo": "https://github.com/Gabriel-Dalmolin/Voronoi-Converter-for-Autodesk-Fusion/releases/latest"}]...
|
[{"post_id": 46507, "ts": "202 [{"post_id": 46507, "ts": "2026-08-13T19:44:42Z", "hours": 5.4686, "text": "Devlog 10 - Fusion Voronoi Script Working on a v2 for the script, I did some optimization to run the script faster, one thing that I changed for that purpose is that I was creating every connection extrude in a different operation, now I’m doing it all in a singly operation. I’m also trying to expand the functionality to 2D, the first challenge I faced while doing so is that I wanted to create 2 tabs for it, one for 3D and one for 2D but then I discovered that fusion don’t let you know which tab it was before the user clicked ok (And I needed this to decide which operation to run), so, I needed to add a listener that fires when the user changes tabs, and discover what, fusion also doesn’t tell me which tab he changed to, so, I need to just flip between the two when an event is fired. To be honest, something I really didn’t expect is happening, the 2D is turning out to be harder than the 3D, I’m having some really bad problems with the offset, its really restrictive so for example, if I trimmed an edge and now there is a point in the middle of one other edge, it’s going to raise an error, if it’s not a convex shape (has some angle that’s bigger than 90), it’s going to raise an error, and I took a really long time to figure that it was that restrictive, so, I’m seriously considering adding my own offset function, I even tried to use an external library called shapely but that also wouldn’t work with rounded edges, just straight ones. That’s how my menu is looking right now, as you can see I got 2 tabs!"}, {"post_id": 37018, "ts": "2026-07-29T14:20:15Z", "hours": 1.9575, "text": "Devlog 9 - Fusion Voronoi Script I was still getting some bugs with the combine, now, it was creating some weird really small sections of pipes, I spent some good time researching and thinking that it was some internal kernel problem but in reality it was just because to check if 2 bodies intersect I was doing (If intersection.volume > 0.00001), and those bodies were really small, so I just changed it to bigger than 0 and it solved the problem. I think I’m pretty much done for version 1.0, below is a before and after applying my script."}, {"post_id": 36368, "ts": "2026-07-28T13:19:14Z", "hours": 2.6778, "text": "Devlog 8 - Fusion Voronoi Script Implemented Poisson disk sampling for random number generator and LLoyd’s relaxation to get seeds that are more evenly spaced. Also I was getting some internal errors in the combine features, so, I saw it in some old forums that combining a lot of bodies in a single feature could cause some problems like that, so I changed it tocombine the bodies 1 by 1. Some alterations on fusion’s manifest too, added version and description, getting ready for first ship!"}, {"post_id": 35485, "ts": "2026-07-26T23:09:53Z", "hours": 1.4258, "text": "Devlog 7 - Fusion Voronoi Script Just spent around 2 hours researching and trying to connect scipy and fusion to create each cell as a separate body and then intersect them with the original body to get the centroid. In the end I couldn’t get it to work, below is an image of my best attempt 😭😭"}, {"post_id": 35380, "ts": "2026-07-26T18:52:21Z", "hours": 2.2764, "text": "Devlog 6 - Fusion Voronoi Script Today I first started thinking about how i would implement lloyd’s relaxation into my code (It’s an algorithm that moves every seed of the voronoi to its center of mass, which makes the cells more similar in volume to each other) but I quickly faced a big problem, sometimes my voronoi cells goes partly off the original body, which would mess up with the relaxation and could move the seeds out of the original body, what would cause me bugs, I tried some different methods using scipy’s ConvexHulls but I wasn’t able to create the cells just by using the points such as the voronoi algorithm does. So, I started working on another problem that actually helped me solve the first one! The weird connections on the faces, to solve it I improved the way I was generating ghost points (some voronoi seeds that are put outside the body to restrain the pattern but are not extruded afterwards), at first I was generating them 50% evenly spaced along each face and the other 50% randomically inside a margin around the body, now I am mirroring each seed across each face and using the mirrored points as the ghost points, since both of them are the same distance from the surface, they create beautiful boundaries, it works perfectly with flat faces but still gets kind of messy sometimes with the rounded ones. I faced some problems while doing it, at first, I was just mirroring them against the bounding box of the body, what made it easier and looked great for simple shapes like cubes, but, the rounded edges were not taken in account and if the faces were not parallel to the unit vectors they didn’t look good, since the bounding box is always parallel to them. To solve that I tried iterating through each face, getting the minimum distance point between the face and the seed and then mirroring it through that point, at first it looked really bad, as if I didn’t even had the ghost points, I tried the other method again and at the end came back to the minimum distance method again just to realize that the first time I was getting the minimun distance point at the seed instead of the point at the surface 😅. Even though it looked better for the faces not parallel with the main axis, it still look weird sometimes on the rounded faces. Some pics of how it’s looking right now, you can see at the second one that some of the edges on the rounded surfaces are still getting clipped sometimes"}, {"post_id": 34563, "ts": "2026-07-25T12:01:09Z", "hours": 3.2603, "text": "Devlog 5 - Fusion Voronoi Script I fixed the loose ends! Today I tried some different methods, first I got all the points where the voronoi connections intersected with the surface of the object, the intersection point, then, I built connections between the point and a random edge of the face it’s in. Doing it randomically looked a little bit too messy, so, I changed to code for it to connect to closest edge on the face. I still think it could improve, the straight edges take away the voronoi look so I’m still thinking of a better solution for this problem. Some struggles I had today, so, for the first time I tried running the script in an open box shape and got an error because they didn’t touch and my code tried to connect them, to fix it, I moved all the join features to the end of the code where all the bodies are touching, but I’m still getting some of those combine errors now and then, I’m not sure why since all the bodies touch eachother."}, {"post_id": 33843, "ts": "2026-07-24T02:42:45Z", "hours": 4.0881, "text": "Devlog 4 - Fusion Voronoi Script If you don’t know about my project yet, let me give you a quick summary! So, I’m building a script for fusion360 that transforms solids it into Voronoi patterns, what’s a Voronoi pattern you may ask, so imagine you have some random point inside a shape, each point “claims” the space thats closer to it than to the other points, the boundaries of those areas form the Voronoi pattern! And that ends up looking natural and pretty cool to be honest So, today I finally started creating some Voronoi pattern!! That’s one of the parts that was not much harder than I expected to be honest, I needed to refactor some of the code like the one to sweep the edges for it to be able to create edges just using 2 points instead of a body edge, I needed to do this because before I was just using that function to create the wireframe using the body edges, but know I needed to create the connections for the Voronoi pattern and I just had their initial and final point. Also, I will need to refactor that code again soon and change the sweep feature for a pipe feature because its causing some serious performance issues with the code. The Voronoi is generating well, the ghost points work and restrain it so it doesn’t go to infinity but it still goes a little off the boundaries, and that’s expected, so, I intersect the original body with the Voronoi pattern and then combine it with the wireframe to create the final body, but, as you can see in the images below it creates some weird cuts on the surfaces that honestly, look bad, that’s not how I want my final product to look like. To solve it, I thought about getting every point where the edges of the Voronoi intersects the surface of the body and then create a connection between that point and a randomly selected edge on the same face that it intersects. Hopefully this will make the pattern look more natural, I’m still working on it tought."}, {"post_id": 33178, "ts": "2026-07-22T20:59:45Z", "hours": 3.0772, "text": "Devlog 3 - Fusion Voronoi Script If you don’t know about my project yet, let me give you a quick summary! So, I’m building a script for fusion360 that transforms solids it into voronoi patterns, what’s a voronoi pattern you may ask, so imagine you have some random point inside a shape, each point “claims” the space thats closer to it than to the other points, the boundaries of those areas form the voronoi pattern! And that ends up looking natural and pretty cool to be honest Today I finally started the actual voronoi logic!! So, I made some important scripts today, one to generate the random seeds inside the solid, started working on a script that generates the voronoi patterns and return the edges so that I can sweep them and create the connections in the body, but I quickly faced a problem, voronoi patterns go to infinity. I brainstormed a little bit until I got to a solution, ghost points, so, for them to work, I generate some random points around the solid (I’m using a margin that’s 10% bigger than the bounding box of the solid) and then use those points to create the voronoi but don’t build connections between 2 ghost points. The purpose of them is to stop the infinite boundaries by creating a “barrier” around the solid. To give it some “uniform” density, I decided to do half points equally spaced around the solid and the other half generated randomically, below you can take a look at the result! First Image: Random seeds inside the solid Second Image: Ghost points (all points are outside the box even tought its hard to see it from a single angle)"}, {"post_id": 32541, "ts": "2026-07-21T19:51:33Z", "hours": 3.2333, "text": "Devlog 2 - Fusion Voronoi Script Big improvements here! Today I thought a lot about how I’m going to do this project and realized that on top of making the voronoi pattern, it would also be very important to mantain the original shape/boundaries, so, I decided to convert body into a wireframe and use it’s vertices as seeds for the voronoi. I started thinking about how I would go about the rounded edges, and to be honest, I took longer than what I’d like to admit for me to realize that I could just sweep a circle through its edges, for some reason I thought that the rounded edges didn’t count as edges in the API 😅 To connect it all, I revolved spheres using the same radius as the edges in the vertices (this radius can be inputted by the user), another problem I faced was that after combining I wanted to intersect the new wireframe with the original body to cut any excess over the original volume, but for some reason that also took me a good time, when I put the original body as the target body it didn’t work, I needed to use it as the tool body and the wireframe as the target. Also I organized most of the code, separating it in modules for easier reuse."}, {"post_id": 32086, "ts": "2026-07-21T00:29:28Z", "hours": 0.9522, "text": "Devlog 1 - Fusion Voronoi Script Hello everyone! This is my first devlog and first project here in stardance, I’m coding a script for fusion 360 that is going to take a body and convert it to a voronoi pattern. To be honest, I’ve never coded any fusion script, so, today was mostly used for me to learn the basics and get familiar with the API, for this, I built a simple UI that creates a box from the dimensions inputted by the user, with this, I was able to learn about the API architecture, such as how the handlers and hierarchy works. Not a big achievement yet, but I believe that building a strong foundation is really important on a project like this. Looking forward to sharing more of my progress soon! Video Showcase"}]...
|
Title: Voronoi Converter for Autodesk Fusion by @G Title: Voronoi Converter for Autodesk Fusion by @GabrielD | Stardance
Devlogs:
Devlog 1 - Fusion Voronoi Script Hello everyone! This is my first devlog and first project here in stardance, I’m coding a script for fusion 360 that is going to take a body and convert it to a voronoi pattern. To be honest, I’ve never coded any fusion script, so, today was mostly used for me to learn the basics and get familiar with the API, for this, I built a simple UI that creates a box from the dimensions inputted by the user, with this, I was able to learn about the API architecture, such as how the handlers and hierarchy works. Not a big achievement yet, but I believe that building a strong foundation is really important on a project like this. Looking forward to sharing more of my progress soon! Video Showcase
Devlog 2 - Fusion Voronoi Script Big improvements here! Today I thought a lot about how I’m going to do this project and realized that on top of making the voronoi pattern, it would also be very important to mantain the original shape/boundaries, so, I decided to convert body into a wireframe and use it’s vertices as seeds for the voronoi. I started thinking about how I would go about the rounded edges, and to be honest, I took longer than what I’d like to admit for me to realize that I could just sweep a circle through its edges, for some reason I thought that the rounded edges didn’t count as edges in the API 😅 To connect it all, I revolved spheres using the same radius as the edges in the vertices (this radius can be inputted by the user), another problem I faced was that after combining I wanted to intersect the new wireframe with the original body to cut any excess over the original volume, but for some reason that also took me a good time, when I put the original body as the target body it didn’t work, I needed to use it as the tool body and the wireframe as the target. Also I organized most of the code, separating it in modules for easier reuse.
Devlog 3 - Fusion Voronoi Script If you don’t know about my project yet, let me give you a quick summary! So, I’m building a script for fusion360 that transforms solids it into voronoi patterns, what’s a voronoi pattern you may ask, so imagine you have some random point inside a shape, each point “claims” the space thats closer to it than to the other points, the boundaries of those areas form the voronoi pattern! And that ends up looking natural and pretty cool to be honest Today I finally started the actual voronoi logic!! So, I made some important scripts today, one to generate the random seeds inside the solid, started working on a script that generates the voronoi patterns and return the edges so that I can sweep them and create the connections in the body, but I quickly faced a problem, voronoi patterns go to infinity. I brainstormed a little bit until I got to a solution, ghost points, so, for them to work, I generate some random points around the solid (I’m using a margin that’s 10% bigger than the bounding box of the solid) and then use those points to create the voronoi but don’t build connections between 2 ghost points. The purpose of them is to stop the infinite boundaries by creating a “barrier” around the solid. To give it some “uniform” density, I decided to do half points equally spaced around the solid and the other half generated randomically, below you can take a look at the result! First Image: Random seeds inside the solid Second Image: Ghost points (all points are outside the box even tought its hard to see it from a single angle)
Devlog 4 - Fusion Voronoi Script If you don’t know about my project yet, let me give you a quick summary! So, I’m building a script for fusion360 that transforms solids it into Voronoi patterns, what’s a Voronoi pattern you may ask, so imagine you have some random point inside a shape, each point “claims” the space thats closer to it than to the other points, the boundaries of those areas form the Voronoi pattern! And that ends up looking natural and pretty cool to be honest So, today I finally started creating some Voronoi pattern!! That’s one of the parts that was not much harder than I expected to be honest, I needed to refactor some of the code like the one to sweep the edges for it to be able to create edges just using 2 points instead of a body edge, I needed to do this because before I was just using that function to create the wireframe using the body edges, but know I needed to create the connections for the Voronoi pattern and I just had their initial and final point. Also, I will need to refactor that code again soon and change the sweep feature for a pipe feature because its causing some serious performance issues with the code. The Voronoi is generating well, the ghost points work and restrain it so it doesn’t go to infinity but it still goes a little off the boundaries, and that’s expected, so, I intersect the original body with the Voronoi pattern and then combine it with the wireframe to create the final body, but, as you can see in the images below it creates some weird cuts on the surfaces that honestly, look bad, that’s not how I want my final product to look like. To solve it, I thought about getting every point where the edges of the Voronoi intersects the surface of the body and then create a connection between that point and a randomly selected edge on the same face that it intersects. Hopefully this will make the pattern look more natural, I’m still working on it tought.
Devlog 5 - Fusion Voronoi Script I fixed the loose ends! Today I tried some different methods, first I got all the points where the voronoi connections intersected with the surface of the object, the intersection point, then, I built connections between the point and a random edge of the face it’s in. Doing it randomically looked a little bit too messy, so, I changed to code for it to connect to closest edge on the face. I still think it could improve, the straight edges take away the voronoi look so I’m still thinking of a better solution for this problem. Some struggles I had today, so, for the first time I tried running the script in an open box shape and got an error because they didn’t touch and my code tried to connect them, to fix it, I moved all the join features to the end of the code where all the bodies are touching, but I’m still getting some of those combine errors now and then, I’m not sure why since all the bodies touch eachother.
Devlog 6 - Fusion Voronoi Script Today I first started thinking about how i would implement lloyd’s relaxation into my code (It’s an algorithm that moves every seed of the voronoi to its center of mass, which makes the cells more similar in volume to each other) but I quickly faced a big problem, sometimes my voronoi cells goes partly off the original body, which would mess up with the relaxation and could move the seeds out of the original body, what would cause me bugs, I tried some different methods using scipy’s ConvexHulls but I wasn’t able to create the cells just by using the points such as the voronoi algorithm does. So, I started working on another problem that actually helped me solve the first one! The weird connections on the faces, to solve it I improved the way I was generating ghost points (some voronoi seeds that are put outside the body to restrain the pattern but are not extruded afterwards), at first I was generating them 50% evenly spaced along each face and the other 50% randomically inside a margin around the body, now I am mirroring each seed across each face and using the mirrored points as the ghost points, since both of them are the same distance from the surface, they create beautiful boundaries, it works perfectly with flat faces but still gets kind of messy sometimes with the rounded ones. I faced some problems while doing it, at first, I was just mirroring them against the bounding box of the body, what made it easier and looked great for simple shapes like cubes, but, the rounded edges were not taken in account and if the faces were not parallel to the unit vectors they didn’t look good, since the bounding box is always parallel to them. To solve that I tried iterating through each face, getting the minimum distance point between the face and the seed and then mirroring it through that point, at first it looked really bad, as if I didn’t even had the ghost points, I tried the other method again and at the end came back to the minimum distance method again just to realize that the first time I was getting the minimun distance point at the seed instead of the point at the surface 😅. Even though it looked better for the faces not parallel with the main axis, it still look weird sometimes on the rounded faces. Some pics of how it’s looking right now, you can see at the second one that some of the edges on the rounded surfaces are still getting clipped sometimes
Devlog 7 - Fusion Voronoi Script Just spent around 2 hours researching and trying to connect scipy and fusion to create each cell as a separate body and then intersect them with the original body to get the centroid. In the end I couldn’t get it to work, below is an image of my best attempt 😭😭
Devlog 8 - Fusion Voronoi Script Implemented Poisson disk sampling for random number generator and LLoyd’s relaxation to get seeds that are more evenly spaced. Also I was getting some internal errors in the combine features, so, I saw it in some old forums that combining a lot of bodies in a single feature could cause some problems like that, so I changed it tocombine the bodies 1 by 1. Some alterations on fusion’s manifest too, added version and description, getting ready for first ship!
Devlog 9 - Fusion Voronoi Script I was still getting some bugs with the combine, now, it was creating some weird really small sections of pipes, I spent some good time researching and thinking that it was some internal kernel problem but in reality it was just because to check if 2 bodies intersect I was doing (If intersection.volume > 0.00001), and those bodies were really small, so I just changed it to bigger than 0 and it solved the problem. I think I’m pretty much done for version 1.0, below is a before and after applying my script.
Devlog 10 - Fusion Voronoi Script Working on a v2 for the script, I did some optimization to run the script faster, one thing that I changed for that purpose is that I was creating every connection extrude in a different operation, now I’m doing it all in a singly operation. I’m also trying to expand the functionality to 2D, the first challenge I faced while doing so is that I wanted to create 2 tabs for it, one for 3D and one for 2D but then I discovered that fusion don’t let you know which tab it was before the user clicked ok (And I needed this to decide which operation to run), so, I needed to add a listener that fires when the user changes tabs, and discover what, fusion also doesn’t tell me which tab he changed to, so, I need to just flip between the two when an event is fired. To be honest, something I really didn’t expect is happening, the 2D is turning out to be harder than the 3D, I’m having some really bad problems with the offset, its really restrictive so for example, if I trimmed an edge and now there is a point in the middle of one other edge, it’s going to raise an error, if it’s not a convex shape (has some angle that’s bigger than 90), it’s going to raise an error, and I took a really long time to figure that it was that restrictive, so, I’m seriously considering adding my own offset function, I even tried to use an external library called shapely but that also wouldn’t work with rounded edges, just straight ones. That’s how my menu is looking right now, as you can see I got 2 tabs!
Ships:
I built a script that converts bodies in fusion to 3D voronoi patterns! I think that the most challenging part for me was connecting SciPy’s voronoi tools with fusion’s api. You can check out a result of my project below or you can download it and try it yourself at github!...
|
1793094805.6263945
|
1793181205.6263945
|
|
8976
|
Affordable MyoElectric Prosthetic by @utkarsh_tewa Affordable MyoElectric Prosthetic by @utkarsh_tewari | Stardance...
|
utkarsh_tewari
|
0
|
28.44
|
0
|
[]
|
[{"post_id": 47271, "ts": "202 [{"post_id": 47271, "ts": "2026-08-15T02:57:01Z", "hours": 0.35, "text": "finished the arduino code :D"}, {"post_id": 46186, "ts": "2026-08-13T07:12:44Z", "hours": 11.4317, "text": "v2 done! I took a photo of it in my schooll’s lightbox and the design is much better, the piece at the end is velcro for it to attach. v3 im thinking some sort of compliant gripper. this is meant to replace hooks and stuff like that after all which can go upwards of 2000$ (at a minimum) and some sort of compliant gripper would be good here. perhaps even a true hands or tri-claw. coding it now :D"}, {"post_id": 29647, "ts": "2026-07-16T18:31:31Z", "hours": 11.1842, "text": "v1 done and 3d printed and coded, pretty bad tbh but its just a POC"}, {"post_id": 11134, "ts": "2026-06-18T06:38:46Z", "hours": 5.4703, "text": "worked on code and tuning myoware values to have a working smoothing algorithm when i 3d print the prototype. also soldered the wires onto the myoware, planning on doing 3 prototypes before finalizing a design for a cheaper prosthetic. this is my first time soldering is it good lol i had to solder 2 wires onto the back bc when they were on the front it wasnt good…"}]...
|
Title: Affordable MyoElectric Prosthetic by @utkar Title: Affordable MyoElectric Prosthetic by @utkarsh_tewari | Stardance
Devlogs:
worked on code and tuning myoware values to have a working smoothing algorithm when i 3d print the prototype. also soldered the wires onto the myoware, planning on doing 3 prototypes before finalizing a design for a cheaper prosthetic. this is my first time soldering is it good lol i had to solder 2 wires onto the back bc when they were on the front it wasnt good…
v1 done and 3d printed and coded, pretty bad tbh but its just a POC
v2 done! I took a photo of it in my schooll’s lightbox and the design is much better, the piece at the end is velcro for it to attach. v3 im thinking some sort of compliant gripper. this is meant to replace hooks and stuff like that after all which can go upwards of 2000$ (at a minimum) and some sort of compliant gripper would be good here. perhaps even a true hands or tri-claw. coding it now :D
finished the arduino code :D...
|
1792669742.8020742
|
1793533742.8020742
|
|
23680
|
GeoNet-3D by @Mateus-M15 | Stardance
|
Mateus-M15
|
1
|
28.43
|
305
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-26T02:37:05Z", "hours": 27.0, "multiplier": 11.23, "payout": 305, "blessing": "neutral", "text": "GeoNet-3D is an interactive 3D Solar System n’ Satellite Simulator built with Three.js and raw JavaScript. What did you make? I built an interactive 3D space simulator featuring planetary orbits, Earth’s Moon, real-time tracking of artificial satellites (like the ISS, Hubble, and JWST), a 3D orientation compass, dynamic info panels, and a custom intro screen with a rotating 3D Earth preview. What was challenging? Diving into Three.js and .JS before we even covered JavaScript in my classes! Dealing with WebGL rendering, coordinating camera tracking without built-in collision tools, handling an isolated second canvas for the intro page, and figuring out the math for the orbital movements were a pain ;o. What are you proud of? I’m proud of taking this idea from absolute zero to a fully functional, clean 3D web application. Getting the custom UI layout working, making the transition from the welcome screen to the main simulation seamless, and building controls that actually feel good to navigate was super satisfying. What should people know so they can test your project? When you load the page, you’ll land on a welcome intro screen with a control guide and a 3D Earth. Click “START EXPLORING” to jump into the actual simulation. Use Left Click to select objects, Right Click + Drag to rotate the camera, WASD for free flying movement, and the top-left UI panel to toggle satellites, real speed, orbits, or the 3D compass.", "repo": "https://github.com/m15dev/GeoNet-3D", "demo": "https://m15dev.github.io/GeoNet-3D/"}]...
|
[{"post_id": 36779, "ts": "202 [{"post_id": 36779, "ts": "2026-07-29T01:38:07Z", "hours": 0.6731, "text": "DevLog #12 Hello ;D, i’ve done some changes to the README, now it says better on my AI usage, so now it should be allright. see ya soon"}, {"post_id": 35464, "ts": "2026-07-26T22:12:12Z", "hours": 0.7533, "text": "DevLog 11# Well the life not always a strawberry, i saw now that u pushed the wrong version to commit and lost some fixes i did, uuh i spend 3 hours trying to find why wasn’t the website loading, turns out, “GitHub-Pages” and “Vercer” are case sentive, so my SatelitesDATA.js wasn’t reconized when called SatelitesData.js, yeah, but in my defense, im my computer was working ;P Take care people"}, {"post_id": 34957, "ts": "2026-07-26T02:33:02Z", "hours": 0.8469, "text": "DevLog #10 🚀 Hello dear person seeing this :D: :D OH MAN, FINALLY IT’S WORKIN as IT SHOULD, well, even tough i had some Ai help -sorry for that, going from never build a website or anything to and 3D renderer, was a verry cool thing to do, and made me understand better how site’s work etc, today i’ve added the final “MANUEL” to use just a quick guide, and some random bug fix, feel free to try it out, BYEEEE"}, {"post_id": 34369, "ts": "2026-07-25T00:55:16Z", "hours": 1.2617, "text": "DevLog #9 Hello, so today i’ve added the satelites models and the Cool Info Pannel now works as it should, i’ll add a user guide manual tomorrow, bye ;3"}, {"post_id": 33834, "ts": "2026-07-24T02:22:59Z", "hours": 1.4842, "text": "DevLog #8 sup, today i just did some changes to the menu, added an animation, and configured the “Hide Ui” button, more work tomorrow, bye."}, {"post_id": 29903, "ts": "2026-07-17T02:17:58Z", "hours": 1.4342, "text": "Devlog #7 Hello People ;3 - Today was a shorter development session, about one hour, but I focused on planning one of the biggest UI improvements for GeoNet 3D . Planned Features Designed the layout for the Planet Information panel. Planned a navigation guide for planets and satellites. Improved the overall UI layout to make it feel more like an app. Toggle Ui, Orbits, Stars, Cool Info Pannel. Planed a user manual. Interactive planet information. Satellite information panel. The new Cool Information Panel will display data such as: Radius Mass Day Length Year Length Number of Moons Distance from the Sun My goal is to make GeoNet 3D feel less like a simple 3D viewer and more like an interactive educational application. Even though there wasn’t a lot of coding today, planning the interface beforehand should make the next implementation much faster. P.S. If you noticed this devlog has a different style, it’s because I didn’t realize I could customize it until today. >:P"}, {"post_id": 29272, "ts": "2026-07-16T02:38:10Z", "hours": 6.0142, "text": "Helloo again XD, so today i got focoused on fixin the damn system that gives and ideia of how fast they actually move irl, and their positions, to they are aproximatly where it should be, not 100% exact but you can get the ideia, fixed bug when animation endende some planets whould snap to a completly random position, i also took some time to redesign the satellites systems so i can calculate their positions easly, overall, i improved the simulation. See ya on next ;D"}, {"post_id": 28673, "ts": "2026-07-15T02:13:26Z", "hours": 6.0644, "text": "Hello ;3 woow 6 hours. . . yeah, thats some time i guess…. Today i decided that 900+ lines on a single file was too much, so i need to organize it better, because adding new updates was getting hard as i was lost to where i put some code, in addition to that now we have: -New Camera sistem the old one sometime just didn’t work, the issue was it missed a “}” -The Real-Time Speed, now does some math to place the planets as close as they should be irl, when you toggle it on ofc, that was it, rewriting and aprimorating the code. theres some photos of the app down there / , see yaa ;0"}, {"post_id": 28066, "ts": "2026-07-14T02:48:52Z", "hours": 5.3283, "text": "Hello :D so i got a few days off, uuh vacation and a flu verry normal, but to reapay that i didn’t worked on the project other days, i reapaid it today so: -New Camera System; YAYA:D (now it’s easier to navigate and it’s no glichy) -New Planets from the solar system. -New Toggle Button for the “Real Time speed” that alings the planets to where they supposly are irl, (on-work) -Added a trail, so you can see the path the it runs, -Added a teleporting menu, so you can let’s says, “fast travel “ to an planet. that’s it folks, have a good day ;D"}, {"post_id": 14808, "ts": "2026-06-24T01:32:34Z", "hours": 1.2769, "text": "GoodNight to whoever is reading this ;D So today i just fixed some camera bugs, like when i click a platet, a satelite etc, the camera doesn’t pivot correctly, now works fine, and add some box likes objects representing the satelites, (the box it’s temporary) until i find a model or i make one."}, {"post_id": 14084, "ts": "2026-06-23T02:08:42Z", "hours": 2.7178, "text": "Sup people or aliens idk ;D So today I fixed the camera controls that were twisted, and added a menu so I can do stuff like pivoting the camera to Earth, toggling the stars, Earth’s rotation, and more. I also added the Moon and the Sun as actual celestial bodies, plus a 3D compass because you might flip yourself upside down and need to keep track of it!"}, {"post_id": 13348, "ts": "2026-06-21T21:22:08Z", "hours": 0.7067, "text": "Hello dear person reading this :D. Today I built the main Earth sphere using Three.js, i used a texture loader function to project an image onto the sphere, and added a sun-type illumination. I still need to create the actual Sun object for reference."}]...
|
Title: GeoNet-3D by @Mateus-M15 | Stardance
Devlo Title: GeoNet-3D by @Mateus-M15 | Stardance
Devlogs:
Hello dear person reading this :D. Today I built the main Earth sphere using Three.js, i used a texture loader function to project an image onto the sphere, and added a sun-type illumination. I still need to create the actual Sun object for reference.
Sup people or aliens idk ;D So today I fixed the camera controls that were twisted, and added a menu so I can do stuff like pivoting the camera to Earth, toggling the stars, Earth’s rotation, and more. I also added the Moon and the Sun as actual celestial bodies, plus a 3D compass because you might flip yourself upside down and need to keep track of it!
GoodNight to whoever is reading this ;D So today i just fixed some camera bugs, like when i click a platet, a satelite etc, the camera doesn’t pivot correctly, now works fine, and add some box likes objects representing the satelites, (the box it’s temporary) until i find a model or i make one.
Hello :D so i got a few days off, uuh vacation and a flu verry normal, but to reapay that i didn’t worked on the project other days, i reapaid it today so: -New Camera System; YAYA:D (now it’s easier to navigate and it’s no glichy) -New Planets from the solar system. -New Toggle Button for the “Real Time speed” that alings the planets to where they supposly are irl, (on-work) -Added a trail, so you can see the path the it runs, -Added a teleporting menu, so you can let’s says, “fast travel “ to an planet. that’s it folks, have a good day ;D
Hello ;3 woow 6 hours. . . yeah, thats some time i guess…. Today i decided that 900+ lines on a single file was too much, so i need to organize it better, because adding new updates was getting hard as i was lost to where i put some code, in addition to that now we have: -New Camera sistem the old one sometime just didn’t work, the issue was it missed a “}” -The Real-Time Speed, now does some math to place the planets as close as they should be irl, when you toggle it on ofc, that was it, rewriting and aprimorating the code. theres some photos of the app down there / , see yaa ;0
Helloo again XD, so today i got focoused on fixin the damn system that gives and ideia of how fast they actually move irl, and their positions, to they are aproximatly where it should be, not 100% exact but you can get the ideia, fixed bug when animation endende some planets whould snap to a completly random position, i also took some time to redesign the satellites systems so i can calculate their positions easly, overall, i improved the simulation. See ya on next ;D
Devlog #7 Hello People ;3 - Today was a shorter development session, about one hour, but I focused on planning one of the biggest UI improvements for GeoNet 3D . Planned Features Designed the layout for the Planet Information panel. Planned a navigation guide for planets and satellites. Improved the overall UI layout to make it feel more like an app. Toggle Ui, Orbits, Stars, Cool Info Pannel. Planed a user manual. Interactive planet information. Satellite information panel. The new Cool Information Panel will display data such as: Radius Mass Day Length Year Length Number of Moons Distance from the Sun My goal is to make GeoNet 3D feel less like a simple 3D viewer and more like an interactive educational application. Even though there wasn’t a lot of coding today, planning the interface beforehand should make the next implementation much faster. P.S. If you noticed this devlog has a different style, it’s because I didn’t realize I could customize it until today. >:P
DevLog #8 sup, today i just did some changes to the menu, added an animation, and configured the “Hide Ui” button, more work tomorrow, bye.
DevLog #9 Hello, so today i’ve added the satelites models and the Cool Info Pannel now works as it should, i’ll add a user guide manual tomorrow, bye ;3
DevLog #10 🚀 Hello dear person seeing this :D: :D OH MAN, FINALLY IT’S WORKIN as IT SHOULD, well, even tough i had some Ai help -sorry for that, going from never build a website or anything to and 3D renderer, was a verry cool thing to do, and made me understand better how site’s work etc, today i’ve added the final “MANUEL” to use just a quick guide, and some random bug fix, feel free to try it out, BYEEEE
DevLog 11# Well the life not always a strawberry, i saw now that u pushed the wrong version to commit and lost some fixes i did, uuh i spend 3 hours trying to find why wasn’t the website loading, turns out, “GitHub-Pages” and “Vercer” are case sentive, so my SatelitesDATA.js wasn’t reconized when called SatelitesData.js, yeah, but in my defense, im my computer was working ;P Take care people
DevLog #12 Hello ;D, i’ve done some changes to the README, now it says better on my AI usage, so now it should be allright. see ya soon
Ships:
GeoNet-3D is an interactive 3D Solar System n’ Satellite Simulator built with Three.js and raw JavaScript. What did you make? I built an interactive 3D space simulator featuring planetary orbits, Earth’s Moon, real-time tracking of artificial satellites (like the ISS, Hubble, and JWST), a 3D orientation compass, dynamic info panels, and a custom intro screen with a rotating 3D Earth preview. What was challenging? Diving into Three.js and .JS before we even covered JavaScript in my classes! Dealing with WebGL rendering, coordinating camera tracking without built-in collision tools, handling an isolated second canvas for the intro page, and figuring out the math for the orbital movements were a pain ;o. What are you proud of? I’m proud of taking this idea from absolute zero to a fully functional, clean 3D web application. Getting the custom UI layout working, making the transition from the welcome screen to the main simulation seamless, and building controls that actually feel good to navigate was super satisfying. What should people know so they can test your project? When you load the page, you’ll land on a welcome intro screen with a control guide and a 3D Earth. Click “START EXPLORING” to jump into the actual simulation. Use Left Click to select objects, Right Click + Drag to rotate the camera, WASD for free flying movement, and the top-left UI panel to toggle satellites, real speed, orbits, or the 3D compass....
|
1792878701.0832562
|
1793742701.0832562
|
|
35318
|
ATLAS — Autonomous Trading & Learning Analysis ATLAS — Autonomous Trading & Learning Analysis System by @GeorgeZ | Stardance...
|
GeorgeZ
|
0
|
28.39
|
0
|
[]
|
[{"post_id": 29975, "ts": "202 [{"post_id": 29975, "ts": "2026-07-17T06:00:43Z", "hours": 28.3928, "text": "First devlog: ATLAS Mission: Building a Smarter Investment and Research System Been working on ATLAS, my autonomous investment research platform! 🚀 Right now it can research stocks and ETFs, analyze stocks, news, and risk, make explainable paper trading recommendations, and keep track of how those recommendations perform over time. The long term goal is to turn it into something that feels like having a personal research analyst running 24/7 in your pocket. I want it to automatically discover interesting companies, understand market news, build a knowledge base, learn from its past decisions, improve its research over time, and eventually become a powerful tool for finding and evaluating investment ideas. The biggest challenge so far has honestly been understanding how everything fits together. Finance has so many parts, and every new feature seems to require learning three more things first 😅. I’ve spent a lot of time reading, watching youtube videos, and testing ideas before writing code, but it’s been really rewarding to see the project slowly come together. Im excited to see where this goes!"}]...
|
Title: ATLAS — Autonomous Trading & Learning A Title: ATLAS — Autonomous Trading & Learning Analysis System by @GeorgeZ | Stardance
Devlogs:
First devlog: ATLAS Mission: Building a Smarter Investment and Research System Been working on ATLAS, my autonomous investment research platform! 🚀 Right now it can research stocks and ETFs, analyze stocks, news, and risk, make explainable paper trading recommendations, and keep track of how those recommendations perform over time. The long term goal is to turn it into something that feels like having a personal research analyst running 24/7 in your pocket. I want it to automatically discover interesting companies, understand market news, build a knowledge base, learn from its past decisions, improve its research over time, and eventually become a powerful tool for finding and evaluating investment ideas. The biggest challenge so far has honestly been understanding how everything fits together. Finance has so many parts, and every new feature seems to require learning three more things first 😅. I’ve spent a lot of time reading, watching youtube videos, and testing ideas before writing code, but it’s been really rewarding to see the project slowly come together. Im excited to see where this goes!...
|
1792939771.28402
|
1793803771.28402
|
|
9860
|
Discord bot by @Aglomation | Stardance
|
Aglomation
|
0
|
28.28
|
0
|
[]
|
[{"post_id": 71245, "ts": "202 [{"post_id": 71245, "ts": "2026-09-20T14:53:24Z", "hours": 10.5392, "text": "I’ve added tons, forgot this site existed. erm I added temp VCs, a honeypot channel, tons of smaller fixes and automized a bunch of weird things that took ages to do manually"}, {"post_id": 28907, "ts": "2026-07-15T14:42:51Z", "hours": 16.6425, "text": "I’m working on adding tempvc"}, {"post_id": 3593, "ts": "2026-06-06T16:20:56Z", "hours": 0.3981, "text": "Fixed some issues with the birthday commands, also made it into a much nicer embed instead of plaintext"}, {"post_id": 3563, "ts": "2026-06-06T15:42:21Z", "hours": 0.6975, "text": "Made a useless update"}]...
|
Title: Discord bot by @Aglomation | Stardance
Dev Title: Discord bot by @Aglomation | Stardance
Devlogs:
Made a useless update
Fixed some issues with the birthday commands, also made it into a much nicer embed instead of plaintext
I’m working on adding tempvc
I’ve added tons, forgot this site existed. erm I added temp VCs, a honeypot channel, tons of smaller fixes and automized a bunch of weird things that took ages to do manually...
|
1792803142.1767526
|
1793407942.1767526
|
|
43793
|
mini_consol by @kdenis | Stardance
|
kdenis
|
1
|
28.27
|
331
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-21T08:49:31Z", "hours": 28.0, "multiplier": 11.7, "payout": 331, "blessing": "neutral", "text": "What did you make? I built a DIY mini handheld console powered by an Arduino Nano! My main goal was to dive into embedded systems development and get hands-on experience with hardware and C++. Because of this, I focused on core functionality rather than super complex games. When you turn it on, you’re greeted with a scrolling “mini console” text, followed by a game selection menu. During gameplay, pressing the designated pause button opens a pause menu where you can either resume (saving your current progress) or exit to the main menu. I included two games: Snake and Flappy Bird. What was challenging? Generating non-blocking audio feedback was definitely the hardest part. I implemented button click sounds using PWM to control the volume, which took a lot of time to tune since working with audio signals is trickier than controlling a motor. It required pseudo-multitasking using millis() to keep the gameplay smooth while playing sounds. Also, in Snake, I initially didn’t use a grid-based movement system and implemented pixel-by-pixel movement instead. Because of this, collision detection with food can occasionally miss. What are you proud of? I’m really proud of the software architecture and code structure in several parts of the project. I focused on clean OOP principles, solid encapsulation, and clear code organization (though a few spots are still a bit messy!). I’m also proud that i didn’t use delay funtion and of my Settings.h file What should people know so they can test your project? To test or build it, you just need to know how to connect the display and buttons to an Arduino Nano. Inside the Settings.h file, you can easily customize pin configurations, volume, colors, display sizes, and game speeds. I also added comments throughout the codebase to make it easy to follow along!", "repo": "https://github.com/deniska-design/mini_consol", "demo": "https://www.youtube.com/watch?v=uTfua7OpIts"}]...
|
[{"post_id": 53755, "ts": "202 [{"post_id": 53755, "ts": "2026-08-24T13:03:26Z", "hours": 0.2725, "text": "DevLog №10 prepared everything for shiping. added wiring.png and AI usage declaration in my README file."}, {"post_id": 50404, "ts": "2026-08-19T15:50:50Z", "hours": 2.895, "text": "DevLog №9 ###What’s New Walls & Pipes Mechanics: Added moving wall obstacles. Score Counter: Integrated a score tracking system. ###How It Works Score Logic: To keep things simple and efficient, the score increases automatically whenever a wall reaches the left edge of the screen. Illusion of Movement: The bird stays in place while the walls continuously cycle and reset from the right edge back to the left. This creates a smooth side-scrolling illusion! It was a fairly straightforward feature to implement, but it instantly made the project feel much more like a complete game!"}, {"post_id": 48980, "ts": "2026-08-17T15:48:49Z", "hours": 2.9033, "text": "Devlog №8 Bird Physics & Rendering Flicker-Free Rendering To prevent screen flickering caused by redrawing the entire screen, I optimized the loop by clearing only the bird’s exact position before rendering its new frame. Physics Implementation Movement relies on both velocity and acceleration : Acceleration continuously increases the downward velocity (gravity). Jump mechanic resets the downward velocity to initial on every input. Next Steps: Wall Generation Obstacle Setup I need to create an array of one dynamic wall . Recycling Logic As soon as a wall reaches the left edge of the screen, it will wrap around to the right . The height/position will randomize each time it reappears to form a continuous level."}, {"post_id": 46939, "ts": "2026-08-14T14:36:32Z", "hours": 1.1725, "text": "Devlog №7 implemted PMW to control sound volume"}, {"post_id": 46796, "ts": "2026-08-14T09:32:51Z", "hours": 0.7017, "text": "Devlog №6 Today I quickly set up the startup text so it scrolls smoothly, and that’s pretty much it. Nothing complicated, really—took me literally half an hour. Next up: finish tuning the PWM to quiet down the audio, and then I’ll probably work on making a more interesting splash screen."}, {"post_id": 46404, "ts": "2026-08-13T16:12:02Z", "hours": 8.6364, "text": "Devlog №5 I added sound effects for every button press on my mini-console! Sounds like a super quick and easy task, right? Well, it should have been. But a few architectural bumps in the road ended up eating way more time than expected. What went wrong (and how I fixed it) Hardware Pin Conflict: My buzzer was originally soldered to a pin used by SPI . As soon as the display initialized, things went sideways. Game Loop vs. Main Loop Architecture: My game logic was running inside an infinite loop within a standalone function, while the sound playback logic lived in the main loop calling that function. Solution: soldered the buzzer to another pin and quick architecture refactor solved both problems pretty easily — I spent about an hour on each issue. The Biggest Problem: A very loud buzzer remains the biggest and unsolved issue. I tried to tame it in software using PWM (Pulse Width Modulation) to decrease the volume. But PWM control is tricky on its own, and since the buzzer relies on a fixed frequency to generate tone, layering custom PWM over it completely broke the audio pitch. Next Up: Implement smooth scrolling text for the console startup screen. Conquer this cursed PWM/volume issue once and for all. Start writing a Flappy Bird clone"}, {"post_id": 43336, "ts": "2026-08-08T15:14:08Z", "hours": 3.9092, "text": "DevLog №4 What’s New Pause Menu Implemented: Players can now pause the game at any time with two options: -> Continue: Return to the game with all current progress intact. -> Exit to Menu: Quit to the main menu (resets all game progress). Technical Challenges The main challenge was handling this within my current architecture, which relies on a main loop with a nested switch statement for state management. I needed a reliable way for these states to communicate and handle game object lifecycles properly: -> Persisting Objects: Retaining game objects in memory when resuming from pause. -> Cleaning Up: Safely destroying objects and resetting state when returning to the main menu (either voluntarily or on Game Over). Next Goals -> Add sound effects using the built-in piezo buzzer. -> Implement a new mini-game: Flappy Bird."}, {"post_id": 42572, "ts": "2026-08-07T12:00:33Z", "hours": 3.4556, "text": "DevLog №3 : What I worked on: Started implementing the Pause state during gameplay. To make this work properly, the game needs to preserve the current state of both the Snake and Food objects when transitioning into pause and back. Slightly refactored the main loop architecture and updated the SnakeGameHandle function. The Struggle: decided to write a helper function to update values inside my StateMachine (handling states like Game, Menu, Pause, Snake, FlappyBird).Blaming it on late-night fatigue, I wrote the function in the most overcomplicated way possible… and called it even worse. The result? Every time I exited the Snake game, I was greeted by a blank black screen because the Menu state was never getting assigned correctly. I spent over an hour staring at the code, completely stumped as to why it was breaking. I think it happened because of self-assignment The Fix: Decided to get some sleep. Woke up the next morning with a fresh head and fixed the black screen issue in 20 minutes. Next Goal: Finish up the Pause feature completely"}, {"post_id": 41914, "ts": "2026-08-06T13:03:12Z", "hours": 1.4547, "text": "devlog #2: added StateHandle file to handle all the actions(menu, games) in my main loop in main.cpp. Now my main loop is shorter and more understandable"}, {"post_id": 41835, "ts": "2026-08-06T09:24:37Z", "hours": 3.1758, "text": "Devlog #1: I uploaded all the files I had written before I found out about Hack Club. After that, I spent most of my time figuring out how to detect collisions between the snake and the food. Since I originally built everything pixel-by-pixel instead of using a grid system, comparing screen positions directly required too many pixel checks. To optimize this and avoid checking every single pixel pair, I had to tweak the logic. Even though it was tricky to adjust without a strict grid, the collision detection is working now and the game is totally playable"}]...
|
Title: mini_consol by @kdenis | Stardance
Devlogs Title: mini_consol by @kdenis | Stardance
Devlogs:
Devlog #1: I uploaded all the files I had written before I found out about Hack Club. After that, I spent most of my time figuring out how to detect collisions between the snake and the food. Since I originally built everything pixel-by-pixel instead of using a grid system, comparing screen positions directly required too many pixel checks. To optimize this and avoid checking every single pixel pair, I had to tweak the logic. Even though it was tricky to adjust without a strict grid, the collision detection is working now and the game is totally playable
devlog #2: added StateHandle file to handle all the actions(menu, games) in my main loop in main.cpp. Now my main loop is shorter and more understandable
DevLog №3 : What I worked on: Started implementing the Pause state during gameplay. To make this work properly, the game needs to preserve the current state of both the Snake and Food objects when transitioning into pause and back. Slightly refactored the main loop architecture and updated the SnakeGameHandle function. The Struggle: decided to write a helper function to update values inside my StateMachine (handling states like Game, Menu, Pause, Snake, FlappyBird).Blaming it on late-night fatigue, I wrote the function in the most overcomplicated way possible… and called it even worse. The result? Every time I exited the Snake game, I was greeted by a blank black screen because the Menu state was never getting assigned correctly. I spent over an hour staring at the code, completely stumped as to why it was breaking. I think it happened because of self-assignment The Fix: Decided to get some sleep. Woke up the next morning with a fresh head and fixed the black screen issue in 20 minutes. Next Goal: Finish up the Pause feature completely
DevLog №4 What’s New Pause Menu Implemented: Players can now pause the game at any time with two options: -> Continue: Return to the game with all current progress intact. -> Exit to Menu: Quit to the main menu (resets all game progress). Technical Challenges The main challenge was handling this within my current architecture, which relies on a main loop with a nested switch statement for state management. I needed a reliable way for these states to communicate and handle game object lifecycles properly: -> Persisting Objects: Retaining game objects in memory when resuming from pause. -> Cleaning Up: Safely destroying objects and resetting state when returning to the main menu (either voluntarily or on Game Over). Next Goals -> Add sound effects using the built-in piezo buzzer. -> Implement a new mini-game: Flappy Bird.
Devlog №5 I added sound effects for every button press on my mini-console! Sounds like a super quick and easy task, right? Well, it should have been. But a few architectural bumps in the road ended up eating way more time than expected. What went wrong (and how I fixed it) Hardware Pin Conflict: My buzzer was originally soldered to a pin used by SPI . As soon as the display initialized, things went sideways. Game Loop vs. Main Loop Architecture: My game logic was running inside an infinite loop within a standalone function, while the sound playback logic lived in the main loop calling that function. Solution: soldered the buzzer to another pin and quick architecture refactor solved both problems pretty easily — I spent about an hour on each issue. The Biggest Problem: A very loud buzzer remains the biggest and unsolved issue. I tried to tame it in software using PWM (Pulse Width Modulation) to decrease the volume. But PWM control is tricky on its own, and since the buzzer relies on a fixed frequency to generate tone, layering custom PWM over it completely broke the audio pitch. Next Up: Implement smooth scrolling text for the console startup screen. Conquer this cursed PWM/volume issue once and for all. Start writing a Flappy Bird clone
Devlog №6 Today I quickly set up the startup text so it scrolls smoothly, and that’s pretty much it. Nothing complicated, really—took me literally half an hour. Next up: finish tuning the PWM to quiet down the audio, and then I’ll probably work on making a more interesting splash screen.
Devlog №7 implemted PMW to control sound volume
Devlog №8 Bird Physics & Rendering Flicker-Free Rendering To prevent screen flickering caused by redrawing the entire screen, I optimized the loop by clearing only the bird’s exact position before rendering its new frame. Physics Implementation Movement relies on both velocity and acceleration : Acceleration continuously increases the downward velocity (gravity). Jump mechanic resets the downward velocity to initial on every input. Next Steps: Wall Generation Obstacle Setup I need to create an array of one dynamic wall . Recycling Logic As soon as a wall reaches the left edge of the screen, it will wrap around to the right . The height/position will randomize each time it reappears to form a continuous level.
DevLog №9 ###What’s New Walls & Pipes Mechanics: Added moving wall obstacles. Score Counter: Integrated a score tracking system. ###How It Works Score Logic: To keep things simple and efficient, the score increases automatically whenever a wall reaches the left edge of the screen. Illusion of Movement: The bird stays in place while the walls continuously cycle and reset from the right edge back to the left. This creates a smooth side-scrolling illusion! It was a fairly straightforward feature to implement, but it instantly made the project feel much more like a complete game!
DevLog №10 prepared everything for shiping. added wiring.png and AI usage declaration in my README file.
Ships:
What did you make? I built a DIY mini handheld console powered by an Arduino Nano! My main goal was to dive into embedded systems development and get hands-on experience with hardware and C++. Because of this, I focused on core functionality rather than super complex games. When you turn it on, you’re greeted with a scrolling “mini console” text, followed by a game selection menu. During gameplay, pressing the designated pause button opens a pause menu where you can either resume (saving your current progress) or exit to the main menu. I included two games: Snake and Flappy Bird. What was challenging? Generating non-blocking audio feedback was definitely the hardest part. I implemented button click sounds using PWM to control the volume, which took a lot of time to tune since working with audio signals is trickier than controlling a motor. It required pseudo-multitasking using millis() to keep the gameplay smooth while playing sounds. Also, in Snake, I initially didn’t use a grid-based movement system and implemented pixel-by-pixel movement instead. Because of this, collision detection with food can occasionally miss. What are you proud of? I’m really proud of the software architecture and code structure in several parts of the project. I focused on clean OOP principles, solid encapsulation, and clear code organization (though a few spots are still a bit messy!). I’m also proud that i didn’t use delay funtion and of my Settings.h file What should people know so they can test your project? To test or build it, you just need to know how to connect the display and buttons to an Arduino Nano. Inside the Settings.h file, you can easily customize pin configurations, volume, colors, display sizes, and game speeds. I also added comments throughout the codebase to make it easy to follow along!...
|
1793253238.4618108
|
1793339638.4618108
|
|
45187
|
HV transformer driver by @Orange01 | Stardance
|
Orange01
|
0
|
28.27
|
0
|
[]
|
[{"post_id": 62407, "ts": "202 [{"post_id": 62407, "ts": "2026-09-05T19:02:05Z", "hours": 1.8817, "text": "finished parts list on digikey"}, {"post_id": 62181, "ts": "2026-09-05T13:24:27Z", "hours": 4.4789, "text": "Finished PCB design!!!"}, {"post_id": 59346, "ts": "2026-09-01T02:49:48Z", "hours": 21.9094, "text": "I’ve finished the schematic and Im about to start laying down components"}]...
|
Title: HV transformer driver by @Orange01 | Starda Title: HV transformer driver by @Orange01 | Stardance
Devlogs:
I’ve finished the schematic and Im about to start laying down components
Finished PCB design!!!
finished parts list on digikey...
|
1792615735.1026912
|
1793220535.1026912
|
|
58963
|
MindState by @RudranshShukla | Stardance
|
RudranshShukla
|
1
|
28.25
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-16T04:28:02Z", "hours": 26.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Built MindState, an open platform where young people can share their stories, express themselves, and feel heard. I worked on the UI/UX and development, building features like articles, journaling, mood tracking, community contributions, and more. The biggest challenge was making everything feel simple and welcoming while handling user data carefully, especially since the platform deals with mental health. V1 is now ready, and we’re still fixing bugs and improving things. I’d love for you to explore the platform, test its features, and share any feedback or bugs you find. Still a lot to build, but excited about how far we’ve come!", "repo": "https://github.com/rudranshshuklaofficial/mindstate-public", "demo": "https://mindstate.space"}]...
|
[{"post_id": 82585, "ts": "202 [{"post_id": 82585, "ts": "2026-10-25T09:57:22Z", "hours": 2.2453, "text": "Pushed all the code on github!"}, {"post_id": 79611, "ts": "2026-10-14T18:19:05Z", "hours": 1.5869, "text": "Final bugs solving and UI refining is done! Shipping the project."}, {"post_id": 79483, "ts": "2026-10-14T07:50:31Z", "hours": 3.1431, "text": "Finally finished everything, soon gonna add the github repo and publish the platform without any bugs!"}, {"post_id": 78948, "ts": "2026-10-12T04:55:36Z", "hours": 3.5111, "text": "Made a wholesale amount of changes and fixes in the platform, though I cannot add all in here, I’ll keep y’all updated and will soon drop the github!"}, {"post_id": 78713, "ts": "2026-10-11T11:57:45Z", "hours": 18.2133, "text": "I’ve been working on MindState, a platform I’m helping build to support young people’s mental health and encourage civic engagement. Today I worked on the website, fixed some bugs, improved parts of the design, and set up email verification for user accounts. There’s still a lot to build, but it’s exciting to see everything slowly come together!"}]...
|
Title: MindState by @RudranshShukla | Stardance
D Title: MindState by @RudranshShukla | Stardance
Devlogs:
I’ve been working on MindState, a platform I’m helping build to support young people’s mental health and encourage civic engagement. Today I worked on the website, fixed some bugs, improved parts of the design, and set up email verification for user accounts. There’s still a lot to build, but it’s exciting to see everything slowly come together!
Made a wholesale amount of changes and fixes in the platform, though I cannot add all in here, I’ll keep y’all updated and will soon drop the github!
Finally finished everything, soon gonna add the github repo and publish the platform without any bugs!
Final bugs solving and UI refining is done! Shipping the project.
Pushed all the code on github!
Ships:
Built MindState, an open platform where young people can share their stories, express themselves, and feel heard. I worked on the UI/UX and development, building features like articles, journaling, mood tracking, community contributions, and more. The biggest challenge was making everything feel simple and welcoming while handling user data carefully, especially since the platform deals with mental health. V1 is now ready, and we’re still fixing bugs and improving things. I’d love for you to explore the platform, test its features, and share any feedback or bugs you find. Still a lot to build, but excited about how far we’ve come!...
|
1793199276.5177786
|
1793285676.5177786
|
|
27206
|
rag feed reader by @keyboardspam | Stardance
|
keyboardspam
|
1
|
28.18
|
96
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-29T20:35:41Z", "hours": 11.0, "multiplier": 17.45, "payout": 96, "blessing": "neutral", "text": "This project is a feed reader for emacs that focuses on performance. The feed reader that I used before this is elfeed so I will be comparing this with that. QOL Improvements (over elfeed) Memory usage The elfeed implementation does a bunch of things that hog memory. For one, the database is held entirely in memory. Rag uses a sqlite database to consume less memory. Another thing is that the xml data is parsed into an AST before it gets processed by the parsers which means that you have both the original XML text and an AST which is duplicated work. To fix this, in rag it uses a xml streaming library (quick-xml) to process xml without an AST. Performance The biggest focus of this is in performance. One of the things that is improved over elfeed is that the elfeed buffer gets redrawn after every update by erasing the buffer and then redrawing everything which is very inefficient. This consumes a lot of time when elfeed finishes parsing feeds now that the updates are incremental and lazy, we are already multitudes faster than elfeed. There are more optimizations such as that are implemented using arena allocators to reuse allocations, or using references to avoid copying data. The reason that I need my feed reader (or anything else I use in Emacs) to be very fast because on Linux (I use an Arch derivative btw) I use EXWM as my window manager so whenever ELISP code blocks, I cannot use my computer to do anything else (like remembering to use Emacs as a text editor). As a result I want my feed reader to be as fast as possible. Reliability One of the issues that I have with elfeed is a bug (that I haven’t reported because idk how to describe or reproduce, I also don’t have any screenshots) where after the elfeed database gets large enough with entries, the description of entries ends up incorrect where it cuts off halfway or it shows you the description of the wrong entry. I suspect that this has something to do with the fact that the database they use is a custom one implemented in ELISP (before Emacs got sqlite support) so by making a feed reader that uses sqlite which is very battle tested, in my limited experience so far, the database is more reliable here than in elfeed.", "repo": "https://github.com/butterfingres/rag", "demo": "https://github.com/butterfingres/rag/releases"}]...
|
[{"post_id": 32579, "ts": "202 [{"post_id": 32579, "ts": "2026-07-21T21:00:54Z", "hours": 1.1211, "text": "After figuring out how to use cargo build with makefiles to test elisp dynamic modules, and replacing it in my other project, I replaced the build system from a configure script + makefiles to makefiles + cargo to run tests."}, {"post_id": 31389, "ts": "2026-07-19T18:33:09Z", "hours": 5.6822, "text": "I made parsing happen inside of a thread pool in order to have parallelism to not block the main thread. Everything now happens much faster and is more responsive now."}, {"post_id": 24640, "ts": "2026-07-08T11:18:13Z", "hours": 3.5075, "text": "I added handling ttl caches to prevent spamming rss feeds and added building shared libraries for musl libc users on linux."}, {"post_id": 21456, "ts": "2026-07-03T12:41:45Z", "hours": 3.0242, "text": "The dublin core, syndication, content and media namespace parsers are now complete and all feed types are able to support them. Now you view feeds that don’t use most of their native elements."}, {"post_id": 19954, "ts": "2026-07-01T12:26:25Z", "hours": 3.8461, "text": "I added support for the Dublin Core (dc) and Media RSS (media) namespaces in feeds. My favorite part of this was handling date and time because it is always just so fun. In Dublin Core, not only do the specs say that you can have incomplete ISO-8601 timestamps like (2000), (2000-01) but you could also specify time ranges like (2000/2000-02-01) https://www.dublincore.org/specifications/dublin-core/dcmi-terms/#date meaning the publishing date is somewhere between 2000-01-01 and 2000-02-01 leading to this amazing function. The best part of all this is that there is going to be more complicated date time handling when I write the syndication (sy) namespace handler."}, {"post_id": 18609, "ts": "2026-06-29T20:10:01Z", "hours": 1.2136, "text": "I wrote a README that describes the project and its goals that doubles for my ship description."}, {"post_id": 18540, "ts": "2026-06-29T18:38:25Z", "hours": 2.3694, "text": "I added a github actions workflow that builds release artifacts for windows, mac, and linux in x86_64 and aarch64 + a bunch of obscure linux architectures. I also added a installation guide at https://github.com/butterfingres/rag/blob/master/README.org so now I can finally ship this."}, {"post_id": 18407, "ts": "2026-06-29T15:22:33Z", "hours": 4.0789, "text": "The entries that are parsed from the feeds now get inserted into the buffer using binary search to incrementally you new entries. All that would be left is to create a guide for non-Emacs users so that people can tests it and also CI builds for releases for a bunch of different architectures then I could ship."}, {"post_id": 18010, "ts": "2026-06-28T23:45:38Z", "hours": 1.32, "text": "I added an entry viewer so now you can look see the description of feeds. The ui is “inspired” by elfeed. The only thing left before shipping would be a configuration interface for feeds to add your rss feeds followed by a scheduler for downloading them."}, {"post_id": 17807, "ts": "2026-06-28T18:59:14Z", "hours": 0.6406, "text": "Made the feed reader put the parsed entries & feeds into a sqlite database. I also added a basic frontend to the database that currently only shows feed titles."}, {"post_id": 17258, "ts": "2026-06-27T23:41:21Z", "hours": 1.3494, "text": "finished parsing all the feed xml formats (rss, rdf, atom) will start working on the front-end soon. there’s not much to show bc its backend stuff."}]...
|
Title: rag feed reader by @keyboardspam | Stardanc Title: rag feed reader by @keyboardspam | Stardance
Devlogs:
finished parsing all the feed xml formats (rss, rdf, atom) will start working on the front-end soon. there’s not much to show bc its backend stuff.
Made the feed reader put the parsed entries & feeds into a sqlite database. I also added a basic frontend to the database that currently only shows feed titles.
I added an entry viewer so now you can look see the description of feeds. The ui is “inspired” by elfeed. The only thing left before shipping would be a configuration interface for feeds to add your rss feeds followed by a scheduler for downloading them.
The entries that are parsed from the feeds now get inserted into the buffer using binary search to incrementally you new entries. All that would be left is to create a guide for non-Emacs users so that people can tests it and also CI builds for releases for a bunch of different architectures then I could ship.
I added a github actions workflow that builds release artifacts for windows, mac, and linux in x86_64 and aarch64 + a bunch of obscure linux architectures. I also added a installation guide at https://github.com/butterfingres/rag/blob/master/README.org so now I can finally ship this.
I wrote a README that describes the project and its goals that doubles for my ship description.
I added support for the Dublin Core (dc) and Media RSS (media) namespaces in feeds. My favorite part of this was handling date and time because it is always just so fun. In Dublin Core, not only do the specs say that you can have incomplete ISO-8601 timestamps like (2000), (2000-01) but you could also specify time ranges like (2000/2000-02-01) https://www.dublincore.org/specifications/dublin-core/dcmi-terms/#date meaning the publishing date is somewhere between 2000-01-01 and 2000-02-01 leading to this amazing function. The best part of all this is that there is going to be more complicated date time handling when I write the syndication (sy) namespace handler.
The dublin core, syndication, content and media namespace parsers are now complete and all feed types are able to support them. Now you view feeds that don’t use most of their native elements.
I added handling ttl caches to prevent spamming rss feeds and added building shared libraries for musl libc users on linux.
I made parsing happen inside of a thread pool in order to have parallelism to not block the main thread. Everything now happens much faster and is more responsive now.
After figuring out how to use cargo build with makefiles to test elisp dynamic modules, and replacing it in my other project, I replaced the build system from a configure script + makefiles to makefiles + cargo to run tests.
Ships:
This project is a feed reader for emacs that focuses on performance. The feed reader that I used before this is elfeed so I will be comparing this with that. QOL Improvements (over elfeed) Memory usage The elfeed implementation does a bunch of things that hog memory. For one, the database is held entirely in memory. Rag uses a sqlite database to consume less memory. Another thing is that the xml data is parsed into an AST before it gets processed by the parsers which means that you have both the original XML text and an AST which is duplicated work. To fix this, in rag it uses a xml streaming library (quick-xml) to process xml without an AST. Performance The biggest focus of this is in performance. One of the things that is improved over elfeed is that the elfeed buffer gets redrawn after every update by erasing the buffer and then redrawing everything which is very inefficient. This consumes a lot of time when elfeed finishes parsing feeds now that the updates are incremental and lazy, we are already multitudes faster than elfeed. There are more optimizations such as that are implemented using arena allocators to reuse allocations, or using references to avoid copying data. The reason that I need my feed reader (or anything else I use in Emacs) to be very fast because on Linux (I use an Arch derivative btw) I use EXWM as my window manager so whenever ELISP code blocks, I cannot use my computer to do anything else (like remembering to use Emacs as a text editor). As a result I want my feed reader to be as fast as possible. Reliability One of the issues that I have with elfeed is a bug (that I haven’t reported because idk how to describe or reproduce, I also don’t have any screenshots) where after the elfeed database gets large enough with entries, the description of entries ends up incorrect where it cuts off halfway or it shows you the description of the wrong entry. I suspect that this has something to do with the fact that the database they use is a custom one implemented in ELISP (before Emacs got sqlite support) so by making a feed reader that uses sqlite which is very battle tested, in my limited experience so far, the database is more reliable here than in elfeed....
|
1793109053.7076657
|
1793195453.7076657
|
|
67005
|
Forgery by @Koy | Stardance
|
Koy
|
0
|
28.16
|
0
|
[]
|
[{"post_id": 80475, "ts": "202 [{"post_id": 80475, "ts": "2026-10-17T19:35:25Z", "hours": 9.9742, "text": "DevLog[4] - Melted Fluid! Hiiiiiiiiii (I’m running out of wave emotes help) I made a fluid!!! And it’s also a block entity!!! Anyway, Here’s what I did! Melted fluid (should it be molten??) - I made my first fluid! it tints based off of a value in its block entity (allegedly) and the value gets set on creation from the items that are put in the Melter! (I am currently unable to test this though) Melter enhancements! - I gave it two more slots (yeah that’s basically it) the next devlog will be about connecting both of these features together so stay tuned ⭐ ⭐ ⭐ Have a nice day!! (I should really think of more reviewer-considerate ways to end these huh)"}, {"post_id": 79392, "ts": "2026-10-13T19:55:03Z", "hours": 9.6944, "text": "DevLog[3] - “Containers!!!” “Wait what day is it?” will anyone even get this bit it’s on like three different projects atp Completely Ignoring my failure here’s what I did!! The melter: Yes I only did one block for almost 10 hours (it was hard okay?! ) this is the first container in the mod! (so the next ones should be a bit faster ) I actually didn’t find documentation for how to make it for the first little bit (like 5 hours ) so I looked at the beacon source code and ended up making the whole screen (and parts of the other stuff) completely on my own! Anw yeah it’s Tuesday (oopsie) Yeah I think that deadline might have been ambitious And so I will give myself the slightly-less-ambitious deadline of one more week! (I also have more school than before so I might re-extend) yeah this won’t be polished by the end of sd would it"}, {"post_id": 77939, "ts": "2026-10-08T21:10:26Z", "hours": 7.3261, "text": "DevLog[2] - “The Race” Hey all!! In this devlog I have two main progressions. the first is deesplate palladium ore, attached bellow (very blurry) and raw palladium (blurry chimken), and the second (the one that’s kind of interesting Ig Idk) is the palladium ore placed feature! it spawns naturally now. (I also added a picture of when I tested it but spawning end rods so yayay) this was done with the fabric datagen library thing so it’s cool and not json (yayayayayay) “Wait but why is this called the race?” Why does this always happen (Whisper) “Bcz you can never think of transitions” Shush. The race. (This shouldn’t be called a race I just forgot what it’s called smh ) I decided to ship this by Sunday. This means that the full palladium ore chain should be ready as well as (very basic) forgeries (the structure that melts ores so that you can use them, mostly for the better ores) EDIT: I forgot to mention it was Thursday"}, {"post_id": 75920, "ts": "2026-10-01T16:44:19Z", "hours": 1.1636, "text": "DevLog[1] - “First Item!” Hey there! I wanted to do this project for a while but just couldn’t get myself to start, so here I am! In the last hour all I did was setup, there isn’t much time in an hour and it takes a minute to do. I made this ingot (palladium) in piskel, and it’s going to be the beginning of this mod’s progression! The mod will start by just adding to the normal ore progression (wood -> stone -> iron -> gold, kinda -> diamond -> netherite) by having an item (palladium) that will be better for armor but not for weapons, that way the insanity starts off slow, and gets faster later on. Have a nice day!"}]...
|
Title: Forgery by @Koy | Stardance
Devlogs:
DevLo Title: Forgery by @Koy | Stardance
Devlogs:
DevLog[1] - “First Item!” Hey there! I wanted to do this project for a while but just couldn’t get myself to start, so here I am! In the last hour all I did was setup, there isn’t much time in an hour and it takes a minute to do. I made this ingot (palladium) in piskel, and it’s going to be the beginning of this mod’s progression! The mod will start by just adding to the normal ore progression (wood -> stone -> iron -> gold, kinda -> diamond -> netherite) by having an item (palladium) that will be better for armor but not for weapons, that way the insanity starts off slow, and gets faster later on. Have a nice day!
DevLog[2] - “The Race” Hey all!! In this devlog I have two main progressions. the first is deesplate palladium ore, attached bellow (very blurry) and raw palladium (blurry chimken), and the second (the one that’s kind of interesting Ig Idk) is the palladium ore placed feature! it spawns naturally now. (I also added a picture of when I tested it but spawning end rods so yayay) this was done with the fabric datagen library thing so it’s cool and not json (yayayayayay) “Wait but why is this called the race?” Why does this always happen (Whisper) “Bcz you can never think of transitions” Shush. The race. (This shouldn’t be called a race I just forgot what it’s called smh ) I decided to ship this by Sunday. This means that the full palladium ore chain should be ready as well as (very basic) forgeries (the structure that melts ores so that you can use them, mostly for the better ores) EDIT: I forgot to mention it was Thursday
DevLog[3] - “Containers!!!” “Wait what day is it?” will anyone even get this bit it’s on like three different projects atp Completely Ignoring my failure here’s what I did!! The melter: Yes I only did one block for almost 10 hours (it was hard okay?! ) this is the first container in the mod! (so the next ones should be a bit faster ) I actually didn’t find documentation for how to make it for the first little bit (like 5 hours ) so I looked at the beacon source code and ended up making the whole screen (and parts of the other stuff) completely on my own! Anw yeah it’s Tuesday (oopsie) Yeah I think that deadline might have been ambitious And so I will give myself the slightly-less-ambitious deadline of one more week! (I also have more school than before so I might re-extend) yeah this won’t be polished by the end of sd would it
DevLog[4] - Melted Fluid! Hiiiiiiiiii (I’m running out of wave emotes help) I made a fluid!!! And it’s also a block entity!!! Anyway, Here’s what I did! Melted fluid (should it be molten??) - I made my first fluid! it tints based off of a value in its block entity (allegedly) and the value gets set on creation from the items that are put in the Melter! (I am currently unable to test this though) Melter enhancements! - I gave it two more slots (yeah that’s basically it) the next devlog will be about connecting both of these features together so stay tuned ⭐ ⭐ ⭐ Have a nice day!! (I should really think of more reviewer-considerate ways to end these huh)...
|
1793105533.2666426
|
1793710333.2666426
|
|
59778
|
My own site! by @bosompimobaayaapoku | Stardance
|
bosompimobaayaapoku
|
1
|
28.15
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-21T23:13:24Z", "hours": 27.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Oddly Orbital is my personal space-themed website where creativity meets code! I built it using HTML and CSS, experimenting with cosmic visuals, glowing cyan effects, smooth scrolling, and a Mission Control panel to bring the space-exploration vibe to life. What challenged me? Getting the design to feel immersive while making the different elements look good together. I had to experiment with CSS and adjust the glow effects until they looked right. What I’m proud of I’m proud that I turned my ideas into a real, working website. Seeing my space background and glowing Mission Control panel come together made the project feel like my own little universe. What you can test Explore the website and check out the space-themed design. Click the Explore button and test the page navigation. Scroll through the page to try the smooth-scrolling effect. Find Mission Control and look at the glowing ACTIVE status. Hover over Mission Control with your mouse to see if its cyan glow gets brighter. The mission is still active! I’m learning as I build, and this is just the beginning of my journey into web development.", "repo": "https://github.com/bosompimobaayaapoku-sys/yaa", "demo": "https://bosompimobaayaapoku-sys.github.io/yaa/"}]...
|
[{"post_id": 81785, "ts": "202 [{"post_id": 81785, "ts": "2026-10-22T14:21:52Z", "hours": 1.1542, "text": "Ok so now the website is rounding up nicely. The java script was the hardest part because it almost destroyed all my hard work. Thankfully I survived and it was worth it."}, {"post_id": 81658, "ts": "2026-10-21T23:00:09Z", "hours": 11.9217, "text": "What if a website felt like stepping into space? Oddly Orbital is my personal corner of the universe, where creativity meets code. With cosmic visuals, glowing cyan effects, and my own Mission Control panel, I’m turning my curiosity about space and technology into something real. The mission is active, and there’s more to explore!"}, {"post_id": 68294, "ts": "2026-09-14T21:25:00Z", "hours": 15.3208, "text": "my own site!"}]...
|
Title: My own site! by @bosompimobaayaapoku | Star Title: My own site! by @bosompimobaayaapoku | Stardance
Devlogs:
my own site!
What if a website felt like stepping into space? Oddly Orbital is my personal corner of the universe, where creativity meets code. With cosmic visuals, glowing cyan effects, and my own Mission Control panel, I’m turning my curiosity about space and technology into something real. The mission is active, and there’s more to explore!
Ok so now the website is rounding up nicely. The java script was the hardest part because it almost destroyed all my hard work. Thankfully I survived and it was worth it.
Ships:
Oddly Orbital is my personal space-themed website where creativity meets code! I built it using HTML and CSS, experimenting with cosmic visuals, glowing cyan effects, smooth scrolling, and a Mission Control panel to bring the space-exploration vibe to life. What challenged me? Getting the design to feel immersive while making the different elements look good together. I had to experiment with CSS and adjust the glow effects until they looked right. What I’m proud of I’m proud that I turned my ideas into a real, working website. Seeing my space background and glowing Mission Control panel come together made the project feel like my own little universe. What you can test Explore the website and check out the space-themed design. Click the Explore button and test the page navigation. Scroll through the page to try the smooth-scrolling effect. Find Mission Control and look at the glowing ACTIVE status. Hover over Mission Control with your mouse to see if its cyan glow gets brighter. The mission is still active! I’m learning as I build, and this is just the beginning of my journey into web development....
|
1793177582.8578076
|
1793263982.8578076
|
|
29212
|
mc-zig by @flyingpig525 | Stardance
|
flyingpig525
|
0
|
28.14
|
0
|
[]
|
[{"post_id": 28760, "ts": "202 [{"post_id": 28760, "ts": "2026-07-15T07:13:48Z", "hours": 7.4483, "text": "I’ve finally made a bit of progress on the play state! I have not had much time these past two weeks to work on this project, so I haven’t completed much. I did spend more than 7 hours working on this (I would ballpark it around 10-11 hours), as I did some work without any wifi or service. What’s Been Done? Managers and Events I refactored a bunch of types to accept a central Manager struct. For example: pub const Server = struct { pub fn doSomething ( this : * Server ) void { // stuff } }; Was changed to: pub fn ManagedServer ( comptime Manager : type ) type { return struct { const Server = @This (); manager : * Manager , pub fn doSomething ( this : * Server ) void { // stuff this . manager . onDoSomething ( this ); } }; } Goodness these codeblocks are annoying to write here. I should probably write them in my editor and not in this blog-writer. Anyway, this lets me achieve my goal of having an event system similar to the way minestom handles it. The above code isn’t perfectly representative of what I do, as I first check that the Manager type has an onDoSomething function before calling it. Play State Setup I have (kind of) completely finished the packet side of setting up a player once they enter the play state. This does NOT include a nice api for worlds and such. Chunk packets must be sent by hand. On the bright side, the tick loop finally has code to execute: client keep-alive packets (both sending and recieving). The server sends a keep-alive packet every 280 ticks. If the client does not pong the packet within 400 ticks, it gets kicked. What’s Next? Next I should probably finish up the World struct and make interfacing with it bearable. This will require me to also use the block data report (from the vanilla minecraft server jar) to generate block definitions. I also need to start tracking player data and do some testing with multiple clients. This post isn’t much, but I’ve tried my best to explain the little bit (that feels like a ton) of work I did. I wasn’t sure what to make the attached image be, so I decided to make it a screenshot of a funny bug I discovered while trying to decide what to make the screenshot be. I had forgotten to set the variable that indicated when the last keep-alive packet had been sent, so the client would receive one each tick."}, {"post_id": 19837, "ts": "2026-07-01T07:16:50Z", "hours": 20.6967, "text": "I started this project before I knew another hackclub event was ongoing, so I have a few hours to be logged with this devlog. This is also my first time participating in a hackclub event, so I am very excited. The Project mc-zig (name to be changed), upon completion, will be a zig library that can be used to create Minecraft: Java Edition version 1.21.10 servers without the overhead of vanilla behavior, as developing a mod or plugin for fabric or spigot and the like. If you’ve ever heard of the Minestom java library, mc-zig will be similar to it. Progress My belief at the beginning of any project is to get something working. The code can always be changed later. With this philosophy in mind, I have so far gotten the client through the handshake , login , and configuration states. I wouldn’t consider myself proud of the systems I’ve laid out for myself, but it works, so I can’t complain. The image attached shows what the client does once it gets bored of waiting for chunks to be sent. What’s Next? Next, I need to send chunks to the client, respond to keep-alives, and handle basic server-bound play packets. I also should probably write a proper readme."}]...
|
Title: mc-zig by @flyingpig525 | Stardance
Devlog Title: mc-zig by @flyingpig525 | Stardance
Devlogs:
I started this project before I knew another hackclub event was ongoing, so I have a few hours to be logged with this devlog. This is also my first time participating in a hackclub event, so I am very excited. The Project mc-zig (name to be changed), upon completion, will be a zig library that can be used to create Minecraft: Java Edition version 1.21.10 servers without the overhead of vanilla behavior, as developing a mod or plugin for fabric or spigot and the like. If you’ve ever heard of the Minestom java library, mc-zig will be similar to it. Progress My belief at the beginning of any project is to get something working. The code can always be changed later. With this philosophy in mind, I have so far gotten the client through the handshake , login , and configuration states. I wouldn’t consider myself proud of the systems I’ve laid out for myself, but it works, so I can’t complain. The image attached shows what the client does once it gets bored of waiting for chunks to be sent. What’s Next? Next, I need to send chunks to the client, respond to keep-alives, and handle basic server-bound play packets. I also should probably write a proper readme.
I’ve finally made a bit of progress on the play state! I have not had much time these past two weeks to work on this project, so I haven’t completed much. I did spend more than 7 hours working on this (I would ballpark it around 10-11 hours), as I did some work without any wifi or service. What’s Been Done? Managers and Events I refactored a bunch of types to accept a central Manager struct. For example: pub const Server = struct { pub fn doSomething ( this : * Server ) void { // stuff } }; Was changed to: pub fn ManagedServer ( comptime Manager : type ) type { return struct { const Server = @This (); manager : * Manager , pub fn doSomething ( this : * Server ) void { // stuff this . manager . onDoSomething ( this ); } }; } Goodness these codeblocks are annoying to write here. I should probably write them in my editor and not in this blog-writer. Anyway, this lets me achieve my goal of having an event system similar to the way minestom handles it. The above code isn’t perfectly representative of what I do, as I first check that the Manager type has an onDoSomething function before calling it. Play State Setup I have (kind of) completely finished the packet side of setting up a player once they enter the play state. This does NOT include a nice api for worlds and such. Chunk packets must be sent by hand. On the bright side, the tick loop finally has code to execute: client keep-alive packets (both sending and recieving). The server sends a keep-alive packet every 280 ticks. If the client does not pong the packet within 400 ticks, it gets kicked. What’s Next? Next I should probably finish up the World struct and make interfacing with it bearable. This will require me to also use the block data report (from the vanilla minecraft server jar) to generate block definitions. I also need to start tracking player data and do some testing with multiple clients. This post isn’t much, but I’ve tried my best to explain the little bit (that feels like a ton) of work I did. I wasn’t sure what to make the attached image be, so I decided to make it a screenshot of a funny bug I discovered while trying to decide what to make the screenshot be. I had forgotten to set the variable that indicated when the last keep-alive packet had been sent, so the client would receive one each tick....
|
1792806739.4031467
|
1793411539.4031467
|
|
3491
|
Playlist Analizer by @ReidS28 | Stardance
|
ReidS28
|
0
|
28.09
|
0
|
[]
|
[{"post_id": 8209, "ts": "2026 [{"post_id": 8209, "ts": "2026-06-13T17:36:22Z", "hours": 20.6417, "text": "Added an advanced sorting menu to be able to have more control of how the tracks are ordered. It allows sorting using multiple traits about the track, for example sort first by artist name, then date added for tracks with the same artist."}, {"post_id": 1539, "ts": "2026-06-03T16:53:00Z", "hours": 7.4511, "text": "A website that can show your Spotify playlists (using the Spotify API) and sort them. Currently most of the information can be seen in Spotify, except for sorting by length."}]...
|
Title: Playlist Analizer by @ReidS28 | Stardance
Title: Playlist Analizer by @ReidS28 | Stardance
Devlogs:
A website that can show your Spotify playlists (using the Spotify API) and sort them. Currently most of the information can be seen in Spotify, except for sorting by length.
Added an advanced sorting menu to be able to have more control of how the tracks are ordered. It allows sorting using multiple traits about the track, for example sort first by artist name, then date added for tracks with the same artist....
|
1792626656.0470796
|
1793231456.0470796
|
|
7339
|
Super Mr. Bennet (SCHOOL VERSION - DEPRECATED) by Super Mr. Bennet (SCHOOL VERSION - DEPRECATED) by @openchanter | Stardance...
|
openchanter
|
1
|
28.08
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-09T21:51:30Z", "hours": 14.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a web-based platformer game called Super Mr. Bennet! I made this mainly for my English final project, which was to reinterpret a part of one of the texts we read this year in a creative way. It features 4 levels as well as a level editor, all running in a web browser and using Vite as a bundler on the backend.", "repo": "https://github.com/OpEnchanter/en25-final-project", "demo": "https://bennet.tgreenhagen.com"}]...
|
[{"post_id": 9018, "ts": "2026 [{"post_id": 9018, "ts": "2026-06-15T01:26:35Z", "hours": 3.7328, "text": "For this update, I worked a lot on cleaning up the code, making sure that there are now significantly less type-check errors present, and overall it’s easier to develop more features in the future. Onto things of actual substance I added though, there are now actual coins inside the lucky blocks scattered throughout the game as well as coins that can be placed directly in levels in the editor! Sometime soon I do plan to add some sort of asset caching system to the main game so that it isn’t trying to fetch assets as you are playing."}, {"post_id": 7157, "ts": "2026-06-11T23:11:01Z", "hours": 0.4333, "text": "I quickly added some hot air balloons, they aren’t in any of the campaign levels but they’re fun to play with in custom levels."}, {"post_id": 7083, "ts": "2026-06-11T21:17:11Z", "hours": 5.9783, "text": "I made some improvements to the UI, such as rounded button corners and a outline when hovering a button. I fixed some bugs with both the player and enemy movement and now the enemies are (a bit) more reliable. There’s also now grass that sways in the wind and interacts with the player in the game! Oh and I added a main menu screen. Also had to do some pretty major reworks to how the game loads levels, and I moved all of the code for that to a separate file where I can use it from both the normal levels and the main menu."}, {"post_id": 6644, "ts": "2026-06-11T04:05:32Z", "hours": 0.6953, "text": "Another quick devlog because I fixed some of the issues that existed after the previous one. I also made it so that anyone can enter the editor with any level loaded in it from any level and whenever you get to a new level in the campaign it saves your progress. I know this will cause issues with players not being able to replay the game so I will add a button on the title screen (whenever I get around to making that) for resetting save progress. Oh also I think most if not all of the bugs with movement getting stuck in a certain direction are fixed both in the editor and in game."}, {"post_id": 6617, "ts": "2026-06-11T03:14:20Z", "hours": 3.2364, "text": "I’ve decided to make the game and the editor feel more like one cohesive experience rather than two separate applications, so I’m adding a pause menu as well, and I’m changing the editor to be located at the website’s root rather than being a separate webpage. This will also hopefully make the experience playing the itch.io build of the game better. (note: none of these changes have been published on any public instance of the game yet because there are some unresolved issues with the editor however I have pushed my work from today to GitHub)"}, {"post_id": 5912, "ts": "2026-06-09T21:47:53Z", "hours": 0.6292, "text": "Apparently there was and issue with the level editor that caused it to not render the icons in the UI, so I fixed that. I also wrote the README for the project including information about the project such as the bundler it uses (vite), controls, and documentation on running the app."}, {"post_id": 5892, "ts": "2026-06-09T21:03:28Z", "hours": 3.8522, "text": "I did some behind the scenes work getting it to state where i could publish it on Itch.io and making sure that all the features were working as intended as well as making it automatically resize to maintain pixel size consistency as well as (again) making it work on Itch."}, {"post_id": 2212, "ts": "2026-06-04T16:20:56Z", "hours": 9.2106, "text": "So far I’ve written the engine for this project, which initializes and draws to a canvas element, as well as an editor ( https://bennet.tgreenhagen.com/editor/ ), some pieces that can be used to build levels and some of the campaign levels."}]...
|
Title: Super Mr. Bennet (SCHOOL VERSION - DEPRECAT Title: Super Mr. Bennet (SCHOOL VERSION - DEPRECATED) by @openchanter | Stardance
Devlogs:
So far I’ve written the engine for this project, which initializes and draws to a canvas element, as well as an editor ( https://bennet.tgreenhagen.com/editor/ ), some pieces that can be used to build levels and some of the campaign levels.
I did some behind the scenes work getting it to state where i could publish it on Itch.io and making sure that all the features were working as intended as well as making it automatically resize to maintain pixel size consistency as well as (again) making it work on Itch.
Apparently there was and issue with the level editor that caused it to not render the icons in the UI, so I fixed that. I also wrote the README for the project including information about the project such as the bundler it uses (vite), controls, and documentation on running the app.
I’ve decided to make the game and the editor feel more like one cohesive experience rather than two separate applications, so I’m adding a pause menu as well, and I’m changing the editor to be located at the website’s root rather than being a separate webpage. This will also hopefully make the experience playing the itch.io build of the game better. (note: none of these changes have been published on any public instance of the game yet because there are some unresolved issues with the editor however I have pushed my work from today to GitHub)
Another quick devlog because I fixed some of the issues that existed after the previous one. I also made it so that anyone can enter the editor with any level loaded in it from any level and whenever you get to a new level in the campaign it saves your progress. I know this will cause issues with players not being able to replay the game so I will add a button on the title screen (whenever I get around to making that) for resetting save progress. Oh also I think most if not all of the bugs with movement getting stuck in a certain direction are fixed both in the editor and in game.
I made some improvements to the UI, such as rounded button corners and a outline when hovering a button. I fixed some bugs with both the player and enemy movement and now the enemies are (a bit) more reliable. There’s also now grass that sways in the wind and interacts with the player in the game! Oh and I added a main menu screen. Also had to do some pretty major reworks to how the game loads levels, and I moved all of the code for that to a separate file where I can use it from both the normal levels and the main menu.
I quickly added some hot air balloons, they aren’t in any of the campaign levels but they’re fun to play with in custom levels.
For this update, I worked a lot on cleaning up the code, making sure that there are now significantly less type-check errors present, and overall it’s easier to develop more features in the future. Onto things of actual substance I added though, there are now actual coins inside the lucky blocks scattered throughout the game as well as coins that can be placed directly in levels in the editor! Sometime soon I do plan to add some sort of asset caching system to the main game so that it isn’t trying to fetch assets as you are playing.
Ships:
I made a web-based platformer game called Super Mr. Bennet! I made this mainly for my English final project, which was to reinterpret a part of one of the texts we read this year in a creative way. It features 4 levels as well as a level editor, all running in a web browser and using Vite as a bundler on the backend....
|
1793094754.700806
|
1793181154.700806
|
|
26457
|
My very own WebOS by @Ombama | Stardance
|
Ombama
|
1
|
28.06
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-30T22:59:33Z", "hours": 21.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made GreenSpace WebOS, a browser-based desktop environment built with HTML, CSS, and JavaScript. It includes five apps: Welcome, Notes, Nature, Settings, and Calculator. Users can open, drag, minimize, maximize, restore, and close windows, use a searchable Start menu, change wallpapers and themes, and save notes, progress, calculator history, and window layouts with local storage. The most challenging parts were managing multiple window states, restoring saved layouts correctly, and making keyboard shortcuts work without interfering with typing. I am most proud of the polished desktop experience, persistent app data, accessibility improvements, and built-in diagnostics. To test it, open index.html with Live Server, try every app and window control, refresh to confirm saved data returns, test the keyboard shortcuts, and run Diagnostics from the Welcome app.", "repo": "https://github.com/Om-Bhagat-prog/WebOS-1", "demo": "https://web-os-1-iota.vercel.app/"}]...
|
[{"post_id": 42083, "ts": "202 [{"post_id": 42083, "ts": "2026-08-06T17:19:05Z", "hours": 0.3194, "text": "I improved the Nature app by adding challenge progress. Previously, all completed challenges whenever the broswer was refreshed. I added unique IDs to eaach checkbox and used JavaScript to save their checked states in localStorage. When the pages loads, the app reads the stored progress and restores each challenge automaticallt. I also updated the reset button so it removes both the checked boxes and the saved browser data. This ypdate helped me learn how multiple values can be stored together as a JavaScript object, converted into JSON, and loaded again later. The Nature app now behaves more like a real application because users do not lose their progress after refreshing."}, {"post_id": 42027, "ts": "2026-08-06T16:01:07Z", "hours": 0.7878, "text": "I added the third working application to Om’s WebOS. The Nature app contains three daily environmental challenges that users can complete using checkboxes. JavaScript counts the checked challenges and updates the progress message automatically. I also added a reset button that clears every challenge. The app reuses the window system I previously created, so it can open from the desktop, move aorund the screen, minimize to the taskbar, maximize, restore, and close. This helped me understand how one reusable window system can support multiple applications without writing separate window code for each one."}, {"post_id": 41583, "ts": "2026-08-05T21:34:54Z", "hours": 0.9175, "text": "It can now maximize and restore behavior. Welcome and Notes can now fill the usable desktop while leaving the taskbar visible. Before maximizing, the system remembers each window’s original position and dimensions. Clicking the maximize control again restores the previous window state. Maximized windows cannot be dragged until restored."}, {"post_id": 40918, "ts": "2026-08-04T19:06:33Z", "hours": 0.8067, "text": "The WebOS window system was expanded with minimize and restore behavior. Open applications now recieve buttons in the taskbar. Clicking the minimize control hides the application while keeping its taskbar button available. Clicking the taskbar button restores the minimized window and brings it to the front. Closing an application removes its taskbar button completely."}, {"post_id": 40406, "ts": "2026-08-03T21:39:03Z", "hours": 0.49, "text": "The draggable window system was improved with desktop boundary protection. Application windows are now constrained to the visible desktop area and cannot be dragged beyond the screen edges or underneath the taskbar. The project also responds to browser resizing by checking all visible windows and moving them back into a safe position when necessary."}, {"post_id": 40380, "ts": "2026-08-03T20:55:43Z", "hours": 0.4547, "text": "The WebOS now has draggable application windows. Users can now move the Welcome and Notes windows by dragging their title bars. Clicking or opening a window also brings it in front of other open windows using dynamically updated z-index values. The close button remains clickable without accidentally starting a drag."}, {"post_id": 40169, "ts": "2026-08-03T15:57:27Z", "hours": 0.7978, "text": "The Notes application now has a working Save and Clear controls. Notes are stored in the browser using localStorage, allowing the title and note content to remain available after the page is refreshed or repoened. The Clear button removes both the visible text and stored note. A status message gives the user confirmation after saving or clearing."}, {"post_id": 39658, "ts": "2026-08-02T19:42:00Z", "hours": 0.3597, "text": "A Notes application was added to the WebOS using the reusable application-window system. Clicking the Notes desktop icon now opens a separate window containing a title field and writing area. The Notes window uses the same close-button behavior as the Welcome window, demonstrating that one JavaScript system can control multiple applications. The interface was styled with labels, rounded input fields, focus effects, and a larger text area for writing notes."}, {"post_id": 39630, "ts": "2026-08-02T19:10:25Z", "hours": 0.68, "text": "I expanded from the basic introduction into the beginning of an interactive browser-based operating sytem/ The project now uses two separate pages: an introduction page with a Start WebOS button and a desktop page with a Back to Intro link. On the desktop, I created a graident background, bottom taskbar, and six custom application icons: Welcome, Notes, Nature, Calculator, About Me, and Settings. I added custom image files for each icon and styled them with consistent sizing, rounded corners, and hover effects. I also started the application window system. The Welcome app now has a window containing a title bar, tontent area, and close button. Javascript finds buttons with data-open-window, opens the matching window, and allows the close button to hide it again. I also corrected malformed button attributes and connected the Welcome icon to welcome-window."}, {"post_id": 38449, "ts": "2026-07-31T20:22:18Z", "hours": 1.4428, "text": "I created the first working version of Om’s WebOS using separate pages. The intro page explains the porject and includes a Start WebOS button that links to the main desktop page. I also added a Back to Intro button so users can return without refreshing. On the desktop, I created a green-to-blue gradient background, a bottom taskbar, and custom icons for the Welcome and Notes apps. I learned how to organize images inside an images folder and display them using tags. I also styled the icons with rounded corners, hover effects, and consistent sizing. One issue I fixed was an incoorect image file extension. the HTML used .png, but the real file was a .jpg. After correcting the path, the Welcome icon loaded properly. Next, I plan to make the Welcome and Notes icons open working application windows with close, minimize, and maximize buttons."}, {"post_id": 37924, "ts": "2026-07-30T22:51:58Z", "hours": 0.415, "text": "Finished the project"}, {"post_id": 37910, "ts": "2026-07-30T22:08:50Z", "hours": 1.5114, "text": "Added global application keyboard shortcuts, active-window controls, keyboard-focusable title bars, ARIA live announcements, dynamic taskbar accessibility states, visible focus indicators, editable-field shortcut protection, and Start-menu count synchronization."}, {"post_id": 37687, "ts": "2026-07-30T16:10:52Z", "hours": 1.3231, "text": "Added persistent desktop-state storage to GreenSpace WebOS. Window positions, sizes, open states, minimized states, maximized states, active-window state, and stacking order now survive browser refreshes. Added a Reset Windows control to restore the default desktop layout."}, {"post_id": 37623, "ts": "2026-07-30T14:19:48Z", "hours": 1.9, "text": "Added a working Calculator applcation with standard arithmetic operations, decimals, negative numbers, percentages, keyboard controls, calculation history, persistent browser storage, reusable history results, and divide-by-zero error handling."}, {"post_id": 37210, "ts": "2026-07-29T19:11:54Z", "hours": 1.5125, "text": "Added a Settings application with selectable Forest, Sunset, and Ocean wallpapers, light and dark window themes, a desktop-grid toggle, automatic browser storage, restored preferences after refresh, and appearance-reset functionality."}, {"post_id": 37029, "ts": "2026-07-29T14:33:55Z", "hours": 2.9131, "text": "Converted the Nature application into an interactive environmental challenge tracker. Added six activities, completed states, green points, a live progress bar, automatic broswer storage, restored progress after refresh, and rest functionality."}, {"post_id": 35995, "ts": "2026-07-27T19:59:51Z", "hours": 0.9617, "text": "Converted the Notes preview into a functional text editor. Added a title field, editable note content, automatic saving, manual saving, Ctrl + S support, clear confirmation, word and character counters, save-status feedback, and persistent browser storage."}, {"post_id": 35878, "ts": "2026-07-27T16:27:18Z", "hours": 1.5764, "text": "Replaced the temporary Start notification with a complete searchable application launcher. The Start menu can open every WebOS application, filters apps as the user types, closes through outside clicks or the Escape key, and updates the Start button’s accessibility state."}, {"post_id": 35811, "ts": "2026-07-27T14:14:28Z", "hours": 2.1478, "text": "Added complete window-control behavior to GreenSpace WebOS. Application windows can now be minimized, restored from the taskbar, maximized, and returned to their previous position and size. Taskbar buttons now change behavior based on window state, and double-clicking a title bar maximizes or restores the window."}, {"post_id": 35205, "ts": "2026-07-26T14:05:31Z", "hours": 1.135, "text": "Added reusable draggable-window behavior to GreenSpace WebOS. All application windows can now be moved using their title bars with mouse, touch, or pen input. Added pointer capture, active-window focus during movement, safe desktop boundaries, visual dragging feedback, and automatic position correction when the browser is resized."}, {"post_id": 35079, "ts": "2026-07-26T08:24:21Z", "hours": 1.1258, "text": "Built a reusable multi-window system for GreenSpace WebOS. Added working Welcome, Notes, and Nature applications that can be opened from desktop icons, closed using window controls, and brought to the front when selected. Added dynamic taskbar buttons for each open application, active-window highlighting, and automatic window stacking using z-index. Also refined the Welcome window layout, improved scrolling behavior, and replaced temporary alerts with an in-desktop status message."}, {"post_id": 35040, "ts": "2026-07-26T06:13:39Z", "hours": 4.6042, "text": "Goal Create the visual foundation for the WebOS project. Work completed Created the initial project structure Created a custom environmental desktop theme Added three desktop application icons Created the first application window Added a taskbar and Start button Added a running application indicator Added internet and sound indicators Added a live clock and date Added responsive behavior for smaller screens Added placeholder feedback for features planned in later hours Technical decisions The desktop uses CSS gradients rather than an external wallpaper image. This keeps the project lightweight and prevents the interface from depending on an external image host. CSS custom properties store shared colors and dimensions. This will make future theme and layout changes easier. The clock logic is isolated inside an updateClock function. It runs once when the page loads and then updates every second. The window control buttons are visible but disabled. Their functionality will be introduced gradually rather than placing unfinished behavior into the first version. Challenges The main challenge was keeping the desktop usable on both large and small screens. A media query changes the desktop icon arrangement, application window position, and taskbar labels on smaller screens. Next development hour The next hour will introduce a reusable window system with multiple application windows and working open and close controls."}]...
|
Title: My very own WebOS by @Ombama | Stardance
D Title: My very own WebOS by @Ombama | Stardance
Devlogs:
Goal Create the visual foundation for the WebOS project. Work completed Created the initial project structure Created a custom environmental desktop theme Added three desktop application icons Created the first application window Added a taskbar and Start button Added a running application indicator Added internet and sound indicators Added a live clock and date Added responsive behavior for smaller screens Added placeholder feedback for features planned in later hours Technical decisions The desktop uses CSS gradients rather than an external wallpaper image. This keeps the project lightweight and prevents the interface from depending on an external image host. CSS custom properties store shared colors and dimensions. This will make future theme and layout changes easier. The clock logic is isolated inside an updateClock function. It runs once when the page loads and then updates every second. The window control buttons are visible but disabled. Their functionality will be introduced gradually rather than placing unfinished behavior into the first version. Challenges The main challenge was keeping the desktop usable on both large and small screens. A media query changes the desktop icon arrangement, application window position, and taskbar labels on smaller screens. Next development hour The next hour will introduce a reusable window system with multiple application windows and working open and close controls.
Built a reusable multi-window system for GreenSpace WebOS. Added working Welcome, Notes, and Nature applications that can be opened from desktop icons, closed using window controls, and brought to the front when selected. Added dynamic taskbar buttons for each open application, active-window highlighting, and automatic window stacking using z-index. Also refined the Welcome window layout, improved scrolling behavior, and replaced temporary alerts with an in-desktop status message.
Added reusable draggable-window behavior to GreenSpace WebOS. All application windows can now be moved using their title bars with mouse, touch, or pen input. Added pointer capture, active-window focus during movement, safe desktop boundaries, visual dragging feedback, and automatic position correction when the browser is resized.
Added complete window-control behavior to GreenSpace WebOS. Application windows can now be minimized, restored from the taskbar, maximized, and returned to their previous position and size. Taskbar buttons now change behavior based on window state, and double-clicking a title bar maximizes or restores the window.
Replaced the temporary Start notification with a complete searchable application launcher. The Start menu can open every WebOS application, filters apps as the user types, closes through outside clicks or the Escape key, and updates the Start button’s accessibility state.
Converted the Notes preview into a functional text editor. Added a title field, editable note content, automatic saving, manual saving, Ctrl + S support, clear confirmation, word and character counters, save-status feedback, and persistent browser storage.
Converted the Nature application into an interactive environmental challenge tracker. Added six activities, completed states, green points, a live progress bar, automatic broswer storage, restored progress after refresh, and rest functionality.
Added a Settings application with selectable Forest, Sunset, and Ocean wallpapers, light and dark window themes, a desktop-grid toggle, automatic browser storage, restored preferences after refresh, and appearance-reset functionality.
Added a working Calculator applcation with standard arithmetic operations, decimals, negative numbers, percentages, keyboard controls, calculation history, persistent browser storage, reusable history results, and divide-by-zero error handling.
Added persistent desktop-state storage to GreenSpace WebOS. Window positions, sizes, open states, minimized states, maximized states, active-window state, and stacking order now survive browser refreshes. Added a Reset Windows control to restore the default desktop layout.
Added global application keyboard shortcuts, active-window controls, keyboard-focusable title bars, ARIA live announcements, dynamic taskbar accessibility states, visible focus indicators, editable-field shortcut protection, and Start-menu count synchronization.
Finished the project
I created the first working version of Om’s WebOS using separate pages. The intro page explains the porject and includes a Start WebOS button that links to the main desktop page. I also added a Back to Intro button so users can return without refreshing. On the desktop, I created a green-to-blue gradient background, a bottom taskbar, and custom icons for the Welcome and Notes apps. I learned how to organize images inside an images folder and display them using tags. I also styled the icons with rounded corners, hover effects, and consistent sizing. One issue I fixed was an incoorect image file extension. the HTML used .png, but the real file was a .jpg. After correcting the path, the Welcome icon loaded properly. Next, I plan to make the Welcome and Notes icons open working application windows with close, minimize, and maximize buttons.
I expanded from the basic introduction into the beginning of an interactive browser-based operating sytem/ The project now uses two separate pages: an introduction page with a Start WebOS button and a desktop page with a Back to Intro link. On the desktop, I created a graident background, bottom taskbar, and six custom application icons: Welcome, Notes, Nature, Calculator, About Me, and Settings. I added custom image files for each icon and styled them with consistent sizing, rounded corners, and hover effects. I also started the application window system. The Welcome app now has a window containing a title bar, tontent area, and close button. Javascript finds buttons with data-open-window, opens the matching window, and allows the close button to hide it again. I also corrected malformed button attributes and connected the Welcome icon to welcome-window.
A Notes application was added to the WebOS using the reusable application-window system. Clicking the Notes desktop icon now opens a separate window containing a title field and writing area. The Notes window uses the same close-button behavior as the Welcome window, demonstrating that one JavaScript system can control multiple applications. The interface was styled with labels, rounded input fields, focus effects, and a larger text area for writing notes.
The Notes application now has a working Save and Clear controls. Notes are stored in the browser using localStorage, allowing the title and note content to remain available after the page is refreshed or repoened. The Clear button removes both the visible text and stored note. A status message gives the user confirmation after saving or clearing.
The WebOS now has draggable application windows. Users can now move the Welcome and Notes windows by dragging their title bars. Clicking or opening a window also brings it in front of other open windows using dynamically updated z-index values. The close button remains clickable without accidentally starting a drag.
The draggable window system was improved with desktop boundary protection. Application windows are now constrained to the visible desktop area and cannot be dragged beyond the screen edges or underneath the taskbar. The project also responds to browser resizing by checking all visible windows and moving them back into a safe position when necessary.
The WebOS window system was expanded with minimize and restore behavior. Open applications now recieve buttons in the taskbar. Clicking the minimize control hides the application while keeping its taskbar button available. Clicking the taskbar button restores the minimized window and brings it to the front. Closing an application removes its taskbar button completely.
It can now maximize and restore behavior. Welcome and Notes can now fill the usable desktop while leaving the taskbar visible. Before maximizing, the system remembers each window’s original position and dimensions. Clicking the maximize control again restores the previous window state. Maximized windows cannot be dragged until restored.
I added the third working application to Om’s WebOS. The Nature app contains three daily environmental challenges that users can complete using checkboxes. JavaScript counts the checked challenges and updates the progress message automatically. I also added a reset button that clears every challenge. The app reuses the window system I previously created, so it can open from the desktop, move aorund the screen, minimize to the taskbar, maximize, restore, and close. This helped me understand how one reusable window system can support multiple applications without writing separate window code for each one.
I improved the Nature app by adding challenge progress. Previously, all completed challenges whenever the broswer was refreshed. I added unique IDs to eaach checkbox and used JavaScript to save their checked states in localStorage. When the pages loads, the app reads the stored progress and restores each challenge automaticallt. I also updated the reset button so it removes both the checked boxes and the saved browser data. This ypdate helped me learn how multiple values can be stored together as a JavaScript object, converted into JSON, and loaded again later. The Nature app now behaves more like a real application because users do not lose their progress after refreshing.
Ships:
I made GreenSpace WebOS, a browser-based desktop environment built with HTML, CSS, and JavaScript. It includes five apps: Welcome, Notes, Nature, Settings, and Calculator. Users can open, drag, minimize, maximize, restore, and close windows, use a searchable Start menu, change wallpapers and themes, and save notes, progress, calculator history, and window layouts with local storage. The most challenging parts were managing multiple window states, restoring saved layouts correctly, and making keyboard shortcuts work without interfering with typing. I am most proud of the polished desktop experience, persistent app data, accessibility improvements, and built-in diagnostics. To test it, open index.html with Live Server, try every app and window control, refresh to confirm saved data returns, test the keyboard shortcuts, and run Diagnostics from the Welcome app....
|
1793112781.331986
|
1793199181.331986
|
|
20769
|
Openclip by @Aionix | Stardance
|
Aionix
|
1
|
28.01
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-21T18:54:23Z", "hours": 25.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I created and open-sourced “OpenClip” - a complete local-first AI video clipping engine that runs entirely on your machine. No subscriptions. No watermarks. No cloud uploads. Just paste a YouTube URL and get AI-generated short clips ready for TikTok, Reels, and Shorts. It automatically turns long YouTube videos into ready-to-post short clips using AI (Whisper for transcription, MediaPipe for face tracking, LLMs for captioning). Tech: Next.js + FastAPI + yt-dlp + FFmpeg Fully open-source under MIT license with detailed README, setup scripts and active development. GitHub: https://github.com/aionixOS/OpenclipV-", "repo": "https://github.com/aionixOS/OpenclipV-", "demo": "https://openclip-v.vercel.app/"}]...
|
[{"post_id": 14235, "ts": "202 [{"post_id": 14235, "ts": "2026-06-23T07:49:35Z", "hours": 3.0119, "text": "Recent Updates Browser-Side API Keys: Your LLM API keys are now stored securely in your browser’s localStorage. They never touch the backend database, making this safe to host publicly. YouTube Bot Bypass: Added pytubefix as an automated fallback to bypass YouTube’s aggressive “Sign in to prove you’re not a bot” datacenter blocks (PO Token support enabled). Vercel Compatibility: The real-time progress tracker now seamlessly falls back to fast HTTP Polling if Vercel’s Edge network blocks the WebSocket connection."}, {"post_id": 13204, "ts": "2026-06-21T17:02:22Z", "hours": 24.7883, "text": "I created and open-sourced “OpenClip” - a complete local-first AI video clipping engine. It automatically turns long YouTube videos into ready-to-post short clips using AI (Whisper for transcription, MediaPipe for face tracking, LLMs for captioning). Tech: Next.js + FastAPI + yt-dlp + FFmpeg Fully open-source under MIT license with detailed README, setup scripts and active development. GitHub: https://github.com/aionixOS/OpenclipV-"}]...
|
Title: Openclip by @Aionix | Stardance
Devlogs:
I Title: Openclip by @Aionix | Stardance
Devlogs:
I created and open-sourced “OpenClip” - a complete local-first AI video clipping engine. It automatically turns long YouTube videos into ready-to-post short clips using AI (Whisper for transcription, MediaPipe for face tracking, LLMs for captioning). Tech: Next.js + FastAPI + yt-dlp + FFmpeg Fully open-source under MIT license with detailed README, setup scripts and active development. GitHub: https://github.com/aionixOS/OpenclipV-
Recent Updates Browser-Side API Keys: Your LLM API keys are now stored securely in your browser’s localStorage. They never touch the backend database, making this safe to host publicly. YouTube Bot Bypass: Added pytubefix as an automated fallback to bypass YouTube’s aggressive “Sign in to prove you’re not a bot” datacenter blocks (PO Token support enabled). Vercel Compatibility: The real-time progress tracker now seamlessly falls back to fast HTTP Polling if Vercel’s Edge network blocks the WebSocket connection.
Ships:
I created and open-sourced “OpenClip” - a complete local-first AI video clipping engine that runs entirely on your machine. No subscriptions. No watermarks. No cloud uploads. Just paste a YouTube URL and get AI-generated short clips ready for TikTok, Reels, and Shorts. It automatically turns long YouTube videos into ready-to-post short clips using AI (Whisper for transcription, MediaPipe for face tracking, LLMs for captioning). Tech: Next.js + FastAPI + yt-dlp + FFmpeg Fully open-source under MIT license with detailed README, setup scripts and active development. GitHub: https://github.com/aionixOS/OpenclipV-...
|
1793112660.6111002
|
1793199060.6111002
|
|
1072
|
ESSENTIALS Shader by @ahnafiscool | Stardance
|
ahnafiscool
|
1
|
28.0
|
548
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-16T10:55:55Z", "hours": 28.0, "multiplier": 19.55, "payout": 548, "blessing": "neutral", "text": "Hey, read this, I’ve typed it in a way so that u don’t get bored: It is finally done… ESSENTIALS Shader is live and working so that you with a terrible device (like me) will have a chance to behold the premium look of minecraft without breaking the bank to buy a GPU. Ofc, it will not be the best looking shader since it’s optimized, but what more can you ask for? I was motivated to make a shader of my own because of 2 things: Wanting a GPU and help people to play mc smoothly with iGPU. I was planning to submit this shader to Lumen so that I’ll be eligible to win a GPU (unfortunately it ended well before I finished). The hardest part was actually testing it, yeah really. I can’t even count how many times MC crashed when I turned on n off the shader everytime. And hackatime did not support on my Win7 so I had to both write codes in codespaces and locally to commit changes (2X work already here) and hours of work was not properly recorded. The best part was when I was midway through the project, I got so much interaction this page with followers, likes and most importantly ‘Super Star Project’. So tysm to all NOTE: Please click on the skip button if you did not understand the point of the project, do not vote without testing/knowing anything abt it. It may not look visually appealing to you but you must understand the sole purpose of the project. So please vote wisely ;)", "repo": "https://github.com/AhnafPro/ESSENTIALS-Shader", "demo": "https://modrinth.com/shader/essentials-shader"}]...
|
[{"post_id": 9875, "ts": "2026 [{"post_id": 9875, "ts": "2026-06-16T10:34:35Z", "hours": 7.0, "text": "Im really with skl stuffs these and did not have quite a lot of time to code like before. Since I have not posted a devlog in a long time, I’ll just briefly explain some simple changes/updates that were done. The shader was approved on Modrinth and CurseForge (). We also recieved decent amount of downloads combined. Check out below: https://modrinth.com/shader/essentials-shader/ https://www.curseforge.com/minecraft/shaders/essentials-shader A custom LICENSE file has been created to suit all the rules and regulations. And previous LICENSE based on GPL 3.0 was removed. Find it here: https://github.com/AhnafPro/ESSENTIALS-Shader/tree/main?tab=License-1-ov-file Gamma correction value has been altered. The day might look a little pale in color than before but it ensures that the night does not black out completely Reflection of moonlight on water is visible now (no performance cuts)"}, {"post_id": 6984, "ts": "2026-06-11T18:41:27Z", "hours": 4.0, "text": "Yoo, Im back after a long time, cuz I was really busy and tired with the school works, exams etc. Today I was bit free so I did lots of testing, debugging, editing etc. and then prepared the shader for a beta release on modrinth. I got nothing much to say cuz I’m really sleepy isw. And this ain’t the end, not the final version so please report bugs under any latest devlog here and i’ll look after it Project: https://modrinth.com/shader/essentials-shader Also I took some pics for gallery, pls enjoy…"}, {"post_id": 5048, "ts": "2026-06-08T18:25:13Z", "hours": 1.0, "text": "This project was marked as “Super Star Project”! and I would like to thank all of you who have interacted via following, commenting etc. cuz its an important milestone for our project. tysm once again… Some quite simple changes has been done in this log such as: Altered wavering effect to water to bare minimum value (unnoticeable tbh) so that when shadow falls on it, the shadow sort of move. Added a hover me button on the pack settings with some parts of README section (also read the note) Honestly the changes seems simple but the second change was kinda hard cuz it’s not that simple to make desc. of texts appear on buttons but credits to iris documentation, I made it into hovering style instead with the help of it. I’ll see if I can add more things to it … cya"}, {"post_id": 4162, "ts": "2026-06-07T11:34:19Z", "hours": 1.0, "text": "Feeling a bit lazy today cuz it’s sunday but I still made some updates, from the last log, I’ve fixed the water opacity issue (the water is now in 1 color across all y-angle) and now I’m mostly debugging and making small changes here and there, like updating the readme, seeing if certain blocks render properly etc. So far we are mostly done for a good optimized shader but I think there might be some things missing that I haven’t looked after- like today when I was working with the water shader files on overworld but then I remembered that I forgot to add the files for water to the end dimension (excluding nether here cuz water don’t work there yk).Which would have made water appear like normal vanilla ones. So there might lots of other stuffs im missing out. Once I make every major fix, I’ll upload the shader to modrinth so that you guys can review and give me feedback on it. Updates done: Fixed water opacity issue across the y axis from the crosshair horizontally."}, {"post_id": 3417, "ts": "2026-06-06T10:51:06Z", "hours": 3.0, "text": "Today I was working on improving the water, I did some noticeable improvements but it still has one issue, at different y angles the opacity of the blue color of water changes. So I will try to fix next time or keep it as it since its not a big visual issue. Also found another problem at End, when I hit the ender mobs they do not render the red effect. Therefore i’ve encountered 2 minor issues. Hope i’ll be able to patch it… bye"}, {"post_id": 2847, "ts": "2026-06-05T18:06:39Z", "hours": 4.0, "text": "I really felt dumb after spending over 4 hrs trying to fix the last 2 issues, ill tell you why. The issue with grainy effect on the sky can’t be fixed, some of my friends told it kinda looks good like a galaxy with millions of star and there isnt any point of working on it if Im not able to patch it. And here where it gets interesting. The first issue was where I spent most of the time, to then discover that the fix was sitting just on a different directory. I tottaly forgot that I’ve patched mob texture issues before with the help of gbuffer_textured f/v shader files, so I just copied them from overworld and pasted them on world1 file and everything got fixed. I was really dissapointed tbh. So the fixes were: Copying gbuffer_textured f/v shader files & gbuffer_terrain_lit f/v shader files to world1 Copying gbuffer_textured f/v shader files to world-1 So basically we got our shader made but we can’t be just releasing on modrinth like this. We need to test with older version, check various scenarios to see if things break, improve some current elements like water, maybe add reflection etc. Please let me know if you have suggestions…"}, {"post_id": 1477, "ts": "2026-06-03T14:59:40Z", "hours": 1.0, "text": "I’ve finally fixed the End dimension the shading works well and also added aurora effect in the sky (this genuinely required help from claude), and the good news is it does not effect fps much or even at all. Also there is an alternation in sky light between the cheese yellow and slight pink (u can see the variation in both images). But I ran into 2 different issues here: The ender mobs (enderman,mites, dragon) are not rendering their purple from their eyes aka no eyes. When moved to outer end island or when dragon is killed in main island, the sky seems to render the grainy effect (which looks a bit odd like its a whole milky way) So, I’ll try to patch it today night, cuz these are some common shader issues while making one, there are enough documentation from various sources like iris, shaderLABs etc. Wish me gl!"}, {"post_id": 976, "ts": "2026-06-02T19:12:03Z", "hours": 1.0, "text": "I’m really tired today after juggling school works and this project at the same time, as of now I made a pretty basic shader, the lighting work (as you can see the light from the torches) but the shadow is sorta broken, its not appearing and the whole world kinda look way too lit up (when Im far from the ender dragon’s main island). Imma peace out for today and will try to patch it tmrw."}, {"post_id": 861, "ts": "2026-06-02T15:58:30Z", "hours": 0.0, "text": "Just did a little work some code cleanup and also made the end files inspired by shaderLABS which were similar to nether files but certain things like change in color filter of sky for end is needed. I’ll try to add the end shader update on the next devlog. CYA… [wrong file image, sry it should have been world1 folder, imma edit it later]"}, {"post_id": 797, "ts": "2026-06-02T13:54:14Z", "hours": 1.0, "text": "I thought the nether was gonna work with the same shader files from the overworld but when I went through the portal, I saw a different story. Everything looked dark, dark as if it was nighttime during overworld but with no moon, also realised that the entities had a transparent body. So these 2 issues were fixed along with the nether shader base when I made it. Things that were done are: Fixed nether lighting Added shadows Removed fog codes from composite.fsh What I have noticed was that I got slight better fps in nether than overworld cuz lots of parts of nether consist of wasteland biome which has less structures and vegetation."}, {"post_id": 357, "ts": "2026-06-01T17:51:38Z", "hours": 0.0, "text": "I started making it way before Stardance cuz I was planning to submit it to Lumen but unfortunately Lumen ended (I was working towards getting a GPU) and I was not able to finish my shader by then. (I spent 10+ hrs of which 3hrs were logged, but not shown here since I logged them before Stardance) As of now its a very lightweight & basic shader, but honestly I think its sorta visually appealing (at least for those who got no ded. gpu). I myslef is use my father’s ancient PC from 2013 with no GPU (MC crashed over 20 times while debugging) and Ik the pain of others who runs their game at bare bones low settings, so I hope this project will come in a help for them as I’ll try to make the shader as optimized as possible. As of now the overworld is sorta complete with these features: Fake sun/moon rays V. weak Fog semi-realistic fresnel water (still in dev.) Shadows, Lighting etc. In my next devlog i’ll update the nether a little more to make it look standout. And I think my logs are not gonna have good amount of time logged in cuz im using Win7 and Hackatime does not work, so I’ll have to manually edit codespaces and local shader files while testing."}]...
|
Title: ESSENTIALS Shader by @ahnafiscool | Stardan Title: ESSENTIALS Shader by @ahnafiscool | Stardance
Devlogs:
I started making it way before Stardance cuz I was planning to submit it to Lumen but unfortunately Lumen ended (I was working towards getting a GPU) and I was not able to finish my shader by then. (I spent 10+ hrs of which 3hrs were logged, but not shown here since I logged them before Stardance) As of now its a very lightweight & basic shader, but honestly I think its sorta visually appealing (at least for those who got no ded. gpu). I myslef is use my father’s ancient PC from 2013 with no GPU (MC crashed over 20 times while debugging) and Ik the pain of others who runs their game at bare bones low settings, so I hope this project will come in a help for them as I’ll try to make the shader as optimized as possible. As of now the overworld is sorta complete with these features: Fake sun/moon rays V. weak Fog semi-realistic fresnel water (still in dev.) Shadows, Lighting etc. In my next devlog i’ll update the nether a little more to make it look standout. And I think my logs are not gonna have good amount of time logged in cuz im using Win7 and Hackatime does not work, so I’ll have to manually edit codespaces and local shader files while testing.
I thought the nether was gonna work with the same shader files from the overworld but when I went through the portal, I saw a different story. Everything looked dark, dark as if it was nighttime during overworld but with no moon, also realised that the entities had a transparent body. So these 2 issues were fixed along with the nether shader base when I made it. Things that were done are: Fixed nether lighting Added shadows Removed fog codes from composite.fsh What I have noticed was that I got slight better fps in nether than overworld cuz lots of parts of nether consist of wasteland biome which has less structures and vegetation.
Just did a little work some code cleanup and also made the end files inspired by shaderLABS which were similar to nether files but certain things like change in color filter of sky for end is needed. I’ll try to add the end shader update on the next devlog. CYA… [wrong file image, sry it should have been world1 folder, imma edit it later]
I’m really tired today after juggling school works and this project at the same time, as of now I made a pretty basic shader, the lighting work (as you can see the light from the torches) but the shadow is sorta broken, its not appearing and the whole world kinda look way too lit up (when Im far from the ender dragon’s main island). Imma peace out for today and will try to patch it tmrw.
I’ve finally fixed the End dimension the shading works well and also added aurora effect in the sky (this genuinely required help from claude), and the good news is it does not effect fps much or even at all. Also there is an alternation in sky light between the cheese yellow and slight pink (u can see the variation in both images). But I ran into 2 different issues here: The ender mobs (enderman,mites, dragon) are not rendering their purple from their eyes aka no eyes. When moved to outer end island or when dragon is killed in main island, the sky seems to render the grainy effect (which looks a bit odd like its a whole milky way) So, I’ll try to patch it today night, cuz these are some common shader issues while making one, there are enough documentation from various sources like iris, shaderLABs etc. Wish me gl!
I really felt dumb after spending over 4 hrs trying to fix the last 2 issues, ill tell you why. The issue with grainy effect on the sky can’t be fixed, some of my friends told it kinda looks good like a galaxy with millions of star and there isnt any point of working on it if Im not able to patch it. And here where it gets interesting. The first issue was where I spent most of the time, to then discover that the fix was sitting just on a different directory. I tottaly forgot that I’ve patched mob texture issues before with the help of gbuffer_textured f/v shader files, so I just copied them from overworld and pasted them on world1 file and everything got fixed. I was really dissapointed tbh. So the fixes were: Copying gbuffer_textured f/v shader files & gbuffer_terrain_lit f/v shader files to world1 Copying gbuffer_textured f/v shader files to world-1 So basically we got our shader made but we can’t be just releasing on modrinth like this. We need to test with older version, check various scenarios to see if things break, improve some current elements like water, maybe add reflection etc. Please let me know if you have suggestions…
Today I was working on improving the water, I did some noticeable improvements but it still has one issue, at different y angles the opacity of the blue color of water changes. So I will try to fix next time or keep it as it since its not a big visual issue. Also found another problem at End, when I hit the ender mobs they do not render the red effect. Therefore i’ve encountered 2 minor issues. Hope i’ll be able to patch it… bye
Feeling a bit lazy today cuz it’s sunday but I still made some updates, from the last log, I’ve fixed the water opacity issue (the water is now in 1 color across all y-angle) and now I’m mostly debugging and making small changes here and there, like updating the readme, seeing if certain blocks render properly etc. So far we are mostly done for a good optimized shader but I think there might be some things missing that I haven’t looked after- like today when I was working with the water shader files on overworld but then I remembered that I forgot to add the files for water to the end dimension (excluding nether here cuz water don’t work there yk).Which would have made water appear like normal vanilla ones. So there might lots of other stuffs im missing out. Once I make every major fix, I’ll upload the shader to modrinth so that you guys can review and give me feedback on it. Updates done: Fixed water opacity issue across the y axis from the crosshair horizontally.
This project was marked as “Super Star Project”! and I would like to thank all of you who have interacted via following, commenting etc. cuz its an important milestone for our project. tysm once again… Some quite simple changes has been done in this log such as: Altered wavering effect to water to bare minimum value (unnoticeable tbh) so that when shadow falls on it, the shadow sort of move. Added a hover me button on the pack settings with some parts of README section (also read the note) Honestly the changes seems simple but the second change was kinda hard cuz it’s not that simple to make desc. of texts appear on buttons but credits to iris documentation, I made it into hovering style instead with the help of it. I’ll see if I can add more things to it … cya
Yoo, Im back after a long time, cuz I was really busy and tired with the school works, exams etc. Today I was bit free so I did lots of testing, debugging, editing etc. and then prepared the shader for a beta release on modrinth. I got nothing much to say cuz I’m really sleepy isw. And this ain’t the end, not the final version so please report bugs under any latest devlog here and i’ll look after it Project: https://modrinth.com/shader/essentials-shader Also I took some pics for gallery, pls enjoy…
Im really with skl stuffs these and did not have quite a lot of time to code like before. Since I have not posted a devlog in a long time, I’ll just briefly explain some simple changes/updates that were done. The shader was approved on Modrinth and CurseForge (). We also recieved decent amount of downloads combined. Check out below: https://modrinth.com/shader/essentials-shader/ https://www.curseforge.com/minecraft/shaders/essentials-shader A custom LICENSE file has been created to suit all the rules and regulations. And previous LICENSE based on GPL 3.0 was removed. Find it here: https://github.com/AhnafPro/ESSENTIALS-Shader/tree/main?tab=License-1-ov-file Gamma correction value has been altered. The day might look a little pale in color than before but it ensures that the night does not black out completely Reflection of moonlight on water is visible now (no performance cuts)
Ships:
Hey, read this, I’ve typed it in a way so that u don’t get bored: It is finally done… ESSENTIALS Shader is live and working so that you with a terrible device (like me) will have a chance to behold the premium look of minecraft without breaking the bank to buy a GPU. Ofc, it will not be the best looking shader since it’s optimized, but what more can you ask for? I was motivated to make a shader of my own because of 2 things: Wanting a GPU and help people to play mc smoothly with iGPU. I was planning to submit this shader to Lumen so that I’ll be eligible to win a GPU (unfortunately it ended well before I finished). The hardest part was actually testing it, yeah really. I can’t even count how many times MC crashed when I turned on n off the shader everytime. And hackatime did not support on my Win7 so I had to both write codes in codespaces and locally to commit changes (2X work already here) and hours of work was not properly recorded. The best part was when I was midway through the project, I got so much interaction this page with followers, likes and most importantly ‘Super Star Project’. So tysm to all NOTE: Please click on the skip button if you did not understand the point of the project, do not vote without testing/knowing anything abt it. It may not look visually appealing to you but you must understand the sole purpose of the project. So please vote wisely ;)...
|
1792878792.1205635
|
1793742792.1205635
|
|
4565
|
Minerust by @bartoszkasyna | Stardance
|
bartoszkasyna
|
1
|
28.0
|
318
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-04T13:39:29Z", "hours": 28.0, "multiplier": 11.52, "payout": 318, "blessing": "neutral", "text": "I made Minecraft clone in rust using wgpu. Currently game is more like voxel engine. I was mainly focused on game optimatization. Release veriosn has render distance 32 achieving 300FPS on rtx 3050 4GB laptop edition consuming only 0.8GB of VRAM and 430MB of RAM. With high end CPU it can easily handle render distance 128 usinf only 1.5GB VRAM and 1.7GB RAM.", "repo": "https://github.com/B4rtekk1/Minecraft-Rust", "demo": "https://github.com/B4rtekk1/Minecraft-Rust/releases"}]...
|
[{"post_id": 61498, "ts": "202 [{"post_id": 61498, "ts": "2026-09-04T13:22:10Z", "hours": 2.3158, "text": "I finished creating inventiry system. I also fixed bug- Some subchunks was missing if HiZ culling culled them before they were generated. After this short 3 days break into this project I’m shipping it and going back to my main one."}, {"post_id": 61065, "ts": "2026-09-03T19:39:58Z", "hours": 4.5978, "text": "Today I was mainly working on game optimatization and code quality. I also started implementing Inventory system. Currently broken blocks drops into ground and rotate, like in minecraft"}, {"post_id": 60454, "ts": "2026-09-02T19:50:58Z", "hours": 5.995, "text": "Today I was working on new terrain system and optimatization. On te image is world with render distance 128 - unfortunettly its not fully loaded beacuse it takes ages to load 66k chunks. Game preallocates required memory. This world requires ONLY 1.5GB VRAM and 1.2GB RAM. Vanilla minecraft runs 120FPS with render distance 16 on my laptop while my game runs 30FPS with render distance 128 which is 65992 chunks more. minecraft basiccly render 1.6% of what my engine can do. Keep in mind that i have rtx 3050 4GB laptop"}, {"post_id": 59828, "ts": "2026-09-01T20:05:54Z", "hours": 4.6781, "text": "I came back to the project because I don’t like doing only one project at a time. My goal is to make simple Minecraft clone but much more optimized. On the image you can see 64x64 chunks world - that means 128 chunks long and wide. It only uses 1.6GB of RAM, 4% CPU, 2GB of VRAM. It handle stable 120FPS on my rtx 3050 4GB latpop. Orginal minecraft have 120FPS with render distance 16."}, {"post_id": 26167, "ts": "2026-07-10T20:12:05Z", "hours": 1.9911, "text": "Fixed Ambient oclussion. Added rerndering mode switch in menu."}, {"post_id": 4042, "ts": "2026-06-07T06:59:38Z", "hours": 3.6419, "text": "Shadow removal(again - same bug). I implemented cheap vertex ambient oclussion. It still a little buggy but i’ll fix it. I refactroed code a little to get ready for wasm modding. For now i will leave visuals and focus on game content, portability. How I said little buggy in the corners"}, {"post_id": 1981, "ts": "2026-06-04T07:38:58Z", "hours": 4.3542, "text": "I removed shadows implementation because moving light center caused shadow crawling which is hard to get rid of with small cost. It was possible to remove but it was droppingg about 120FPS(fom 340 to ~200). I have reduced VRAM usage by reducing water buffer size. With render distance 32 game use 1.6GB of VRAM and 700MB of RAM. Rendering is GPU optimized(80%+ usage, <20% CPU usage. Video might not looks like 300FPS because of video compression."}]...
|
Title: Minerust by @bartoszkasyna | Stardance
Dev Title: Minerust by @bartoszkasyna | Stardance
Devlogs:
I removed shadows implementation because moving light center caused shadow crawling which is hard to get rid of with small cost. It was possible to remove but it was droppingg about 120FPS(fom 340 to ~200). I have reduced VRAM usage by reducing water buffer size. With render distance 32 game use 1.6GB of VRAM and 700MB of RAM. Rendering is GPU optimized(80%+ usage, <20% CPU usage. Video might not looks like 300FPS because of video compression.
Shadow removal(again - same bug). I implemented cheap vertex ambient oclussion. It still a little buggy but i’ll fix it. I refactroed code a little to get ready for wasm modding. For now i will leave visuals and focus on game content, portability. How I said little buggy in the corners
Fixed Ambient oclussion. Added rerndering mode switch in menu.
I came back to the project because I don’t like doing only one project at a time. My goal is to make simple Minecraft clone but much more optimized. On the image you can see 64x64 chunks world - that means 128 chunks long and wide. It only uses 1.6GB of RAM, 4% CPU, 2GB of VRAM. It handle stable 120FPS on my rtx 3050 4GB latpop. Orginal minecraft have 120FPS with render distance 16.
Today I was working on new terrain system and optimatization. On te image is world with render distance 128 - unfortunettly its not fully loaded beacuse it takes ages to load 66k chunks. Game preallocates required memory. This world requires ONLY 1.5GB VRAM and 1.2GB RAM. Vanilla minecraft runs 120FPS with render distance 16 on my laptop while my game runs 30FPS with render distance 128 which is 65992 chunks more. minecraft basiccly render 1.6% of what my engine can do. Keep in mind that i have rtx 3050 4GB laptop
Today I was mainly working on game optimatization and code quality. I also started implementing Inventory system. Currently broken blocks drops into ground and rotate, like in minecraft
I finished creating inventiry system. I also fixed bug- Some subchunks was missing if HiZ culling culled them before they were generated. After this short 3 days break into this project I’m shipping it and going back to my main one.
Ships:
I made Minecraft clone in rust using wgpu. Currently game is more like voxel engine. I was mainly focused on game optimatization. Release veriosn has render distance 32 achieving 300FPS on rtx 3050 4GB laptop edition consuming only 0.8GB of VRAM and 430MB of RAM. With high end CPU it can easily handle render distance 128 usinf only 1.5GB VRAM and 1.7GB RAM....
|
1793105326.2869015
|
1793191726.2869015
|
|
10231
|
Hollow Knight Pinball Playfield by @AgentAxolotl | Hollow Knight Pinball Playfield by @AgentAxolotl | Stardance...
|
AgentAxolotl
|
1
|
28.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-24T17:31:39Z", "hours": 28.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "What I Made: I used CAD (onshape specifically) to model my custom pinball playfield for my Hollow Knight Pinball Machine. It is based on my original physical rough draft prototype and also expands on it with more holes for things like inserts that are too complicated to cut by hand. It will be CNC cut and will be populated (have other components like the mechanical pieces and lights) in a future project. The main goal of this project was to learn CAD while also reducing the time, effort, and errors caused by trying to do this by hand. Some of the models for the holes of various features can be reused by others in the future. Challenges: Learning CAD was definitely a massive learning curve but luckily I know a decent number of people who were able to answer all my questions. I think this is pretty obvious in my devlogs as you can see how I got significantly faster and more capable throughout the process. Modeling the inserts and target cut outs were among the more complicated shapes and were quite a challenge especially for someone who had never done CAD before. I had dimensions from other people in the space but free onshape can struggle with dxf files. I do think templates were very helpful and I hope someone else will also use these in the future, especially the target which I did from scratch. What I’m Most Proud Of: I am most proud of the shooter lane, I go into it in more detail in my readme but I basically used a tilted plane and a v shape and then curved the edges and I think it turned out about as close to a real machine as possible while matching the shorter length I need for my specific design. I am also proud of the target design which I did all on my own. My measurements were also very accurate when I came back and checked it against my physical draft when I was done and I was quite worried it would not match up. Finally I am most proud of basically learning CAD from the ground up which is a major skill that will help me in the future and make many future projects easier. How You Can Machine This Yourself: The onshape files are linked here and there is a .step in the github. The general process is that it should be machined out of plywood on a CNC machine however there are more detailed instructions in the readme. The other thing you may find useful is the templates for inserts and targets (you can find them in the onshape) as this will make it easier for you to make your own machine with your own design if you want. Other components like slingshots and lower plainfield third (which is fairly standard) can be found in there as well. Thanks for rating and good luck on your own projects!", "repo": "https://github.com/SamHughes112/Hollow-Knight-Pinball", "demo": ""}]...
|
[{"post_id": 14856, "ts": "202 [{"post_id": 14856, "ts": "2026-06-24T03:48:18Z", "hours": 4.0136, "text": "This will probably be my last devlog before I ship. Most of time was spent on fine tuning positions, remeasuring things, and checking that I had all the holes I needed. Some of the more major changes included the ball trough (the big oval thing at the bottom for holding balls when they are not in play), the holes in the corners to let wires through for lighting (top right has two one for 5v and one for 48v since the 48 can sometimes mess with data to the RGBs on the 5v), and fixing the shooter lane insert. By being set into the playfield the plunger can hit it better/more consistently and it was definitely up there for one of the most difficult things I have done for this project. In the end I used a very slightly sloped plane with a shape of a V on it which I then extruded forwards and backwards. I then curved the edges to be a bit smoother though it did require me to be creative."}, {"post_id": 13167, "ts": "2026-06-21T15:34:18Z", "hours": 11.0439, "text": "I have made a lot of progress and am probably getting close to shipping. In the past couple days I finished adding all the inserts (I think) as well as almost all the posts I have two left but they will be hard to measure. The only other things I have to do is put a slope for the shooter lane (like where the ball comes from), add a couple more cutouts for switches, and add some holes at the bottom and at the back for some wires since I’m sure I will need that at some point and if not they will covered when I build it out."}, {"post_id": 9706, "ts": "2026-06-16T03:48:15Z", "hours": 4.4953, "text": "Well I had some major setbacks unfortunately the model I had used as a base for the shooter lane and other standard stuff like the holes under the apron (metal piece at the bottom of the games where your ball drains through and a new one pops out of) was measured wrong and by a significant margin so I had to restart that and try to work from a different file type to try to create one that has unfortunately a lot less that I can reuse meaning I had to remeasure and remodel a lot of that myself and then reposition everything I had already put on their. At least I had the shapes of inserts already and obviously me CAD skills have improved a lot so it was fairly doable. I learned my lesson I guess 🤷♂️. I also quickly threw together some more groups of inserts that will go in soon."}, {"post_id": 8476, "ts": "2026-06-14T03:04:59Z", "hours": 4.2267, "text": "I finished modeling the last rounded rectangle along with some more complicated shapes I will need in the future then designed the layout (for the map not the shots) and added some inserts to the map as well as putting some in the inlanes though those were easy next up is adjusting a couple of other positions since I screwed up my side rail measurements (they should be 3/4 and I though they were 1/2 inch)."}, {"post_id": 6037, "ts": "2026-06-10T04:06:47Z", "hours": 3.8192, "text": "Working on modeling holes for the inserts it was coming along well though I did have some problems with onshape not liking some of the file types I was giving it. The labels on the circles are kind of hard to read but basically tell me what diameter it is so I don’t use the wrong one. One more to go thats a 1 1/2 by 1 5/8 rectangle but I’m definitely getting much faster. (idk why my images are being weird maybe try opening them in a new tab)"}]...
|
Title: Hollow Knight Pinball Playfield by @AgentAx Title: Hollow Knight Pinball Playfield by @AgentAxolotl | Stardance
Devlogs:
Working on modeling holes for the inserts it was coming along well though I did have some problems with onshape not liking some of the file types I was giving it. The labels on the circles are kind of hard to read but basically tell me what diameter it is so I don’t use the wrong one. One more to go thats a 1 1/2 by 1 5/8 rectangle but I’m definitely getting much faster. (idk why my images are being weird maybe try opening them in a new tab)
I finished modeling the last rounded rectangle along with some more complicated shapes I will need in the future then designed the layout (for the map not the shots) and added some inserts to the map as well as putting some in the inlanes though those were easy next up is adjusting a couple of other positions since I screwed up my side rail measurements (they should be 3/4 and I though they were 1/2 inch).
Well I had some major setbacks unfortunately the model I had used as a base for the shooter lane and other standard stuff like the holes under the apron (metal piece at the bottom of the games where your ball drains through and a new one pops out of) was measured wrong and by a significant margin so I had to restart that and try to work from a different file type to try to create one that has unfortunately a lot less that I can reuse meaning I had to remeasure and remodel a lot of that myself and then reposition everything I had already put on their. At least I had the shapes of inserts already and obviously me CAD skills have improved a lot so it was fairly doable. I learned my lesson I guess 🤷♂️. I also quickly threw together some more groups of inserts that will go in soon.
I have made a lot of progress and am probably getting close to shipping. In the past couple days I finished adding all the inserts (I think) as well as almost all the posts I have two left but they will be hard to measure. The only other things I have to do is put a slope for the shooter lane (like where the ball comes from), add a couple more cutouts for switches, and add some holes at the bottom and at the back for some wires since I’m sure I will need that at some point and if not they will covered when I build it out.
This will probably be my last devlog before I ship. Most of time was spent on fine tuning positions, remeasuring things, and checking that I had all the holes I needed. Some of the more major changes included the ball trough (the big oval thing at the bottom for holding balls when they are not in play), the holes in the corners to let wires through for lighting (top right has two one for 5v and one for 48v since the 48 can sometimes mess with data to the RGBs on the 5v), and fixing the shooter lane insert. By being set into the playfield the plunger can hit it better/more consistently and it was definitely up there for one of the most difficult things I have done for this project. In the end I used a very slightly sloped plane with a shape of a V on it which I then extruded forwards and backwards. I then curved the edges to be a bit smoother though it did require me to be creative.
Ships:
What I Made: I used CAD (onshape specifically) to model my custom pinball playfield for my Hollow Knight Pinball Machine. It is based on my original physical rough draft prototype and also expands on it with more holes for things like inserts that are too complicated to cut by hand. It will be CNC cut and will be populated (have other components like the mechanical pieces and lights) in a future project. The main goal of this project was to learn CAD while also reducing the time, effort, and errors caused by trying to do this by hand. Some of the models for the holes of various features can be reused by others in the future. Challenges: Learning CAD was definitely a massive learning curve but luckily I know a decent number of people who were able to answer all my questions. I think this is pretty obvious in my devlogs as you can see how I got significantly faster and more capable throughout the process. Modeling the inserts and target cut outs were among the more complicated shapes and were quite a challenge especially for someone who had never done CAD before. I had dimensions from other people in the space but free onshape can struggle with dxf files. I do think templates were very helpful and I hope someone else will also use these in the future, especially the target which I did from scratch. What I’m Most Proud Of: I am most proud of the shooter lane, I go into it in more detail in my readme but I basically used a tilted plane and a v shape and then curved the edges and I think it turned out about as close to a real machine as possible while matching the shorter length I need for my specific design. I am also proud of the target design which I did all on my own. My measurements were also very accurate when I came back and checked it against my physical draft when I was done and I was quite worried it would not match up. Finally I am most proud of basically learning CAD from the ground up which is a major skill that will help me in the future and make many future projects easier. How You Can Machine This Yourself: The onshape files are linked here and there is a .step in the github. The general process is that it should be machined out of plywood on a CNC machine however there are more detailed instructions in the readme. The other thing you may find useful is the templates for inserts and targets (you can find them in the onshape) as this will make it easier for you to make your own machine with your own design if you want. Other components like slingshots and lower plainfield third (which is fairly standard) can be found in there as well. Thanks for rating and good luck on your own projects!...
|
1793123733.5554082
|
1793210133.5554082
|
|
15486
|
Personal Website by @sapu | Stardance
|
sapu
|
1
|
28.0
|
412
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-23T08:13:40Z", "hours": 28.0, "multiplier": 15.56, "payout": 412, "blessing": "neutral", "text": "It’s a personal also a portfolio website that I’m really proud of that I’m trying to achieve a game-like feel with the design, and the challenging part was making everything responsive and getting the layouts to work on different screen sizes while learning React :p", "repo": "https://github.com/savwicak/savwicak.github.io", "demo": "https://savwicak.github.io"}]...
|
[{"post_id": 72572, "ts": "202 [{"post_id": 72572, "ts": "2026-09-23T08:09:20Z", "hours": 7.5636, "text": "Added more data and made the design responsive! I’m having trouble fixing some elements so they fit properly on mobile, so I also cross-checked it on different phones :p"}, {"post_id": 71739, "ts": "2026-09-21T13:01:19Z", "hours": 8.9267, "text": "FINAL UPDATE My personal web is doneee!!! YYAYAY but I need some changes to the data. I still use dummy data to test things out (so it’s not the real one ok)"}, {"post_id": 69020, "ts": "2026-09-16T07:10:38Z", "hours": 11.0742, "text": "Hello it’s kinda late, anyway i’m posting my progress for my personal website, so i can share my experience in blog and share my favorite project, and i can organize it better, before i use bento.me for all links but suddenly the website is down so i cant acsses no more ;( THATS why i want to make my own website :D It kinda motivated me to build the project lolol. I’m trying to make a game-like UI and layout, and hopefully it looks like one. I really love this kind of UI when there are a lot of borders and outlines, like cartoon u_U, because I love games! And I want to put a lot of animation here. SORRY FOR BAD POST STRUCTURE, REALLY, I don’t know how to post devlog cleanly hehe so there are 6 pages home will appear when you enter the website, like some short introduction, projects, blogs, PHOTOS! yes, I love photography, so I will put my photos here, but I need a website to store my photos so I can use a link in the image tag, but idk which one is better :l, and the last one is a profile for more about me, like certificates and experience, something like that and I’ve done 3 pages for now (I’m really bad at deciding which final design I should use ;) ) in project, blog, and home(I’m not sure abt this one, and I will change some layout later cuz I didn’t like it) my favorite is the navigation that I made, and you need to use the TAB button then it will appear. I think that’s interesting btw, for the blog, I use Markdown. I know it’s not the best practice, but I just want to share my stories, and I use react for this project, and I’m not used to code in react and am trying to learn more thank you really"}]...
|
Title: Personal Website by @sapu | Stardance
Devl Title: Personal Website by @sapu | Stardance
Devlogs:
Hello it’s kinda late, anyway i’m posting my progress for my personal website, so i can share my experience in blog and share my favorite project, and i can organize it better, before i use bento.me for all links but suddenly the website is down so i cant acsses no more ;( THATS why i want to make my own website :D It kinda motivated me to build the project lolol. I’m trying to make a game-like UI and layout, and hopefully it looks like one. I really love this kind of UI when there are a lot of borders and outlines, like cartoon u_U, because I love games! And I want to put a lot of animation here. SORRY FOR BAD POST STRUCTURE, REALLY, I don’t know how to post devlog cleanly hehe so there are 6 pages home will appear when you enter the website, like some short introduction, projects, blogs, PHOTOS! yes, I love photography, so I will put my photos here, but I need a website to store my photos so I can use a link in the image tag, but idk which one is better :l, and the last one is a profile for more about me, like certificates and experience, something like that and I’ve done 3 pages for now (I’m really bad at deciding which final design I should use ;) ) in project, blog, and home(I’m not sure abt this one, and I will change some layout later cuz I didn’t like it) my favorite is the navigation that I made, and you need to use the TAB button then it will appear. I think that’s interesting btw, for the blog, I use Markdown. I know it’s not the best practice, but I just want to share my stories, and I use react for this project, and I’m not used to code in react and am trying to learn more thank you really
FINAL UPDATE My personal web is doneee!!! YYAYAY but I need some changes to the data. I still use dummy data to test things out (so it’s not the real one ok)
Added more data and made the design responsive! I’m having trouble fixing some elements so they fit properly on mobile, so I also cross-checked it on different phones :p
Ships:
It’s a personal also a portfolio website that I’m really proud of that I’m trying to achieve a game-like feel with the design, and the challenging part was making everything responsive and getting the layouts to work on different screen sizes while learning React :p...
|
1793152343.9989796
|
1793238743.9989796
|
|
15893
|
Network Scanner by @Eel | Stardance
|
Eel
|
3
|
28.0
|
296
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-19T04:48:00Z", "hours": 23.0, "multiplier": 11.9, "payout": 272, "blessing": "neutral", "text": "Network Scanner is a cross-platform network scanning tool with both a JavaFX desktop interface and a separate CLI. It can discover hosts, scan ports with configurable parallelism, show live progress, and save scan history so you can compare opened and closed ports between scans. The biggest challenge was turning the original scanner into a reliable, packaged application that works consistently across Windows, Linux, and macOS while keeping the CLI automation-friendly. I’m especially proud of the complete release pipeline and native desktop builds. The project now ships with Java included, has automated releases and SHA-256 checksums, and has been tested across all six Windows/macOS/Linux CI combinations. I also built cancellation, persistent scan history, report generation, and live progress into the desktop application. To test it, download the appropriate v3.0.0 release for your operating system from GitHub. You can try a scan against your own local network or use a loopback address such as 127.0.0.1. The CLI JAR is also available if you prefer running it from a terminal or using it in automation.", "repo": "https://github.com/Caleb-Guyer/java-network-scanner", "demo": "https://github.com/Caleb-Guyer/java-network-scanner/releases"}, {"ship_num": 2, "ts": "2026-08-07T03:12:08Z", "hours": 2.0, "multiplier": 6.07, "payout": 12, "blessing": "neutral", "text": "I improved my Java Network Scanner to scan all 254 addresses in a subnet, support customizable port ranges, identify common services, validate input, and generate scan reports. The biggest challenge was improving the scan speed while keeping it reliable, and I’m proud of turning it into a much more flexible and useful tool. To test it, run the program with Java, enter your local subnet (such as 192.168.1), and choose a port range to scan.", "repo": "https://github.com/Caleb-Guyer/java-network-scanner", "demo": "https://github.com/Caleb-Guyer/java-network-scanner/releases"}, {"ship_num": 3, "ts": "2026-06-11T19:40:03Z", "hours": 3.0, "multiplier": 3.46, "payout": 12, "blessing": "neutral", "text": "This is a fully working Java network scanner that will scan for devices on your network and write it to a file. It integrates network and port scanning. You can get the JAR on the GitHub release.", "repo": "https://github.com/Caleb-Guyer/java-network-scanner", "demo": "https://github.com/Caleb-Guyer/java-network-scanner/releases"}]...
|
[{"post_id": 50090, "ts": "202 [{"post_id": 50090, "ts": "2026-08-19T04:47:14Z", "hours": 5.2136, "text": "v3.0.0 is complete and publicly released. This is a pretty major update for Network Scanner, with the project now having a full JavaFX desktop interface alongside the existing command-line version. The desktop app includes live scan progress, cancellation, persistent scan history, and comparisons between opened and closed ports from previous scans. I also added native desktop bundles for Windows x64, Linux x64, and macOS ARM64, with Java included so users do not need to install Java separately. The automation-friendly CLI JAR remains available separately, and every published download now has a SHA-256 checksum for verification. The release went through 115 regression assertions, all six Windows/macOS/Linux CI combinations, and all native packaging and publication jobs. I also tested a real loopback scan with report generation and verified the published CLI checksum and launcher. Everything passed successfully."}, {"post_id": 49833, "ts": "2026-08-18T19:39:12Z", "hours": 5.6381, "text": "v2.3.0 of my Java Network Scanner is now live. This release focuses heavily on making scanning more reliable, informative, and performant, especially in environments where normal host discovery doesn’t work as expected. The scanner now has an automatic zero-host discovery fallback, along with ICMP/TCP diagnostics and interface warnings to help explain why hosts may not be discovered. I also reworked the parallel scanning system with a globally bounded scan queue, which keeps concurrency under control while still allowing the scanner to take advantage of multiple workers. The scanning experience now includes live progress, throughput, and ETA information. The timeout can also be configured with the new –timeout option. Reports have been expanded as well, with richer information available in the text, JSON, and CSV formats. I also added an opt-in /24 performance benchmark for testing scanner performance on larger ranges. In the 64-worker benchmark, the scanner reached 25,220 checks per second."}, {"post_id": 49047, "ts": "2026-08-17T17:13:29Z", "hours": 6.6, "text": "v2.2.0 of my Java Network Scanner is officially out. This release is a pretty major step forward for the project, especially when it comes to automation, reporting, and making the scanner easier to use outside of the original interactive workflow. The scanner now supports a non-interactive CLI, including the new –skip-discovery option. I also added text, JSON, and CSV report formats, along with partial-report recovery when the scan is interrupted with Ctrl+C. Parallel scanning can now be configured as well, making it possible to adjust how many hosts and ports are scanned concurrently. I also moved the project over to Maven and added cross-platform CI and automated releases. This makes building and releasing the scanner much more consistent and means new releases can be tested across multiple environments automatically."}, {"post_id": 47817, "ts": "2026-08-16T00:56:08Z", "hours": 5.3833, "text": "v2.1.0 is complete and published. This release focuses on the feedback from the previous version, adding IPv4 CIDR support from /24 through /32 while keeping the original subnet shorthand, and improving host discovery with TCP fallbacks to reduce false 0 hosts results when ICMP is blocked. I also added controlled parallelism for much faster host and port scanning, with a configurable worker limit, and improved the scan statistics to accurately report port checks performed on responsive hosts. The release was compiled for Java 11+, passed 26 dependency-free regression assertions, and was smoke-tested with both explicit CIDR and locally inferred network inputs."}, {"post_id": 42412, "ts": "2026-08-07T03:10:48Z", "hours": 1.7436, "text": "After reviewing the feedback from my first ship, I decided to continue developing Network Scanner instead of leaving it at v1.0. The biggest issue was the hardcoded .1-.50 host range, which I had already fixed by expanding the scanner to .1-.254. The next problem I wanted to solve was that my service detection was extremely limited. Originally, the scanner only recognized seven ports, meaning most open ports were simply reported as “Unknown.” I replaced that system with a larger service database covering common services such as DNS, SMB, LDAP, MySQL, PostgreSQL, RDP, VNC and Redis. I also wanted the scanner to provide more information than simply saying that a port was open. I added basic HTTP/HTTPS probing so that web services can report their HTTP status and server information when available. Another piece of feedback specifically requested IPv6 support. This turned out to be more complicated than I initially expected because IPv6 addresses cannot be scanned using the same .1 through .254 approach I used for an IPv4 /24. Instead of pretending to scan an entire IPv6 /64, I decided to support scanning individual IPv6 addresses first. I also added multiple scanning modes so users don’t have to manually enter a port range every time. Quick scan focuses on common ports, while custom and full scans provide more control. While making these changes, I also improved input validation, report formatting, progress feedback and resource handling. The biggest thing I learned from this version is that making a networking tool useful isn’t just about getting the scan to work. I also need to think about what information the results actually provide to the person using it."}, {"post_id": 7155, "ts": "2026-06-11T23:09:59Z", "hours": 0.3028, "text": "Fixed some typos and further optimized the code."}, {"post_id": 7009, "ts": "2026-06-11T19:20:20Z", "hours": 0.8311, "text": "Added configurable port range scanning, service name detection for common ports, port range validation, and finalized v1.0 release."}, {"post_id": 6663, "ts": "2026-06-11T05:20:53Z", "hours": 2.605, "text": "Improved my Java Network Scanner by adding report export functionality, optimizing socket connection timeouts (reducing scan time from over 100 seconds to about 4 seconds), and refactoring the project into multiple classes."}]...
|
Title: Network Scanner by @Eel | Stardance
Devlog Title: Network Scanner by @Eel | Stardance
Devlogs:
Improved my Java Network Scanner by adding report export functionality, optimizing socket connection timeouts (reducing scan time from over 100 seconds to about 4 seconds), and refactoring the project into multiple classes.
Added configurable port range scanning, service name detection for common ports, port range validation, and finalized v1.0 release.
Fixed some typos and further optimized the code.
After reviewing the feedback from my first ship, I decided to continue developing Network Scanner instead of leaving it at v1.0. The biggest issue was the hardcoded .1-.50 host range, which I had already fixed by expanding the scanner to .1-.254. The next problem I wanted to solve was that my service detection was extremely limited. Originally, the scanner only recognized seven ports, meaning most open ports were simply reported as “Unknown.” I replaced that system with a larger service database covering common services such as DNS, SMB, LDAP, MySQL, PostgreSQL, RDP, VNC and Redis. I also wanted the scanner to provide more information than simply saying that a port was open. I added basic HTTP/HTTPS probing so that web services can report their HTTP status and server information when available. Another piece of feedback specifically requested IPv6 support. This turned out to be more complicated than I initially expected because IPv6 addresses cannot be scanned using the same .1 through .254 approach I used for an IPv4 /24. Instead of pretending to scan an entire IPv6 /64, I decided to support scanning individual IPv6 addresses first. I also added multiple scanning modes so users don’t have to manually enter a port range every time. Quick scan focuses on common ports, while custom and full scans provide more control. While making these changes, I also improved input validation, report formatting, progress feedback and resource handling. The biggest thing I learned from this version is that making a networking tool useful isn’t just about getting the scan to work. I also need to think about what information the results actually provide to the person using it.
v2.1.0 is complete and published. This release focuses on the feedback from the previous version, adding IPv4 CIDR support from /24 through /32 while keeping the original subnet shorthand, and improving host discovery with TCP fallbacks to reduce false 0 hosts results when ICMP is blocked. I also added controlled parallelism for much faster host and port scanning, with a configurable worker limit, and improved the scan statistics to accurately report port checks performed on responsive hosts. The release was compiled for Java 11+, passed 26 dependency-free regression assertions, and was smoke-tested with both explicit CIDR and locally inferred network inputs.
v2.2.0 of my Java Network Scanner is officially out. This release is a pretty major step forward for the project, especially when it comes to automation, reporting, and making the scanner easier to use outside of the original interactive workflow. The scanner now supports a non-interactive CLI, including the new –skip-discovery option. I also added text, JSON, and CSV report formats, along with partial-report recovery when the scan is interrupted with Ctrl+C. Parallel scanning can now be configured as well, making it possible to adjust how many hosts and ports are scanned concurrently. I also moved the project over to Maven and added cross-platform CI and automated releases. This makes building and releasing the scanner much more consistent and means new releases can be tested across multiple environments automatically.
v2.3.0 of my Java Network Scanner is now live. This release focuses heavily on making scanning more reliable, informative, and performant, especially in environments where normal host discovery doesn’t work as expected. The scanner now has an automatic zero-host discovery fallback, along with ICMP/TCP diagnostics and interface warnings to help explain why hosts may not be discovered. I also reworked the parallel scanning system with a globally bounded scan queue, which keeps concurrency under control while still allowing the scanner to take advantage of multiple workers. The scanning experience now includes live progress, throughput, and ETA information. The timeout can also be configured with the new –timeout option. Reports have been expanded as well, with richer information available in the text, JSON, and CSV formats. I also added an opt-in /24 performance benchmark for testing scanner performance on larger ranges. In the 64-worker benchmark, the scanner reached 25,220 checks per second.
v3.0.0 is complete and publicly released. This is a pretty major update for Network Scanner, with the project now having a full JavaFX desktop interface alongside the existing command-line version. The desktop app includes live scan progress, cancellation, persistent scan history, and comparisons between opened and closed ports from previous scans. I also added native desktop bundles for Windows x64, Linux x64, and macOS ARM64, with Java included so users do not need to install Java separately. The automation-friendly CLI JAR remains available separately, and every published download now has a SHA-256 checksum for verification. The release went through 115 regression assertions, all six Windows/macOS/Linux CI combinations, and all native packaging and publication jobs. I also tested a real loopback scan with report generation and verified the published CLI checksum and launcher. Everything passed successfully.
Ships:
This is a fully working Java network scanner that will scan for devices on your network and write it to a file. It integrates network and port scanning. You can get the JAR on the GitHub release.
I improved my Java Network Scanner to scan all 254 addresses in a subnet, support customizable port ranges, identify common services, validate input, and generate scan reports. The biggest challenge was improving the scan speed while keeping it reliable, and I’m proud of turning it into a much more flexible and useful tool. To test it, run the program with Java, enter your local subnet (such as 192.168.1), and choose a port range to scan.
Network Scanner is a cross-platform network scanning tool with both a JavaFX desktop interface and a separate CLI. It can discover hosts, scan ports with configurable parallelism, show live progress, and save scan history so you can compare opened and closed ports between scans. The biggest challenge was turning the original scanner into a reliable, packaged application that works consistently across Windows, Linux, and macOS while keeping the CLI automation-friendly. I’m especially proud of the complete release pipeline and native desktop builds. The project now ships with Java included, has automated releases and SHA-256 checksums, and has been tested across all six Windows/macOS/Linux CI combinations. I also built cancellation, persistent scan history, report generation, and live progress into the desktop application. To test it, download the appropriate v3.0.0 release for your operating system from GitHub. You can try a scan against your own local network or use a loopback address such as 127.0.0.1. The CLI JAR is also available if you prefer running it from a terminal or using it in automation....
|
1792878870.0594268
|
1793742870.0594268
|
|
19113
|
AcademiaOS by @aminoacid | Stardance
|
aminoacid
|
2
|
28.0
|
88
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-09T15:37:31Z", "hours": 10.0, "multiplier": 8.46, "payout": 88, "blessing": "neutral", "text": "I completed the WebOS 2 mission. In the updated WebOS, I added: pomodoro app weather app clock widget animated cat widget During this project I learned how to retrieve data using javascript for the weather app and how to animate in libresprite. Figuring out how to rotate the clock hands was challenging, but the hardest part of the project was to manage it with my school work and SAT exams.", "repo": "https://github.com/909aminoacid909/AcademiaOS", "demo": "https://909aminoacid909.github.io/AcademiaOS/"}, {"ship_num": 2, "ts": "2026-09-12T11:57:20Z", "hours": 18.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Completed my second Stardance Project! AcademiaOS is my web based operating system inspired by a dark academia aesthetic. I built a notes app, a calculator, a record player and a browser. The most difficult part of this project was definitely the javascript for opening, closing and dragging tabs. Since this is my first project with Javascript, the functionality is quite simple. This project did familiarize me with the basics of the language, and once I’ve learned more I might attempt to work on WebOS 2. I’m very proud of the design of the record player app and all the square buttons; I made sure everything would be cohesive and fit well into the theme.", "repo": "https://github.com/909aminoacid909/AcademiaOS", "demo": "https://909aminoacid909.github.io/AcademiaOS/"}]...
|
[{"post_id": 78092, "ts": "202 [{"post_id": 78092, "ts": "2026-10-09T15:23:22Z", "hours": 0.7172, "text": "Completed the updated README!"}, {"post_id": 78058, "ts": "2026-10-09T12:18:20Z", "hours": 2.4817, "text": "Added an Antique Clock and cat widget. Getting the clock hands to work definitely took me some time. I animated the cat in libresprite."}, {"post_id": 74211, "ts": "2026-09-26T22:25:01Z", "hours": 7.2367, "text": "Finished the pomodoro and the weather app. I designed the logos for the apps and the all the weather icons too in libresprite. Work’s been slow since the SAT date is coming up rip T-T"}, {"post_id": 66537, "ts": "2026-09-12T11:43:46Z", "hours": 0.8903, "text": "Devlog#6 Finished the README file. This project took me forever T-T."}, {"post_id": 66478, "ts": "2026-09-12T09:57:41Z", "hours": 2.9394, "text": "Devlog#5 Completed the browser and the notes app. The javascript for the notes app was the hardest for me to figure out smh. Now I’m going to write a README and submit it."}, {"post_id": 63191, "ts": "2026-09-06T21:11:07Z", "hours": 1.0447, "text": "Devlog#4 Completed most of the record player app. Just have a bit of the javascript left."}, {"post_id": 59825, "ts": "2026-09-01T20:01:27Z", "hours": 2.8883, "text": "Devlog#3 Finished the calculator and a bit of the notes app."}, {"post_id": 47216, "ts": "2026-08-14T23:56:25Z", "hours": 7.3244, "text": "Devlog#2 Ok so during the past week i worked on the: app icon, closing and opening windows, and app selection. It took me a ridiculous amount of time to make the app div change class in response to a click. I disabled pointer events on the background but that just turned it off for all the other windows too. Eventually, i found out i could enable pointer events for everything but the background using the *:not(#background) in css and it FINALLY worked. This was my first time using Javascript, so now that I’ve had some exposure hopefully its easier to work on the individual apps T-T. I made all the icons myself using libresprite."}, {"post_id": 41889, "ts": "2026-08-06T12:05:42Z", "hours": 2.6789, "text": "Devlog#1 Decided to make a pixel background and learned how to use libresprite. Took WAY longer than i thought-"}]...
|
Title: AcademiaOS by @aminoacid | Stardance
Devlo Title: AcademiaOS by @aminoacid | Stardance
Devlogs:
Devlog#1 Decided to make a pixel background and learned how to use libresprite. Took WAY longer than i thought-
Devlog#2 Ok so during the past week i worked on the: app icon, closing and opening windows, and app selection. It took me a ridiculous amount of time to make the app div change class in response to a click. I disabled pointer events on the background but that just turned it off for all the other windows too. Eventually, i found out i could enable pointer events for everything but the background using the *:not(#background) in css and it FINALLY worked. This was my first time using Javascript, so now that I’ve had some exposure hopefully its easier to work on the individual apps T-T. I made all the icons myself using libresprite.
Devlog#3 Finished the calculator and a bit of the notes app.
Devlog#4 Completed most of the record player app. Just have a bit of the javascript left.
Devlog#5 Completed the browser and the notes app. The javascript for the notes app was the hardest for me to figure out smh. Now I’m going to write a README and submit it.
Devlog#6 Finished the README file. This project took me forever T-T.
Finished the pomodoro and the weather app. I designed the logos for the apps and the all the weather icons too in libresprite. Work’s been slow since the SAT date is coming up rip T-T
Added an Antique Clock and cat widget. Getting the clock hands to work definitely took me some time. I animated the cat in libresprite.
Completed the updated README!
Ships:
Completed my second Stardance Project! AcademiaOS is my web based operating system inspired by a dark academia aesthetic. I built a notes app, a calculator, a record player and a browser. The most difficult part of this project was definitely the javascript for opening, closing and dragging tabs. Since this is my first project with Javascript, the functionality is quite simple. This project did familiarize me with the basics of the language, and once I’ve learned more I might attempt to work on WebOS 2. I’m very proud of the design of the record player app and all the square buttons; I made sure everything would be cohesive and fit well into the theme.
I completed the WebOS 2 mission. In the updated WebOS, I added: pomodoro app weather app clock widget animated cat widget During this project I learned how to retrieve data using javascript for the weather app and how to animate in libresprite. Figuring out how to rotate the clock hands was challenging, but the hardest part of the project was to manage it with my school work and SAT exams....
|
1793152393.5367358
|
1793238793.5367358
|
|
24246
|
Pineapple Chess GUI by @Theenash | Stardance
|
Theenash
|
2
|
28.0
|
448
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-21T01:40:27Z", "hours": 6.0, "multiplier": 8.66, "payout": 64, "blessing": "neutral", "text": "I made a chess software called Pineapple Chess, this is my second ship on this project, this ship is the major change of porting it to the web. The summary will stay mostly the same for any newcomers to the second ship. — SUMMARY — So basically it’s like any other chess software but it is pineapple themed(don’t worry if you don’t like the way it looks you can switch themes)! With 3 themes: Light, Dark, and Pineapple! There is a 2 player mode, if you have 2 people in front of a computer, you can play against each other on 1 computer! With an optional board flip feature! You can play against bots, powered by Stockfish, you can play against bots with different difficulties. And this time built with Javascript. Basically the original version was made in Java, but in the last ship, I got a lot of feedback saying I should port this to the web, so I did! — LINKS — To Play on web: Play now: https://shadowtech1234.github.io/pineapplechess/ — CHALLENGES — Here are some challenges I faced. When I first started porting this, I had to learn another brand new language that I had never used, which is JavaScript(last time was Java), so it took me a while to get used to it and progress was very slow at the start. Like a lot of hours I spent on the project was not really captured by Hackatime because I was on documentation and troubleshooting a lot. A very, very big task was efficiency. JavaScript is very, very fragile. I had a lot of problems where it would always freeze and stop, which lead to phantom moves in chess and broke it a lot. Learning to code in JavaScript with this efficiency was a bit hard because I had to make sure everything was perfect and there was no holes in it. Like for example in Java, I just coded in whatever way works, and there probably was holes and leaks in that but it wouldn’t be noticeable, in JavaScript it was the complete opposite. (This is what I noticed when I coded, I don’t know if this is factual that JavaScript is very hard when coding to make sure it’s efficient, it might just be me) Another problem was when I tried putting this on GitHub Pages, because the source for it had to be like in one folder I had to rearrange my code and rewrite some parts to make it work on GitHub Pages, The last challenge I faced was stopping. This is the same as last time. I have a lot of ideas to add to this, but I realized that if I did all of it, it would be a waste of time. This includes adding a evaluation bar, game export and import, game analysis, and maybe multiplayer. Working on this is a fun side project but I don’t have the time to work on it as much right now as I have a lot of work from school, and Stardance is ending soon anyways, so I wanted to get it as polished as possible and ship it. That’s basically it. I had a lot of fun making this, it’s not much but I will add features in the future, maybe in the next Hack Club event. Thank you!", "repo": "https://github.com/Shadowtech1234/pineapplechess", "demo": "https://shadowtech1234.github.io/pineapplechess/"}, {"ship_num": 2, "ts": "2026-08-03T00:03:27Z", "hours": 22.0, "multiplier": 14.56, "payout": 384, "blessing": "neutral", "text": "I made a chess software called Pineapple Chess. — SUMMARY — So basically it’s like any other chess software but it is pineapple themed(don’t worry if you don’t like the way it looks you can switch themes)! With 3 themes: Light, Dark, and Pineapple! There is a 2 player mode, if you have 2 people in front of a computer, you can play against each other on 1 computer! With an optional board flip feature! You can play against bots, powered by Stockfish, you can play against bots with different difficulties. And built with Java. — LINKS — Github: https://github.com/Shadowtech1234/pineapplechess/ If you want to download, simply go to the Github repo, and go to the releases tab and download it! For more detailed instructions, it is on the Github readme. — SHOWCASE VIDEO — Showcase video is available on the very top of the readme in the Github repo. (I wasn’t able to attach the video to this Ship post) — CHALLENGES — Here are some challenges I faced. When I first started, I had to learn a brand new language that I had never used, which is Java, so it took me a while to get used to it and progress was very slow at the start. Like a lot of hours I spent on the project was not really captured by Hackatime because I was on documentation and troubleshooting a lot. A very, very big task was app resizing. What I mean is when you resize the app, for example make it fit the entire screen, the app has to make every component scale up, or scale down with a ratio to make it look good. This took me so long to implement and it works, there is just one problem, you have to click the app after you change the window for the resize to apply, so it looks weird when you resize, but you just need to click on the app to refresh it. Hopefully I can fix that in the next update of my app. Another problem was when I tried building my app to an installer to make it as easy as possible for the user. It just never worked for a while. Like every time I tried to build it would give me a problem, and after I fixed it it just gave me another. This went on 7 times. Of the times I had to rewrite a couple major parts of my app including image loading of the pieces, it worked well in developer mode(which is just clicking the run button in VS Code), but Java kind works differently when compiled into a finished product, so the images didn’t load in a couple builds. But now it works and has a user-friendly installer. The last challenge I faced was stopping. I have a lot of ideas to add to this, but I realized that if I did all of it, it would be a waste of time. This includes multi-platform support over MacOS and Linux, not only Windows. Working on this is a fun side project but I want to do something more meaningful. So I am shipping this project right now and trying to make it as clean as possible with the current features of the app, and moving on to the next project. I will still be working on this project, but I will probably come back to it after summer ends or ever later. That’s basically it. I had a lot of fun making the app, it’s not much but I will add features in the future. Thank you!", "repo": "https://github.com/Shadowtech1234/pineapplechess", "demo": "https://shadowtech1234.github.io/pineapplechess/"}]...
|
[{"post_id": 71505, "ts": "202 [{"post_id": 71505, "ts": "2026-09-20T23:20:37Z", "hours": 6.0689, "text": "JavaScript Port After finishing Pineapple Chess in Java , which meant you need to download my app, which is Windows only, I started getting a lot of people asking if I could port this to the web. So I did, yay. From Java to JavaScript The original version of Pineapple Chess was built entirely in Java, and after finishing it, I figured porting it to JavaScript would be a pretty interesting challenge. The reason why I have to use JavaScript for anyone curious is because that is one of the best for web development. The goal was to recreate the game in JavaScript while keeping the same basic gameplay and features from the original version. This meant going through the original code and rebuilding a lot of the game’s logic in a completely different language. Rebuilding the Game One of the biggest parts of the process was getting the chess logic working again. I had to recreate things like: Piece movement Check and checkmate Special chess moves Turn switching Selecting and moving pieces Detecting when the game ends Since I already had the Java version working, I wasn’t starting completely from scratch. I could use the original game as a reference for how everything was supposed to work, which made the process a lot easier. Why JavaScript? The main reason for making the JavaScript version was accessibility. The original Java version worked, but having a JavaScript version makes it much easier to run and share. Instead of needing to set up the Java version first, the JavaScript version can be used in a much more web-friendly environment. Basically, Pineapple Chess is now significantly easier to get running. And That’s a Wrap! This is actually going to be my last devlog for this event. With the event ending in about two weeks, I wanted to squeeze in one last piece of work before it wraps up, and porting Pineapple Chess to JavaScript felt like the perfect way to finish things off. I know this devlog isn’t much of a change, and there are a lot of features in Pineapple Chess that I would love to add, it’s just I don’t have the time as I have a lot of work in school, and Stardance is ending soon, I will be working on this in the future though. It’s pretty cool seeing a project that I originally made in Java now running in JavaScript. The original version isn’t going anywhere, but now Pineapple Chess has a new form too. I will be shipping this soon, stay tuned! And also, thank you to everyone who followed along with my devlogs, gave feedback, played Pineapple Chess, or suggested things for me to work on. All of the feedback and support throughout the event has genuinely been really helpful and made working on this project a lot more fun. It’s been awesome being able to work on Pineapple Chess throughout this event, it’s not a big project like what other people make but it was a passion project for me for fun. One last update before the event ends. 🍍❤️ Thanks for reading, and I’ll see you around the next Hack Club event!"}, {"post_id": 38375, "ts": "2026-07-31T18:34:51Z", "hours": 1.9519, "text": "I WAS SANE BEFORE TODAY😭😭😭. I have done it, I have finished my app. That part was so easy. But compiling it into a downloadable installer has cost me so much I might as well have sold my soul. I had to build the stupid thing 7 TIMES. I had to mess around with the dependencies for so long, this took like 8 hours but most of it was just trying to fix dependencies and working in the terminal trying to debug why my installer wont work. My installer now works never the less. It is very easy to install in a user’s perspective and it automatically makes a shortcut in the desktop. Sadly this installer is only for windows, sorry Mac and Linux. I will be shipping this project soon. As you can see in the pictures attached, it created the shortcut! And it works!🎉🎉🎉"}, {"post_id": 37946, "ts": "2026-07-31T00:05:38Z", "hours": 4.3528, "text": "This for some reason genuinely took the life out of me. I have finally added the whole point of this chess app, PINEAPPLES! NEW BOARD COLOR, NEW UI THEME, NEW CHESS PEICES. Don’t worry, if you or any other user doesn’t like it, I have added the ability in settings to be able to switch between Light, Dark, and Pineapple Mode. But why would you not want to play with this beauty! The addition of the theme was easy, it was the settings that your able to switch themes that was the hard part. On top of that since I added new chess pieces, the entirety of the image load system in my code and organization of the resources in the source code had to be completely redone, the re-organizing for the file management was not tracked by hackatime but that took way too long. But yea, yay🎉🎉🎉"}, {"post_id": 30885, "ts": "2026-07-18T21:08:29Z", "hours": 4.2989, "text": "I have successfully added Stockfish, an chess engine that is extremely powerful to my app. Took a bit of work, but now you can play against a bot! I have added setting to customize the game against Stockfish if you click it so there’s difficulty selection and the side chooser which lets you choose which side you want to play on. Hardest part was getting the code to work with Stockfish as Stockfish communicates via the Universal Chess Interface (UCI) protocol. The chess engine itself is basically a command line and you can put in the current position and it will spit out the best move in the command line. Its not very user friendly which is why chess GUI’s come in to play like mine, my code translates it from he UI to the command line and vice versa. UCI lets me to be able to use any chess engine I want as long as it uses the UCI protocol, meaning in the future if I decide to make my own chess engine, I can implement it to my app, but for now it will remain as Stockfish."}, {"post_id": 25560, "ts": "2026-07-09T21:44:03Z", "hours": 3.5764, "text": "A LOT OF NEW STUFF. Easiest part was dark mode yay. but what took me 3 hours and was so hard to do was reseizing, what I mean is you can resize the app how ever way and it works with any screen and it always sets the board at the center, I don’t know why it took this long but I did it yay. I have attached a example of it centering it self on multiple aspect ratios."}, {"post_id": 15990, "ts": "2026-06-25T23:28:19Z", "hours": 1.3036, "text": "for a very small feature, this should not have taken this long. i added 2 features, the side bar in the left for future stuff, the play button on he left allows to choose the game mode when i add the feature to be able to play bots, i want to be able to choose what I want to be able to do, either play 2 player or bots, so basically the sidebar is the foundation for future features. Then is the feature that should have taken like 10 minutes, but it took me a hour and a half. It is the feature that flips the board after every turn in 2 player mode because 2 player means 2 people are using one computer to play so the board should flip. Like it used to flip the peices were upside down, liekt he images were, and i tried to add code to make it flip but it didnt work, so then I added a seperate folder with the peices edited to be flipped, but then after implemeting that, id id some stuff it swithc the pictures to that folder only when the baord is flipped, BUT THEN IT STILL REMAINED FLIPPED. So i tried so much to finally figure out I did somehtign that amde the peices flip by themselves without editing and using the different stuff, but when i tired to remove the folder andf only use one folder wiht the peices IT STOPPED WORKING, so now I have 2 folder wiht the exact same pictures of the peices and it works😭. sry if I yapped too much but I needed to vent, In the picture attached it shows the baord flipped and the sidebar as well if you wanna see the final product of the work ive done so far. but im gieunly tweaking rn😭"}, {"post_id": 15336, "ts": "2026-06-24T22:21:00Z", "hours": 0.63, "text": "added a new popup system where instead of it opening a new separate window with the popup, it is more cleaner and in the app, my next step is to add a sidebar to the left and have like a bunch of different stuff there 😄"}, {"post_id": 15119, "ts": "2026-06-24T15:53:12Z", "hours": 1.2217, "text": "BIG PROGRESS, fixed possible move highlights. added a move history to the side, and added draw detection for all possible draws. Next job is hopefully being able to export and import PGN."}, {"post_id": 14788, "ts": "2026-06-24T00:56:39Z", "hours": 1.1747, "text": "A lot of progress has been done, I have put in all the special moves like castling, en passant, and pawn promotion. And I have also added check and checkmate detection. Also I have added UI popups that appear when you promote so you can choose what piece you want as well as the game over pop up when you checkmate and a rematch button which resets the board. So foundation of my chess game GUI is complete, I have recreated the game, I just have some small tweaks that i can do later like when you click a piece while you are in check, it still shows the viable options that don’t protect your king, but it wont let you move there but it still shows it. On top of that I also want to make the pop ups happen in game without opening a new window. But my main next step is add a move history, draw detection, which can only be done with a move history because 2 ways a draw can happen is when 50 moves have passed and a piece has not been captured, or the same position has been repeated 3 times."}, {"post_id": 14609, "ts": "2026-06-23T19:40:15Z", "hours": 1.9833, "text": "I have made my chess board render pieces, show viable moves, make moves, and only allow legal moves. Not all special moves have been added like castling, en passant, pawn promotion, stalemate, or even checkmate(you can take the opponent’s king and the opponent can still move😭)."}, {"post_id": 14437, "ts": "2026-06-23T15:52:11Z", "hours": 0.7981, "text": "I made the Chess Board"}, {"post_id": 14362, "ts": "2026-06-23T13:55:21Z", "hours": 0.6683, "text": "I have started my project, most of my time was taken switching my GUI from Java Swing to JavaFX. This is just a simple window so far but we are going somewhere. This isn’t a lot but I am learning Java, so its just slow and steady progress."}]...
|
Title: Pineapple Chess GUI by @Theenash | Stardanc Title: Pineapple Chess GUI by @Theenash | Stardance
Devlogs:
I have started my project, most of my time was taken switching my GUI from Java Swing to JavaFX. This is just a simple window so far but we are going somewhere. This isn’t a lot but I am learning Java, so its just slow and steady progress.
I made the Chess Board
I have made my chess board render pieces, show viable moves, make moves, and only allow legal moves. Not all special moves have been added like castling, en passant, pawn promotion, stalemate, or even checkmate(you can take the opponent’s king and the opponent can still move😭).
A lot of progress has been done, I have put in all the special moves like castling, en passant, and pawn promotion. And I have also added check and checkmate detection. Also I have added UI popups that appear when you promote so you can choose what piece you want as well as the game over pop up when you checkmate and a rematch button which resets the board. So foundation of my chess game GUI is complete, I have recreated the game, I just have some small tweaks that i can do later like when you click a piece while you are in check, it still shows the viable options that don’t protect your king, but it wont let you move there but it still shows it. On top of that I also want to make the pop ups happen in game without opening a new window. But my main next step is add a move history, draw detection, which can only be done with a move history because 2 ways a draw can happen is when 50 moves have passed and a piece has not been captured, or the same position has been repeated 3 times.
BIG PROGRESS, fixed possible move highlights. added a move history to the side, and added draw detection for all possible draws. Next job is hopefully being able to export and import PGN.
added a new popup system where instead of it opening a new separate window with the popup, it is more cleaner and in the app, my next step is to add a sidebar to the left and have like a bunch of different stuff there 😄
for a very small feature, this should not have taken this long. i added 2 features, the side bar in the left for future stuff, the play button on he left allows to choose the game mode when i add the feature to be able to play bots, i want to be able to choose what I want to be able to do, either play 2 player or bots, so basically the sidebar is the foundation for future features. Then is the feature that should have taken like 10 minutes, but it took me a hour and a half. It is the feature that flips the board after every turn in 2 player mode because 2 player means 2 people are using one computer to play so the board should flip. Like it used to flip the peices were upside down, liekt he images were, and i tried to add code to make it flip but it didnt work, so then I added a seperate folder with the peices edited to be flipped, but then after implemeting that, id id some stuff it swithc the pictures to that folder only when the baord is flipped, BUT THEN IT STILL REMAINED FLIPPED. So i tried so much to finally figure out I did somehtign that amde the peices flip by themselves without editing and using the different stuff, but when i tired to remove the folder andf only use one folder wiht the peices IT STOPPED WORKING, so now I have 2 folder wiht the exact same pictures of the peices and it works😭. sry if I yapped too much but I needed to vent, In the picture attached it shows the baord flipped and the sidebar as well if you wanna see the final product of the work ive done so far. but im gieunly tweaking rn😭
A LOT OF NEW STUFF. Easiest part was dark mode yay. but what took me 3 hours and was so hard to do was reseizing, what I mean is you can resize the app how ever way and it works with any screen and it always sets the board at the center, I don’t know why it took this long but I did it yay. I have attached a example of it centering it self on multiple aspect ratios.
I have successfully added Stockfish, an chess engine that is extremely powerful to my app. Took a bit of work, but now you can play against a bot! I have added setting to customize the game against Stockfish if you click it so there’s difficulty selection and the side chooser which lets you choose which side you want to play on. Hardest part was getting the code to work with Stockfish as Stockfish communicates via the Universal Chess Interface (UCI) protocol. The chess engine itself is basically a command line and you can put in the current position and it will spit out the best move in the command line. Its not very user friendly which is why chess GUI’s come in to play like mine, my code translates it from he UI to the command line and vice versa. UCI lets me to be able to use any chess engine I want as long as it uses the UCI protocol, meaning in the future if I decide to make my own chess engine, I can implement it to my app, but for now it will remain as Stockfish.
This for some reason genuinely took the life out of me. I have finally added the whole point of this chess app, PINEAPPLES! NEW BOARD COLOR, NEW UI THEME, NEW CHESS PEICES. Don’t worry, if you or any other user doesn’t like it, I have added the ability in settings to be able to switch between Light, Dark, and Pineapple Mode. But why would you not want to play with this beauty! The addition of the theme was easy, it was the settings that your able to switch themes that was the hard part. On top of that since I added new chess pieces, the entirety of the image load system in my code and organization of the resources in the source code had to be completely redone, the re-organizing for the file management was not tracked by hackatime but that took way too long. But yea, yay🎉🎉🎉
I WAS SANE BEFORE TODAY😭😭😭. I have done it, I have finished my app. That part was so easy. But compiling it into a downloadable installer has cost me so much I might as well have sold my soul. I had to build the stupid thing 7 TIMES. I had to mess around with the dependencies for so long, this took like 8 hours but most of it was just trying to fix dependencies and working in the terminal trying to debug why my installer wont work. My installer now works never the less. It is very easy to install in a user’s perspective and it automatically makes a shortcut in the desktop. Sadly this installer is only for windows, sorry Mac and Linux. I will be shipping this project soon. As you can see in the pictures attached, it created the shortcut! And it works!🎉🎉🎉
JavaScript Port After finishing Pineapple Chess in Java , which meant you need to download my app, which is Windows only, I started getting a lot of people asking if I could port this to the web. So I did, yay. From Java to JavaScript The original version of Pineapple Chess was built entirely in Java, and after finishing it, I figured porting it to JavaScript would be a pretty interesting challenge. The reason why I have to use JavaScript for anyone curious is because that is one of the best for web development. The goal was to recreate the game in JavaScript while keeping the same basic gameplay and features from the original version. This meant going through the original code and rebuilding a lot of the game’s logic in a completely different language. Rebuilding the Game One of the biggest parts of the process was getting the chess logic working again. I had to recreate things like: Piece movement Check and checkmate Special chess moves Turn switching Selecting and moving pieces Detecting when the game ends Since I already had the Java version working, I wasn’t starting completely from scratch. I could use the original game as a reference for how everything was supposed to work, which made the process a lot easier. Why JavaScript? The main reason for making the JavaScript version was accessibility. The original Java version worked, but having a JavaScript version makes it much easier to run and share. Instead of needing to set up the Java version first, the JavaScript version can be used in a much more web-friendly environment. Basically, Pineapple Chess is now significantly easier to get running. And That’s a Wrap! This is actually going to be my last devlog for this event. With the event ending in about two weeks, I wanted to squeeze in one last piece of work before it wraps up, and porting Pineapple Chess to JavaScript felt like the perfect way to finish things off. I know this devlog isn’t much of a change, and there are a lot of features in Pineapple Chess that I would love to add, it’s just I don’t have the time as I have a lot of work in school, and Stardance is ending soon, I will be working on this in the future though. It’s pretty cool seeing a project that I originally made in Java now running in JavaScript. The original version isn’t going anywhere, but now Pineapple Chess has a new form too. I will be shipping this soon, stay tuned! And also, thank you to everyone who followed along with my devlogs, gave feedback, played Pineapple Chess, or suggested things for me to work on. All of the feedback and support throughout the event has genuinely been really helpful and made working on this project a lot more fun. It’s been awesome being able to work on Pineapple Chess throughout this event, it’s not a big project like what other people make but it was a passion project for me for fun. One last update before the event ends. 🍍❤️ Thanks for reading, and I’ll see you around the next Hack Club event!
Ships:
I made a chess software called Pineapple Chess. — SUMMARY — So basically it’s like any other chess software but it is pineapple themed(don’t worry if you don’t like the way it looks you can switch themes)! With 3 themes: Light, Dark, and Pineapple! There is a 2 player mode, if you have 2 people in front of a computer, you can play against each other on 1 computer! With an optional board flip feature! You can play against bots, powered by Stockfish, you can play against bots with different difficulties. And built with Java. — LINKS — Github: https://github.com/Shadowtech1234/pineapplechess/ If you want to download, simply go to the Github repo, and go to the releases tab and download it! For more detailed instructions, it is on the Github readme. — SHOWCASE VIDEO — Showcase video is available on the very top of the readme in the Github repo. (I wasn’t able to attach the video to this Ship post) — CHALLENGES — Here are some challenges I faced. When I first started, I had to learn a brand new language that I had never used, which is Java, so it took me a while to get used to it and progress was very slow at the start. Like a lot of hours I spent on the project was not really captured by Hackatime because I was on documentation and troubleshooting a lot. A very, very big task was app resizing. What I mean is when you resize the app, for example make it fit the entire screen, the app has to make every component scale up, or scale down with a ratio to make it look good. This took me so long to implement and it works, there is just one problem, you have to click the app after you change the window for the resize to apply, so it looks weird when you resize, but you just need to click on the app to refresh it. Hopefully I can fix that in the next update of my app. Another problem was when I tried building my app to an installer to make it as easy as possible for the user. It just never worked for a while. Like every time I tried to build it would give me a problem, and after I fixed it it just gave me another. This went on 7 times. Of the times I had to rewrite a couple major parts of my app including image loading of the pieces, it worked well in developer mode(which is just clicking the run button in VS Code), but Java kind works differently when compiled into a finished product, so the images didn’t load in a couple builds. But now it works and has a user-friendly installer. The last challenge I faced was stopping. I have a lot of ideas to add to this, but I realized that if I did all of it, it would be a waste of time. This includes multi-platform support over MacOS and Linux, not only Windows. Working on this is a fun side project but I want to do something more meaningful. So I am shipping this project right now and trying to make it as clean as possible with the current features of the app, and moving on to the next project. I will still be working on this project, but I will probably come back to it after summer ends or ever later. That’s basically it. I had a lot of fun making the app, it’s not much but I will add features in the future. Thank you!
I made a chess software called Pineapple Chess, this is my second ship on this project, this ship is the major change of porting it to the web. The summary will stay mostly the same for any newcomers to the second ship. — SUMMARY — So basically it’s like any other chess software but it is pineapple themed(don’t worry if you don’t like the way it looks you can switch themes)! With 3 themes: Light, Dark, and Pineapple! There is a 2 player mode, if you have 2 people in front of a computer, you can play against each other on 1 computer! With an optional board flip feature! You can play against bots, powered by Stockfish, you can play against bots with different difficulties. And this time built with Javascript. Basically the original version was made in Java, but in the last ship, I got a lot of feedback saying I should port this to the web, so I did! — LINKS — To Play on web: Play now: https://shadowtech1234.github.io/pineapplechess/ — CHALLENGES — Here are some challenges I faced. When I first started porting this, I had to learn another brand new language that I had never used, which is JavaScript(last time was Java), so it took me a while to get used to it and progress was very slow at the start. Like a lot of hours I spent on the project was not really captured by Hackatime because I was on documentation and troubleshooting a lot. A very, very big task was efficiency. JavaScript is very, very fragile. I had a lot of problems where it would always freeze and stop, which lead to phantom moves in chess and broke it a lot. Learning to code in JavaScript with this efficiency was a bit hard because I had to make sure everything was perfect and there was no holes in it. Like for example in Java, I just coded in whatever way works, and there probably was holes and leaks in that but it wouldn’t be noticeable, in JavaScript it was the complete opposite. (This is what I noticed when I coded, I don’t know if this is factual that JavaScript is very hard when coding to make sure it’s efficient, it might just be me) Another problem was when I tried putting this on GitHub Pages, because the source for it had to be like in one folder I had to rearrange my code and rewrite some parts to make it work on GitHub Pages, The last challenge I faced was stopping. This is the same as last time. I have a lot of ideas to add to this, but I realized that if I did all of it, it would be a waste of time. This includes adding a evaluation bar, game export and import, game analysis, and maybe multiplayer. Working on this is a fun side project but I don’t have the time to work on it as much right now as I have a lot of work from school, and Stardance is ending soon anyways, so I wanted to get it as polished as possible and ship it. That’s basically it. I had a lot of fun making this, it’s not much but I will add features in the future, maybe in the next Hack Club event. Thank you!...
|
1793108866.148974
|
1793195266.148974
|
|
25625
|
Delve by @devlsx | Stardance
|
devlsx
|
1
|
28.0
|
388
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-07T21:18:57Z", "hours": 28.0, "multiplier": 14.7, "payout": 388, "blessing": "neutral", "text": "Delve This is a little roguelike I built in Rust. It runs entirely in the terminal: no graphics, just coloured letters. You’re the @ , you climb down into a randomly generated dungeon, fight the things that live there, grab whatever loot you can, and try to get to the bottom before something eats you. It’s twelve floors deep. Getting there is the whole game. The only dependency is crossterm (for raw terminal mode, colours and key input). Everything else — the RNG, the map generator, the field of view, the monster pathfinding, the save format — I wrote myself. That was the point: I wanted to actually understand every piece instead of pulling in a crate for it. How a turn works Delve is turn-based, and the loop is dead simple: nothing moves until you do. You press a key → that becomes an Action (move, wait, pick up, descend, open the inventory, …). The game resolves your action. If you walked into a monster, that’s an attack. Then every monster takes its turn. The field of view is recomputed from your new position, the screen is redrawn, and it waits for your next key. Because the world only advances on your input, you can sit and think for as long as you like — which is very roguelike, and also means the whole thing costs zero CPU while it waits. The pieces The dungeon ( mapgen.rs ). Classic “rooms and corridors”: I scatter up to 16 non-overlapping rectangular rooms, then connect each room to the previous one with an L-shaped tunnel. Up-stairs go in the first room, down-stairs in the last. Every floor is freshly generated, so no two runs are the same. Field of view ( fov.rs ). You can only see what’s near you; everything else is dark (tiles you’ve seen before stay dimly remembered). I do it by shooting straight Bresenham lines from the player out to every square on the edge of a box around them, lighting up tiles until a ray hits a wall. It’s not the fancy “shadowcasting” algorithm everyone uses — I picked the version I could fully understand and it looks great. Monsters that hunt you ( ai.rs + pathfind.rs ). When a monster can see you it doesn’t just stumble around — it runs a real A * search to route around walls and close the distance. Lose line of sight and it goes back to idling. (The A * has a fun gotcha: Rust’s BinaryHeap is a max -heap, but A * wants the cheapest node first, so I had to reverse the ordering. That bug — it kept expanding the worst nodes — took me embarrassingly long to spot.) Fighting ( combat.rs ). Simple and readable: roll the attacker’s power with a tiny bit of variance, subtract the defender’s defense, and the rest is damage. Weapons add power, armour adds defense. Kill things for XP, level up for more HP and power. Loot ( items.rs + spawn.rs + inventory.rs ). Potions (healing, permanent strength, permanent max-HP), scrolls (teleport, magic mapping, lightning bolt, enchant weapon), plus weapons and armour drawn from tables that scale with depth — so the deeper you go, the better the gear you might find, and the nastier the things guarding it. Difficulty curve. Deeper floors spawn more monsters and meaner ones. The design is deliberately lopsided: the dungeon always wins eventually. That’s the joke the whole game is built around. Saving ( save.rs ). A save is really a suspend — the moment you load it, the file is deleted, so you can’t save-scum your way out of a bad decision. I also hand-wrote the entire save/load format by hand (parsing and all) instead of reaching for serde , just to prove to myself I could. Flavour ( flavor.rs ). Every death, descent and kill pulls a random one-liner from a little pool, so the log never reads the same way twice (“You delete the goblin from the timeline. No undo.”). Honestly the most fun part to write.", "repo": "https://github.com/AlexanderGese/delve", "demo": "https://crates.io/crates/delve-rl"}]...
|
[{"post_id": 24333, "ts": "202 [{"post_id": 24333, "ts": "2026-07-07T20:54:28Z", "hours": 2.6953, "text": "Hooked up input (wasd, arrows, hjkl, all of it) Built the real main loop with terminal setup, and it was playable start to finish Hit a bug where every keypress moved me twice. Some terminals send a press and a release event and I was reacting to both. One-line fix once I understood it Added saving. Hand-wrote the whole save format instead of using serde, dumping the map, monsters, inventory, and even the rng state to a text file Save works suspend-style, so it deletes on load and you can’t save-scum death Had a nasty bug parsing the rng state as an i64 when it’s a u64, so big values silently failed to load. Lost an hour to one wrong type Five evenings and it’s a real, funny little roguelike that saves and runs in any terminal Learned a ton of Rust. Calling it done"}, {"post_id": 24138, "ts": "2026-07-07T14:42:21Z", "hours": 5.9178, "text": "Wrote the core Game struct that owns the map, player, monsters, loot, inventory, and depth Built the turn loop. You act, then every monster takes its turn The turn loop fought the borrow checker. Moving one monster while reading all the others is something Rust hates. Split the borrows of self by hand and used a snapshot of which tiles are occupied. Took forever, but it works and monsters chase properly, so I stopped touching it Added descending the stairs Added xp and leveling. Made up the numbers and playtested until they felt okay Added rendering with remembered and visible tiles Added the hud, the message log panel, and the inventory and help screens Went from a bunch of modules to something that looks like a game in one evening"}, {"post_id": 23313, "ts": "2026-07-06T05:56:13Z", "hours": 8.3028, "text": "Added line-of-sight using a bresenham ray to check nothing solid blocks the view Added A* pathfinding so monsters route around walls to reach you Monsters keep chasing for a few turns after losing sight, so ducking around a corner won’t save you A* was a pain. Rust’s BinaryHeap is a max-heap, but A* needs the smallest cost first, so it kept finding crazy paths. Flipping the ordering fixed it and monsters got good at cornering me Added loot to make going deeper worth it. Potions (healing, strength, vitality), scrolls (teleport, magic mapping, lightning, enchant), weapons, armor, and gold Added an inventory to carry it all Added spawn tables that put more and nastier stuff deeper down Zapping the nearest monster with a lightning scroll across a room feels great Made a whole file just for the funny one-liners the game throws at you. Best part of the day"}, {"post_id": 22417, "ts": "2026-07-04T21:31:51Z", "hours": 2.9839, "text": "Put all the colors in one place Added a scrolling message log at the bottom of the screen Player and monsters use the same struct. The only thing that makes a monster is whether it has an “ai” Gave them hp, power, and defense Combat is simple. Walk into a monster to hit it Damage is attacker power plus a little random, minus defender defense Plays better than expected Added lots of monsters. Rats, bats, and kobolds up top. Orcs, zombies, and wolves lower down. Ogres, trolls, demons, and a dragon deep at the bottom Spent a long time tweaking numbers for a fair difficulty curve Died for the first time"}, {"post_id": 22014, "ts": "2026-07-04T07:59:16Z", "hours": 8.2, "text": "Cargo project set up, only dependency is crossterm Wrote own xorshift RNG (learn how they work + deterministic seeds -> reproducible dungeons) Added points, rectangles, tile types (wall/floor/corridor/stairs) Map = one flat vector indexed as 2D Rooms and corridors generator: scatter nonoverlapping rooms, join with L-shaped halls Ray-cast FOV: see only nearby and visited tiles stay dimly lit No player yet, but world is generating"}]...
|
Title: Delve by @devlsx | Stardance
Devlogs:
Carg Title: Delve by @devlsx | Stardance
Devlogs:
Cargo project set up, only dependency is crossterm Wrote own xorshift RNG (learn how they work + deterministic seeds -> reproducible dungeons) Added points, rectangles, tile types (wall/floor/corridor/stairs) Map = one flat vector indexed as 2D Rooms and corridors generator: scatter nonoverlapping rooms, join with L-shaped halls Ray-cast FOV: see only nearby and visited tiles stay dimly lit No player yet, but world is generating
Put all the colors in one place Added a scrolling message log at the bottom of the screen Player and monsters use the same struct. The only thing that makes a monster is whether it has an “ai” Gave them hp, power, and defense Combat is simple. Walk into a monster to hit it Damage is attacker power plus a little random, minus defender defense Plays better than expected Added lots of monsters. Rats, bats, and kobolds up top. Orcs, zombies, and wolves lower down. Ogres, trolls, demons, and a dragon deep at the bottom Spent a long time tweaking numbers for a fair difficulty curve Died for the first time
Added line-of-sight using a bresenham ray to check nothing solid blocks the view Added A* pathfinding so monsters route around walls to reach you Monsters keep chasing for a few turns after losing sight, so ducking around a corner won’t save you A* was a pain. Rust’s BinaryHeap is a max-heap, but A* needs the smallest cost first, so it kept finding crazy paths. Flipping the ordering fixed it and monsters got good at cornering me Added loot to make going deeper worth it. Potions (healing, strength, vitality), scrolls (teleport, magic mapping, lightning, enchant), weapons, armor, and gold Added an inventory to carry it all Added spawn tables that put more and nastier stuff deeper down Zapping the nearest monster with a lightning scroll across a room feels great Made a whole file just for the funny one-liners the game throws at you. Best part of the day
Wrote the core Game struct that owns the map, player, monsters, loot, inventory, and depth Built the turn loop. You act, then every monster takes its turn The turn loop fought the borrow checker. Moving one monster while reading all the others is something Rust hates. Split the borrows of self by hand and used a snapshot of which tiles are occupied. Took forever, but it works and monsters chase properly, so I stopped touching it Added descending the stairs Added xp and leveling. Made up the numbers and playtested until they felt okay Added rendering with remembered and visible tiles Added the hud, the message log panel, and the inventory and help screens Went from a bunch of modules to something that looks like a game in one evening
Hooked up input (wasd, arrows, hjkl, all of it) Built the real main loop with terminal setup, and it was playable start to finish Hit a bug where every keypress moved me twice. Some terminals send a press and a release event and I was reacting to both. One-line fix once I understood it Added saving. Hand-wrote the whole save format instead of using serde, dumping the map, monsters, inventory, and even the rng state to a text file Save works suspend-style, so it deletes on load and you can’t save-scum death Had a nasty bug parsing the rng state as an i64 when it’s a u64, so big values silently failed to load. Lost an hour to one wrong type Five evenings and it’s a real, funny little roguelike that saves and runs in any terminal Learned a ton of Rust. Calling it done
Ships:
Delve This is a little roguelike I built in Rust. It runs entirely in the terminal: no graphics, just coloured letters. You’re the @ , you climb down into a randomly generated dungeon, fight the things that live there, grab whatever loot you can, and try to get to the bottom before something eats you. It’s twelve floors deep. Getting there is the whole game. The only dependency is crossterm (for raw terminal mode, colours and key input). Everything else — the RNG, the map generator, the field of view, the monster pathfinding, the save format — I wrote myself. That was the point: I wanted to actually understand every piece instead of pulling in a crate for it. How a turn works Delve is turn-based, and the loop is dead simple: nothing moves until you do. You press a key → that becomes an Action (move, wait, pick up, descend, open the inventory, …). The game resolves your action. If you walked into a monster, that’s an attack. Then every monster takes its turn. The field of view is recomputed from your new position, the screen is redrawn, and it waits for your next key. Because the world only advances on your input, you can sit and think for as long as you like — which is very roguelike, and also means the whole thing costs zero CPU while it waits. The pieces The dungeon ( mapgen.rs ). Classic “rooms and corridors”: I scatter up to 16 non-overlapping rectangular rooms, then connect each room to the previous one with an L-shaped tunnel. Up-stairs go in the first room, down-stairs in the last. Every floor is freshly generated, so no two runs are the same. Field of view ( fov.rs ). You can only see what’s near you; everything else is dark (tiles you’ve seen before stay dimly remembered). I do it by shooting straight Bresenham lines from the player out to every square on the edge of a box around them, lighting up tiles until a ray hits a wall. It’s not the fancy “shadowcasting” algorithm everyone uses — I picked the version I could fully understand and it looks great. Monsters that hunt you ( ai.rs + pathfind.rs ). When a monster can see you it doesn’t just stumble around — it runs a real A * search to route around walls and close the distance. Lose line of sight and it goes back to idling. (The A * has a fun gotcha: Rust’s BinaryHeap is a max -heap, but A * wants the cheapest node first, so I had to reverse the ordering. That bug — it kept expanding the worst nodes — took me embarrassingly long to spot.) Fighting ( combat.rs ). Simple and readable: roll the attacker’s power with a tiny bit of variance, subtract the defender’s defense, and the rest is damage. Weapons add power, armour adds defense. Kill things for XP, level up for more HP and power. Loot ( items.rs + spawn.rs + inventory.rs ). Potions (healing, permanent strength, permanent max-HP), scrolls (teleport, magic mapping, lightning bolt, enchant weapon), plus weapons and armour drawn from tables that scale with depth — so the deeper you go, the better the gear you might find, and the nastier the things guarding it. Difficulty curve. Deeper floors spawn more monsters and meaner ones. The design is deliberately lopsided: the dungeon always wins eventually. That’s the joke the whole game is built around. Saving ( save.rs ). A save is really a suspend — the moment you load it, the file is deleted, so you can’t save-scum your way out of a bad decision. I also hand-wrote the entire save/load format by hand (parsing and all) instead of reaching for serde , just to prove to myself I could. Flavour ( flavor.rs ). Every death, descent and kill pulls a random one-liner from a little pool, so the log never reads the same way twice (“You delete the goblin from the timeline. No undo.”). Honestly the most fun part to write....
|
1792878739.3591366
|
1793742739.3591366
|
|
27703
|
Dance App by @Venkatesh | Stardance
|
Venkatesh
|
1
|
28.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-12T15:19:10Z", "hours": 28.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Before you guys review this project poorly for the usage of AI, I would wanna make it clear that i still learnt a really good amount of development. At the end of the day software development is about shaping the user experience and design a product that solved the problem and is worth using. I used AI to aid me with the tedious work that would have otherwise been impossible within my timeframe of less than 2 weeks. ⠀ Cutting to the chase this dance game was made for a local competition in my country. The theme for the competition was about how culture can be preserved using technology. The full project also includes a physical arcade style device with a dancing servo robot with 6 joints (excluding knees). ⠀ The goal of the project is to act as an entry point for students in Singapore to learn more about cultural dances in Singapore. I chose to approach the preservation of culture via learning cultural dances as it bypasses any linguistic barriers to make it more widely accessible to better serve as an entry point for younger kids to have at least a faint idea on how other cultures are like. ⠀ With about 28 hours spent on coding this and countless more on the hardware, ideation, documentation, admin and much more, I managed to clench first place in the competition. I also feel that the current state of the app is satisfactory as a prototype. ⠀ Even though quite buggy and somewhat unstable, I would potentially update the project near the end of the year, until then i would be moving onto other projects! I hope yall find this attempt at preserving culture with technology meaningful, fun or at least interesting, thanks for reading!", "repo": "https://github.com/vensah-dev/wro-project", "demo": "https://vensah.dev/wro-project"}]...
|
[{"post_id": 64843, "ts": "202 [{"post_id": 64843, "ts": "2026-09-09T15:14:56Z", "hours": 5.7175, "text": "Added: Made all the songs more stable and lenient in detection for compete mode (took up a lot of time) added fun facts for each mode Made the select mode have a bg The grading system us revised to work on score rather than accuracy percentage Leaderboard badges"}, {"post_id": 64145, "ts": "2026-09-08T10:50:22Z", "hours": 12.1842, "text": "Features added: Working main menu page hosted on github itself to try ability to send serial input to an ESP controlled robot doll Additional Screen Effects added Leaderboards system to help compete mode"}, {"post_id": 48892, "ts": "2026-08-17T13:39:07Z", "hours": 7.9083, "text": "I am working on a dance app for a local competition where the theme is robots meet culture, so the idea is to make a software based dance game that will help users traditional dances and compete with their friends through dancing. Thus far, i have added in the ability to dance to a song and a learn mode which lets you move ur body to the different dance moves at ur own pace. Selection menu to choose song and select whether they wanna learn or dance (compete mode) to that song Soon i will be making compete mode a local 1v1 and add in a main menu like in minecraft for settings, quitting and entering the actual game."}, {"post_id": 28689, "ts": "2026-07-15T02:57:24Z", "hours": 1.7333, "text": "An app where an AI model will be able to detect the movement of body joints to verify if the player is dancing a certain dance. planned features: users can compete with someone else in real life by taking turns doing a certain dance. The ‘accuracy’ of the dance will affect the scoring users can learn how to dance by dancing certain moves until they get it correct current state: currently I have setup the Google MediaPipe Pose Landmarks model to detect realtime body movement, tuned to be able to track well in differig lighting conditions"}]...
|
Title: Dance App by @Venkatesh | Stardance
Devlog Title: Dance App by @Venkatesh | Stardance
Devlogs:
An app where an AI model will be able to detect the movement of body joints to verify if the player is dancing a certain dance. planned features: users can compete with someone else in real life by taking turns doing a certain dance. The ‘accuracy’ of the dance will affect the scoring users can learn how to dance by dancing certain moves until they get it correct current state: currently I have setup the Google MediaPipe Pose Landmarks model to detect realtime body movement, tuned to be able to track well in differig lighting conditions
I am working on a dance app for a local competition where the theme is robots meet culture, so the idea is to make a software based dance game that will help users traditional dances and compete with their friends through dancing. Thus far, i have added in the ability to dance to a song and a learn mode which lets you move ur body to the different dance moves at ur own pace. Selection menu to choose song and select whether they wanna learn or dance (compete mode) to that song Soon i will be making compete mode a local 1v1 and add in a main menu like in minecraft for settings, quitting and entering the actual game.
Features added: Working main menu page hosted on github itself to try ability to send serial input to an ESP controlled robot doll Additional Screen Effects added Leaderboards system to help compete mode
Added: Made all the songs more stable and lenient in detection for compete mode (took up a lot of time) added fun facts for each mode Made the select mode have a bg The grading system us revised to work on score rather than accuracy percentage Leaderboard badges
Ships:
Before you guys review this project poorly for the usage of AI, I would wanna make it clear that i still learnt a really good amount of development. At the end of the day software development is about shaping the user experience and design a product that solved the problem and is worth using. I used AI to aid me with the tedious work that would have otherwise been impossible within my timeframe of less than 2 weeks. ⠀ Cutting to the chase this dance game was made for a local competition in my country. The theme for the competition was about how culture can be preserved using technology. The full project also includes a physical arcade style device with a dancing servo robot with 6 joints (excluding knees). ⠀ The goal of the project is to act as an entry point for students in Singapore to learn more about cultural dances in Singapore. I chose to approach the preservation of culture via learning cultural dances as it bypasses any linguistic barriers to make it more widely accessible to better serve as an entry point for younger kids to have at least a faint idea on how other cultures are like. ⠀ With about 28 hours spent on coding this and countless more on the hardware, ideation, documentation, admin and much more, I managed to clench first place in the competition. I also feel that the current state of the app is satisfactory as a prototype. ⠀ Even though quite buggy and somewhat unstable, I would potentially update the project near the end of the year, until then i would be moving onto other projects! I hope yall find this attempt at preserving culture with technology meaningful, fun or at least interesting, thanks for reading!...
|
1793148822.1146698
|
1793235222.1146698
|
|
27798
|
Word Embeddings by @stockifab | Stardance
|
stockifab
|
1
|
28.0
|
556
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-25T19:47:36Z", "hours": 28.0, "multiplier": 16.45, "payout": 556, "blessing": "neutral", "text": "Word embeddings are a way to store the meaning of word (such as “plane” or “dog”) in a large vector (= a long list of numbers) These vectors can then be used to find words similar to each other. But they can also be used to calculate with English words, e.g.: dog - bark + meow –> cat (in fact, you can try this very example on the demo website, or come up with your own calculation) In order to retrieve these embeddings, I created a model that reads through billions of words to understand how they are used. It looks at the words appearing close to each other and assumes all words with the same nearby words must have similar meaning. This retrieval of the embeddings was the hardest part: My first model was okayish and could find related words, but I could not yet calculate with them like in the example before. For the final version I used a much larger dataset, with thought-out pre-processing steps, which was more complicated then I thought (You need to ensure the words you are grouping actually belong together, so you may only group within individual sentences, groups mustn’t overlap anything inside brackets, and you can’t make a group with words you filtered in pre-processing at the same time you shouldn’t skip any words, …) Additionally the challenge with a larger dataset was, that it didnt fit into my memory, so I had to read it in chunks and train the model incrementally. The training of the final model took over 50 hours.", "repo": "https://github.com/stockifab/word-embeddings", "demo": "https://word-embeddings.happierbit.com/"}]...
|
[{"post_id": 34783, "ts": "202 [{"post_id": 34783, "ts": "2026-07-25T19:30:48Z", "hours": 1.7033, "text": "Finish Demo Website (Pages 4-8) I completed the last part of the demo website including the most exciting part about the word arithmetic."}, {"post_id": 33127, "ts": "2026-07-22T19:08:07Z", "hours": 4.3458, "text": "Embedding Demo Website (Pages 1-3) I really like the way the embeddings turned out. That’s why I want to make a website to make word embeddings as accessible and understandable as possible. I’m assuming no prior knowledge from the visitors, and try to interactively guide them through the world of embeddings, with each slide explaining something about embeddings or being interactive to try it yourself. This time i finished slides 1-3, with the last one being the interactive one. Since it should feel engaging and alive, I focus a lot on subtle animations and micro-interactions. I’ve never built a website with heavy animations before so this is the perfect opportunity to try GSAP!"}, {"post_id": 27814, "ts": "2026-07-13T18:14:42Z", "hours": 3.6242, "text": "Maths with English words With the new dataset, training took a lot longer. My computer worked for around 50 hours to run through 26GB of training data. The long wait really payed off though, the model is so much better than the previous model and it is finally capable of doing the embedding arithmetic I’ve been chasing the whole time. Embedding arithmetic is so fun, here are some examples: throw - throwing + running -> run (-ing form) better - good + friendly -> friendlier (comparasion) woman - man + king -> queen (man compared to woman is like king compared to queen) germany - berlin + paris (capitals) The model learned a lot more syntactic and semantic meaning than I had expected. Next I want to build a web app, so that you can play with the embeddings yourself."}, {"post_id": 23582, "ts": "2026-07-06T16:54:41Z", "hours": 7.0792, "text": "New Dataset + Improved Pre-Processing In an effort to increase the model’s performance I switched from the previous model’s Wikipedia Simple English dataset to a subset of the Fine Web Edu dataset. As an additional measure to improve the results I decided to use a larger context of 4 words left and right to the root word. I also completely re-wrote all the preprocessing steps. Even though the dataset is high-quality, language is very nuanced and needs filtering. But since words next to each other (4 words before and after the root word) get grouped, filtering an entire word means the group mustn’t be formed (as information is now missing), on the other hand removing punctuation from the end of a word should still allow that word to appear in a group. Overall I filter/handle: quotes brackets non-English Characters apostrophes other special characters (dashes, underscores, etc.) Another challenge is ensuring that grouped words actually belong together. In the previous dataset I simply grouped the words next to each other in a giant blob of text. This time I only group words from the same text source (the same article, document, …) and only within the sentences of that source. This ensures groups don’t span multiple sentences. This taught me a lot about working with larger amounts of data - I couldn’t load everything in memory as it would be too large, but had to read from disk in batches to process the data. After ~50 min of leaving my computer untouched I had the final dataset with ~26GB (~18GB compressed using word IDs) of filtered word groups. Next, I will have to find a way to determine unrelated words, so that I can start training the third iteration of the model."}, {"post_id": 22251, "ts": "2026-07-04T16:59:44Z", "hours": 3.2306, "text": "New (worse) model In an effort to improve on the previous model, I created a new one. Now it uses separate weights for the context instead of re-using the embedding weights in the context. The new model has 30.000.000 parameters which is double the previous one. Yet unfortunately, the results I got were disappointingly miserable: In contrast to the previous model, it doesn’t even group related words. According to the embeddings, the word “cat” is very similar in meaning to “motor” or “caution” 😂😭 I don’t know why it’s performing so poorly, but I’m curious to find out."}, {"post_id": 22092, "ts": "2026-07-04T10:56:19Z", "hours": 4.3497, "text": "First Embedding Model Using the data obtained previously I could get my first embeddings 🎉 The model (image) has 15.000.000 parameters and took roughly 1/2 hour to train. Unfortunately, the performance is below my expectations: It’s not yet good enough so that “uncle - aunt + mum” would output “dad”. However, the embeddings definitely captured some meaning: For example, the vector of “android” is close to “ios” and to “smartphones”. The vector of “cat” is close to the words “goat”, “monkeys” and “snakes”. I want to improve this model significantly until it’s good enough to meaningfully calculate with the embedding vectors."}, {"post_id": 17825, "ts": "2026-06-28T19:15:17Z", "hours": 3.9069, "text": "Data preprocessing Before the model can train to retrieve the embeddings, it needs data. I found a dataset on Kaggle with the text of 249.396 wikipedia articles. Today I did some preprocessing, first I removed any non-english words and delete special characters, then I determined the 50.000 most frequent words, and limited my vocabulary to these words. To compute the embeddings, I took the left and right words of each word in the data and put them into a pandas data frame along with two other unrelated words: (left word, center word, right word, unrelated word 1, unrelated word 2) The final dataset has 24.780.670 rows, so I likely cant train on the full dataset on my computer. The goal is for the model, when presented with the center word to predict which of the other words are similar to it which it can only do by learning the meaning of each word - which is what we want."}]...
|
Title: Word Embeddings by @stockifab | Stardance
Title: Word Embeddings by @stockifab | Stardance
Devlogs:
Data preprocessing Before the model can train to retrieve the embeddings, it needs data. I found a dataset on Kaggle with the text of 249.396 wikipedia articles. Today I did some preprocessing, first I removed any non-english words and delete special characters, then I determined the 50.000 most frequent words, and limited my vocabulary to these words. To compute the embeddings, I took the left and right words of each word in the data and put them into a pandas data frame along with two other unrelated words: (left word, center word, right word, unrelated word 1, unrelated word 2) The final dataset has 24.780.670 rows, so I likely cant train on the full dataset on my computer. The goal is for the model, when presented with the center word to predict which of the other words are similar to it which it can only do by learning the meaning of each word - which is what we want.
First Embedding Model Using the data obtained previously I could get my first embeddings 🎉 The model (image) has 15.000.000 parameters and took roughly 1/2 hour to train. Unfortunately, the performance is below my expectations: It’s not yet good enough so that “uncle - aunt + mum” would output “dad”. However, the embeddings definitely captured some meaning: For example, the vector of “android” is close to “ios” and to “smartphones”. The vector of “cat” is close to the words “goat”, “monkeys” and “snakes”. I want to improve this model significantly until it’s good enough to meaningfully calculate with the embedding vectors.
New (worse) model In an effort to improve on the previous model, I created a new one. Now it uses separate weights for the context instead of re-using the embedding weights in the context. The new model has 30.000.000 parameters which is double the previous one. Yet unfortunately, the results I got were disappointingly miserable: In contrast to the previous model, it doesn’t even group related words. According to the embeddings, the word “cat” is very similar in meaning to “motor” or “caution” 😂😭 I don’t know why it’s performing so poorly, but I’m curious to find out.
New Dataset + Improved Pre-Processing In an effort to increase the model’s performance I switched from the previous model’s Wikipedia Simple English dataset to a subset of the Fine Web Edu dataset. As an additional measure to improve the results I decided to use a larger context of 4 words left and right to the root word. I also completely re-wrote all the preprocessing steps. Even though the dataset is high-quality, language is very nuanced and needs filtering. But since words next to each other (4 words before and after the root word) get grouped, filtering an entire word means the group mustn’t be formed (as information is now missing), on the other hand removing punctuation from the end of a word should still allow that word to appear in a group. Overall I filter/handle: quotes brackets non-English Characters apostrophes other special characters (dashes, underscores, etc.) Another challenge is ensuring that grouped words actually belong together. In the previous dataset I simply grouped the words next to each other in a giant blob of text. This time I only group words from the same text source (the same article, document, …) and only within the sentences of that source. This ensures groups don’t span multiple sentences. This taught me a lot about working with larger amounts of data - I couldn’t load everything in memory as it would be too large, but had to read from disk in batches to process the data. After ~50 min of leaving my computer untouched I had the final dataset with ~26GB (~18GB compressed using word IDs) of filtered word groups. Next, I will have to find a way to determine unrelated words, so that I can start training the third iteration of the model.
Maths with English words With the new dataset, training took a lot longer. My computer worked for around 50 hours to run through 26GB of training data. The long wait really payed off though, the model is so much better than the previous model and it is finally capable of doing the embedding arithmetic I’ve been chasing the whole time. Embedding arithmetic is so fun, here are some examples: throw - throwing + running -> run (-ing form) better - good + friendly -> friendlier (comparasion) woman - man + king -> queen (man compared to woman is like king compared to queen) germany - berlin + paris (capitals) The model learned a lot more syntactic and semantic meaning than I had expected. Next I want to build a web app, so that you can play with the embeddings yourself.
Embedding Demo Website (Pages 1-3) I really like the way the embeddings turned out. That’s why I want to make a website to make word embeddings as accessible and understandable as possible. I’m assuming no prior knowledge from the visitors, and try to interactively guide them through the world of embeddings, with each slide explaining something about embeddings or being interactive to try it yourself. This time i finished slides 1-3, with the last one being the interactive one. Since it should feel engaging and alive, I focus a lot on subtle animations and micro-interactions. I’ve never built a website with heavy animations before so this is the perfect opportunity to try GSAP!
Finish Demo Website (Pages 4-8) I completed the last part of the demo website including the most exciting part about the word arithmetic.
Ships:
Word embeddings are a way to store the meaning of word (such as “plane” or “dog”) in a large vector (= a long list of numbers) These vectors can then be used to find words similar to each other. But they can also be used to calculate with English words, e.g.: dog - bark + meow –> cat (in fact, you can try this very example on the demo website, or come up with your own calculation) In order to retrieve these embeddings, I created a model that reads through billions of words to understand how they are used. It looks at the words appearing close to each other and assumes all words with the same nearby words must have similar meaning. This retrieval of the embeddings was the hardest part: My first model was okayish and could find related words, but I could not yet calculate with them like in the example before. For the final version I used a much larger dataset, with thought-out pre-processing steps, which was more complicated then I thought (You need to ensure the words you are grouping actually belong together, so you may only group within individual sentences, groups mustn’t overlap anything inside brackets, and you can’t make a group with words you filtered in pre-processing at the same time you shouldn’t skip any words, …) Additionally the challenge with a larger dataset was, that it didnt fit into my memory, so I had to read it in chunks and train the model incrementally. The training of the final model took over 50 hours....
|
1793202988.238345
|
1793289388.238345
|
|
28283
|
Robot Arm by @jake18 | Stardance
|
jake18
|
1
|
28.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-21T03:43:04Z", "hours": 28.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I built a 5-DOF robotic arm that can move manually or remotely using coordinate control. The arm uses 5 servo motors for the arm and 1 stepper motor for the base to provide movement. Every joint in this arm is controlled through a local web app that I am running on my laptop. All of the controls, calculations, etc., are all on my laptop. The ESP32 only acts as a motor controller, receiving commands through wifi and controlling the motors. The thing that I am most proud of is the code and coordinate control. This was the first time I did a project with this scale of code, and I am proud that it works well. This was also the first time I made a web app and combining it with an ESP32. The most challenging part about this project was definitely the mechanical design. Everything in CAD worked smoothly with no mistakes, but when I printed it out, big and small errors kept showing up that delayed my project by a few weeks. I had to go through many iterations until I got one that worked. FYI the angle processing in the code is tailored to my specific motor angles and position.", "repo": "https://github.com/jakecao18/Robot-Arm", "demo": ""}]...
|
[{"post_id": 70721, "ts": "202 [{"post_id": 70721, "ts": "2026-09-19T17:29:25Z", "hours": 8.8356, "text": "Devlog #6 So i have just finished assembling the arm and making all the gears, motors and joints properly now what I have done: fixed the shoulder joint by removing the belt completely, now it runs on a 1:1.5 spur gear reduction I added the stepper motor so now the arm can rotate by its base, allowing it to move in 3d I redesigned the gripper since the old one (finray style gripper) was too weak and couldn’t pick things up. this new gripper is a rack and pinion gripper that is much stronger I have connected the SMPS power supply and now every motor can run on full power I have connected the website to the esp so now my slider control works and is accurate But there are still some problems: the backlash of all the joints add up, which means the end effector wobbles too much. My coordinate control still isn’t accurate So before shipping this project, I will fix the coordinate control code so that it is now accurate. The backlash is a separate problem that I dont think ill be able to solve in time."}, {"post_id": 47845, "ts": "2026-08-16T02:11:50Z", "hours": 10.0933, "text": "Devlog #5 I have now finished the local web server to control the robot, it includes 6 sliders for the 5 servos and 1 stepper motor and also a coordinate control. for the coordinate control, you simply plug in your x, y, z coordinates it will return j1, j2, j3, and j4 angles to you. on the coding side of that, i just wrote some simple analytical ik, mostly triangle geometry. the website is ran by flask and i am using udp sockets to send the angles to my esp32 via wifi. everything is ran on my computer, so the esp would only have to control the motors with the angles. i also did some cad to redesign the shoulder base to fix the belt problem, will start printing soon."}, {"post_id": 42286, "ts": "2026-08-06T22:24:53Z", "hours": 9.0053, "text": "Devlog #4 So ive finished the CAD for the new parts and assembled the robot arm, but the wrist roll and gripper will be attached later. the elbow and wrist pitch of the robot works smoothly now, no skipping or anything, however. the shoulder belt is still skipping under load, i have now used more teeth but it still skips. I think that this is because the belt itself is not tensioned properly (its a little loose), i will have to return the current belt and buy a new one. if anyone have any suggestions to help prevent skipping please let me know. for now that is the only major problem in this build. I am working on the gripper right now since the old design didnt work. also i have been working on a web app to control the arm from my computer to the esp via wifi. I am almost done the app and soon will be able to send data to the esp. that is all for now but i think more problems will apear later."}, {"post_id": 35021, "ts": "2026-07-26T05:31:37Z", "hours": 9.3075, "text": "Devlog #3 So now i have printed all the parts and assembled the arm up to the wrist, but a few problems prevented the arm from moving properly. The gears at the elbow are slipping when under load and also the shafts supporting them are not stable. I think I can fix this by locking the two shafts together and using wider M2 gears. The belt at the shoulder is also slipping under load. I think that i just need the gears to be bigger so that they can tension the belt better. The elbow joint servo doesnt have enough movement to drive the whole elbow 180 degrees because of the gears. I messed up this part because i was supposed to buy the 270 degree servo not the 180 one. Ill be waiting for the 270 servo to arrive. Aside from those problems I have written code so that I can control the servos by angle and not PWM pulses. The base of the arm works fine, Ill be controlling that as soon as i learn how to control a stepper motor. For now I have redesigned most of the arm to fix these problems, but as i wait for the servo and all the parts to print, ill try to work on a web that can control the arm."}, {"post_id": 27505, "ts": "2026-07-13T04:01:09Z", "hours": 4.1847, "text": "Devlog #2 Finished printing everything and started testing if everything fit together. Some of the components had weak spots or didn’t fit together well. I had to go back and forth between CAD and printing for a while because my tolerances weren’t quite correct. Everything fits nicely now. I also made a GitHub repo and added all the CAD files, BOM, pictures etc. I will update GitHub frequently, and everything needed to recreate this project will be there. I also made a wiring diagram and in the process realized that I needed a few more components to make sure that the arm would work smoothly and safely. I was kinda hard to learn why I needed all these different components but in the end I think it makes sense to me now. The next steps now is probably to buy the components and then assemble the robot. In the meantime though I think I can start writing some code on Inverse Kinematics for the Robot. I want it to be able to move all the servos to the correct angle when given some coordinates."}, {"post_id": 21070, "ts": "2026-07-02T20:57:09Z", "hours": 1.2269, "text": "Devlog #1 Completed the CAD assembly for my robot arm. I plan it to be a 5-DOF arm with 5 motors for movement and 1 motor for the claw. I’m using 5 servos and 1 stepper motor right now but I don’t know if I should change it all into servos. I also made the arm be able to swap grippers pretty easily. Im gonna print everything for this arm, gears, gripper, etc. I can also 3d print the ball bearings but I think its better to buy them. The next step is to start printing everything, buying all the parts and start assembling it. Once Im done assembling Ill start coding it. I plan for the arm to run on a Raspberry Pi and be controlled via an app."}]...
|
Title: Robot Arm by @jake18 | Stardance
Devlogs:
Title: Robot Arm by @jake18 | Stardance
Devlogs:
Devlog #1 Completed the CAD assembly for my robot arm. I plan it to be a 5-DOF arm with 5 motors for movement and 1 motor for the claw. I’m using 5 servos and 1 stepper motor right now but I don’t know if I should change it all into servos. I also made the arm be able to swap grippers pretty easily. Im gonna print everything for this arm, gears, gripper, etc. I can also 3d print the ball bearings but I think its better to buy them. The next step is to start printing everything, buying all the parts and start assembling it. Once Im done assembling Ill start coding it. I plan for the arm to run on a Raspberry Pi and be controlled via an app.
Devlog #2 Finished printing everything and started testing if everything fit together. Some of the components had weak spots or didn’t fit together well. I had to go back and forth between CAD and printing for a while because my tolerances weren’t quite correct. Everything fits nicely now. I also made a GitHub repo and added all the CAD files, BOM, pictures etc. I will update GitHub frequently, and everything needed to recreate this project will be there. I also made a wiring diagram and in the process realized that I needed a few more components to make sure that the arm would work smoothly and safely. I was kinda hard to learn why I needed all these different components but in the end I think it makes sense to me now. The next steps now is probably to buy the components and then assemble the robot. In the meantime though I think I can start writing some code on Inverse Kinematics for the Robot. I want it to be able to move all the servos to the correct angle when given some coordinates.
Devlog #3 So now i have printed all the parts and assembled the arm up to the wrist, but a few problems prevented the arm from moving properly. The gears at the elbow are slipping when under load and also the shafts supporting them are not stable. I think I can fix this by locking the two shafts together and using wider M2 gears. The belt at the shoulder is also slipping under load. I think that i just need the gears to be bigger so that they can tension the belt better. The elbow joint servo doesnt have enough movement to drive the whole elbow 180 degrees because of the gears. I messed up this part because i was supposed to buy the 270 degree servo not the 180 one. Ill be waiting for the 270 servo to arrive. Aside from those problems I have written code so that I can control the servos by angle and not PWM pulses. The base of the arm works fine, Ill be controlling that as soon as i learn how to control a stepper motor. For now I have redesigned most of the arm to fix these problems, but as i wait for the servo and all the parts to print, ill try to work on a web that can control the arm.
Devlog #4 So ive finished the CAD for the new parts and assembled the robot arm, but the wrist roll and gripper will be attached later. the elbow and wrist pitch of the robot works smoothly now, no skipping or anything, however. the shoulder belt is still skipping under load, i have now used more teeth but it still skips. I think that this is because the belt itself is not tensioned properly (its a little loose), i will have to return the current belt and buy a new one. if anyone have any suggestions to help prevent skipping please let me know. for now that is the only major problem in this build. I am working on the gripper right now since the old design didnt work. also i have been working on a web app to control the arm from my computer to the esp via wifi. I am almost done the app and soon will be able to send data to the esp. that is all for now but i think more problems will apear later.
Devlog #5 I have now finished the local web server to control the robot, it includes 6 sliders for the 5 servos and 1 stepper motor and also a coordinate control. for the coordinate control, you simply plug in your x, y, z coordinates it will return j1, j2, j3, and j4 angles to you. on the coding side of that, i just wrote some simple analytical ik, mostly triangle geometry. the website is ran by flask and i am using udp sockets to send the angles to my esp32 via wifi. everything is ran on my computer, so the esp would only have to control the motors with the angles. i also did some cad to redesign the shoulder base to fix the belt problem, will start printing soon.
Devlog #6 So i have just finished assembling the arm and making all the gears, motors and joints properly now what I have done: fixed the shoulder joint by removing the belt completely, now it runs on a 1:1.5 spur gear reduction I added the stepper motor so now the arm can rotate by its base, allowing it to move in 3d I redesigned the gripper since the old one (finray style gripper) was too weak and couldn’t pick things up. this new gripper is a rack and pinion gripper that is much stronger I have connected the SMPS power supply and now every motor can run on full power I have connected the website to the esp so now my slider control works and is accurate But there are still some problems: the backlash of all the joints add up, which means the end effector wobbles too much. My coordinate control still isn’t accurate So before shipping this project, I will fix the coordinate control code so that it is now accurate. The backlash is a separate problem that I dont think ill be able to solve in time.
Ships:
I built a 5-DOF robotic arm that can move manually or remotely using coordinate control. The arm uses 5 servo motors for the arm and 1 stepper motor for the base to provide movement. Every joint in this arm is controlled through a local web app that I am running on my laptop. All of the controls, calculations, etc., are all on my laptop. The ESP32 only acts as a motor controller, receiving commands through wifi and controlling the motors. The thing that I am most proud of is the code and coordinate control. This was the first time I did a project with this scale of code, and I am proud that it works well. This was also the first time I made a web app and combining it with an ESP32. The most challenging part about this project was definitely the mechanical design. Everything in CAD worked smoothly with no mistakes, but when I printed it out, big and small errors kept showing up that delayed my project by a few weeks. I had to go through many iterations until I got one that worked. FYI the angle processing in the code is tailored to my specific motor angles and position....
|
1793152568.4147947
|
1793238968.4147947
|
|
32393
|
CanopyWatch by @azure | Stardance
|
azure
|
1
|
28.0
|
464
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-28T05:49:45Z", "hours": 26.0, "multiplier": 17.59, "payout": 464, "blessing": "neutral", "text": "I made an U-net Sentile-2 satellite powered illegal deforestation watch, with agentic legality reasoning. it uses a custom U-net model made in pytorch, Celery for task queues and scheduling, react frontend and fastapi backend. Some challenges which were a lot were spaghetti code base in beginning, model prediction issues, setting up Google Earth Engine, and a lot of model issues, from the original not being confident and MOST accurate, to even after retraining having issues, dataset issues, and just docker in general as I never tested till i got on nest. Im proud of the pivot i made early on, the model getting even better, and a over all challanging and fun ship. Plans for ship #2: i want to retrain model with better sampling and skip connections, Sentinle-1 support, cleaning up frontend a bit more, more regions, and agentic alerting.", "repo": "https://github.com/BraedynL0530/CanopyWatch", "demo": "https://canopywatch.braedyn.hackclub.app/"}]...
|
[{"post_id": 59963, "ts": "202 [{"post_id": 59963, "ts": "2026-09-02T01:17:50Z", "hours": 2.0011, "text": "no more ai css: i re did a lot of the css(colors, some padding, highlights and size) and a good bit of the js(the ai made the skeleton but i changed it for my use so you’ll see bits of it with patterns i did still use ai for the base) + redid the python script that ai made for the reasoning steps for agent, removed unused parts from frontend and minor stuff. less than 30% is js even assuming its all ai made but i did redo it. Only parts ai coded is the sql script, a few lines in docker correcting my mistakes, and some of the js helping me out. Also i added some stuff so scheduling should actually work i noticed there was nothing queued in the logs before hand. back to next ship i made a script to collect me a dataset with both satellites gotta figure out how to label forest vs not forest, and once that’s done ill re do frontend from scratch or ill make it soley an api maybe ill do both either way big changes for ship 2 and no more slop"}, {"post_id": 36226, "ts": "2026-07-28T05:12:36Z", "hours": 6.6561, "text": "Devlog 12: last devlog before i ship! This was mostly bug fixing and polishing. I finally tracked down an issue where the model was outputting 0.0. At first I thought the model itself was broken, but it turned out I was double normalizing the Google Earth Engine test data. After fixing that (and retraining the model), accuracy improved quite a bit. I also realized that green ≠ forest and overall more confidence.The permit querying system also had problems. I originally trusted gemini(clanker) because I couldn’t make sense of the IBAMA(its in portuguese) data, but that ended up sending me down a debugging forever. Even after fixing it, the ML still wasnt perfect, so i added a mask(as seen in img 3)and even after retraining the model i noticed the mask was random globs and lines, after 4 hours of trying to debug it was a few things: the model just isn’t meant for it as an u-net and i thought subtracting the two predictions would work but didn’t, so i added threshold, a bit more accurate but not good enough, missed a ton, what really fixed i t was averaging after sigamoid, binary opening and closing, and a big fix for the models accuracy(before threshold-ing) was fixing the payload, i used the wrong cords in payload so the image wasn’t correct. after all of that i finally fixed the prediction! features i added and fixed:chain of thought, damage %, some frontend overhauls(as you can see), and more. refined prompt for agent, dynamic scanning(no longer hard coded), and chunking for memory. that’s all(all i remember at least)!"}, {"post_id": 31535, "ts": "2026-07-20T00:49:54Z", "hours": 2.3167, "text": "Devlog 11: i was right llms were gonna have an issue: tokens. but so far i;ve completely fixed Machine Learning which was always saying it was deforestation due to it being a u-net classifier. which was pretty pointless so i added before and after images and used mask to tell if deforestation occurred and accounting for if trees grew back it wouldn’t just kill system, i added cot functional, and llm was overthinking but i;ve been working on that lately. im in the home stretch for shipping all i want to do is expand where it scans, and chunking the scans so it doesn’t use too many resources, and possibly upgrading to a database instead of json? ill do that in ship #2 as it’ll add more bands and more. but im gonna widen scanning. at mini um. also just identified a bottle neck with my permit tester so ill fix that as well its messing with llm."}, {"post_id": 31402, "ts": "2026-07-19T18:50:38Z", "hours": 1.7061, "text": "Devlog 10.75 had to fix left over placeholder values, gave up on Sentile-1 for this current ship because couldn’t find datasets and i don’t have time or compute to make my own. and I have been working on frontend, and fixing some task. and added a scan button in frontend for interactivity. im now testing the scans and making sure it actually sends over images as i’ve finally debugged ALMOST everything. i had a hiccup with model because i forgot the scope so it got angry there and i have a feeling llm will give me problems so ill need to test and see if it hallucinates."}, {"post_id": 31002, "ts": "2026-07-19T01:28:16Z", "hours": 0.65, "text": "Devlog 10.5: adding new machine learning, about to train, and added SAR satellite and going to train wont finish till tmrw or 2 days most likely."}, {"post_id": 30501, "ts": "2026-07-18T04:06:14Z", "hours": 1.4508, "text": "Devlog 10: finally go it mainly functional. while it doesn’t look that way im gonna fix that, its just a json not fully adding + API issue on react side and i removed map when removing dummy data so i have to add it back. but other than that fully functional as i know. Some issues i ran into while debugging were, i stupidly forgot to link my .env and google earth engine key to docker, and bigger, i didn’t have a concurrency argument inside of celery workers so i ran into OOM form 96 workers. besides that just some name mix matches, i normalized the time across everything. and just debugged ngnix server to rout correctly, i left it cached and didn’t realize it was broken till i recreated to image. I plan to add sentile-1 SAR satellite to this and cleaning up frontend before i finish the ship. I decied that alerts/messing will come in ship 2 along with a more refined model and possibly more features, contacting NGOs or authorizes is a nice to have but i don’t know how’d i do it? i don’t wanna but a domain for an email and many don’t have apis, slackbot could work if they have any but that will be for ship #2 unless i change my mind."}, {"post_id": 28742, "ts": "2026-07-15T05:54:07Z", "hours": 1.1431, "text": "Devlog 9 : after 10 years of debugging i realized i had to make a sub domain(maybe i should’ve read docs). but after i fixed the nginix server the app was functional i just needed a subdomain to point at it. besides that i had a view errors like apikey instead of api_key, and directors being missing, and a big one requirements.txt being to big, what i did was use a swap file so its not all in memory and build service by service. another issue still on going is celery snit working which is half of my architecture and how i need to test. i think its because i set up config wrong + wrong urls/ ill try to fix it by 4am today because ill miss tmrw and possibly Friday as well(rip to my streak)"}, {"post_id": 28613, "ts": "2026-07-14T23:32:11Z", "hours": 2.1919, "text": "Devlog 8: Docker, so i spent a while debugging, fixing some pipelines with machine learning and sending images and more(static files) over to frontend before i added an api instead of fake data, but now the 2GB of ram isn’t looking like its enough. Before that though i had some issues setting up nginx so ill check nest documents to see if I’m doing anything wrong before i request more resources. ill try to fix instillation or find another way"}, {"post_id": 28099, "ts": "2026-07-14T04:47:08Z", "hours": 0.9228, "text": "Devlog 7.5: revamped frontend to show Where, and before and after, no point of plugging in api yet since i need to deploy before i can even run backend. also added call llm, and agentic loop so that should now be functional. no hiccups or issues just passing time while i wait for nest approval. And since like i said i have yet to run backend once since my computer cant handle it im expecting 1-2 hours more of debugging after i deploy."}, {"post_id": 27930, "ts": "2026-07-13T21:11:10Z", "hours": 1.8739, "text": "Devlog 7: i fixxed some memory issues like a leak and just adding a garbage collector and clearing cache, also fixed ML call confidence was incorrect i think so i changed to a sigmoid, i also added EVI to differentiate vegetation and added a forest mask so NVDI should ignore if grasslands vanishes or similar. also added RGB bands separately so i can show the before and after on frontend as other bands wouldnt help + some scaling so they SHOULD appear correctly. added a health endpoint for ram and cpu usage. Some Issues: i didn’t really need to optimize memory i didn’t think nest would have resources like it doe so i was trying to optimize for free back ends with limited ram, downtime, and such, but nest has all of that but still good to not waste memory. Second more important issue is that Brazil has a lot of clouds, so does the whole world but I’m starting in Brazil, and that will crash/ ruin data because cloud mask will just return a bunch of 0s when there are clouds, so currently i decided to do a median composite over a month, but that’s not good for real time so ill add sentile-1 to go through clouds, but ill need to research how to pair them together well and how sentile-1 can differentiate vegetation or know if they are cut down. And I have yet to plug in api to frontend so still filler data:"}, {"post_id": 27502, "ts": "2026-07-13T03:47:10Z", "hours": 1.6, "text": "devlog 6: I’M A GENIUS(not really but it worked). we finally inference-d with model after training its pretty good, though in the scans I’m gonna pre-process so that it doesn’t confuse grass and trees but its not too bad at that. also added unit test though not complete, renamed a few files, and added a new endpoint to get around downtime/hibernating backed. it took a bit too long for small devlog but next ill finish unit test, dockerfile, likely retrain(possibly with more bands), and optimize so i don’t get any OOM with PyTorch, model and google earth engine. but no hiccups besides i don’t really know what to do so i just did random stuff like unit test, and also visualizing so i can verify my self was a minor hiccup. I’m gonna deploy on backend and so i can run model and earth engine and see how resource intensive it is. maybe implement sentile-1 as well to get around clouds, as you can see the cloud leaves a void with no predictions and illegal loggers use that to advantage in Brazil and log in rainy season."}, {"post_id": 26963, "ts": "2026-07-12T01:51:00Z", "hours": 0.6061, "text": "Devlog 5.5: Ai is currently training so made frontend with some mock data. I’m thinking about condensing it and using a map, maybe further into it. and ofc plugging the actual complete API into it. going to do some other bug fixes and possibly testing. no real issues besides with tailwind, i had Gemini make this frontend so i can plug in API later and apparently tailwind V4 is very angry so i had to downgrade and some other setup stuff in CSS/configs."}, {"post_id": 26939, "ts": "2026-07-12T00:51:20Z", "hours": 1.8383, "text": "Devlog 5: cleaned up ugly architecture and opted for celery task queuing and just calling functions and feeding it to AI, better SOC(separation of concerns) i deleted and refactored various files. such as main.py it now can scan on call while i have a scheduler daily to scan and find deforestation aync. i found a dataset for ML that may work as its GEOtiff, on HF, and has around 500 entries for training? not the best but should work as prototype, ill check for others later. some issues i had was the former agent.py was just circular and dependencies in code base were all over the place so i had to standardize it. another one was that Machine learning wasn’t working out because as mentioned previously i was scammed with kaggle dataset i found or its focused on sentile-1 instead of 2/satellite images. next devlog i plan to have a prototype/toy model, and test frontend pushing to it, and likely more debugging or finishing up/adding features, for now i’m going to the gym."}, {"post_id": 26379, "ts": "2026-07-11T04:14:02Z", "hours": 1.1189, "text": "Devlog 4: I SUCK at coding. i made a task queue for machine learning but we have a couple of issues, One my pipeline for ML/Agents is just all over the place i really need to clean that up not end of world, 2. i didn’t finish push to dashboard or LLM_client. 3. the 11GB kaggle dataset SUCKKSSS. i was wondering why batch sizes were so small it has like no useful data so i need to pivot where i get data, hopefully i can find a better dataset but if worse comes to worse ill use GEE iteratively. good progress was on the queue and slightly cleaning up messy pipeline but i now need to find new data, likely change how dataset is formatted, retrain model, and finish agents and finally make pipeline make sense, for now ill work on pipeline while looking for data."}, {"post_id": 25699, "ts": "2026-07-10T03:50:25Z", "hours": 0.9161, "text": "Devlog 3: Added the training loop in the notebook, fixed a few spelling errors, and added activator function(ReLU). added functionality to agent.py besides call_llm and push to dashboard. and added routing for agents. ill work on training(and likely debugging the model) and finish up agents and routing for frontend."}, {"post_id": 25633, "ts": "2026-07-10T01:18:11Z", "hours": 0.8808, "text": "Made the draft of notebook/model. had chat GPT make a dashboard, and cleaned up other parts. planning to create training loop and likely debug next, and then add agent abilities."}, {"post_id": 24513, "ts": "2026-07-08T03:28:53Z", "hours": 0.4928, "text": "Setting up base architecture, cant begin training till data(11 GB -_-) downloads, and im too lazy to make model before hand till i see what data looks like, gonna use kaggle api next time"}]...
|
Title: CanopyWatch by @azure | Stardance
Devlogs: Title: CanopyWatch by @azure | Stardance
Devlogs:
Setting up base architecture, cant begin training till data(11 GB -_-) downloads, and im too lazy to make model before hand till i see what data looks like, gonna use kaggle api next time
Made the draft of notebook/model. had chat GPT make a dashboard, and cleaned up other parts. planning to create training loop and likely debug next, and then add agent abilities.
Devlog 3: Added the training loop in the notebook, fixed a few spelling errors, and added activator function(ReLU). added functionality to agent.py besides call_llm and push to dashboard. and added routing for agents. ill work on training(and likely debugging the model) and finish up agents and routing for frontend.
Devlog 4: I SUCK at coding. i made a task queue for machine learning but we have a couple of issues, One my pipeline for ML/Agents is just all over the place i really need to clean that up not end of world, 2. i didn’t finish push to dashboard or LLM_client. 3. the 11GB kaggle dataset SUCKKSSS. i was wondering why batch sizes were so small it has like no useful data so i need to pivot where i get data, hopefully i can find a better dataset but if worse comes to worse ill use GEE iteratively. good progress was on the queue and slightly cleaning up messy pipeline but i now need to find new data, likely change how dataset is formatted, retrain model, and finish agents and finally make pipeline make sense, for now ill work on pipeline while looking for data.
Devlog 5: cleaned up ugly architecture and opted for celery task queuing and just calling functions and feeding it to AI, better SOC(separation of concerns) i deleted and refactored various files. such as main.py it now can scan on call while i have a scheduler daily to scan and find deforestation aync. i found a dataset for ML that may work as its GEOtiff, on HF, and has around 500 entries for training? not the best but should work as prototype, ill check for others later. some issues i had was the former agent.py was just circular and dependencies in code base were all over the place so i had to standardize it. another one was that Machine learning wasn’t working out because as mentioned previously i was scammed with kaggle dataset i found or its focused on sentile-1 instead of 2/satellite images. next devlog i plan to have a prototype/toy model, and test frontend pushing to it, and likely more debugging or finishing up/adding features, for now i’m going to the gym.
Devlog 5.5: Ai is currently training so made frontend with some mock data. I’m thinking about condensing it and using a map, maybe further into it. and ofc plugging the actual complete API into it. going to do some other bug fixes and possibly testing. no real issues besides with tailwind, i had Gemini make this frontend so i can plug in API later and apparently tailwind V4 is very angry so i had to downgrade and some other setup stuff in CSS/configs.
devlog 6: I’M A GENIUS(not really but it worked). we finally inference-d with model after training its pretty good, though in the scans I’m gonna pre-process so that it doesn’t confuse grass and trees but its not too bad at that. also added unit test though not complete, renamed a few files, and added a new endpoint to get around downtime/hibernating backed. it took a bit too long for small devlog but next ill finish unit test, dockerfile, likely retrain(possibly with more bands), and optimize so i don’t get any OOM with PyTorch, model and google earth engine. but no hiccups besides i don’t really know what to do so i just did random stuff like unit test, and also visualizing so i can verify my self was a minor hiccup. I’m gonna deploy on backend and so i can run model and earth engine and see how resource intensive it is. maybe implement sentile-1 as well to get around clouds, as you can see the cloud leaves a void with no predictions and illegal loggers use that to advantage in Brazil and log in rainy season.
Devlog 7: i fixxed some memory issues like a leak and just adding a garbage collector and clearing cache, also fixed ML call confidence was incorrect i think so i changed to a sigmoid, i also added EVI to differentiate vegetation and added a forest mask so NVDI should ignore if grasslands vanishes or similar. also added RGB bands separately so i can show the before and after on frontend as other bands wouldnt help + some scaling so they SHOULD appear correctly. added a health endpoint for ram and cpu usage. Some Issues: i didn’t really need to optimize memory i didn’t think nest would have resources like it doe so i was trying to optimize for free back ends with limited ram, downtime, and such, but nest has all of that but still good to not waste memory. Second more important issue is that Brazil has a lot of clouds, so does the whole world but I’m starting in Brazil, and that will crash/ ruin data because cloud mask will just return a bunch of 0s when there are clouds, so currently i decided to do a median composite over a month, but that’s not good for real time so ill add sentile-1 to go through clouds, but ill need to research how to pair them together well and how sentile-1 can differentiate vegetation or know if they are cut down. And I have yet to plug in api to frontend so still filler data:
Devlog 7.5: revamped frontend to show Where, and before and after, no point of plugging in api yet since i need to deploy before i can even run backend. also added call llm, and agentic loop so that should now be functional. no hiccups or issues just passing time while i wait for nest approval. And since like i said i have yet to run backend once since my computer cant handle it im expecting 1-2 hours more of debugging after i deploy.
Devlog 8: Docker, so i spent a while debugging, fixing some pipelines with machine learning and sending images and more(static files) over to frontend before i added an api instead of fake data, but now the 2GB of ram isn’t looking like its enough. Before that though i had some issues setting up nginx so ill check nest documents to see if I’m doing anything wrong before i request more resources. ill try to fix instillation or find another way
Devlog 9 : after 10 years of debugging i realized i had to make a sub domain(maybe i should’ve read docs). but after i fixed the nginix server the app was functional i just needed a subdomain to point at it. besides that i had a view errors like apikey instead of api_key, and directors being missing, and a big one requirements.txt being to big, what i did was use a swap file so its not all in memory and build service by service. another issue still on going is celery snit working which is half of my architecture and how i need to test. i think its because i set up config wrong + wrong urls/ ill try to fix it by 4am today because ill miss tmrw and possibly Friday as well(rip to my streak)
Devlog 10: finally go it mainly functional. while it doesn’t look that way im gonna fix that, its just a json not fully adding + API issue on react side and i removed map when removing dummy data so i have to add it back. but other than that fully functional as i know. Some issues i ran into while debugging were, i stupidly forgot to link my .env and google earth engine key to docker, and bigger, i didn’t have a concurrency argument inside of celery workers so i ran into OOM form 96 workers. besides that just some name mix matches, i normalized the time across everything. and just debugged ngnix server to rout correctly, i left it cached and didn’t realize it was broken till i recreated to image. I plan to add sentile-1 SAR satellite to this and cleaning up frontend before i finish the ship. I decied that alerts/messing will come in ship 2 along with a more refined model and possibly more features, contacting NGOs or authorizes is a nice to have but i don’t know how’d i do it? i don’t wanna but a domain for an email and many don’t have apis, slackbot could work if they have any but that will be for ship #2 unless i change my mind.
Devlog 10.5: adding new machine learning, about to train, and added SAR satellite and going to train wont finish till tmrw or 2 days most likely.
Devlog 10.75 had to fix left over placeholder values, gave up on Sentile-1 for this current ship because couldn’t find datasets and i don’t have time or compute to make my own. and I have been working on frontend, and fixing some task. and added a scan button in frontend for interactivity. im now testing the scans and making sure it actually sends over images as i’ve finally debugged ALMOST everything. i had a hiccup with model because i forgot the scope so it got angry there and i have a feeling llm will give me problems so ill need to test and see if it hallucinates.
Devlog 11: i was right llms were gonna have an issue: tokens. but so far i;ve completely fixed Machine Learning which was always saying it was deforestation due to it being a u-net classifier. which was pretty pointless so i added before and after images and used mask to tell if deforestation occurred and accounting for if trees grew back it wouldn’t just kill system, i added cot functional, and llm was overthinking but i;ve been working on that lately. im in the home stretch for shipping all i want to do is expand where it scans, and chunking the scans so it doesn’t use too many resources, and possibly upgrading to a database instead of json? ill do that in ship #2 as it’ll add more bands and more. but im gonna widen scanning. at mini um. also just identified a bottle neck with my permit tester so ill fix that as well its messing with llm.
Devlog 12: last devlog before i ship! This was mostly bug fixing and polishing. I finally tracked down an issue where the model was outputting 0.0. At first I thought the model itself was broken, but it turned out I was double normalizing the Google Earth Engine test data. After fixing that (and retraining the model), accuracy improved quite a bit. I also realized that green ≠ forest and overall more confidence.The permit querying system also had problems. I originally trusted gemini(clanker) because I couldn’t make sense of the IBAMA(its in portuguese) data, but that ended up sending me down a debugging forever. Even after fixing it, the ML still wasnt perfect, so i added a mask(as seen in img 3)and even after retraining the model i noticed the mask was random globs and lines, after 4 hours of trying to debug it was a few things: the model just isn’t meant for it as an u-net and i thought subtracting the two predictions would work but didn’t, so i added threshold, a bit more accurate but not good enough, missed a ton, what really fixed i t was averaging after sigamoid, binary opening and closing, and a big fix for the models accuracy(before threshold-ing) was fixing the payload, i used the wrong cords in payload so the image wasn’t correct. after all of that i finally fixed the prediction! features i added and fixed:chain of thought, damage %, some frontend overhauls(as you can see), and more. refined prompt for agent, dynamic scanning(no longer hard coded), and chunking for memory. that’s all(all i remember at least)!
no more ai css: i re did a lot of the css(colors, some padding, highlights and size) and a good bit of the js(the ai made the skeleton but i changed it for my use so you’ll see bits of it with patterns i did still use ai for the base) + redid the python script that ai made for the reasoning steps for agent, removed unused parts from frontend and minor stuff. less than 30% is js even assuming its all ai made but i did redo it. Only parts ai coded is the sql script, a few lines in docker correcting my mistakes, and some of the js helping me out. Also i added some stuff so scheduling should actually work i noticed there was nothing queued in the logs before hand. back to next ship i made a script to collect me a dataset with both satellites gotta figure out how to label forest vs not forest, and once that’s done ill re do frontend from scratch or ill make it soley an api maybe ill do both either way big changes for ship 2 and no more slop
Ships:
I made an U-net Sentile-2 satellite powered illegal deforestation watch, with agentic legality reasoning. it uses a custom U-net model made in pytorch, Celery for task queues and scheduling, react frontend and fastapi backend. Some challenges which were a lot were spaghetti code base in beginning, model prediction issues, setting up Google Earth Engine, and a lot of model issues, from the original not being confident and MOST accurate, to even after retraining having issues, dataset issues, and just docker in general as I never tested till i got on nest. Im proud of the pivot i made early on, the model getting even better, and a over all challanging and fun ship. Plans for ship #2: i want to retrain model with better sampling and skip connections, Sentinle-1 support, cleaning up frontend a bit more, more regions, and agentic alerting....
|
1792878684.5849473
|
1793742684.5849473
|
|
33419
|
My Little Blooms by @nokira | Stardance
|
nokira
|
1
|
28.0
|
279
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-26T16:19:47Z", "hours": 28.0, "multiplier": 10.02, "payout": 279, "blessing": "neutral", "text": "A little gardening game built with Phaser. Plant seeds, water them to keep them healthy and watch them grow until ready to be harvested. Try to not drown or wither your plants or they will die and no profit will be made! Also look out for bugs! They will make your plant die if you don’t catch them. Features Plant, water, and harvest your flowers Each plant has its own water needs and grow time Plants can wither, drown, or die if you don't take care of them Bugs show up now and then, catch them for bonus coins Unlock more vases as you earn coins Sell your harvested flowers for some profit How to Play Open the Plant Selection panel and pick a flower to plant. Click an empty vase to plant it. Keep an eye on your plant. If it needs water, click it and hit the water button. Once it's fully grown, harvest it to add it to your inventory. Sell your harvested flowers from the Inventory panel to earn coins. Use your coins to unlock new vases and plant even more flowers.", "repo": "https://github.com/n0kira/MyLittleBlooms", "demo": "https://n0kira.github.io/MyLittleBlooms/"}]...
|
[{"post_id": 35281, "ts": "202 [{"post_id": 35281, "ts": "2026-07-26T16:19:00Z", "hours": 0.6206, "text": "Devlog #10 First ship!! Hello guys!! Thank you so much for all the support shown in the previous devlogs! Today I am shipping the first version to hopefully get some feedback about the gameplay so that I can work on more features and fix any bug if they happen. Bye bye!!!"}, {"post_id": 34706, "ts": "2026-07-25T17:07:16Z", "hours": 0.6103, "text": "Devlog #9 More Sound! 🎵🎵 Hello!!! Once again THANK YOU ALL SO MUCH FOR THE SUPPORT. The last devlogs got so many likes and some nice comments and I’m really happy to see it Today I didn’t have much time so I only were able to add some more sounds to the game, for example UI interactions like opening the menus or selecting a plant, also added sounds for all the different notifications. In the videos you can see and hear most of them! I hope I can work more in the upcoming days and deliver better features. If anyone has suggestions for new features or improvements I will be more than happy to hear then, so please comment! Byee!! :D"}, {"post_id": 34264, "ts": "2026-07-24T20:19:56Z", "hours": 3.5444, "text": "Devlog #8 Alerts and Sounds! 🔔🎵 Hey hey!! First of all thank you all for the support on my last devlog!! So, today I worked on making the gameplay feel more alive and engaging. To do so I added some alerts/notifications that appear in some situations: Exclamation mark, this means that there is a bug on your vase! Click on the bug to eliminate it Harvest tool, this means the plant is ready to be harvested Watering can, this means the plant doesn’t have enough water and will die in 3 days if not taken care of Also, I added the sounds! Here is a list of all the current ones: New day, a bell will be heard to indicate the new day Unlocking a vase Removing a bug, a squish will indicate that the bug is been removed Planting, sound of dirt being moved around Harvesting, a noise that to me sounded like a scythe cutting some grass Selling, sound of a coin Watering, sound of water dropping from a can/tool Background music, two tracks looping in the background All the sounds were taken from Pixabay . Oh! And one more thing I did was reworking the information panel, so now you will be able to see the water range for each plant and the plant’s status. The status are: Healthy, everything is okay! Dead, :( the plant is now dead… nothing can be done Withering, the plant is out of water!! Act fast! Drowning, bro… you put too much water, if it’s not that much, it will fix itself in the upcoming day, but if not, the plant is doomed :( Infested, A BUG! KILL IT NOW Tomorrow I will probably add UI sounds and fully playtest the game to see what stuff needs balancing. If anyone wants to test the game, this is the link , the README is empty but will be done in the upcoming days with a full description of all the events and plants. Thank you for reading this!! Byeee! :) :)"}, {"post_id": 33489, "ts": "2026-07-23T14:10:09Z", "hours": 1.2969, "text": "Devlog #7 New Art! 🥀🐞 Soo today I was planning on just doing the dead version of each plant, but I didn’t stop there! I also came up with the idea of introducing bugs. I was thinking of making that on your plants a bug could appear and you would have to remove it by clicking on it. For each day the bug stays on the plant, it will count as unhealthy and will die if not taken care of! That’s all for today, not much but all I could do Byeee!!"}, {"post_id": 33027, "ts": "2026-07-22T16:08:46Z", "hours": 2.7175, "text": "Devlog #6 Even more art ! Hii!! Today I didn’t touch my IDE and just drew some more. I spent some time doing the water tool image again and also did the harvest tool image. Then I did the background landscape! I’m quite happy for how it turned out but I may adjust it a little in the future. Also ignore the sky which I haven’t done, so for the time being it will stay light blue, but I was thinking if possible to make it a gradient to look better, and also wanted to implement a day/night cycle. But all of this will come in the future, maybe. Byeee!! :)"}, {"post_id": 32608, "ts": "2026-07-21T21:49:19Z", "hours": 3.2258, "text": "Devlog #5 Title ! Sooo idk what to say anymore, it is SO DIFFICULT to draw something, and I spend a lot of time doing it but never get the perfect look I want. But for today I’ve done enough. I am still finishing the background but I made the UI a little bit better. Also I fixed some minor bugs like plants not saving the isDead status resulting in never dying plants when refreshing the page. I know that there are still some bugs, especially with images, but I will fix everything tomorrow, hopefully! Bye!!! :)"}, {"post_id": 32000, "ts": "2026-07-20T20:50:51Z", "hours": 2.7517, "text": "Devlog #4 Drawing day! Today I spend most of the time logged, drawing my background since that sketch is really really bad. So I started with drawing the floor as some stone tiles and made the railing in wood. I still need to add some colors to both, especially for shadows and minor details but for today that’s it! Also I made the day 3 minutes long and you can’t advance manually anymore. Oh and I added growth stages to the plants, so the image of the plants will change according to its growth status. If anyone read this and has suggestions on anything, the art or the logic, please share them! I am really open and always happy to hear them :) Thanks for reading! Byeee :D"}, {"post_id": 31419, "ts": "2026-07-19T19:28:46Z", "hours": 4.0044, "text": "Devlog #3 Improvements and art??!? Hii!!! Today I implemented the last two features for a complete gameplay loop, prices for the plants, and unlockable vases. Also, i drew some art for the plants, which I kinda like for being my first time drawing, ever, also I made the view of the balcony but this is just a placeholder for reference, it will not look like this in the end. Does anyone like it? If anyone has suggestions on how to improve or what to add I am more than happy to hear them!! Byeee! :)"}, {"post_id": 30764, "ts": "2026-07-18T16:48:05Z", "hours": 5.3036, "text": "Devlog #2 Gameplay loop done Hello hello!! Today I managed to get the main gameplay loop working , you can plant one of the three types of plants in one of the vases, you water them and advance until they are grow, then you can harvest them and sell them using the inventory. Another thing I have done is changing the layout. Last devlog the plant information were in a little popup right under the selected plant, but now I placed it in a dedicated panel to the right which allows for much more text to be displayed, but it’s still not the definitive position maybe. Last thing I added is LocalStorage so now all information, coins , days , plants , each plant status , are all saved and loaded on refresh so even if early, no data is lost. – Next thing I will is probably add the price for each plant , then I wanted to make the vases purchasable and then allow for the position of the vases to be changed. Once I feel like the main gameplay is done I will then spend time drawing all the art needed, each plant, the UI and the game space. Byeee!! :))"}, {"post_id": 30163, "ts": "2026-07-17T14:52:58Z", "hours": 3.9522, "text": "Devlog #1 New Game!! Hello!!! Since I have done the WarioWare mission on Godot I wanted to try and make my own game , and I had a cool idea, a basic game were you had to plant flowers and other kind of plants on your balcony, and each day you took care of them until fully grown and ready to be sold for coins which allow to buy new seeds. I originally spent 2 hours trying to do this on Godot and get a prototype working, but around the 2 hours mark I got stuck when making GUI, since I was having quite some problems. Other than that I actually found the UI of Godot not my style and somewhat confusing, so I decided to switch . I looked around for other game engines but I couldn’t find the right one for me, so I just decided to do that in JavaScript. After some more time I found phaser a framework which I am now using to make my game. I’m still learning it so even tho I spent another 2 hours on it, I achieved just the first part of my gameplay, showing plants (which are squares at the moment) on the screen and their stats when clicking on one. Probably I will do some more work later today but for now this is all I got!! :))"}]...
|
Title: My Little Blooms by @nokira | Stardance
De Title: My Little Blooms by @nokira | Stardance
Devlogs:
Devlog #1 New Game!! Hello!!! Since I have done the WarioWare mission on Godot I wanted to try and make my own game , and I had a cool idea, a basic game were you had to plant flowers and other kind of plants on your balcony, and each day you took care of them until fully grown and ready to be sold for coins which allow to buy new seeds. I originally spent 2 hours trying to do this on Godot and get a prototype working, but around the 2 hours mark I got stuck when making GUI, since I was having quite some problems. Other than that I actually found the UI of Godot not my style and somewhat confusing, so I decided to switch . I looked around for other game engines but I couldn’t find the right one for me, so I just decided to do that in JavaScript. After some more time I found phaser a framework which I am now using to make my game. I’m still learning it so even tho I spent another 2 hours on it, I achieved just the first part of my gameplay, showing plants (which are squares at the moment) on the screen and their stats when clicking on one. Probably I will do some more work later today but for now this is all I got!! :))
Devlog #2 Gameplay loop done Hello hello!! Today I managed to get the main gameplay loop working , you can plant one of the three types of plants in one of the vases, you water them and advance until they are grow, then you can harvest them and sell them using the inventory. Another thing I have done is changing the layout. Last devlog the plant information were in a little popup right under the selected plant, but now I placed it in a dedicated panel to the right which allows for much more text to be displayed, but it’s still not the definitive position maybe. Last thing I added is LocalStorage so now all information, coins , days , plants , each plant status , are all saved and loaded on refresh so even if early, no data is lost. – Next thing I will is probably add the price for each plant , then I wanted to make the vases purchasable and then allow for the position of the vases to be changed. Once I feel like the main gameplay is done I will then spend time drawing all the art needed, each plant, the UI and the game space. Byeee!! :))
Devlog #3 Improvements and art??!? Hii!!! Today I implemented the last two features for a complete gameplay loop, prices for the plants, and unlockable vases. Also, i drew some art for the plants, which I kinda like for being my first time drawing, ever, also I made the view of the balcony but this is just a placeholder for reference, it will not look like this in the end. Does anyone like it? If anyone has suggestions on how to improve or what to add I am more than happy to hear them!! Byeee! :)
Devlog #4 Drawing day! Today I spend most of the time logged, drawing my background since that sketch is really really bad. So I started with drawing the floor as some stone tiles and made the railing in wood. I still need to add some colors to both, especially for shadows and minor details but for today that’s it! Also I made the day 3 minutes long and you can’t advance manually anymore. Oh and I added growth stages to the plants, so the image of the plants will change according to its growth status. If anyone read this and has suggestions on anything, the art or the logic, please share them! I am really open and always happy to hear them :) Thanks for reading! Byeee :D
Devlog #5 Title ! Sooo idk what to say anymore, it is SO DIFFICULT to draw something, and I spend a lot of time doing it but never get the perfect look I want. But for today I’ve done enough. I am still finishing the background but I made the UI a little bit better. Also I fixed some minor bugs like plants not saving the isDead status resulting in never dying plants when refreshing the page. I know that there are still some bugs, especially with images, but I will fix everything tomorrow, hopefully! Bye!!! :)
Devlog #6 Even more art ! Hii!! Today I didn’t touch my IDE and just drew some more. I spent some time doing the water tool image again and also did the harvest tool image. Then I did the background landscape! I’m quite happy for how it turned out but I may adjust it a little in the future. Also ignore the sky which I haven’t done, so for the time being it will stay light blue, but I was thinking if possible to make it a gradient to look better, and also wanted to implement a day/night cycle. But all of this will come in the future, maybe. Byeee!! :)
Devlog #7 New Art! 🥀🐞 Soo today I was planning on just doing the dead version of each plant, but I didn’t stop there! I also came up with the idea of introducing bugs. I was thinking of making that on your plants a bug could appear and you would have to remove it by clicking on it. For each day the bug stays on the plant, it will count as unhealthy and will die if not taken care of! That’s all for today, not much but all I could do Byeee!!
Devlog #8 Alerts and Sounds! 🔔🎵 Hey hey!! First of all thank you all for the support on my last devlog!! So, today I worked on making the gameplay feel more alive and engaging. To do so I added some alerts/notifications that appear in some situations: Exclamation mark, this means that there is a bug on your vase! Click on the bug to eliminate it Harvest tool, this means the plant is ready to be harvested Watering can, this means the plant doesn’t have enough water and will die in 3 days if not taken care of Also, I added the sounds! Here is a list of all the current ones: New day, a bell will be heard to indicate the new day Unlocking a vase Removing a bug, a squish will indicate that the bug is been removed Planting, sound of dirt being moved around Harvesting, a noise that to me sounded like a scythe cutting some grass Selling, sound of a coin Watering, sound of water dropping from a can/tool Background music, two tracks looping in the background All the sounds were taken from Pixabay . Oh! And one more thing I did was reworking the information panel, so now you will be able to see the water range for each plant and the plant’s status. The status are: Healthy, everything is okay! Dead, :( the plant is now dead… nothing can be done Withering, the plant is out of water!! Act fast! Drowning, bro… you put too much water, if it’s not that much, it will fix itself in the upcoming day, but if not, the plant is doomed :( Infested, A BUG! KILL IT NOW Tomorrow I will probably add UI sounds and fully playtest the game to see what stuff needs balancing. If anyone wants to test the game, this is the link , the README is empty but will be done in the upcoming days with a full description of all the events and plants. Thank you for reading this!! Byeee! :) :)
Devlog #9 More Sound! 🎵🎵 Hello!!! Once again THANK YOU ALL SO MUCH FOR THE SUPPORT. The last devlogs got so many likes and some nice comments and I’m really happy to see it Today I didn’t have much time so I only were able to add some more sounds to the game, for example UI interactions like opening the menus or selecting a plant, also added sounds for all the different notifications. In the videos you can see and hear most of them! I hope I can work more in the upcoming days and deliver better features. If anyone has suggestions for new features or improvements I will be more than happy to hear then, so please comment! Byee!! :D
Devlog #10 First ship!! Hello guys!! Thank you so much for all the support shown in the previous devlogs! Today I am shipping the first version to hopefully get some feedback about the gameplay so that I can work on more features and fix any bug if they happen. Bye bye!!!
Ships:
A little gardening game built with Phaser. Plant seeds, water them to keep them healthy and watch them grow until ready to be harvested. Try to not drown or wither your plants or they will die and no profit will be made! Also look out for bugs! They will make your plant die if you don’t catch them. Features Plant, water, and harvest your flowers Each plant has its own water needs and grow time Plants can wither, drown, or die if you don't take care of them Bugs show up now and then, catch them for bonus coins Unlock more vases as you earn coins Sell your harvested flowers for some profit How to Play Open the Plant Selection panel and pick a flower to plant. Click an empty vase to plant it. Keep an eye on your plant. If it needs water, click it and hit the water button. Once it's fully grown, harvest it to add it to your inventory. Sell your harvested flowers from the Inventory panel to earn coins. Use your coins to unlock new vases and plant even more flowers....
|
1793238658.1798913
|
1793325058.1798913
|
|
34928
|
M.I.S.E (Milorad Interactive Slides Engine) by @No M.I.S.E (Milorad Interactive Slides Engine) by @Nolan-L-from-Milorad | Stardance...
|
Nolan-L-from-Milorad
|
1
|
28.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-22T22:50:45Z", "hours": 28.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Oh my goodness! I did it I actually put this glorious pot of spaghetti together and was able to make a (limited but) real engine! M.I.S.E. or the Milorad Interactive Slides Engine is an engine for creating simple visual novels using a config file and slide files that contain MSC (Milorad SCript) that can point to backgrounds and images and make characters say things, allow users to make decisions about where they want the story to go all to create an effectively bad version of Ren’py, but still I MADE IT! it was quite a journey to make this game engine whole finding and fixing so many bugs, figuring out how to parse and read files line-by-line and not read out-of-bounds and crash the game. I feel even all the little things like getting f11 fullscreen to work take a bit of troubleshooting I’m so lucky to have a friend who can draw characters for me <3 I took the background pictures a year or so ago on my Nikon D3200 in the botanic gardens Go try it out! ( Try project -> ) and then follow the instructions on the release to play on your OS! (or microsoft’s if you are on windows hehe >:3)", "repo": "https://gitlab.com/miloradceo/milorad-interactive-slides-engine", "demo": "https://gitlab.com/miloradceo/milorad-interactive-slides-engine/-/releases/v0.1.0"}]...
|
[{"post_id": 81902, "ts": "202 [{"post_id": 81902, "ts": "2026-10-22T22:19:42Z", "hours": 2.7428, "text": "Many more small bugfixes (and big ones) and little features just to make M.I.S.E. feel presentable and nice to play in and use. I also tried to compile for WASM but failed because of linker errors far beyond my comprehension. Luckily I was able to cross-compile for WindOwOs even though I am on linux but though was unable to make a pre-compiled version for mac because macOS demands that all apps must be apple-approved though I was able to put together some commands that can just be pasted into the terminal to run the game. I made a release in the gitlab repo that includes the Linux and Windows pre-built execs and demo game. it also includes the terminal commands to run on macOS"}, {"post_id": 78491, "ts": "2026-10-10T23:20:35Z", "hours": 1.1789, "text": "Just working on bugtesting and minor fixes and feeling out how what I’ve built and trying to optimise stuff, trying to get rid of all the compiler warnings (the auto one got rid of 12) and I got rid of like 9 with the help of the godly rust compiler . I’m also making a demo vn for the ship and I put in a bunch of nice pictures I took"}, {"post_id": 77948, "ts": "2026-10-08T22:24:58Z", "hours": 1.5053, "text": "I have done a lot of minor cleaning up work Like: fixing menu spacing correcting background scaling and made a gitlab repository of like an hour of frikkking with git WHY IS GIT SO CONFUSING IT’S LIKE TRYING TO FIGURE OUT SEGFAULTS IN C++ yeah the menus are heaps better now initially to save time I just made left-centred text 20px from the left edge, but now I do it as a fraction of the screen’s width to make it scale with text size better fixing background scaling was a little odd to do but I figured it out - the issue was that I was assuming the picture was a 1:1 square instead of the actual resolution of the image."}, {"post_id": 72046, "ts": "2026-09-22T01:53:55Z", "hours": 2.2422, "text": "It certainly took a while but I have functional saving! It saves the game’s state with what slide it is on and some other things too. There was no lack of challenges making this, getting the image to save and load was one of the biggest things, figuring out when to load and save it and accounting for there not being a save there and preventing crashes took the most time Next, I button this project up and ship it! (or get distracted)"}, {"post_id": 69867, "ts": "2026-09-17T23:21:32Z", "hours": 2.1, "text": "I’ve started working on a in-game pause menu that will allow you to quit, save and load your game I’ve also added a bunch of functions and stuff to make my code a bit cleaner it’s been quite easy doing just menu stuff just takes a while trying to line everything up nicely. I’ve also added a checkbox for fullscreen in the settings."}, {"post_id": 67786, "ts": "2026-09-14T01:06:07Z", "hours": 0.5347, "text": "I’ve done a super duper cool quit animation for M.I.S.E. where the window scales down and gets smaller whence you close thy gayme I am also working on a demo game that ships with M.I.S.E. that describes the software and gives a small demo story"}, {"post_id": 65780, "ts": "2026-09-11T04:46:55Z", "hours": 1.8044, "text": "Quit menu and config file toggleable text gradient for the menu and text box. Text gradient using config file was pretty easy as it’s just true / false. Quit menu didn’t take too long as it’s just a box that says yes / no when you click Quit on the main menu."}, {"post_id": 52747, "ts": "2026-08-23T02:33:53Z", "hours": 2.1347, "text": "I procrastinated trying to get the gradients look look smoother with random noise, ended up removing it because it was drawing like 700,000 pixels with RNG and made the menu run at like 3 - 10 fps lol. I also added a credits part of the main menu that reads out of ./data/credits.txt and displays the credits on screen, the slider from the last devlog has competition now!"}, {"post_id": 39845, "ts": "2026-08-03T03:15:29Z", "hours": 1.8086, "text": "I now have made text appear on screen like it’s being printed out, making that really threw up a fight because of newlines taking up two characters in an array and only listing as one (I think) that has lead to me counting every \\n in the text and compansating for it. I have made a settings menu for setting the text speed with the world’s worst slider"}, {"post_id": 37442, "ts": "2026-07-30T05:56:14Z", "hours": 2.2256, "text": "trying my best to get characters showing up on screen, it has been surprisingly difficult as I have to load in each character, expression and what the expression is titled, I then have to match the right one to the one that is requested in the text input in the slide file almost there though :3"}, {"post_id": 34977, "ts": "2026-07-26T03:30:28Z", "hours": 0.4947, "text": "got an options menu going! for example clicking Option One sends you to slide 1 and clicking Option Two sends you to slide 2, both what is displayed on-screen and what slide it sends you to are configurable using the slide .txt file now I just have to make it look nice :/"}, {"post_id": 34932, "ts": "2026-07-26T01:31:33Z", "hours": 0.6436, "text": "kinda funny not really needed but makes everything look so much nicer (see code snippet), almost got the selection UI going to!"}, {"post_id": 34309, "ts": "2026-07-24T21:59:59Z", "hours": 0.4467, "text": "finally got multiple text within a slide working, I’m now starting on a selector that lets the user choose how they want to continue the story UI coming in the next devlog"}, {"post_id": 33819, "ts": "2026-07-24T01:55:26Z", "hours": 2.8561, "text": "Much pain… almost got lots of text and multiple text going it works but resets to the start every time you try to go to the next slide then once it goes back you go through it again then lets you continue by one more slide :("}, {"post_id": 31981, "ts": "2026-07-20T20:20:02Z", "hours": 1.5064, "text": "I have made the menu UI a bit nicer and added proper image cropping for backgrounds instead of just stretching them, I also now have the starts of a UI for the in game text box"}, {"post_id": 30026, "ts": "2026-07-17T08:45:46Z", "hours": 1.7794, "text": "Much news! I have added loading text, characters from a slide file and a title and background for the main menu, file decoding is surprisingly easy once you get the hang of it and learn that you must never read out-of-bounds!"}, {"post_id": 28713, "ts": "2026-07-15T04:15:40Z", "hours": 1.5383, "text": "just starting to work on my visual novel engine, so much file reading! I have a config file that set window width and height and provides a list of slide files, each slide will contain dialogue, backgrounds, foreground images and other stuff"}]...
|
Title: M.I.S.E (Milorad Interactive Slides Engine) Title: M.I.S.E (Milorad Interactive Slides Engine) by @Nolan-L-from-Milorad | Stardance
Devlogs:
just starting to work on my visual novel engine, so much file reading! I have a config file that set window width and height and provides a list of slide files, each slide will contain dialogue, backgrounds, foreground images and other stuff
Much news! I have added loading text, characters from a slide file and a title and background for the main menu, file decoding is surprisingly easy once you get the hang of it and learn that you must never read out-of-bounds!
I have made the menu UI a bit nicer and added proper image cropping for backgrounds instead of just stretching them, I also now have the starts of a UI for the in game text box
Much pain… almost got lots of text and multiple text going it works but resets to the start every time you try to go to the next slide then once it goes back you go through it again then lets you continue by one more slide :(
finally got multiple text within a slide working, I’m now starting on a selector that lets the user choose how they want to continue the story UI coming in the next devlog
kinda funny not really needed but makes everything look so much nicer (see code snippet), almost got the selection UI going to!
got an options menu going! for example clicking Option One sends you to slide 1 and clicking Option Two sends you to slide 2, both what is displayed on-screen and what slide it sends you to are configurable using the slide .txt file now I just have to make it look nice :/
trying my best to get characters showing up on screen, it has been surprisingly difficult as I have to load in each character, expression and what the expression is titled, I then have to match the right one to the one that is requested in the text input in the slide file almost there though :3
I now have made text appear on screen like it’s being printed out, making that really threw up a fight because of newlines taking up two characters in an array and only listing as one (I think) that has lead to me counting every \n in the text and compansating for it. I have made a settings menu for setting the text speed with the world’s worst slider
I procrastinated trying to get the gradients look look smoother with random noise, ended up removing it because it was drawing like 700,000 pixels with RNG and made the menu run at like 3 - 10 fps lol. I also added a credits part of the main menu that reads out of ./data/credits.txt and displays the credits on screen, the slider from the last devlog has competition now!
Quit menu and config file toggleable text gradient for the menu and text box. Text gradient using config file was pretty easy as it’s just true / false. Quit menu didn’t take too long as it’s just a box that says yes / no when you click Quit on the main menu.
I’ve done a super duper cool quit animation for M.I.S.E. where the window scales down and gets smaller whence you close thy gayme I am also working on a demo game that ships with M.I.S.E. that describes the software and gives a small demo story
I’ve started working on a in-game pause menu that will allow you to quit, save and load your game I’ve also added a bunch of functions and stuff to make my code a bit cleaner it’s been quite easy doing just menu stuff just takes a while trying to line everything up nicely. I’ve also added a checkbox for fullscreen in the settings.
It certainly took a while but I have functional saving! It saves the game’s state with what slide it is on and some other things too. There was no lack of challenges making this, getting the image to save and load was one of the biggest things, figuring out when to load and save it and accounting for there not being a save there and preventing crashes took the most time Next, I button this project up and ship it! (or get distracted)
I have done a lot of minor cleaning up work Like: fixing menu spacing correcting background scaling and made a gitlab repository of like an hour of frikkking with git WHY IS GIT SO CONFUSING IT’S LIKE TRYING TO FIGURE OUT SEGFAULTS IN C++ yeah the menus are heaps better now initially to save time I just made left-centred text 20px from the left edge, but now I do it as a fraction of the screen’s width to make it scale with text size better fixing background scaling was a little odd to do but I figured it out - the issue was that I was assuming the picture was a 1:1 square instead of the actual resolution of the image.
Just working on bugtesting and minor fixes and feeling out how what I’ve built and trying to optimise stuff, trying to get rid of all the compiler warnings (the auto one got rid of 12) and I got rid of like 9 with the help of the godly rust compiler . I’m also making a demo vn for the ship and I put in a bunch of nice pictures I took
Many more small bugfixes (and big ones) and little features just to make M.I.S.E. feel presentable and nice to play in and use. I also tried to compile for WASM but failed because of linker errors far beyond my comprehension. Luckily I was able to cross-compile for WindOwOs even though I am on linux but though was unable to make a pre-compiled version for mac because macOS demands that all apps must be apple-approved though I was able to put together some commands that can just be pasted into the terminal to run the game. I made a release in the gitlab repo that includes the Linux and Windows pre-built execs and demo game. it also includes the terminal commands to run on macOS
Ships:
Oh my goodness! I did it I actually put this glorious pot of spaghetti together and was able to make a (limited but) real engine! M.I.S.E. or the Milorad Interactive Slides Engine is an engine for creating simple visual novels using a config file and slide files that contain MSC (Milorad SCript) that can point to backgrounds and images and make characters say things, allow users to make decisions about where they want the story to go all to create an effectively bad version of Ren’py, but still I MADE IT! it was quite a journey to make this game engine whole finding and fixing so many bugs, figuring out how to parse and read files line-by-line and not read out-of-bounds and crash the game. I feel even all the little things like getting f11 fullscreen to work take a bit of troubleshooting I’m so lucky to have a friend who can draw characters for me <3 I took the background pictures a year or so ago on my Nikon D3200 in the botanic gardens Go try it out! ( Try project -> ) and then follow the instructions on the release to play on your OS! (or microsoft’s if you are on windows hehe >:3)...
|
1793199161.4909072
|
1793285561.4909072
|
|
35569
|
Vinland Saga OS by @AriDev24 | Stardance
|
AriDev24
|
2
|
28.0
|
15
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-21T18:50:08Z", "hours": 3.0, "multiplier": 5.24, "payout": 15, "blessing": "neutral", "text": "(Vinland Saga OS v0.6) is a Web-Based OS inspired by my favourite anime, Vinland Saga. It’s a Japanese animated series. It’s my first-ever Hack Club project and a first-ever fully working website. I Know there are still many bugs but I tried my best and I will improve it more. To be honest, I learned so many new things with this project, especially JavaScript. I have never written JS myself before, but you made me use it on my own. This is my WebOS 2 so in this WebOS 2 version i added and improved many things : The first thing I added is to open the gallery image in full screen when clicked. The second and best feature i added is to save whatever you write in notes so that every time you open it you can see and intract with your saved notes. The third and the fun feature i added is a random quote generator. I converted my single quote card to this quote generator. The fourth feature i added is that when you open the OS, you have to open the gallery manually like an app. I did this only with Gallery because it did not feel good to me as a widget on the screen. Soo Thats It, Bye…", "repo": "https://github.com/aridev24/Vinland-Saga-OS", "demo": "https://vinland-saga-os.vercel.app/"}, {"ship_num": 2, "ts": "2026-09-20T20:13:22Z", "hours": 25.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Vinland Saga OS is a Web-Based OS inspired by my favourite anime, Vinland Saga. It’s a Japanese animated series. It’s my first-ever Hack Club project and a first-ever fully working website. I Know there are still many bugs but I tried my best and I will improve it more. To be honest, I learned so many new things with this project, especially JavaScript. I have never written JS myself before, but you made me use it on my own without AI, yea but i will be honest with you: there was a lil hidden bug in some 2 lines of JS, I tried my best to debug but at the end i asked copilot to tell me why this code is not working and it told me, the lines were swapped with each other, so then I debugged it.", "repo": "https://github.com/aridev24/Vinland-Saga-OS", "demo": "https://vinland-saga-os.vercel.app/"}]...
|
[{"post_id": 71889, "ts": "202 [{"post_id": 71889, "ts": "2026-09-21T18:19:14Z", "hours": 2.8381, "text": "(Vinland Saga OS v0.7) Added 4 new features. Today, in this, i added many new features to enhance the user experience, The first thing I added is to open the gallery image in full screen when clicked. The second and best feature i added is to save whatever you write in notes so that every time you open it you can see and intract with your saved notes. The third and the fun feature i added is a random quote generator. I converted my single quote card to this quote generator. The fourth feature i added is that when you open the OS, you have to open the gallery manually like an app. I did this only with Gallery because it did not feel good to me as a widget on the screen. Soo Thats It, Bye…"}, {"post_id": 71191, "ts": "2026-09-20T12:42:32Z", "hours": 1.2247, "text": "(Vinland Saga OS v0.6) Final polish has been completed and now i am finally shipping it. In the final polish i added Vikings Norse symbols to the OS and added more images to the gallery. Finding and editing the Norse symbols to match the theme took me too much time. Soo tell if something can be improved. BTW I’m going to ship it…😄"}, {"post_id": 70534, "ts": "2026-09-19T10:19:21Z", "hours": 8.4975, "text": "Finally Its Time To ship (Vinland Saga OS v0.5) Completed This Time i added many new features like opening and closing the windows/Apps, Actually my app are like widgets on screen, i also a pre loading screen, added more images to gallery and made a new beautiful clock widget. Now Its time for Just a final polish and Doneee…"}, {"post_id": 69306, "ts": "2026-09-16T19:31:34Z", "hours": 3.6294, "text": "Late Night New Features Update to Vinland Saga OS Today before adding new feature i thought to modify theme colors because they were looking boring so first i change the color, and then i started to add more features to my OS but i dont have any new feature idea after searching and thinking here and there i thought to add a song and a gallery, so first i downloaded a Vinland Saga opening song and some images stolen from Pinterest 😅, and start building the features and here the results are in front of you…(Please let me know I you like it😥) Now tomorrow i will add more features"}, {"post_id": 68762, "ts": "2026-09-15T18:14:07Z", "hours": 5.0728, "text": "Sooo… Finally New Features Added To Vinland Saga OS the most dangerous part was literally JavaScript 😭 Added a Side bar for apps icon and add a image at the top of it to make it look badass. Add a Quick Notes App that took me two Daaays because to make it draggable, open and close using java script ( Its my fist time of using Java script 😭) Still Adding new Apps and features 😉 (oh and also added a custom knife cursor but you cant see it in the screenshot)"}, {"post_id": 67937, "ts": "2026-09-14T07:59:02Z", "hours": 2.8878, "text": "Oh Finally now its far better than before after searching hours i found a perfect background for my OS, and i also changed the background color and text color of the pannels to make it look much better and match the theme. The most difficult part was choosing the theme color that will look perfect with the background and ancient theme, currently its not haiving much features but soon it will look greate with useful features (Maybe😅) oh and i fogot to tell that i also make some windows movable anywhere on screen"}, {"post_id": 67291, "ts": "2026-09-13T11:20:26Z", "hours": 3.7989, "text": "A Gift For Anime Fans, Building a Vinland Saga Web-Based OS"}]...
|
Title: Vinland Saga OS by @AriDev24 | Stardance
D Title: Vinland Saga OS by @AriDev24 | Stardance
Devlogs:
A Gift For Anime Fans, Building a Vinland Saga Web-Based OS
Oh Finally now its far better than before after searching hours i found a perfect background for my OS, and i also changed the background color and text color of the pannels to make it look much better and match the theme. The most difficult part was choosing the theme color that will look perfect with the background and ancient theme, currently its not haiving much features but soon it will look greate with useful features (Maybe😅) oh and i fogot to tell that i also make some windows movable anywhere on screen
Sooo… Finally New Features Added To Vinland Saga OS the most dangerous part was literally JavaScript 😭 Added a Side bar for apps icon and add a image at the top of it to make it look badass. Add a Quick Notes App that took me two Daaays because to make it draggable, open and close using java script ( Its my fist time of using Java script 😭) Still Adding new Apps and features 😉 (oh and also added a custom knife cursor but you cant see it in the screenshot)
Late Night New Features Update to Vinland Saga OS Today before adding new feature i thought to modify theme colors because they were looking boring so first i change the color, and then i started to add more features to my OS but i dont have any new feature idea after searching and thinking here and there i thought to add a song and a gallery, so first i downloaded a Vinland Saga opening song and some images stolen from Pinterest 😅, and start building the features and here the results are in front of you…(Please let me know I you like it😥) Now tomorrow i will add more features
Finally Its Time To ship (Vinland Saga OS v0.5) Completed This Time i added many new features like opening and closing the windows/Apps, Actually my app are like widgets on screen, i also a pre loading screen, added more images to gallery and made a new beautiful clock widget. Now Its time for Just a final polish and Doneee…
(Vinland Saga OS v0.6) Final polish has been completed and now i am finally shipping it. In the final polish i added Vikings Norse symbols to the OS and added more images to the gallery. Finding and editing the Norse symbols to match the theme took me too much time. Soo tell if something can be improved. BTW I’m going to ship it…😄
(Vinland Saga OS v0.7) Added 4 new features. Today, in this, i added many new features to enhance the user experience, The first thing I added is to open the gallery image in full screen when clicked. The second and best feature i added is to save whatever you write in notes so that every time you open it you can see and intract with your saved notes. The third and the fun feature i added is a random quote generator. I converted my single quote card to this quote generator. The fourth feature i added is that when you open the OS, you have to open the gallery manually like an app. I did this only with Gallery because it did not feel good to me as a widget on the screen. Soo Thats It, Bye…
Ships:
Vinland Saga OS is a Web-Based OS inspired by my favourite anime, Vinland Saga. It’s a Japanese animated series. It’s my first-ever Hack Club project and a first-ever fully working website. I Know there are still many bugs but I tried my best and I will improve it more. To be honest, I learned so many new things with this project, especially JavaScript. I have never written JS myself before, but you made me use it on my own without AI, yea but i will be honest with you: there was a lil hidden bug in some 2 lines of JS, I tried my best to debug but at the end i asked copilot to tell me why this code is not working and it told me, the lines were swapped with each other, so then I debugged it.
(Vinland Saga OS v0.6) is a Web-Based OS inspired by my favourite anime, Vinland Saga. It’s a Japanese animated series. It’s my first-ever Hack Club project and a first-ever fully working website. I Know there are still many bugs but I tried my best and I will improve it more. To be honest, I learned so many new things with this project, especially JavaScript. I have never written JS myself before, but you made me use it on my own. This is my WebOS 2 so in this WebOS 2 version i added and improved many things : The first thing I added is to open the gallery image in full screen when clicked. The second and best feature i added is to save whatever you write in notes so that every time you open it you can see and intract with your saved notes. The third and the fun feature i added is a random quote generator. I converted my single quote card to this quote generator. The fourth feature i added is that when you open the OS, you have to open the gallery manually like an app. I did this only with Gallery because it did not feel good to me as a widget on the screen. Soo Thats It, Bye…...
|
1793148806.3609617
|
1793235206.3609617
|
|
39608
|
Tide by @aahish_abbani | Stardance
|
aahish_abbani
|
1
|
28.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-26T20:04:51Z", "hours": 28.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Hi! I built Tide! Tide is like a smart ring that tracks your health metrics, and you can even play games with it. What I really wanted to start with this was that I really wanted an aura ring or something like that, but those are really expensive, right? I kind of searched other things online, and one thing I came across was this one guy’s video on how he reprogrammed a smart ring from China. I ordered my own one from China for about $4, and it’s really cool. I was planning to just use it normally, but on that guy’s video, he also said he reprogrammed it, so I wanted to do something really similar. Once I got it, before even downloading the app, I tried learning how to reprogram it, but all the Bluetooth protocols and stuff are very complicated. There’s this one public repository called Pulse Loop, which I owe credits to because they helped me make the Bluetooth protocol from a random ring company actually work. Tide now can track my health metrics and my sleep, and it’s really simple because it’s just a ring that sits on my finger. I don’t have to keep charging it, and the battery life is really good. I did not make the ring. I owe all credits for the ring to the manufacturer, and I did not design all the Bluetooth protocols. I owe that to Pulse Loop. Other than that, the app itself was where I got a lot of inspiration. I wanted to make a really cool UI, so it’s like a liquid glass UI built in Swift, and all of your data stays on your phone, so there’s no backend for it. It’s a very simple app. It just uses Bluetooth and connects to the ring, and if you want, you can use it. Please do not copy my exact code. You can change it up, but you can have the same Bluetooth protocols, etc. I hope you enjoy the project. I was not able to upload a demo video because it is a hardware project, and you really can’t test the app without an actual Tide ring. I’ve just uploaded a video from Google Drive if you want to see if you want to demo it. If you have any questions, please ask me. If anything else, please ask me. That’s been a lot of time making this. It was definitely one of my harder projects, but it was definitely worth all the effort, in my opinion. I also think that this is something that I’m going to keep using, and I want to make sure that if anybody else wants to use something similar, you can also buy the ring. I’ll give the reference points at the bottom. Credits to: https://github.com/saksham2001/PulseLoopiOS for the BLE protocol and credits to: https://www.aliexpress.us/item/3256810466598469.html?spm=a2g0o.order_list.order_list_main.5.5fc31802tqizAE&gatewayAdapt=glo2usa for the ring! please check it out if you want your own I highly reccomend its cheap and a fun experiment!", "repo": "https://github.com/kinghightech/TideRing", "demo": "https://testflight.apple.com/join/1ynCTqg7"}]...
|
[{"post_id": 35412, "ts": "202 [{"post_id": 35412, "ts": "2026-07-26T19:57:30Z", "hours": 0.26, "text": "I just added a readme! and to view the project here: https://drive.google.com/file/d/1FE4pImKOTG73ROXCR34uQhTx6w0KB6_0/view?usp=sharing"}, {"post_id": 35248, "ts": "2026-07-26T15:30:58Z", "hours": 4.0753, "text": "Another thing thats sick, since the motion tracker on the watch can work for a camera I decided to make a game for it check it out!"}, {"post_id": 34972, "ts": "2026-07-26T03:19:48Z", "hours": 2.5078, "text": "I figured out something really cool the ring has motion tracking so if i tap my fingers together it can do stuff, on the current app it comes with it can take photos so I spent some time implementing something similar on my app."}, {"post_id": 34805, "ts": "2026-07-25T20:03:11Z", "hours": 4.9353, "text": "I added a new section to view your vitals i added more after comparing with my apple watch, took a long time to tuning it correctly so the data would be accurate and good, I also wanted to add some more vitals like the oura ring but most are just estimates although they work fairly well"}, {"post_id": 34567, "ts": "2026-07-25T12:14:46Z", "hours": 16.0744, "text": "im building tide. I bought a cheap smart ring from china and now im building my own health tracking app from that ring. It measures my heart rate and steps and calories!"}]...
|
Title: Tide by @aahish_abbani | Stardance
Devlogs Title: Tide by @aahish_abbani | Stardance
Devlogs:
im building tide. I bought a cheap smart ring from china and now im building my own health tracking app from that ring. It measures my heart rate and steps and calories!
I added a new section to view your vitals i added more after comparing with my apple watch, took a long time to tuning it correctly so the data would be accurate and good, I also wanted to add some more vitals like the oura ring but most are just estimates although they work fairly well
I figured out something really cool the ring has motion tracking so if i tap my fingers together it can do stuff, on the current app it comes with it can take photos so I spent some time implementing something similar on my app.
Another thing thats sick, since the motion tracker on the watch can work for a camera I decided to make a game for it check it out!
I just added a readme! and to view the project here: https://drive.google.com/file/d/1FE4pImKOTG73ROXCR34uQhTx6w0KB6_0/view?usp=sharing
Ships:
Hi! I built Tide! Tide is like a smart ring that tracks your health metrics, and you can even play games with it. What I really wanted to start with this was that I really wanted an aura ring or something like that, but those are really expensive, right? I kind of searched other things online, and one thing I came across was this one guy’s video on how he reprogrammed a smart ring from China. I ordered my own one from China for about $4, and it’s really cool. I was planning to just use it normally, but on that guy’s video, he also said he reprogrammed it, so I wanted to do something really similar. Once I got it, before even downloading the app, I tried learning how to reprogram it, but all the Bluetooth protocols and stuff are very complicated. There’s this one public repository called Pulse Loop, which I owe credits to because they helped me make the Bluetooth protocol from a random ring company actually work. Tide now can track my health metrics and my sleep, and it’s really simple because it’s just a ring that sits on my finger. I don’t have to keep charging it, and the battery life is really good. I did not make the ring. I owe all credits for the ring to the manufacturer, and I did not design all the Bluetooth protocols. I owe that to Pulse Loop. Other than that, the app itself was where I got a lot of inspiration. I wanted to make a really cool UI, so it’s like a liquid glass UI built in Swift, and all of your data stays on your phone, so there’s no backend for it. It’s a very simple app. It just uses Bluetooth and connects to the ring, and if you want, you can use it. Please do not copy my exact code. You can change it up, but you can have the same Bluetooth protocols, etc. I hope you enjoy the project. I was not able to upload a demo video because it is a hardware project, and you really can’t test the app without an actual Tide ring. I’ve just uploaded a video from Google Drive if you want to see if you want to demo it. If you have any questions, please ask me. If anything else, please ask me. That’s been a lot of time making this. It was definitely one of my harder projects, but it was definitely worth all the effort, in my opinion. I also think that this is something that I’m going to keep using, and I want to make sure that if anybody else wants to use something similar, you can also buy the ring. I’ll give the reference points at the bottom. Credits to: https://github.com/saksham2001/PulseLoopiOS for the BLE protocol and credits to: https://www.aliexpress.us/item/3256810466598469.html?spm=a2g0o.order_list.order_list_main.5.5fc31802tqizAE&gatewayAdapt=glo2usa for the ring! please check it out if you want your own I highly reccomend its cheap and a fun experiment!...
|
1792882139.2317204
|
1793746139.2317204
|
|
39908
|
FFvert by @Nahida4479 | Stardance
|
Nahida4479
|
2
|
28.0
|
400
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-27T02:46:36Z", "hours": 17.0, "multiplier": 15.92, "payout": 279, "blessing": "neutral", "text": "Hello everyone, I have finished my FFvert project. In this project I built a system based on ffmpeg , @imgly/background-removal-node , and youtube-dl-exec , which enables converting images and videos, removing image backgrounds, and downloading YouTube videos. Conversion video system For this system I use the ffmpeg package. This system supports 6 video and 1 audio formats: gif mov mp3 mp4 avi mkv wmv The supported resolutions: 4K, 1440p, 1080p, 720p, 480p I’m proud that the GIF format additionally generates a color palette for better color accuracy. Conversion image system This system is based on the ffmpeg package. Supports 7 image formats: png jpg webp bmp tiff ico qoi Remove background system This is a special option in the FFvert panel when you upload an image. The background removal system is based on the @imgly/background-removal-node package. The AI model isnet_fp16 is downloaded from IMG.LY servers and runs locally. YouTube Downloader system The YouTube Downloader is based on the youtube-dl-exec package. The file is downloaded and converted using FFmpeg for the user-selected format and resolution. Supported 12 formats: MP4 MP3 MOV GIF MKV WEBM AAC M4A FLAC WAV OPUS VORBIS The supported resolutions: 1440p, 1080p, 720p, 480p, 360p, 240p, 144p How to use You can try my project at: convert.nahida4479.org If you prefer to run it locally, I have 2 options for you :) You can run the image using a pre-built Docker image. docker pull ghcr.io/nahida4479/ffvert:latest docker run -p 3003:3003 ghcr.io/nahida4479/ffvert:latest or build it yourself git clone https://github.com/Nahida4479/FFvert.git cd FFvert docker build -t ffvert . docker run -p 3003:3003 ffvert Summary I spent a lot of time on this project and thoroughly enjoyed studying CSS and improving my JavaScript skills. I hope you like this project. Good luck with your own projects :)", "repo": "https://github.com/Nahida4479/FFvert/tree/app", "demo": "https://convert.nahida4479.org/"}, {"ship_num": 2, "ts": "2026-08-01T21:15:51Z", "hours": 11.0, "multiplier": 11.3, "payout": 121, "blessing": "neutral", "text": "FFvert is a web app that lets you convert an uploaded file into a different format. I spent a lot of time on the design that was actually where I struggled the most. I’m proud that the conversion system works perfectly, and of the quality of the converted GIFs. My app is live at convert.nahida4479.org, so anyone can try it out.", "repo": "https://github.com/Nahida4479/FFvert/tree/app", "demo": "https://convert.nahida4479.org/"}]...
|
[{"post_id": 55297, "ts": "202 [{"post_id": 55297, "ts": "2026-08-27T01:21:28Z", "hours": 3.6989, "text": "Devlog 12 New Built and published a Docker container on GitHub Added a progress bar for YouTube Downloader Disabled the OK button until the file is ready Adjusted YouTube Downloader GUI for mobile devices Added a 2GB file upload limit to FFvert Updated README.md Docker You can run the image using a pre-built Docker image. docker pull ghcr.io/nahida4479/ffvert:latest docker run -p 3003:3003 ghcr.io/nahida4479/ffvert:latest or build it yourself git clone https://github.com/Nahida4479/FFvert.git cd FFvert docker build -t ffvert . docker run -p 3003:3003 ffvert"}, {"post_id": 54150, "ts": "2026-08-24T23:50:59Z", "hours": 2.6828, "text": "Devlog 11 New Section How to use Change name yt-dlp –> YouTube Downloader Full YouTube video download system YouTube download video system: I use the node package youtube-dl-exec for this system. The file is downloaded by the backend and converted using FFmpeg for the user-selected format. For GIF files FFmpeg generates a special palette for better color accuracy."}, {"post_id": 53452, "ts": "2026-08-24T00:37:39Z", "hours": 2.7008, "text": "Devlog 10 New GUI Text Input (for YouTube video link) Format List Resolution List OK Button Text input: Input where you will paste a YouTube video link. Format list: Supported formats: MP4 , MP3 , MOV , GIF , MKV , WEBM , AAC , M4A , FLAC , WAV , OPUS , VORBIS . Resolution list: Supported resolutions: 1440p , 1080p , 720p , 480p , 360p , 240p , 144p Plans I plan to implement a full video download system based on yt-dlp , with support for both 16:9 and 9:16 video formats."}, {"post_id": 52705, "ts": "2026-08-23T00:12:51Z", "hours": 1.4672, "text": "Devlog 9 New Added background removal system based on @imgly/background-removal-node Added typing animation for text Click or drag video or image file here Changed example files animation to a new color animation"}, {"post_id": 51999, "ts": "2026-08-22T00:38:23Z", "hours": 3.5158, "text": "Devlog 8 New FFvert GUI Added mobile devices support"}, {"post_id": 51361, "ts": "2026-08-20T23:51:37Z", "hours": 1.8914, "text": "Devlog 7 New New supported image files (TIFF, ICO, QOI) Added a CSS animation to the format examples Full image conversion system Automatically detects if you uploaded an image or a video and shows the right options Updated README.md (supported image files) Publishes new Github releases"}, {"post_id": 50654, "ts": "2026-08-19T22:31:54Z", "hours": 1.5422, "text": "Devlog 6 New Added support for uploading images, with format options adapting automatically Unique output file name Default file resolution option Default file resolution system The output file has the same resolution as the input file (for example, a 1920x1080 input produces a 1920x1080 output)"}, {"post_id": 39129, "ts": "2026-08-01T20:52:01Z", "hours": 0.7492, "text": "Final version"}, {"post_id": 39082, "ts": "2026-08-01T19:32:28Z", "hours": 2.7336, "text": "New design"}, {"post_id": 38590, "ts": "2026-08-01T02:14:00Z", "hours": 1.5681, "text": "Add fun fact and high quality GIF system"}, {"post_id": 37856, "ts": "2026-07-30T20:34:54Z", "hours": 4.0483, "text": "New resolution and download systems :)"}, {"post_id": 35323, "ts": "2026-07-26T17:19:03Z", "hours": 1.6556, "text": "Basic convert system"}]...
|
Title: FFvert by @Nahida4479 | Stardance
Devlogs: Title: FFvert by @Nahida4479 | Stardance
Devlogs:
Basic convert system
New resolution and download systems :)
Add fun fact and high quality GIF system
New design
Final version
Devlog 6 New Added support for uploading images, with format options adapting automatically Unique output file name Default file resolution option Default file resolution system The output file has the same resolution as the input file (for example, a 1920x1080 input produces a 1920x1080 output)
Devlog 7 New New supported image files (TIFF, ICO, QOI) Added a CSS animation to the format examples Full image conversion system Automatically detects if you uploaded an image or a video and shows the right options Updated README.md (supported image files) Publishes new Github releases
Devlog 8 New FFvert GUI Added mobile devices support
Devlog 9 New Added background removal system based on @imgly/background-removal-node Added typing animation for text Click or drag video or image file here Changed example files animation to a new color animation
Devlog 10 New GUI Text Input (for YouTube video link) Format List Resolution List OK Button Text input: Input where you will paste a YouTube video link. Format list: Supported formats: MP4 , MP3 , MOV , GIF , MKV , WEBM , AAC , M4A , FLAC , WAV , OPUS , VORBIS . Resolution list: Supported resolutions: 1440p , 1080p , 720p , 480p , 360p , 240p , 144p Plans I plan to implement a full video download system based on yt-dlp , with support for both 16:9 and 9:16 video formats.
Devlog 11 New Section How to use Change name yt-dlp –> YouTube Downloader Full YouTube video download system YouTube download video system: I use the node package youtube-dl-exec for this system. The file is downloaded by the backend and converted using FFmpeg for the user-selected format. For GIF files FFmpeg generates a special palette for better color accuracy.
Devlog 12 New Built and published a Docker container on GitHub Added a progress bar for YouTube Downloader Disabled the OK button until the file is ready Adjusted YouTube Downloader GUI for mobile devices Added a 2GB file upload limit to FFvert Updated README.md Docker You can run the image using a pre-built Docker image. docker pull ghcr.io/nahida4479/ffvert:latest docker run -p 3003:3003 ghcr.io/nahida4479/ffvert:latest or build it yourself git clone https://github.com/Nahida4479/FFvert.git cd FFvert docker build -t ffvert . docker run -p 3003:3003 ffvert
Ships:
FFvert is a web app that lets you convert an uploaded file into a different format. I spent a lot of time on the design that was actually where I struggled the most. I’m proud that the conversion system works perfectly, and of the quality of the converted GIFs. My app is live at convert.nahida4479.org, so anyone can try it out.
Hello everyone, I have finished my FFvert project. In this project I built a system based on ffmpeg , @imgly/background-removal-node , and youtube-dl-exec , which enables converting images and videos, removing image backgrounds, and downloading YouTube videos. Conversion video system For this system I use the ffmpeg package. This system supports 6 video and 1 audio formats: gif mov mp3 mp4 avi mkv wmv The supported resolutions: 4K, 1440p, 1080p, 720p, 480p I’m proud that the GIF format additionally generates a color palette for better color accuracy. Conversion image system This system is based on the ffmpeg package. Supports 7 image formats: png jpg webp bmp tiff ico qoi Remove background system This is a special option in the FFvert panel when you upload an image. The background removal system is based on the @imgly/background-removal-node package. The AI model isnet_fp16 is downloaded from IMG.LY servers and runs locally. YouTube Downloader system The YouTube Downloader is based on the youtube-dl-exec package. The file is downloaded and converted using FFmpeg for the user-selected format and resolution. Supported 12 formats: MP4 MP3 MOV GIF MKV WEBM AAC M4A FLAC WAV OPUS VORBIS The supported resolutions: 1440p, 1080p, 720p, 480p, 360p, 240p, 144p How to use You can try my project at: convert.nahida4479.org If you prefer to run it locally, I have 2 options for you :) You can run the image using a pre-built Docker image. docker pull ghcr.io/nahida4479/ffvert:latest docker run -p 3003:3003 ghcr.io/nahida4479/ffvert:latest or build it yourself git clone https://github.com/Nahida4479/FFvert.git cd FFvert docker build -t ffvert . docker run -p 3003:3003 ffvert Summary I spent a lot of time on this project and thoroughly enjoyed studying CSS and improving my JavaScript skills. I hope you like this project. Good luck with your own projects :)...
|
1793137750.1437008
|
1793224150.1437008
|
|
46793
|
ATLAS by @experimentsoflife | Stardance
|
experimentsoflife
|
0
|
28.0
|
0
|
[]
|
[{"post_id": 76570, "ts": "202 [{"post_id": 76570, "ts": "2026-10-04T00:25:45Z", "hours": 9.9714, "text": "Its been 10 hours since the last devlog, and a lot has changed. Firstly, I changed out my drivetrain from a 4wd with motors that had only 0.2kgcm of torque at 22000 rpm (way too much) to a 2wd with 2 motors that have 12.4kgcm of torque that spin at 100rpm, which is perfect for this robot. This change also prompted a redesign of the whole chassis, which i made and printed out. The next step to this is to wire up my arm, pi, arduino, and battery."}, {"post_id": 56376, "ts": "2026-08-28T03:51:06Z", "hours": 5.6411, "text": "THE ARM WORKS! Update: after another 5 Hours of work, my robotic arm now works extremely smoothly and precisely. No matter where you put an object that is an acceptable size (fits in the claw), if it is in the cameras FOV, the arm can pick it up. It does this using inverse kinematics and trigonometry to calculate the position that each servo needs to be at to grab the object. Below is a video of the robotic arm picking up a light roll of double sided tape (and if the video doesn’t work then a photo):"}, {"post_id": 54230, "ts": "2026-08-25T03:52:40Z", "hours": 7.0183, "text": "Trying to get the robotic arm and object detection to work, so far I have tried to implement a coordinate system so that my camera knows how far away an object is and what the size of it is so that the robotic arm can pick it up precisely. I made a website where you can calibrate the robot and also control the arm manually, the calibration gives you the size of and object and the x y coordinates in mm. it currently uses OpenCV for object recognition."}, {"post_id": 51350, "ts": "2026-08-20T23:33:27Z", "hours": 2.3119, "text": "Update: As required for funding, I made the schematic of the wiring for ATLAS. I started off with no prior knowledge about KiCad or even what a schematic Is, and in 2 hours, built a full schematic, checked it with electrical rules, connections, and all verifications, and now I have a working wiring diagram that will be helpful when building. Below is a picture of my schematic:"}, {"post_id": 50677, "ts": "2026-08-19T23:43:31Z", "hours": 1.1083, "text": "Devlog #2: I made the first version of object recognition with OpenCV on my Raspberry Pi 3B+. The goal of having object recognition on my robot is so that it knows when there is an object that it needs to pick up, and so that it can orient itself to the appropriate position to pick up the object, and pick it up precisely. Below are some pictures of the code that im running and the output:"}, {"post_id": 45812, "ts": "2026-08-12T15:15:11Z", "hours": 1.95, "text": "This is my first design of my autonomous rover, Atlas. In this session, I fully designed V1 of this robot. The chassis of the robot features a 4WD system with Skid-Steering. The drivetrain is powered by 4 seperate 12V motors, geared in a 3:7 ratio using 27 and 63 teeth herringbone gears. The actual base of the robot is made up of 1 flat plate, with a 25x25 grid of 3mm holes, spaced 10mm apart. The goal of this grid system was that the robot should be modular, meaning that you can use the same robot to do multiple things, by designing attachments that you can screw onto the chassis, making it extremely efficient at doing many different tasks. The robot is eventually going to be powered with a Raspberry Pi, controlling 2 arduinos, one for sensor information and another to control motors (drivetrain, servos, etc). The robot is going to use this modular design to mount a 4DoF robotic arm, which will be powered by 4 micro servos, and at it will also use Object Detection powered by the Raspberry-Pi Cam V2. At the end, the robot should be able to autonomously drive around whatever area you put it in, find loose objects on the ground, pick them up, and put them into a fixed location, while avoiding obstacles and ensuring the safety of people/animals around it. This is just a sneak peek at the potential of this robot, and in the future, I hope to make even more out of it. (sorry if this was a little wordy lol)"}]...
|
Title: ATLAS by @experimentsoflife | Stardance
De Title: ATLAS by @experimentsoflife | Stardance
Devlogs:
This is my first design of my autonomous rover, Atlas. In this session, I fully designed V1 of this robot. The chassis of the robot features a 4WD system with Skid-Steering. The drivetrain is powered by 4 seperate 12V motors, geared in a 3:7 ratio using 27 and 63 teeth herringbone gears. The actual base of the robot is made up of 1 flat plate, with a 25x25 grid of 3mm holes, spaced 10mm apart. The goal of this grid system was that the robot should be modular, meaning that you can use the same robot to do multiple things, by designing attachments that you can screw onto the chassis, making it extremely efficient at doing many different tasks. The robot is eventually going to be powered with a Raspberry Pi, controlling 2 arduinos, one for sensor information and another to control motors (drivetrain, servos, etc). The robot is going to use this modular design to mount a 4DoF robotic arm, which will be powered by 4 micro servos, and at it will also use Object Detection powered by the Raspberry-Pi Cam V2. At the end, the robot should be able to autonomously drive around whatever area you put it in, find loose objects on the ground, pick them up, and put them into a fixed location, while avoiding obstacles and ensuring the safety of people/animals around it. This is just a sneak peek at the potential of this robot, and in the future, I hope to make even more out of it. (sorry if this was a little wordy lol)
Devlog #2: I made the first version of object recognition with OpenCV on my Raspberry Pi 3B+. The goal of having object recognition on my robot is so that it knows when there is an object that it needs to pick up, and so that it can orient itself to the appropriate position to pick up the object, and pick it up precisely. Below are some pictures of the code that im running and the output:
Update: As required for funding, I made the schematic of the wiring for ATLAS. I started off with no prior knowledge about KiCad or even what a schematic Is, and in 2 hours, built a full schematic, checked it with electrical rules, connections, and all verifications, and now I have a working wiring diagram that will be helpful when building. Below is a picture of my schematic:
Trying to get the robotic arm and object detection to work, so far I have tried to implement a coordinate system so that my camera knows how far away an object is and what the size of it is so that the robotic arm can pick it up precisely. I made a website where you can calibrate the robot and also control the arm manually, the calibration gives you the size of and object and the x y coordinates in mm. it currently uses OpenCV for object recognition.
THE ARM WORKS! Update: after another 5 Hours of work, my robotic arm now works extremely smoothly and precisely. No matter where you put an object that is an acceptable size (fits in the claw), if it is in the cameras FOV, the arm can pick it up. It does this using inverse kinematics and trigonometry to calculate the position that each servo needs to be at to grab the object. Below is a video of the robotic arm picking up a light roll of double sided tape (and if the video doesn’t work then a photo):
Its been 10 hours since the last devlog, and a lot has changed. Firstly, I changed out my drivetrain from a 4wd with motors that had only 0.2kgcm of torque at 22000 rpm (way too much) to a 2wd with 2 motors that have 12.4kgcm of torque that spin at 100rpm, which is perfect for this robot. This change also prompted a redesign of the whole chassis, which i made and printed out. The next step to this is to wire up my arm, pi, arduino, and battery....
|
1793152176.1700552
|
1793756976.1700552
|
|
51360
|
The "I Don't even Know (IDeK) Game" by The "I Don't even Know (IDeK) Game" by @Synxed | Stardance...
|
Synxed
|
1
|
28.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-24T07:54:49Z", "hours": 28.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I guess this game is ready for its first ship! While it’s not quite in Ship -Shape, It has plenty of cool features that I have spent a LOT of time working on (T^T I hate CSV files SOB). I greatly appreciate feedback, so please leave any issues or suggestions you find in the comments please. I also ask that anyone testing out this project ensure that they have read my README.MD file and have python 3 installed on their laptop/device (I tried running it on a new laptop and got very confused when it didn’t work T^T… Stupid me!). Anyway, thank you for taking the time to read this! (BongoCat is still absent D: Perhaps we will see his return soon… ) -Ta!", "repo": "https://github.com/toosynxed/I-Don-t-even-Know--IDeK--Game", "demo": "https://github.com/toosynxed/I-Don-t-even-Know--IDeK--Game/releases/tag/v1.0"}]...
|
[{"post_id": 73022, "ts": "202 [{"post_id": 73022, "ts": "2026-09-24T07:17:26Z", "hours": 1.0525, "text": "Final Work Before First Ship! Not a lot of work done, mostly just documentation fix-ups and explanations. I did fix up the login/account creation issues between the menu and main files (found when I actually tried to run the entire process instead of just the menu files). So yeah, If you are reading this, please feel free to head to my GitHub project page and download the Pre-Alpha release and follow the instructions in my README.MD file on how to get it working! (BongoCat still not here D: ) -Ta!"}, {"post_id": 71608, "ts": "2026-09-21T04:51:41Z", "hours": 4.9222, "text": "Achievements and Inventory! So, a bit of work has been done, and I might end up just shipping this off as Stardance is coming to a close soon. But here is what has been done! Implemented Bit-wise values/functions for both inventory and achievements for players. Also created a Bit-wise value that tracks if a player has viewed an achievement just yet, not displaying the “NEW” tag after the player has viewed it once. Some more work to come hopefully, but I think I mainly just need to get the central system working so that there is actually a game to play, and not just a whole bunch of features that must manually be toggled inside CSV files to operate anything! Anyways, thanks for reading! (Sorry, ): BongoCat has unfortunately been lost to the ages of storage caps D: ) -Ta !"}, {"post_id": 61162, "ts": "2026-09-03T23:02:04Z", "hours": 10.5028, "text": "I Guess I Fixed It???? IDeK Tbh… What has been done? Created a sorting function that iterates throughout a csv-list using a “shell sorting” (nesting) method (inspired by the YouTube short: https://youtu.be/RDFGkBE2O50?si=yXnJloCW18_o94bB ). Created the visual display of the leaderboard for the terminal game (using the body_text() helper function that I made earlier. Started to try to create a function that takes the integer values that are to be displayed on the leaderboard, and inserts in commas where appropriate: def format_numbers_2(orig): string = str(orig) split_curr = list(string) split_check = list(string) while len(split_curr) > 3: split_curr = split_curr[:-3] split_check.insert(-3,\",\") return \"\".join(split_check) Which only works some of the time… (It still needs a lot of work…) Honestly, I have been strugling with this function, but I think the issue with why I have been unable to get it to work correctly, is because I have not been planning enough around the logic beforehand (Which is my aim going forward). So, what’s next? Pretty much just getting this comma function working, so that the leaderboard display doesn’t look like this! ----------- Welcome, Test User ----------- Cash Leaderboard: 1. four - $21212314.0 2. hill - $5040.0 3. ardangeorge - $5000.0 4. test - $2323.0 5. Ardan George - $502.06 ------------------------------------------ Anyway, thanks for reading! (And don’t forget to say Hi to BongoCat! ) -Ta!"}, {"post_id": 56572, "ts": "2026-08-28T11:51:37Z", "hours": 5.0236, "text": "Brain Implosion Score: 8/10 Honestly, I have not been having much fun lately… Lots of errors for a single function that should be relatively simple! All it needs to do is read each row from a CSV file and order the rows in a list by ascending value for a specific column in the rows. Easy? Right? NO. IT. IS. NOT! This has taken me around 5 hours already! Just to get to a stage where I have finally given up, and have given my AI agent the function and asked it to locate each area that is not working. So, how many areas were there? LIKE 50 MILLION LINES I honestly do not have the brain -width to handle this right now, so I am just going to log my progress and go and vegetate while watching some YouTube now 😭 … Please send some coding help… I need it… (You can check out the menu_terminal.py files on my GitHub under the terminal branch, function: open_leaderboard() ). Don’t forget to say hi to BongoCat! -Ta!"}, {"post_id": 55498, "ts": "2026-08-27T11:53:27Z", "hours": 0.7961, "text": "Bit of an update again! I have ended up switching from just a python Tkinter window version of the command-line game, and instead have switched to a website HTML based version. This will also make it much easier for me to be able to write a lot of the code myself compared to Tkinter. What is my plan going forward? What I think will work best with my coding experience is for me to continue to write in the new features for my game as if they were still in terminal-format, and have AI transform it into the HTML version. This way, I still preserve my originality of ideas and code, but significantly widens the opportunities for further interactivity for my game! Don’t forget to say hi to BongoCat! -Ta! Here is a little snek-pek on the first iteration of the HTML version:"}, {"post_id": 55466, "ts": "2026-08-27T10:21:33Z", "hours": 0.27, "text": "I am beginning to question my sanity… Given the nature of a “stock” market mini-game such as the one in my game, I am beginning to think that perhaps the command-line is not the best place to be interacting with this in. Soooo… I think I’ve gone mad! I am going to start (attempt to at least, might need a bit of AI help ) to port everything across into something like Tkinter… This might go terribly… Say hi to BongoCat! !"}, {"post_id": 55456, "ts": "2026-08-27T09:55:41Z", "hours": 1.0306, "text": "The “Stock” Market Please note that any values or labels in this game are in no way representative of any real-life item, market or currency, and are purely theoretical and random numerical values generated for the sole purpose to be used for this game Creation of the base system: So far, (And it’s been a bit of a struggle), I have begun to lay out the foundations of the “stock” market system for my game, where players can invest in 3 different “risk levels” with differing characteristics to gain (or lose) currency (not yet implemented). I have spent a bit of time on GoodNotes on my iPad, writing out a plan and description of the features and characteristics of the “stock” market, as well as I have begun coding the “market.py” file that will handle the market functions that can be referenced from “main.py”. This has not gone very well , and my progress has slowed. Just the basic functions of the market system are beginning to seem very complex, with a lot of csv retrieval based off conditional statements and checks, calculations performed off specific rows, and logic statements that are making my head hurt! What I have right now: Pretty much, I have created the functions to initialise the 3 different “risk levels” with random values (using random.uniform for float values for cents), and begun the function that causes market changes (will be executing every 3 seconds or so) by calculating changes based off conditions surrounding the previous few market values for each “risk level”. Whilst this may seem simple enough, the need to keep searching the csv file for “risk”-specific rows, is causing my brain to begin imploding I think it is coming along well, but I fear that this will take a decent amount of time to complete just this one function (and then I have to do purchasing and selling ). So please wish me luck D: I hope my brain doesn’t decide to spontaneously combust! Say hi to BongoCat! -Ta!"}, {"post_id": 55393, "ts": "2026-08-27T06:08:37Z", "hours": 0.6569, "text": "Just a quick update on the game: I have just fixed a small bug with the “get” type of the “csv_actions” function that was not accurately looping through all entries to locate the correct row. But that has now been fixed luckily. Also just touched up the “body_text” function (which is the main handler for all the text printing) to accept an option parameter “timing” that can be used in the typewriting effect type to change alter the speed for debug and testing purposes. The function has a default value of 0.5 seconds so that the code will still run as normal if a valid value is not entered into the terminal. (Say hi to BongoCat !) Much more to come! And hopefully some actual game content (maybe a mini simulated stock-market !). -Ta!"}, {"post_id": 54876, "ts": "2026-08-26T02:40:58Z", "hours": 1.0692, "text": "So far, I have now completed the user account creation process for new users, and also added log-in capabilities for users that enter a pre-existing username into the game (uses .lower( ) when checking to minimise accidental account duplication accidents). I have also increased the csv function capabilities, with a new “check” and “get” branch, that supports checking an input to see if it exists in a specific column in any csv, as well as returning a row that has a matching column value that is inputted (is flexible and allows you to modify the input when the function is called to change the scope or target of the location and retrieval) A lot of my functions and processes for my game are now soft-coded, and are very versatile and malleable for different uses going forward with the project, which will continue to be a great benefit for both my coding experience and code readability! Additionally, I have also begun to use ANSI escape sequences in my print statements so that I can utilise font styles. Also, really cool thing this! I found online a python function snippet that actually allowed you to replace your inputted text with hashes or any other character instantly as you type it, allowing me to recreate a sort of privacy guard when users are inputting their passwords to log-in! 🔥 Thanks for reading!"}, {"post_id": 50230, "ts": "2026-08-19T11:38:37Z", "hours": 2.8489, "text": "Initialisation of IDeK! Hmm… It is interesting how the mind works, you begin with one idea… and suddenly find yourself a hour later working on something completely different… This has been me! What began as a project to create a mod for the Steam game: “BongoCat” for a friend turned into a terminal python-based game project! So far, I have started creating the introduction phase/stage of the game, beginning by asking for the user to enter a name, and then has some animations. Initially I was just going to hardcode everything in, including the print statements, but then I thought: “Hey! Why not turn this mini project into a learning experience and try out writing function files that I can use throughout the project by softcoding them!” And I did! What Do I Have Right Now? Aside from “main.py” , there are currently a few other notable files: “functions.py” - which holds the python functions that are used in main, “gen_pass.py” - Which was an AI generated python script to quickly generate 50 random “passwords” from merging a list of words, creating the file: “pass_list.csv” , and lastly, “user_pass.csv” - which serves as a temporary CSV file for storing some user data for the game. Something Really Cool! I ended up falling down into a little bit of a “rabbit-hole” sort of situation here. And spent some time working on expanding my main print function to include a really cool print effect that mimics a typewriter-animation. To do this, I ended up using two nested “ for i in range() ”’s, and a function that runs “os.system(‘clear’)” . The final product? A softcoded function that can be parsed any string or line of text to display with that printing animation! Really cool stuff ngl! And I shall continue to expand the content (hopefully I will actually have something for players to do by next dev-log, but tbh… “I Don’t even Know”"}]...
|
Title: The "I Don't even Know (IDeK) Game& Title: The "I Don't even Know (IDeK) Game" by @Synxed | Stardance
Devlogs:
Initialisation of IDeK! Hmm… It is interesting how the mind works, you begin with one idea… and suddenly find yourself a hour later working on something completely different… This has been me! What began as a project to create a mod for the Steam game: “BongoCat” for a friend turned into a terminal python-based game project! So far, I have started creating the introduction phase/stage of the game, beginning by asking for the user to enter a name, and then has some animations. Initially I was just going to hardcode everything in, including the print statements, but then I thought: “Hey! Why not turn this mini project into a learning experience and try out writing function files that I can use throughout the project by softcoding them!” And I did! What Do I Have Right Now? Aside from “main.py” , there are currently a few other notable files: “functions.py” - which holds the python functions that are used in main, “gen_pass.py” - Which was an AI generated python script to quickly generate 50 random “passwords” from merging a list of words, creating the file: “pass_list.csv” , and lastly, “user_pass.csv” - which serves as a temporary CSV file for storing some user data for the game. Something Really Cool! I ended up falling down into a little bit of a “rabbit-hole” sort of situation here. And spent some time working on expanding my main print function to include a really cool print effect that mimics a typewriter-animation. To do this, I ended up using two nested “ for i in range() ”’s, and a function that runs “os.system(‘clear’)” . The final product? A softcoded function that can be parsed any string or line of text to display with that printing animation! Really cool stuff ngl! And I shall continue to expand the content (hopefully I will actually have something for players to do by next dev-log, but tbh… “I Don’t even Know”
So far, I have now completed the user account creation process for new users, and also added log-in capabilities for users that enter a pre-existing username into the game (uses .lower( ) when checking to minimise accidental account duplication accidents). I have also increased the csv function capabilities, with a new “check” and “get” branch, that supports checking an input to see if it exists in a specific column in any csv, as well as returning a row that has a matching column value that is inputted (is flexible and allows you to modify the input when the function is called to change the scope or target of the location and retrieval) A lot of my functions and processes for my game are now soft-coded, and are very versatile and malleable for different uses going forward with the project, which will continue to be a great benefit for both my coding experience and code readability! Additionally, I have also begun to use ANSI escape sequences in my print statements so that I can utilise font styles. Also, really cool thing this! I found online a python function snippet that actually allowed you to replace your inputted text with hashes or any other character instantly as you type it, allowing me to recreate a sort of privacy guard when users are inputting their passwords to log-in! 🔥 Thanks for reading!
Just a quick update on the game: I have just fixed a small bug with the “get” type of the “csv_actions” function that was not accurately looping through all entries to locate the correct row. But that has now been fixed luckily. Also just touched up the “body_text” function (which is the main handler for all the text printing) to accept an option parameter “timing” that can be used in the typewriting effect type to change alter the speed for debug and testing purposes. The function has a default value of 0.5 seconds so that the code will still run as normal if a valid value is not entered into the terminal. (Say hi to BongoCat !) Much more to come! And hopefully some actual game content (maybe a mini simulated stock-market !). -Ta!
The “Stock” Market Please note that any values or labels in this game are in no way representative of any real-life item, market or currency, and are purely theoretical and random numerical values generated for the sole purpose to be used for this game Creation of the base system: So far, (And it’s been a bit of a struggle), I have begun to lay out the foundations of the “stock” market system for my game, where players can invest in 3 different “risk levels” with differing characteristics to gain (or lose) currency (not yet implemented). I have spent a bit of time on GoodNotes on my iPad, writing out a plan and description of the features and characteristics of the “stock” market, as well as I have begun coding the “market.py” file that will handle the market functions that can be referenced from “main.py”. This has not gone very well , and my progress has slowed. Just the basic functions of the market system are beginning to seem very complex, with a lot of csv retrieval based off conditional statements and checks, calculations performed off specific rows, and logic statements that are making my head hurt! What I have right now: Pretty much, I have created the functions to initialise the 3 different “risk levels” with random values (using random.uniform for float values for cents), and begun the function that causes market changes (will be executing every 3 seconds or so) by calculating changes based off conditions surrounding the previous few market values for each “risk level”. Whilst this may seem simple enough, the need to keep searching the csv file for “risk”-specific rows, is causing my brain to begin imploding I think it is coming along well, but I fear that this will take a decent amount of time to complete just this one function (and then I have to do purchasing and selling ). So please wish me luck D: I hope my brain doesn’t decide to spontaneously combust! Say hi to BongoCat! -Ta!
I am beginning to question my sanity… Given the nature of a “stock” market mini-game such as the one in my game, I am beginning to think that perhaps the command-line is not the best place to be interacting with this in. Soooo… I think I’ve gone mad! I am going to start (attempt to at least, might need a bit of AI help ) to port everything across into something like Tkinter… This might go terribly… Say hi to BongoCat! !
Bit of an update again! I have ended up switching from just a python Tkinter window version of the command-line game, and instead have switched to a website HTML based version. This will also make it much easier for me to be able to write a lot of the code myself compared to Tkinter. What is my plan going forward? What I think will work best with my coding experience is for me to continue to write in the new features for my game as if they were still in terminal-format, and have AI transform it into the HTML version. This way, I still preserve my originality of ideas and code, but significantly widens the opportunities for further interactivity for my game! Don’t forget to say hi to BongoCat! -Ta! Here is a little snek-pek on the first iteration of the HTML version:
Brain Implosion Score: 8/10 Honestly, I have not been having much fun lately… Lots of errors for a single function that should be relatively simple! All it needs to do is read each row from a CSV file and order the rows in a list by ascending value for a specific column in the rows. Easy? Right? NO. IT. IS. NOT! This has taken me around 5 hours already! Just to get to a stage where I have finally given up, and have given my AI agent the function and asked it to locate each area that is not working. So, how many areas were there? LIKE 50 MILLION LINES I honestly do not have the brain -width to handle this right now, so I am just going to log my progress and go and vegetate while watching some YouTube now 😭 … Please send some coding help… I need it… (You can check out the menu_terminal.py files on my GitHub under the terminal branch, function: open_leaderboard() ). Don’t forget to say hi to BongoCat! -Ta!
I Guess I Fixed It???? IDeK Tbh… What has been done? Created a sorting function that iterates throughout a csv-list using a “shell sorting” (nesting) method (inspired by the YouTube short: https://youtu.be/RDFGkBE2O50?si=yXnJloCW18_o94bB ). Created the visual display of the leaderboard for the terminal game (using the body_text() helper function that I made earlier. Started to try to create a function that takes the integer values that are to be displayed on the leaderboard, and inserts in commas where appropriate: def format_numbers_2(orig): string = str(orig) split_curr = list(string) split_check = list(string) while len(split_curr) > 3: split_curr = split_curr[:-3] split_check.insert(-3,",") return "".join(split_check) Which only works some of the time… (It still needs a lot of work…) Honestly, I have been strugling with this function, but I think the issue with why I have been unable to get it to work correctly, is because I have not been planning enough around the logic beforehand (Which is my aim going forward). So, what’s next? Pretty much just getting this comma function working, so that the leaderboard display doesn’t look like this! ----------- Welcome, Test User ----------- Cash Leaderboard: 1. four - $21212314.0 2. hill - $5040.0 3. ardangeorge - $5000.0 4. test - $2323.0 5. Ardan George - $502.06 ------------------------------------------ Anyway, thanks for reading! (And don’t forget to say Hi to BongoCat! ) -Ta!
Achievements and Inventory! So, a bit of work has been done, and I might end up just shipping this off as Stardance is coming to a close soon. But here is what has been done! Implemented Bit-wise values/functions for both inventory and achievements for players. Also created a Bit-wise value that tracks if a player has viewed an achievement just yet, not displaying the “NEW” tag after the player has viewed it once. Some more work to come hopefully, but I think I mainly just need to get the central system working so that there is actually a game to play, and not just a whole bunch of features that must manually be toggled inside CSV files to operate anything! Anyways, thanks for reading! (Sorry, ): BongoCat has unfortunately been lost to the ages of storage caps D: ) -Ta !
Final Work Before First Ship! Not a lot of work done, mostly just documentation fix-ups and explanations. I did fix up the login/account creation issues between the menu and main files (found when I actually tried to run the entire process instead of just the menu files). So yeah, If you are reading this, please feel free to head to my GitHub project page and download the Pre-Alpha release and follow the instructions in my README.MD file on how to get it working! (BongoCat still not here D: ) -Ta!
Ships:
I guess this game is ready for its first ship! While it’s not quite in Ship -Shape, It has plenty of cool features that I have spent a LOT of time working on (T^T I hate CSV files SOB). I greatly appreciate feedback, so please leave any issues or suggestions you find in the comments please. I also ask that anyone testing out this project ensure that they have read my README.MD file and have python 3 installed on their laptop/device (I tried running it on a new laptop and got very confused when it didn’t work T^T… Stupid me!). Anyway, thank you for taking the time to read this! (BongoCat is still absent D: Perhaps we will see his return soon… ) -Ta!...
|
1793152118.8128815
|
1793238518.8128815
|
|
56787
|
Dama MarketPlace by @suchaz7539 | Stardance
|
suchaz7539
|
1
|
28.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-10T15:39:52Z", "hours": 28.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "An ecommerce website", "repo": "https://github.com/surafel7539/Dama", "demo": "https://dama-ach4-alpha.vercel.app/"}]...
|
[{"post_id": 59633, "ts": "202 [{"post_id": 59633, "ts": "2026-09-01T15:35:08Z", "hours": 0.3342, "text": "Yesterday I began the marketplace page and today i finished it"}, {"post_id": 58960, "ts": "2026-08-31T14:57:44Z", "hours": 27.3186, "text": "An Ecommerce Website called Dama"}]...
|
Title: Dama MarketPlace by @suchaz7539 | Stardance Title: Dama MarketPlace by @suchaz7539 | Stardance
Devlogs:
An Ecommerce Website called Dama
Yesterday I began the marketplace page and today i finished it
Ships:
An ecommerce website...
|
1793152158.1248705
|
1793238558.1248705
|
|
58973
|
VOID - SIGNAL by @PYROMANIAC | Stardance
|
PYROMANIAC
|
1
|
28.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-19T18:36:35Z", "hours": 28.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "VOID//SIGNAL — Final Devlog After way too many hours of coding, debugging, testing, breaking things, fixing them, and occasionally staring at the compiler wondering what I did to deserve this, I finally finished VOID//SIGNAL . What started as a simple idea turned into a much bigger project than I expected. I wanted to make a small sci-fi game about a robot trying to survive on a damaged ship, collect resources, solve problems, and eventually find a way home. Somewhere along the way, that turned into crafting, weapons, enemies, puzzles, multiple areas, hazards, salvage, terminals, dialogue, and an unhealthy amount of C++. So… what did I actually make? VOID//SIGNAL is a small sci-fi survival/exploration game built in C++ with raylib . You play as a robot whose crewship has been destroyed, leaving you stranded on a damaged ship. Your goal is to explore the different sections of the ship, recover useful resources, repair systems, deal with hazards and corrupted drones, solve puzzles, and eventually work your way toward escaping. The game has several different areas to explore, each with its own problems and objectives. There are also different resources to collect, crafting systems, weapons, salvage, environmental hazards, and interactive systems that make the ship feel less like a collection of rooms and more like something that is actively falling apart around you. I also wanted the game to have its own visual identity without relying heavily on external assets. A lot of the visuals are drawn directly through raylib, including the rooms, interfaces, effects, lights, and other environmental details. Basically, I wanted to see how far I could push a relatively simple setup and turn it into an actual game. What was challenging? Probably the hardest part wasn’t making one individual feature. It was making all of the features work together without destroying each other . At first, adding something new was pretty straightforward. Then the project got bigger. Suddenly, adding a crafting system meant thinking about inventory and resources. Adding weapons meant connecting those resources to another system. Adding enemies meant dealing with combat and waves. Adding rooms meant making sure objectives and interactions worked correctly in each area. And then C++ would occasionally remind me that I had become too confident. There were definitely moments where I would fix one error, compile the game, discover another error, fix that one, compile again, and somehow create a completely different problem. The crafting system was one of the bigger challenges because I ended up separating it into two different systems: the robot’s own crafting system and the dedicated weapons table. I wanted the two systems to feel different instead of having one giant menu that tried to do everything. The enemy wave system was another challenge because it had to work alongside the rest of the gameplay instead of just spawning enemies randomly and calling it a day. And then there were all the smaller things that nobody really notices when they work correctly: interactions, room transitions, objectives, UI, hazards, resource tracking, puzzles, game states, and making sure the player can’t accidentally break the entire game by pressing something at the wrong time. What am I most proud of? Honestly, the biggest thing I’m proud of is that I actually finished it . It’s very easy to start a game project and keep adding ideas forever. At some point, I had to stop thinking about what else I could add and actually make everything I already had work together. I’m also proud of how much of the game was made from scratch. I didn’t start with a giant game engine or a huge collection of assets. I built the systems myself and used raylib to handle the actual rendering and game functionality. I’m especially happy with how the different mechanics ended up connecting. Exploration leads", "repo": "https://github.com/PYROMANIAC404/void-signal", "demo": "https://github.com/PYROMANIAC404/void-signal/releases"}]...
|
[{"post_id": 70760, "ts": "202 [{"post_id": 70760, "ts": "2026-09-19T18:33:01Z", "hours": 2.9461, "text": "Today I finally finished VOID//SIGNAL, which honestly feels pretty crazy considering how much the project grew from the original idea.I spent a lot of time polishing the game and tying the different systems together, including the crafting, weapons, salvage, enemy waves, puzzles, and exploration and a lot of the game’s mechanics are starting to come together.First, I separated the two crafting systems. The robot has its own crafting system for general resources and upgrades, while weapons have a dedicated system through the weapons table. This gives each system a clearer purpose and makes the weapons table feel like an actual part of the gameplay.From there, I worked on weapon crafting and the enemy wave system to make combat more engaging. This also ties into the salvage system, since collecting resources now has a more direct purpose beyond just picking things up.I also started improving how salvage looks in the game. Instead of having resources randomly sitting around, I want them to feel more like actual loot crates that you discover while exploring the ship.Of course, none of this came without a few C++ errors along the way (i hate my life). A decent part of the session was basically fixing one thing, testing it, accidentally breaking something else, and then fixing that too.Overall, VOID//SIGNAL is starting to feel much more like the game I originally imagined. There’s still plenty to build, but the systems are beginning to connect instead of feeling like separate features."}, {"post_id": 69801, "ts": "2026-09-17T20:14:38Z", "hours": 8.4786, "text": "FINALLY made my very first game sprite (it was hell) its basicaly an electrical arc for an environmental hazard damage umm. made the salvage loot like like an actual crate instead of a rectangular blob , gave him a wrench as a starting tool , added more mini games thinking about a sytem where u combine parts to upgrade ur weaponary"}, {"post_id": 68123, "ts": "2026-09-14T15:40:14Z", "hours": 6.5892, "text": "new game mechanic plus , level , so i added this thingy where when u stand in steam it slowly drains ur energy and corrodes the players body , there smol mini game where press SPACE to fix the pipes and fix the steam leakage , also a wire puzzle where u have to match the correct wires, to unlock the door past the steam yay!!!"}, {"post_id": 66115, "ts": "2026-09-11T18:40:35Z", "hours": 3.5806, "text": "gave him a independence (yay! guns :D) 1.pistol 2.shotgun 3.pulse rifle , he can use the core of a spare reactor to charge up his shots at the cost of some energy also im planning on and upgrade system where u can mod ur weapons by salvaging parts from ur enemies , the water treatment plant lvl got a big softlocked but fixed it somehow heheh . pls dont judge the artstyle im working on it after i finish the game mechanics , ill try my best"}, {"post_id": 64851, "ts": "2026-09-09T15:24:27Z", "hours": 4.4808, "text": "devlog 2 , yay!!! 07 can now walk , added 5 levels , added terminals where u play a puzzle and unlock doors, current issues: somehow the movements of 07 are bugging (will fix) also hes going out of bounds T-T , for the next devlog imma make like a water treatment plant where im planning on a new mechanic based on corrsion of metal surfaces, also a new new reactor room , the games assets need to be reworked also"}, {"post_id": 62975, "ts": "2026-09-06T15:26:48Z", "hours": 1.9953, "text": "#devlog 1 #hi! im working a puzzle game callled void signal where u go around as a tiny repair/cleaning? robot called -07 and is tasked with finding the last signal left by the crewship he was on which as sadly destroyed by a black hole so on day 1 i made the start screen and made the background animation with stars twinkl and the black hole rotate? i think"}]...
|
Title: VOID - SIGNAL by @PYROMANIAC | Stardance
D Title: VOID - SIGNAL by @PYROMANIAC | Stardance
Devlogs:
#devlog 1 #hi! im working a puzzle game callled void signal where u go around as a tiny repair/cleaning? robot called -07 and is tasked with finding the last signal left by the crewship he was on which as sadly destroyed by a black hole so on day 1 i made the start screen and made the background animation with stars twinkl and the black hole rotate? i think
devlog 2 , yay!!! 07 can now walk , added 5 levels , added terminals where u play a puzzle and unlock doors, current issues: somehow the movements of 07 are bugging (will fix) also hes going out of bounds T-T , for the next devlog imma make like a water treatment plant where im planning on a new mechanic based on corrsion of metal surfaces, also a new new reactor room , the games assets need to be reworked also
gave him a independence (yay! guns :D) 1.pistol 2.shotgun 3.pulse rifle , he can use the core of a spare reactor to charge up his shots at the cost of some energy also im planning on and upgrade system where u can mod ur weapons by salvaging parts from ur enemies , the water treatment plant lvl got a big softlocked but fixed it somehow heheh . pls dont judge the artstyle im working on it after i finish the game mechanics , ill try my best
new game mechanic plus , level , so i added this thingy where when u stand in steam it slowly drains ur energy and corrodes the players body , there smol mini game where press SPACE to fix the pipes and fix the steam leakage , also a wire puzzle where u have to match the correct wires, to unlock the door past the steam yay!!!
FINALLY made my very first game sprite (it was hell) its basicaly an electrical arc for an environmental hazard damage umm. made the salvage loot like like an actual crate instead of a rectangular blob , gave him a wrench as a starting tool , added more mini games thinking about a sytem where u combine parts to upgrade ur weaponary
Today I finally finished VOID//SIGNAL, which honestly feels pretty crazy considering how much the project grew from the original idea.I spent a lot of time polishing the game and tying the different systems together, including the crafting, weapons, salvage, enemy waves, puzzles, and exploration and a lot of the game’s mechanics are starting to come together.First, I separated the two crafting systems. The robot has its own crafting system for general resources and upgrades, while weapons have a dedicated system through the weapons table. This gives each system a clearer purpose and makes the weapons table feel like an actual part of the gameplay.From there, I worked on weapon crafting and the enemy wave system to make combat more engaging. This also ties into the salvage system, since collecting resources now has a more direct purpose beyond just picking things up.I also started improving how salvage looks in the game. Instead of having resources randomly sitting around, I want them to feel more like actual loot crates that you discover while exploring the ship.Of course, none of this came without a few C++ errors along the way (i hate my life). A decent part of the session was basically fixing one thing, testing it, accidentally breaking something else, and then fixing that too.Overall, VOID//SIGNAL is starting to feel much more like the game I originally imagined. There’s still plenty to build, but the systems are beginning to connect instead of feeling like separate features.
Ships:
VOID//SIGNAL — Final Devlog After way too many hours of coding, debugging, testing, breaking things, fixing them, and occasionally staring at the compiler wondering what I did to deserve this, I finally finished VOID//SIGNAL . What started as a simple idea turned into a much bigger project than I expected. I wanted to make a small sci-fi game about a robot trying to survive on a damaged ship, collect resources, solve problems, and eventually find a way home. Somewhere along the way, that turned into crafting, weapons, enemies, puzzles, multiple areas, hazards, salvage, terminals, dialogue, and an unhealthy amount of C++. So… what did I actually make? VOID//SIGNAL is a small sci-fi survival/exploration game built in C++ with raylib . You play as a robot whose crewship has been destroyed, leaving you stranded on a damaged ship. Your goal is to explore the different sections of the ship, recover useful resources, repair systems, deal with hazards and corrupted drones, solve puzzles, and eventually work your way toward escaping. The game has several different areas to explore, each with its own problems and objectives. There are also different resources to collect, crafting systems, weapons, salvage, environmental hazards, and interactive systems that make the ship feel less like a collection of rooms and more like something that is actively falling apart around you. I also wanted the game to have its own visual identity without relying heavily on external assets. A lot of the visuals are drawn directly through raylib, including the rooms, interfaces, effects, lights, and other environmental details. Basically, I wanted to see how far I could push a relatively simple setup and turn it into an actual game. What was challenging? Probably the hardest part wasn’t making one individual feature. It was making all of the features work together without destroying each other . At first, adding something new was pretty straightforward. Then the project got bigger. Suddenly, adding a crafting system meant thinking about inventory and resources. Adding weapons meant connecting those resources to another system. Adding enemies meant dealing with combat and waves. Adding rooms meant making sure objectives and interactions worked correctly in each area. And then C++ would occasionally remind me that I had become too confident. There were definitely moments where I would fix one error, compile the game, discover another error, fix that one, compile again, and somehow create a completely different problem. The crafting system was one of the bigger challenges because I ended up separating it into two different systems: the robot’s own crafting system and the dedicated weapons table. I wanted the two systems to feel different instead of having one giant menu that tried to do everything. The enemy wave system was another challenge because it had to work alongside the rest of the gameplay instead of just spawning enemies randomly and calling it a day. And then there were all the smaller things that nobody really notices when they work correctly: interactions, room transitions, objectives, UI, hazards, resource tracking, puzzles, game states, and making sure the player can’t accidentally break the entire game by pressing something at the wrong time. What am I most proud of? Honestly, the biggest thing I’m proud of is that I actually finished it . It’s very easy to start a game project and keep adding ideas forever. At some point, I had to stop thinking about what else I could add and actually make everything I already had work together. I’m also proud of how much of the game was made from scratch. I didn’t start with a giant game engine or a huge collection of assets. I built the systems myself and used raylib to handle the actual rendering and game functionality. I’m especially happy with how the different mechanics ended up connecting. Exploration leads...
|
1792958079.720077
|
1793822079.720077
|
|
69058
|
Parallax by @rishaansd | Stardance
|
rishaansd
|
1
|
28.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-26T04:25:39Z", "hours": 28.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Parallax Physics Tutor Parallax is a physics tutor for students interested in learning the AP Physics 1 curriculum. The app uses a gamified approach, including a simulator to learn projectile motion and a boss battle at the end of the unit, to make physics an enjoyable science class. The app currently has the first unit of AP Physics 1: Kinematics. Use the app You can play it at https://parallax-physics.vercel.app/ You can watch the DEMO video at https://www.youtube.com/watch?v=TFTet9wMoyI Why I built it I am a student interested in the STEM field. One class I hope to take is AP Physics C. In order to prepare for AP Physics C, I decided to take the AP Physics 1 course. A major gap I noticed in learning AP Physics 1 is the passive lessons from traditional textbooks and online courses. I often find myself reading long textbook chapters or watching several videos, leaving me bored with physics. I know that physics can involve simulations and labs, so I wanted to focus on the fun aspects of physics while still letting students prepare for the AP Physics 1 exam efficiently. Features Galaxy map: All of the lessons, including the final boss battle, are organized into a galaxy map. The map is shaped in a parabola, like a projectile’s path. 5 lessons: Each lesson is structured with multiple cards: a hook, concept, check questions, and a lesson summary. Some lessons have more concept and check cards than others. Students earn stars depending on the number of mistakes they make on the check cards. A student can earn a minimum of 1 star and a maximum of 3 stars on a completed lesson. Progression and high scores: Once the user completes a lesson and returns to the home screen, their highest number of stars for that lesson is displayed below the lesson button. This encourages students to redo lessons and review concepts in order to get a perfect star score. The lesson then unlocks the next lesson and lights up the path to it. Projectile simulator: Once a student unlocks lesson 1.5, they gain access to the simulator for projectile motion. They can use the simulator to experiment with different angles and speeds of a projectile to see how it affects the path the projectile takes. Boss battle: The boss battle unlocks after all 5 lessons are completed. Each correct answer earns one shot at the boss, and the student has to set the speed and angle of the projectile to hit the boss. A player defeats the boss when it is hit 10 times. The player can also have a highscore on the boss by answering questions 3 in a row and avoiding mistakes! Saved progress: The user’s stars are saved in their device’s browser. It will continue to stay saved as long as the user uses the exact same device. (This is also a next step!) Biggest challenge The biggest challenge I faced was completing the animation for the projectile motion simulator. My first attempt was to use a for loop that incremented time by 1 every time to keep the ball moving. But when it ran, the ball teleported to the end of the screen. I learned that JavaScript has a function called requestAnimationFrame which continues making a chain until requestAnimationFrame is not called. When I called requestAnimationFrame(drawFrame());, the page crashed with the error “Maximum call stack size exceeded” because drawFrame called itself instantly, forever. I learned that functions can be called in one of two ways: with parentheses, which run them instantly, or without parentheses, so another function calls them only at a certain time. Next, when I pressed the “fire” button two times, the speed doubled, because there was no condition to stop the chain after the projectile hit the ground. To fix this, I only allowed a call for the next frame when the ball was flying. What’s next The remain 7 units of AP Physics 1, user accounts on Supabase, and an AI tutor that gives hints instead of answers.", "repo": "https://github.com/Rishaan-Dukhande/parallax-physics", "demo": "https://parallax-physics.vercel.app/"}]...
|
[{"post_id": 82878, "ts": "202 [{"post_id": 82878, "ts": "2026-10-26T04:17:21Z", "hours": 3.1544, "text": "#I finished Parallax! Oct 25, 2026 - Day 20! Today, I focused on some finishing touches. I added SVG lines to connect all the lesson nodes in the home galaxy. A completed lesson draws a solid cyan line towards the next lesson. Incomplete lessons have a faded dashed line connection between them. The lines connect in a parabolic shape. I also completed the README and made a video to showcase my project! Key Learnings: To draw lines using SVG, you need to use the createElementNS(ns, “object(usually line)”) function. Then, you can set attributes for the (x1, y1) and (x2,y2) coordinates to draw a line. AI usage: I used AI to help me understand concepts when I got stuck for over 5 minutes on a topic and test my code. I used AI to teach me the concept, then I coded everything by myself and asked for feedback on the code to improve it. In this session, I had AI help with some CSS and explaining the createElementNS concept."}, {"post_id": 82531, "ts": "2026-10-25T04:36:58Z", "hours": 7.2194, "text": "Almost Complete! Summary In the last 3 days, I finished the projectile motion simulator and added sliders, created a boss battle at the end of the unit, and created a home screen with lessons in a parabola galaxy The projectile motion simulator has two sliders — angle and speed — which a user can use to change the motion of a projectile. This was moved to lesson 1.5, the lesson about motion in 2-Dimensions, and allows users to learn through experimentation The boss battle uses questions from all the lessons. Once a user answers a question correctly, they get a chance to use the same projectile motion simulator to hit the boss. If they are within 25px of the boss, the boss loses 1hp. If the user answers a question incorrectly, they lose a life. At the end, the user either completes Unit 1 or has to try again. I plan to add several units in the future, following the AP Physics 1 layout, where defeating a boss will create a new unit Throughout the project, I also had to write several CSS classes myself! You can read the DEVLOG for more info on the project! Key Learnings: Oct 22, 2026 When you use a for each loop to create elements, if you set any characteristics of one singular element, then it will only save the characteristics of the last time it was set to different values Spelling mistakes are common. A way to avoid this is to use autocomplete by pressing tab on the computer. This will autocomplete a variable name without any misspellings Functions should do basic tasks. The home button should just set up the screen. The event handlers are created for changing things ONLY after a lesson has been selected. At first, I merged everything into the home function, so it would display the second lesson and overwrite the first lesson. This means that the user is forced into the second lesson without a choice. (Second lesson was the last lesson currently developed) Oct 23, 2026 I forgot to use appendChild() to add all elements to the app. This is a reminder to use replaceChildren to empty a screen and appendChild() to add an element to the screen If you use two different variables to refer to the same button or element, and add an event listener to the different variables, there are multiple event listeners happening at once. This means that there should be only one event listener for every button, and you don’t call an event listener because it is a function that automatically runs when there is a “click” (the chosen input) Buttons should be set in a specific state when entering a screen, not at the top of a file where they are constantly enabled or disabled. This will make buttons not function properly Oct 24, 2026 I needed both the simulator.js and main.js files to check the same app element. I learned that we can use getElementById separately in both files to get and change the same element I practiced using export and import between the simulator.js and main.js files. I exported drawScene() and hitCount and imported them into main.js so that main.js can call the simulator Since main.js can’t change the hitCount in simulator.js but only see it, I used what a car odometer uses as well. I first find the number of hits the player has made and subtract it from the 10hp the boss starts with to display the boss’s health throughout the boss battle To check if an element has a class, you can use classList.contains() I had originally made the question list a local variable in showBossQuestion(). This was a problem because every single time the user presses the nextQuestionButton, a new question should be displayed. To fix this, I made the questions list a global variable AI usage: used AI to help me understand concepts when I got stuck for over 5 minutes on a topic and test my code. I used AI to teach me the concept, then I coded everything by myself and asked for feedback on the code to improve it. AI was used to test the app and write lessons 1.3-1.5"}, {"post_id": 81716, "ts": "2026-10-22T06:31:30Z", "hours": 4.0947, "text": "Projectile motion simulator + lesson template Summary: Over the course of the last 3-4 days, I created a projectile motion simulation where the user can control speed and angle of the projectile. The code uses real kinematic equations to solve for the new position of the projectile given time. This then maps to a mapCanvas(t) function that allows the equations to give the coordinates for a working website and canvas HTML element. Finally, I created a drawFrame() function to actually paint the simulation so that it looks like the projectile is consistently moving to human eyes. Intro to Challenges: There were many bugs along the way. This included learning curves such as learning the requestAnimationFrame() function, making sliders, and even writing some part of CSS ! Oct 18, 2026 - Day 13, 1. One important concept is that the canvas starts (0,0) from the top left corner of the grid, so subtracting y actually makes an object/line move upward. 2. I learned to use the function beginPath() to create a new drawing object. Without using beginPath(), an drawing connects a the previous drawing to the new drawing with a line. Additionally, the fill() function needs to be used to actually draw a point. 3. I learned that css uses different punctuation for different rules: selector (plain word) - looks for elements with tag .selector - looks for elements whose classes list contains the word #selector - looks for the element with the ID :selector - does the css action only while it is in the state 4. You can test with console.log. To open it on a website/app screen, you can use CMD+OPT+J Oct 19, 2026 - Day 14, In javaScript, when a function is called with parentheses: drawFrame(), it runs immediately. When a function is just called by its name, it runs when another function tells it to: requestAnimationFrame(drawFrame) (no parentheses)! 2. I forgot to use the fill() function again. fill() is important because it actually “paints” the drawing. Oct 20, 2026 - Day 15, I got confused that y increases to make a drawing go downwards. This caused me to write the falling logic incorrectly. I switched the case where falling = true with falling = false. After making the falling variable, I wasn’t using it in any way. The falling variable also needed to be used in the eventHandler for the launch button to make sure that multiple cycles of drawFrame() weren’t running at the same time: a. When drawFrame() is run several times, it causes the speed to increase by n times as much if n represents the number of times you click the launch button To fix this, I used the falling variable in the EventHandler. I decided that it is easier to just not do anything if the button is in mid-flight and the user wants to re-launch the ball/projectile. Oct 21, 2026 - Day 16, Sliders are There are two events possible to use in an event listener (of a slider): a. “input” - a live update. The event triggers continously while a slider is being dragged b. “change” - only triggers and runs the event listener when you let go of the element (slider). This prevents changing while you are holding the slider Sliders don’t have a closing tag. They don’t have . This means that textContent can’t be used on sliders because they are not containers. Therfore, there has to be a new variable to act as the label for the slider element (or any input element for that matter) Span is inline, div begins on the next line Inner workings of requestAnimationFrame() - when this function is called, it let’s the function end and immediately return to where it was called. It then continues until it reaches the end of the code in the file. The requestAnimationFrame() just tells the compiler to call the function again AFTER everything ran. This was important because it was the reason the disabling of the sliders was not working."}, {"post_id": 80582, "ts": "2026-10-18T06:21:27Z", "hours": 1.5964, "text": "Creating an answerCheck function and progress.js file to save lesson stars Summary: Today, I first deployed the app on vercel! Then, I created progress.js; This file has a function to loadProgress() and saveStars(). Finally, I added function calls to main.js to use the functions in the functionality of the app. AI usage: used AI to help me understand concepts when I got stuck for over 5 minutes on a topic and test my code. In this specific session, I had a lot of obstacles, especially with learning new javascript functions and syntax. There were 6 attempts just to solve the progress.js page, and AI helped me understand javascript better, as shown in the key learnings below. Key Learnings: 1. You need to use the \"export\" keyword so that a function in one page can be used by other files 2. In javaScript, you don't have to manually create tables/lists like how you use the \"new\" keyword in java. If you say scores[\"math\"] = 60 and math does not exist, then it will create a new row called \"math\" in the table and assign the value of 60 to the key. 3. Through 6 attempts, I learned a lot of Java Script syntax features: a. A dot is used to get an attribute in javascript, something that belongs to an object. However, tables in javascript use brackets just like lists: table[]; b. You can save a whole table using .setItem(key, value). Remember that the value has to be a string. We can use .stringify(obj) for this. c. Javascript has two error words: null and undefined. Null happens from an intentionally missing object. For example, when an object has been declared but is empty. Undefined, by contrast, is used when the object has never been created and their is no instance of it. d. Extra JavaScript functions are as follows: i. stringify --> turn an object into a string ii. parse --> turn a string back into an object iii. setItem --> changes the item in a table iv. getItem --> gets the item currently in a table 4. If you need to import multiple things from the same page/file, you can use a comma in the import instead of using multiple lines. Next Steps: I am going to create an interactive projectile simulator!"}, {"post_id": 80089, "ts": "2026-10-16T06:13:45Z", "hours": 1.0003, "text": "Mini-quiz completion and Stars! Summary Today, I finished the mini-quiz in the first lesson. I have included colors to indicate wrong and write answers (that comes from the css) and I created 4 buttons that are clickable and display the answer choices. Additionally, I added stars to the lesson to act as the lesson score. This depends on their score on the lesson quiz. Key Learnings: When I gave the buttons the choice–correct or choice–wrong class, they now had a class and a property of disabled. The property for disabled buttons in CSS is button:disabled, which is more specific than just the .choice-correct class. This makes the CSS default to the rules in the button:disabled property, which dims the opacity. To fix this, I hand-coded a third class that works with both properties to keep the buttons fully highlighted in a color to indicate wrong and right. You can use the “”.repeat(n) function to repeat any string in the quotation marks n times in a row. Remember: It is easy to get confused with spelling. The property is .disabled (past tense). This should also be used in correct ways. It is important to think about when something should or shouldn’t be disabled (common mistake today). Next Steps: Now that I have developed one whole lesson, I will use the same code to develop a total of 5 lessons to cover Unit 1: Kinematics of the AP Physics 1 curriculum. Then, I will create a home screen. If I have time, I will make the first-ever deployment to Vercel and see the app in action! AI usage (if your interested) AI usage: I used AI to help me understand concepts when I got stuck for over 5 minutes on a topic. I always try to write code myself, but I learn the concept I am struggling with after using AI."}, {"post_id": 79716, "ts": "2026-10-15T06:19:45Z", "hours": 0.9108, "text": "Day 9 - Creating the first lesson + quiz Today, I created the official first lesson of parallax. The first lesson follows the AP Physics 1 college curriculum. This starts with the Kinematics Unit. The first topic covered in the unit is Scalars and Vectors. Learned: 1. Today I learned that we use the === operator to check if both the datatype and value of two variables being compared is the exact same. 2. I also learned that when creating elements in a .js file, you can name elements anything, such as questionText instead of “p”. It is important to do this so that the compiler/program does not crash because only one const element can have the same name. 3. I learned that there is a hidden property that works on elements such as div. This is just like how disabled works on buttons! 4. I learned the syntax of a forEach loop: element.forEach((element, index) => {}); AI usage: After writing my first draft of the lesson code and checking the mini-quiz inside the first lesson, I had multiple errors. I used AI to explain the errors, which are documented in the key learning above. Additionally, I used AI to verify the code and test the app itself with its capabilities."}, {"post_id": 79477, "ts": "2026-10-14T06:26:48Z", "hours": 0.51, "text": "Make the App look good! Today, I added a stylesheet (made by AI) to make my app look more modern and appealing. Since I am coding the structure of the app, this is ok. Along the way, I learned how to incorporate CSS as classes in both HTML and JavaScript. I also learned that JavaScript uses the classListadd method to add classes, while HTML is just a direct type-in. I am hoping to learn more CSS in the process. My next step is to add new components such as a sidebar and more interactive features."}, {"post_id": 79255, "ts": "2026-10-13T06:39:14Z", "hours": 9.2656, "text": "Home screen + Learning React/HTML For the first few hours of the project, I spent directing AI on how to create an amazing AI tutor. However, I decided to restart from scratch to create an app that is self-coded. I worked on the new app from scratch for 2 hours, and I was able to create one lesson. I focused on the lesson structure and added a start, next, and back button. I am planning to focus on the structure of the app before appealing to aesthetics."}]...
|
Title: Parallax by @rishaansd | Stardance
Devlogs Title: Parallax by @rishaansd | Stardance
Devlogs:
Home screen + Learning React/HTML For the first few hours of the project, I spent directing AI on how to create an amazing AI tutor. However, I decided to restart from scratch to create an app that is self-coded. I worked on the new app from scratch for 2 hours, and I was able to create one lesson. I focused on the lesson structure and added a start, next, and back button. I am planning to focus on the structure of the app before appealing to aesthetics.
Make the App look good! Today, I added a stylesheet (made by AI) to make my app look more modern and appealing. Since I am coding the structure of the app, this is ok. Along the way, I learned how to incorporate CSS as classes in both HTML and JavaScript. I also learned that JavaScript uses the classListadd method to add classes, while HTML is just a direct type-in. I am hoping to learn more CSS in the process. My next step is to add new components such as a sidebar and more interactive features.
Day 9 - Creating the first lesson + quiz Today, I created the official first lesson of parallax. The first lesson follows the AP Physics 1 college curriculum. This starts with the Kinematics Unit. The first topic covered in the unit is Scalars and Vectors. Learned: 1. Today I learned that we use the === operator to check if both the datatype and value of two variables being compared is the exact same. 2. I also learned that when creating elements in a .js file, you can name elements anything, such as questionText instead of “p”. It is important to do this so that the compiler/program does not crash because only one const element can have the same name. 3. I learned that there is a hidden property that works on elements such as div. This is just like how disabled works on buttons! 4. I learned the syntax of a forEach loop: element.forEach((element, index) => {}); AI usage: After writing my first draft of the lesson code and checking the mini-quiz inside the first lesson, I had multiple errors. I used AI to explain the errors, which are documented in the key learning above. Additionally, I used AI to verify the code and test the app itself with its capabilities.
Mini-quiz completion and Stars! Summary Today, I finished the mini-quiz in the first lesson. I have included colors to indicate wrong and write answers (that comes from the css) and I created 4 buttons that are clickable and display the answer choices. Additionally, I added stars to the lesson to act as the lesson score. This depends on their score on the lesson quiz. Key Learnings: When I gave the buttons the choice–correct or choice–wrong class, they now had a class and a property of disabled. The property for disabled buttons in CSS is button:disabled, which is more specific than just the .choice-correct class. This makes the CSS default to the rules in the button:disabled property, which dims the opacity. To fix this, I hand-coded a third class that works with both properties to keep the buttons fully highlighted in a color to indicate wrong and right. You can use the “”.repeat(n) function to repeat any string in the quotation marks n times in a row. Remember: It is easy to get confused with spelling. The property is .disabled (past tense). This should also be used in correct ways. It is important to think about when something should or shouldn’t be disabled (common mistake today). Next Steps: Now that I have developed one whole lesson, I will use the same code to develop a total of 5 lessons to cover Unit 1: Kinematics of the AP Physics 1 curriculum. Then, I will create a home screen. If I have time, I will make the first-ever deployment to Vercel and see the app in action! AI usage (if your interested) AI usage: I used AI to help me understand concepts when I got stuck for over 5 minutes on a topic. I always try to write code myself, but I learn the concept I am struggling with after using AI.
Creating an answerCheck function and progress.js file to save lesson stars Summary: Today, I first deployed the app on vercel! Then, I created progress.js; This file has a function to loadProgress() and saveStars(). Finally, I added function calls to main.js to use the functions in the functionality of the app. AI usage: used AI to help me understand concepts when I got stuck for over 5 minutes on a topic and test my code. In this specific session, I had a lot of obstacles, especially with learning new javascript functions and syntax. There were 6 attempts just to solve the progress.js page, and AI helped me understand javascript better, as shown in the key learnings below. Key Learnings: 1. You need to use the "export" keyword so that a function in one page can be used by other files 2. In javaScript, you don't have to manually create tables/lists like how you use the "new" keyword in java. If you say scores["math"] = 60 and math does not exist, then it will create a new row called "math" in the table and assign the value of 60 to the key. 3. Through 6 attempts, I learned a lot of Java Script syntax features: a. A dot is used to get an attribute in javascript, something that belongs to an object. However, tables in javascript use brackets just like lists: table[]; b. You can save a whole table using .setItem(key, value). Remember that the value has to be a string. We can use .stringify(obj) for this. c. Javascript has two error words: null and undefined. Null happens from an intentionally missing object. For example, when an object has been declared but is empty. Undefined, by contrast, is used when the object has never been created and their is no instance of it. d. Extra JavaScript functions are as follows: i. stringify --> turn an object into a string ii. parse --> turn a string back into an object iii. setItem --> changes the item in a table iv. getItem --> gets the item currently in a table 4. If you need to import multiple things from the same page/file, you can use a comma in the import instead of using multiple lines. Next Steps: I am going to create an interactive projectile simulator!
Projectile motion simulator + lesson template Summary: Over the course of the last 3-4 days, I created a projectile motion simulation where the user can control speed and angle of the projectile. The code uses real kinematic equations to solve for the new position of the projectile given time. This then maps to a mapCanvas(t) function that allows the equations to give the coordinates for a working website and canvas HTML element. Finally, I created a drawFrame() function to actually paint the simulation so that it looks like the projectile is consistently moving to human eyes. Intro to Challenges: There were many bugs along the way. This included learning curves such as learning the requestAnimationFrame() function, making sliders, and even writing some part of CSS ! Oct 18, 2026 - Day 13, 1. One important concept is that the canvas starts (0,0) from the top left corner of the grid, so subtracting y actually makes an object/line move upward. 2. I learned to use the function beginPath() to create a new drawing object. Without using beginPath(), an drawing connects a the previous drawing to the new drawing with a line. Additionally, the fill() function needs to be used to actually draw a point. 3. I learned that css uses different punctuation for different rules: selector (plain word) - looks for elements with tag .selector - looks for elements whose classes list contains the word #selector - looks for the element with the ID :selector - does the css action only while it is in the state 4. You can test with console.log. To open it on a website/app screen, you can use CMD+OPT+J Oct 19, 2026 - Day 14, In javaScript, when a function is called with parentheses: drawFrame(), it runs immediately. When a function is just called by its name, it runs when another function tells it to: requestAnimationFrame(drawFrame) (no parentheses)! 2. I forgot to use the fill() function again. fill() is important because it actually “paints” the drawing. Oct 20, 2026 - Day 15, I got confused that y increases to make a drawing go downwards. This caused me to write the falling logic incorrectly. I switched the case where falling = true with falling = false. After making the falling variable, I wasn’t using it in any way. The falling variable also needed to be used in the eventHandler for the launch button to make sure that multiple cycles of drawFrame() weren’t running at the same time: a. When drawFrame() is run several times, it causes the speed to increase by n times as much if n represents the number of times you click the launch button To fix this, I used the falling variable in the EventHandler. I decided that it is easier to just not do anything if the button is in mid-flight and the user wants to re-launch the ball/projectile. Oct 21, 2026 - Day 16, Sliders are There are two events possible to use in an event listener (of a slider): a. “input” - a live update. The event triggers continously while a slider is being dragged b. “change” - only triggers and runs the event listener when you let go of the element (slider). This prevents changing while you are holding the slider Sliders don’t have a closing tag. They don’t have . This means that textContent can’t be used on sliders because they are not containers. Therfore, there has to be a new variable to act as the label for the slider element (or any input element for that matter) Span is inline, div begins on the next line Inner workings of requestAnimationFrame() - when this function is called, it let’s the function end and immediately return to where it was called. It then continues until it reaches the end of the code in the file. The requestAnimationFrame() just tells the compiler to call the function again AFTER everything ran. This was important because it was the reason the disabling of the sliders was not working.
Almost Complete! Summary In the last 3 days, I finished the projectile motion simulator and added sliders, created a boss battle at the end of the unit, and created a home screen with lessons in a parabola galaxy The projectile motion simulator has two sliders — angle and speed — which a user can use to change the motion of a projectile. This was moved to lesson 1.5, the lesson about motion in 2-Dimensions, and allows users to learn through experimentation The boss battle uses questions from all the lessons. Once a user answers a question correctly, they get a chance to use the same projectile motion simulator to hit the boss. If they are within 25px of the boss, the boss loses 1hp. If the user answers a question incorrectly, they lose a life. At the end, the user either completes Unit 1 or has to try again. I plan to add several units in the future, following the AP Physics 1 layout, where defeating a boss will create a new unit Throughout the project, I also had to write several CSS classes myself! You can read the DEVLOG for more info on the project! Key Learnings: Oct 22, 2026 When you use a for each loop to create elements, if you set any characteristics of one singular element, then it will only save the characteristics of the last time it was set to different values Spelling mistakes are common. A way to avoid this is to use autocomplete by pressing tab on the computer. This will autocomplete a variable name without any misspellings Functions should do basic tasks. The home button should just set up the screen. The event handlers are created for changing things ONLY after a lesson has been selected. At first, I merged everything into the home function, so it would display the second lesson and overwrite the first lesson. This means that the user is forced into the second lesson without a choice. (Second lesson was the last lesson currently developed) Oct 23, 2026 I forgot to use appendChild() to add all elements to the app. This is a reminder to use replaceChildren to empty a screen and appendChild() to add an element to the screen If you use two different variables to refer to the same button or element, and add an event listener to the different variables, there are multiple event listeners happening at once. This means that there should be only one event listener for every button, and you don’t call an event listener because it is a function that automatically runs when there is a “click” (the chosen input) Buttons should be set in a specific state when entering a screen, not at the top of a file where they are constantly enabled or disabled. This will make buttons not function properly Oct 24, 2026 I needed both the simulator.js and main.js files to check the same app element. I learned that we can use getElementById separately in both files to get and change the same element I practiced using export and import between the simulator.js and main.js files. I exported drawScene() and hitCount and imported them into main.js so that main.js can call the simulator Since main.js can’t change the hitCount in simulator.js but only see it, I used what a car odometer uses as well. I first find the number of hits the player has made and subtract it from the 10hp the boss starts with to display the boss’s health throughout the boss battle To check if an element has a class, you can use classList.contains() I had originally made the question list a local variable in showBossQuestion(). This was a problem because every single time the user presses the nextQuestionButton, a new question should be displayed. To fix this, I made the questions list a global variable AI usage: used AI to help me understand concepts when I got stuck for over 5 minutes on a topic and test my code. I used AI to teach me the concept, then I coded everything by myself and asked for feedback on the code to improve it. AI was used to test the app and write lessons 1.3-1.5
#I finished Parallax! Oct 25, 2026 - Day 20! Today, I focused on some finishing touches. I added SVG lines to connect all the lesson nodes in the home galaxy. A completed lesson draws a solid cyan line towards the next lesson. Incomplete lessons have a faded dashed line connection between them. The lines connect in a parabolic shape. I also completed the README and made a video to showcase my project! Key Learnings: To draw lines using SVG, you need to use the createElementNS(ns, “object(usually line)”) function. Then, you can set attributes for the (x1, y1) and (x2,y2) coordinates to draw a line. AI usage: I used AI to help me understand concepts when I got stuck for over 5 minutes on a topic and test my code. I used AI to teach me the concept, then I coded everything by myself and asked for feedback on the code to improve it. In this session, I had AI help with some CSS and explaining the createElementNS concept.
Ships:
Parallax Physics Tutor Parallax is a physics tutor for students interested in learning the AP Physics 1 curriculum. The app uses a gamified approach, including a simulator to learn projectile motion and a boss battle at the end of the unit, to make physics an enjoyable science class. The app currently has the first unit of AP Physics 1: Kinematics. Use the app You can play it at https://parallax-physics.vercel.app/ You can watch the DEMO video at https://www.youtube.com/watch?v=TFTet9wMoyI Why I built it I am a student interested in the STEM field. One class I hope to take is AP Physics C. In order to prepare for AP Physics C, I decided to take the AP Physics 1 course. A major gap I noticed in learning AP Physics 1 is the passive lessons from traditional textbooks and online courses. I often find myself reading long textbook chapters or watching several videos, leaving me bored with physics. I know that physics can involve simulations and labs, so I wanted to focus on the fun aspects of physics while still letting students prepare for the AP Physics 1 exam efficiently. Features Galaxy map: All of the lessons, including the final boss battle, are organized into a galaxy map. The map is shaped in a parabola, like a projectile’s path. 5 lessons: Each lesson is structured with multiple cards: a hook, concept, check questions, and a lesson summary. Some lessons have more concept and check cards than others. Students earn stars depending on the number of mistakes they make on the check cards. A student can earn a minimum of 1 star and a maximum of 3 stars on a completed lesson. Progression and high scores: Once the user completes a lesson and returns to the home screen, their highest number of stars for that lesson is displayed below the lesson button. This encourages students to redo lessons and review concepts in order to get a perfect star score. The lesson then unlocks the next lesson and lights up the path to it. Projectile simulator: Once a student unlocks lesson 1.5, they gain access to the simulator for projectile motion. They can use the simulator to experiment with different angles and speeds of a projectile to see how it affects the path the projectile takes. Boss battle: The boss battle unlocks after all 5 lessons are completed. Each correct answer earns one shot at the boss, and the student has to set the speed and angle of the projectile to hit the boss. A player defeats the boss when it is hit 10 times. The player can also have a highscore on the boss by answering questions 3 in a row and avoiding mistakes! Saved progress: The user’s stars are saved in their device’s browser. It will continue to stay saved as long as the user uses the exact same device. (This is also a next step!) Biggest challenge The biggest challenge I faced was completing the animation for the projectile motion simulator. My first attempt was to use a for loop that incremented time by 1 every time to keep the ball moving. But when it ran, the ball teleported to the end of the screen. I learned that JavaScript has a function called requestAnimationFrame which continues making a chain until requestAnimationFrame is not called. When I called requestAnimationFrame(drawFrame());, the page crashed with the error “Maximum call stack size exceeded” because drawFrame called itself instantly, forever. I learned that functions can be called in one of two ways: with parentheses, which run them instantly, or without parentheses, so another function calls them only at a certain time. Next, when I pressed the “fire” button two times, the speed doubled, because there was no condition to stop the chain after the projectile hit the ground. To fix this, I only allowed a call for the next frame when the ball was flying. What’s next The remain 7 units of AP Physics 1, user accounts on Supabase, and an AI tutor that gives hints instead of answers....
|
1793130493.1940725
|
1793216893.1940725
|
|
464
|
voidborne by @fireentity | Stardance
|
fireentity
|
0
|
27.99
|
0
|
[]
|
[{"post_id": 12329, "ts": "202 [{"post_id": 12329, "ts": "2026-06-20T03:35:04Z", "hours": 2.1903, "text": "set up dialogic + trigger systems!! I have an easy way to trigger any dialogic timeline through a component/scene I made, and timelines have the ability to trigger events like opening doors (I still have to make an animation for that)!!"}, {"post_id": 11796, "ts": "2026-06-19T06:06:08Z", "hours": 3.9289, "text": "Made more world tiles, improved enemy behaviour, improve knockback, enemies don’t go over the edge, made the basis of a door that opens on a condition being met (like arena fight complete or key collected). Also made more of the first area itself. I’m planning on having an arena fight where the video ended off and having the player go down deeper and deeper until they are met with a cutscene."}, {"post_id": 11598, "ts": "2026-06-18T21:45:33Z", "hours": 2.92, "text": "Added the first enemy! Still deciding a name but it’s SUPER easy to deal with bc it’s literally the first enemy. Hit detection now works (though the player taking damage is rly buggy rn and I gotta fix it) and I still have to do a death animation/sequence and whatnot. I’m thinking of having an impact frame so the game freezes for a split second upon hit, hollow knight style!"}, {"post_id": 11124, "ts": "2026-06-18T06:06:31Z", "hours": 1.3297, "text": "maaaaajor optimizations! and worldbuilt a little bit. the swirl shader was MASSIVELY laggy so I got a better one and it works fine now! also fixed the fog shader so it looks nicer and is more optimized."}, {"post_id": 11093, "ts": "2026-06-18T04:19:34Z", "hours": 2.3772, "text": "Working on the intro/wakeup/tutorial area right now! The plan is to have it look like it’s dead, dark, and void-like. Super empty, dreary, eerie, etc you get the vibe."}, {"post_id": 10716, "ts": "2026-06-17T16:03:48Z", "hours": 0.6911, "text": "Added in a slash animation for the player’s attack. Also made the player a little bit brighter so they stand out against the very monochrome background."}, {"post_id": 10466, "ts": "2026-06-17T06:10:41Z", "hours": 0.8514, "text": "we are SO locked in on the first area!! looks pretty nice, added a drop shadow behind the player for contrast and it’s been working pretty well"}, {"post_id": 10435, "ts": "2026-06-17T04:49:30Z", "hours": 0.8031, "text": "wooohooo the animations don’t look that bad now!! basically just improved player animations and added separate ones for jump moving, moving, and still jumping/standing still."}, {"post_id": 10401, "ts": "2026-06-17T03:00:24Z", "hours": 1.0967, "text": "Pixel art is SO hard Working on player animations right now. I have a decentish base down? But it looks HORRIBLE and it looks even worse if you’re actually moving. I need to lock in hard"}, {"post_id": 10361, "ts": "2026-06-17T01:21:09Z", "hours": 0.9136, "text": "WE’RE GETTING SOMEWHERE!! Made a player sprite and added an idle animation to it. I decided to move away from having a fully pixel perfect setup bc it was more annoying and bad-looking than being standard. I’m still gna avoid mixels at ALL costs bc they look horrible. But yes the voidborn is real now say hi to them :p"}, {"post_id": 10274, "ts": "2026-06-16T22:20:30Z", "hours": 10.8925, "text": "FIRST DEVLOG YAYAYAYAY Set up the project :p Currently working on making a pixel-perfect system for the game so it looks super polished like Celeste (the original Voidborne had crazy mixels ) Looks HORRIBLE rn but I plan to start artmaxxing soon!!"}]...
|
Title: voidborne by @fireentity | Stardance
Devlo Title: voidborne by @fireentity | Stardance
Devlogs:
FIRST DEVLOG YAYAYAYAY Set up the project :p Currently working on making a pixel-perfect system for the game so it looks super polished like Celeste (the original Voidborne had crazy mixels ) Looks HORRIBLE rn but I plan to start artmaxxing soon!!
WE’RE GETTING SOMEWHERE!! Made a player sprite and added an idle animation to it. I decided to move away from having a fully pixel perfect setup bc it was more annoying and bad-looking than being standard. I’m still gna avoid mixels at ALL costs bc they look horrible. But yes the voidborn is real now say hi to them :p
Pixel art is SO hard Working on player animations right now. I have a decentish base down? But it looks HORRIBLE and it looks even worse if you’re actually moving. I need to lock in hard
wooohooo the animations don’t look that bad now!! basically just improved player animations and added separate ones for jump moving, moving, and still jumping/standing still.
we are SO locked in on the first area!! looks pretty nice, added a drop shadow behind the player for contrast and it’s been working pretty well
Added in a slash animation for the player’s attack. Also made the player a little bit brighter so they stand out against the very monochrome background.
Working on the intro/wakeup/tutorial area right now! The plan is to have it look like it’s dead, dark, and void-like. Super empty, dreary, eerie, etc you get the vibe.
maaaaajor optimizations! and worldbuilt a little bit. the swirl shader was MASSIVELY laggy so I got a better one and it works fine now! also fixed the fog shader so it looks nicer and is more optimized.
Added the first enemy! Still deciding a name but it’s SUPER easy to deal with bc it’s literally the first enemy. Hit detection now works (though the player taking damage is rly buggy rn and I gotta fix it) and I still have to do a death animation/sequence and whatnot. I’m thinking of having an impact frame so the game freezes for a split second upon hit, hollow knight style!
Made more world tiles, improved enemy behaviour, improve knockback, enemies don’t go over the edge, made the basis of a door that opens on a condition being met (like arena fight complete or key collected). Also made more of the first area itself. I’m planning on having an arena fight where the video ended off and having the player go down deeper and deeper until they are met with a cutscene.
set up dialogic + trigger systems!! I have an easy way to trigger any dialogic timeline through a component/scene I made, and timelines have the ability to trigger events like opening doors (I still have to make an animation for that)!!...
|
1793181008.402957
|
1793785808.402957
|
|
53702
|
brackeys jam by @ducki | Stardance
|
ducki
|
0
|
27.92
|
0
|
[]
|
[{"post_id": 58014, "ts": "202 [{"post_id": 58014, "ts": "2026-08-30T11:04:36Z", "hours": 6.0986, "text": "Devlog 5 DEADLINE 28 seconds We did it me and my team managed to publish the game in time, the whole last hour was a blur with how fast everything was moving. new features game balancing main menu ending screen sfx background music game balancing The game in the start was almost impossible, after tweaking atleast 99 variables it play waaaaay better. It is still no easy game tho. Quite the challenge still. exporting the game This was the most stressful part. It decided if we would get the deadline or not…. …………………………………………………………………. luckily it exported succesfully… with bugs .-. So we rushed to fix multiple crashing bugs in the last 10 minutes of submiting, not knowing if we will make it. In the end , we prevailed. The game is now available for others to rate I am interested to see what bugs people will find and what idea they have for the game"}, {"post_id": 57159, "ts": "2026-08-29T08:22:41Z", "hours": 5.1919, "text": "Devlog 4 DEADLINE: 1 day 2h left before submitions close Monster, items and lot more Say hi to the monster my teammate drew. His moveset : Disguise Chase Wander Be careful when killing mobs to get food, maybe one of them will bite back! items: A bunch of new item, some of the next items : Crafting table -> for more complex crafting recipes smelter -> smelt iron apples -> early game food source wood/stone/iron tools new resources: Iron nodes gold tress bushes cherry bush (yes on this monsters planet they grow on bushes) apple trees other progress: Made a cooldown between swinging weapons/attakcing to prevent mouse spaming. Also found a duplication bug, hopefully I will have time to fix that."}, {"post_id": 56220, "ts": "2026-08-27T21:49:58Z", "hours": 7.2839, "text": "Devlog 3 huge new features crafting: The crafting system is fully done, only have to polish it. The idea is that you craft with items and surrounding structures. for example to make cooked meat you need 1x raw meat and a campfire next to you. This should make it so the crafting tab never has too many crafting options at a random time. Building system okay not sure if it can be called building it is a system for placing down placeable items on the floor, currently only campfires, but soon also smelter and worktable. Idea is that your character also gets cold, so you have to every once in a moment warm up, which a campfire is an excellent way to achieve. resources/tool I made a very dynamic system for tool, where each tool has ofcourse a specific action it is effective it. axes -> 3x damage to tress pickaxes -> 5x damage to rocks swords -> 3x damage to mobs As well as food, eating, delays between actions have all been added. As this is a game jam, the game should not take that long, so maybe we will be pushing it a bit, but we are planned to have a whole 3 types of tools, wood -> rock -> iron. my teammate My teammate has been continuing to make incredible art, I really like all of the designs. The main monster art is also done, cant wait for everyone to see that. map generation my teammate also worked on the map generation to get chunks spawning overall Progress has been very good, game loop is almost done, just missing the possibility to loose"}, {"post_id": 54763, "ts": "2026-08-25T21:23:24Z", "hours": 6.0517, "text": "Devlog 2 Resources Mainly worked on the inventory system and resources. Created a very fast and easy way to create new resources, a bunch of math to calculate drop amounts. Meanwhile the inventory system had 100 duplication bugs. Took a while to fix, but now there is a fully fledged inventory system and crafting system. All of which I will showcase in the next devlog. artwork My teammate has worked on a load of artwork, I really like this artstyle. Progress Overall I would say we are on track to finish the main gameplay in the next 2 days, but that could randomly get thrown out the window if anyone else is doing the game jam, let me know, would love to check out what you are working on!"}, {"post_id": 53824, "ts": "2026-08-24T14:56:57Z", "hours": 3.2978, "text": "#Devlog 1 I have found out that game jams increase my average development time hours per day, so I have decided to compete in the brackeys game jam in a team. The theme : trust no one Game idea You are in a forest, where you must survive, get resource, hunt animals. The trust no one part comes from the animals no always being what they truly are, there is a shapeshifting monster. The task is to eventually find a gun and kill the monster, all while surviving the nights. Progress Currently I have made: Player movement attack/item swinging resource blocks Hope to finish the gameplay loop already today!"}]...
|
Title: brackeys jam by @ducki | Stardance
Devlogs Title: brackeys jam by @ducki | Stardance
Devlogs:
#Devlog 1 I have found out that game jams increase my average development time hours per day, so I have decided to compete in the brackeys game jam in a team. The theme : trust no one Game idea You are in a forest, where you must survive, get resource, hunt animals. The trust no one part comes from the animals no always being what they truly are, there is a shapeshifting monster. The task is to eventually find a gun and kill the monster, all while surviving the nights. Progress Currently I have made: Player movement attack/item swinging resource blocks Hope to finish the gameplay loop already today!
Devlog 2 Resources Mainly worked on the inventory system and resources. Created a very fast and easy way to create new resources, a bunch of math to calculate drop amounts. Meanwhile the inventory system had 100 duplication bugs. Took a while to fix, but now there is a fully fledged inventory system and crafting system. All of which I will showcase in the next devlog. artwork My teammate has worked on a load of artwork, I really like this artstyle. Progress Overall I would say we are on track to finish the main gameplay in the next 2 days, but that could randomly get thrown out the window if anyone else is doing the game jam, let me know, would love to check out what you are working on!
Devlog 3 huge new features crafting: The crafting system is fully done, only have to polish it. The idea is that you craft with items and surrounding structures. for example to make cooked meat you need 1x raw meat and a campfire next to you. This should make it so the crafting tab never has too many crafting options at a random time. Building system okay not sure if it can be called building it is a system for placing down placeable items on the floor, currently only campfires, but soon also smelter and worktable. Idea is that your character also gets cold, so you have to every once in a moment warm up, which a campfire is an excellent way to achieve. resources/tool I made a very dynamic system for tool, where each tool has ofcourse a specific action it is effective it. axes -> 3x damage to tress pickaxes -> 5x damage to rocks swords -> 3x damage to mobs As well as food, eating, delays between actions have all been added. As this is a game jam, the game should not take that long, so maybe we will be pushing it a bit, but we are planned to have a whole 3 types of tools, wood -> rock -> iron. my teammate My teammate has been continuing to make incredible art, I really like all of the designs. The main monster art is also done, cant wait for everyone to see that. map generation my teammate also worked on the map generation to get chunks spawning overall Progress has been very good, game loop is almost done, just missing the possibility to loose
Devlog 4 DEADLINE: 1 day 2h left before submitions close Monster, items and lot more Say hi to the monster my teammate drew. His moveset : Disguise Chase Wander Be careful when killing mobs to get food, maybe one of them will bite back! items: A bunch of new item, some of the next items : Crafting table -> for more complex crafting recipes smelter -> smelt iron apples -> early game food source wood/stone/iron tools new resources: Iron nodes gold tress bushes cherry bush (yes on this monsters planet they grow on bushes) apple trees other progress: Made a cooldown between swinging weapons/attakcing to prevent mouse spaming. Also found a duplication bug, hopefully I will have time to fix that.
Devlog 5 DEADLINE 28 seconds We did it me and my team managed to publish the game in time, the whole last hour was a blur with how fast everything was moving. new features game balancing main menu ending screen sfx background music game balancing The game in the start was almost impossible, after tweaking atleast 99 variables it play waaaaay better. It is still no easy game tho. Quite the challenge still. exporting the game This was the most stressful part. It decided if we would get the deadline or not…. …………………………………………………………………. luckily it exported succesfully… with bugs .-. So we rushed to fix multiple crashing bugs in the last 10 minutes of submiting, not knowing if we will make it. In the end , we prevailed. The game is now available for others to rate I am interested to see what bugs people will find and what idea they have for the game...
|
1792759682.3683162
|
1793364482.3683162
|
|
22753
|
3 Degree of Freedom arm by @akhilatyam | Stardance
|
akhilatyam
|
0
|
27.89
|
0
|
[]
|
[{"post_id": 83298, "ts": "202 [{"post_id": 83298, "ts": "2026-10-27T17:05:53Z", "hours": 3.3811, "text": "Devlog 6: THE MACHINE IS DONE Hello guys, sorry this is a rushed ship as stardance is ending, BUT THE BEAST IS DONE!!!! I was going to create another devlog for my claw, but lazy What can my machine do? It can pick up most objects below 2in in width (or whatever orientation you grab it in) It has 4-5 degrees of freedom. It can follow pre programmed macros. THERE WILL BE IMPROVEMENTS, however stardance is ending sadly. Toodles!"}, {"post_id": 55332, "ts": "2026-08-27T02:22:29Z", "hours": 6.9139, "text": "Devlog 5: Wires and Code! Hey guys! Welcome to my 5th devlog in this series. This devlog is quite major as you can see by the 7 hours spent on it so lets go over the details. Wiring I have finally gotten most of the wiring done for this project. Unfortunately, I was not able to get my PCA9865 yet, hopefully I will get it sometime soon, but in the meantime I found a fix. What is my wiring strategy? I know 2 things. Power and signal. I tried to first feed power to my ESP32 and then to servos, but my servos are very power hungry, and this didnt work. Turns out, on my power supply, the male pins are much much more powerful than the power supplied to my breadboard rails. This presents a unique challenge, as I have to conserve my 5v power slots. I also found out that no matter what I do, it is still too little power to handle all my servos, and so I came up with a solution. For my signal, this was easy. I hooked up my 4 stepper motors to my ULN2003 module, and then one signal wire to each servo! The programming What is the solution you may ask? Creating everything in steps! By doing this, Instead of setting my servos directly 0-180, I set it 0-180 but in steps of 10 every X milliseconds. This decreases the overall power requirement, allowing my arm to work under very low power! I implemented this in my code with a scheduler that whenever my inverse kinematics are updated, it starts a cycle of moving servos. My next devlog will cover my end effector! Stay tuned!"}, {"post_id": 25092, "ts": "2026-07-09T02:24:11Z", "hours": 7.9508, "text": "Devlog 4: The arm has been prototype Hello again guys and today we have another devlog. Sorry it’s been a while since my last devlog but I have a lot of exciting stuff to show. First, I have finally figured out inverse kinematics! Law of cosines was a bit annoying to learn and to apply considering my method is finnicky but I managed to get all my servos to move into position based on real time, and my turntable also works! Problem 1: Power Draw I severely underanticipated the amount of power this would draw, and my psu can provide 9v1a stepped down to 5v wheras my arm needs over 5v6.5a. In order to solve this, I will get a PD trigger board which I will hook up to a PCA9865 module in order to power this. I also learned a ton about SDA and SCL signalling, which I thought was like CAN but I was completely wrong Second, we have a basic code! Although we still do not have a webend for me to run machine learning on this, I am able to manipulate all my servos. Third, I am working on objects to pick up. One of the problem with the power draw is that my servos will jitter and release certain items. In order to circumvent this I will design an object and claw similar to Samples in the FTC game Into The Deep for 2024-25. This way I have something to dig into What’s next? Next up I have to work on a webend that way I do not have to constantly be plugged into my ESP-32 I have to wire up my PCA9865 (the SCL SDA will save me so so many wires) And lastly implement machine learning! Adios my friends!"}, {"post_id": 15401, "ts": "2026-06-25T01:15:36Z", "hours": 0.8306, "text": "Devlog 3: Starting to build Yesterday my P2s was delivered! I’m excited to use it and I have begun printing some parts. One thing I did not think about when designeing my parts is tolerences, especially for 3d printing. Today I spent some time on OnShape redesigning 2 of my parts for printing. More parts to follow, but this is is finally being built! Unfortunately I have not ordered my servos yet (although I do have my stepper motor) so we will have to wait on Amazon for that. Tomorrows devlog should have some parts assembled. Thanks for reading!"}, {"post_id": 12757, "ts": "2026-06-20T21:20:19Z", "hours": 0.6125, "text": "Devlog 2 : A bit of wiring and code Today I begun the wiring for it. Since I am still awaiting my amazon order for parts and my 3d printer, I found a tool called Cirkit Designer where I could wire my parts up, and program a few of them. Unfortunately, my ULN2003 driver does not have simulation, but atleast I can wire it so that I have a reference for my program. This way, I know what parts to order Alongside this, I began programming this. I am coding this in VSCode with Pymakr, that way I can code this in a language I am already familiar with instead of having to switch to C++, which I have never used. I will continue to work on first controlling the servos and motors raw using an arduino I have lying around, but I will try to get my true code done soon."}, {"post_id": 12293, "ts": "2026-06-20T01:59:58Z", "hours": 8.2036, "text": "Devlog 1 : The arm begins I finished building my first prototype of the arm. This is going to likely be my base for the whole project until I am able to buy parts and a 3d printer for this project. Configuration Currently here is the configuration Base is driven by a 28BYJ-48 Stepper motor Shoulder is driven by a MG996R Elbow Wrist and Claw are driven by MG90S This should hopefully lead to a maximum range of 10-11 inches with a max load of around 200-250 grams. Hopefully, I will be able to power this with an ESP32-S3 in order to run machine learning algorithms and inverse kinematics that way I can identify and pick up objects autonomously."}]...
|
Title: 3 Degree of Freedom arm by @akhilatyam | St Title: 3 Degree of Freedom arm by @akhilatyam | Stardance
Devlogs:
Devlog 1 : The arm begins I finished building my first prototype of the arm. This is going to likely be my base for the whole project until I am able to buy parts and a 3d printer for this project. Configuration Currently here is the configuration Base is driven by a 28BYJ-48 Stepper motor Shoulder is driven by a MG996R Elbow Wrist and Claw are driven by MG90S This should hopefully lead to a maximum range of 10-11 inches with a max load of around 200-250 grams. Hopefully, I will be able to power this with an ESP32-S3 in order to run machine learning algorithms and inverse kinematics that way I can identify and pick up objects autonomously.
Devlog 2 : A bit of wiring and code Today I begun the wiring for it. Since I am still awaiting my amazon order for parts and my 3d printer, I found a tool called Cirkit Designer where I could wire my parts up, and program a few of them. Unfortunately, my ULN2003 driver does not have simulation, but atleast I can wire it so that I have a reference for my program. This way, I know what parts to order Alongside this, I began programming this. I am coding this in VSCode with Pymakr, that way I can code this in a language I am already familiar with instead of having to switch to C++, which I have never used. I will continue to work on first controlling the servos and motors raw using an arduino I have lying around, but I will try to get my true code done soon.
Devlog 3: Starting to build Yesterday my P2s was delivered! I’m excited to use it and I have begun printing some parts. One thing I did not think about when designeing my parts is tolerences, especially for 3d printing. Today I spent some time on OnShape redesigning 2 of my parts for printing. More parts to follow, but this is is finally being built! Unfortunately I have not ordered my servos yet (although I do have my stepper motor) so we will have to wait on Amazon for that. Tomorrows devlog should have some parts assembled. Thanks for reading!
Devlog 4: The arm has been prototype Hello again guys and today we have another devlog. Sorry it’s been a while since my last devlog but I have a lot of exciting stuff to show. First, I have finally figured out inverse kinematics! Law of cosines was a bit annoying to learn and to apply considering my method is finnicky but I managed to get all my servos to move into position based on real time, and my turntable also works! Problem 1: Power Draw I severely underanticipated the amount of power this would draw, and my psu can provide 9v1a stepped down to 5v wheras my arm needs over 5v6.5a. In order to solve this, I will get a PD trigger board which I will hook up to a PCA9865 module in order to power this. I also learned a ton about SDA and SCL signalling, which I thought was like CAN but I was completely wrong Second, we have a basic code! Although we still do not have a webend for me to run machine learning on this, I am able to manipulate all my servos. Third, I am working on objects to pick up. One of the problem with the power draw is that my servos will jitter and release certain items. In order to circumvent this I will design an object and claw similar to Samples in the FTC game Into The Deep for 2024-25. This way I have something to dig into What’s next? Next up I have to work on a webend that way I do not have to constantly be plugged into my ESP-32 I have to wire up my PCA9865 (the SCL SDA will save me so so many wires) And lastly implement machine learning! Adios my friends!
Devlog 5: Wires and Code! Hey guys! Welcome to my 5th devlog in this series. This devlog is quite major as you can see by the 7 hours spent on it so lets go over the details. Wiring I have finally gotten most of the wiring done for this project. Unfortunately, I was not able to get my PCA9865 yet, hopefully I will get it sometime soon, but in the meantime I found a fix. What is my wiring strategy? I know 2 things. Power and signal. I tried to first feed power to my ESP32 and then to servos, but my servos are very power hungry, and this didnt work. Turns out, on my power supply, the male pins are much much more powerful than the power supplied to my breadboard rails. This presents a unique challenge, as I have to conserve my 5v power slots. I also found out that no matter what I do, it is still too little power to handle all my servos, and so I came up with a solution. For my signal, this was easy. I hooked up my 4 stepper motors to my ULN2003 module, and then one signal wire to each servo! The programming What is the solution you may ask? Creating everything in steps! By doing this, Instead of setting my servos directly 0-180, I set it 0-180 but in steps of 10 every X milliseconds. This decreases the overall power requirement, allowing my arm to work under very low power! I implemented this in my code with a scheduler that whenever my inverse kinematics are updated, it starts a cycle of moving servos. My next devlog will cover my end effector! Stay tuned!
Devlog 6: THE MACHINE IS DONE Hello guys, sorry this is a rushed ship as stardance is ending, BUT THE BEAST IS DONE!!!! I was going to create another devlog for my claw, but lazy What can my machine do? It can pick up most objects below 2in in width (or whatever orientation you grab it in) It has 4-5 degrees of freedom. It can follow pre programmed macros. THERE WILL BE IMPROVEMENTS, however stardance is ending sadly. Toodles!...
|
1793220941.0754888
|
1793825741.0754888
|
|
25436
|
WarioWare Game Proper by @NC | Stardance
|
NC
|
0
|
27.89
|
0
|
[]
|
[{"post_id": 70421, "ts": "202 [{"post_id": 70421, "ts": "2026-09-19T04:57:01Z", "hours": 7.6294, "text": "Devlog Update Finished the environment for the 2nd Minigame Took a really long time, the tower length is pretty big, lots of different decorations. I am yet to add spikes, just started adding enemies moving left to right, to be continued!"}, {"post_id": 22794, "ts": "2026-07-05T11:38:39Z", "hours": 1.2089, "text": "Devlog Update: Wario Land Mechanics & Microgame #2! Have you ever wondered what happens to Wario when he gets stung by a bee in the classic games? He inflates into a massive, round balloon! He gets so hilariously huge that he loses his regular platforming abilities and starts floating automatically. That exact mechanic is the core inspiration behind my second minigame ! The Concept: Excretion Propulsion Instead of your standard top-down or platforming setup, players have to navigate a panicked survival challenge while completely inflated: The Movement: Wario floats upward automatically. To move horizontally, you have to blast him sideways by burping out of one side or farting out of the other ! The Objective: Pilot Wario’s massive balloon collision box through tight corridors and narrow vertical alleys before the clock hits zero. What have I been upto so far? Custom Physics & Input: The funny burp/fart thrust logic is fully operational. Environmental Hazards: Industrial fans are officially placed and working as expected! They generate continuous wind forces that push Wario across the map. Visual Juice: The fan blades actually rotate dynamically, and I’ve added custom wind particles to show the direction of the draft. Next Steps The core engine code and character states are working beautifully. Now it’s all down to the physical level design. I need to finish constructing the full layout maps, adding hazards like spikes, and coding the closing walls for the higher difficulty tiers. I’m aiming to have the full map layouts completed (or very close to it) by tomorrow! Check out the screenshots below, seeing this vintage GBC puffed Wario rocket around the screen with gas clouds is absolutely hilarious! Found the wario sprites and wind particles here https://www.spriters-resource.com/game_boy_advance/wl4/asset/1577/ https://nyknck.itch.io/wind (I added the farts, burps, fans myself using this free sprite editor https://www.piskelapp.com )"}, {"post_id": 22119, "ts": "2026-07-04T12:30:04Z", "hours": 0.4267, "text": "Working on a new minigame (2)… TEASER: Wario won’t be collecting coins on the floor, nonono… hint: What happens to Wario when he gets stung by a bee? I’ll put a proper devlog of the 2nd minigame soon…"}, {"post_id": 20317, "ts": "2026-07-01T21:43:05Z", "hours": 7.0744, "text": "Guys just finished making the whole of level 1, it took a very long time very very early in the morning, not going to bother making my devlog pretty. I made smooth UI for win and death screens, its like a panel that slides UP/DOWN. Wario can now collect coins + I added a coin counter, + even an autoload high score save system so even if you close the game your score will be saved on disk, so the score will still be there. I added some camera juice, the screen shakes. S"}, {"post_id": 18073, "ts": "2026-06-29T01:59:36Z", "hours": 2.0264, "text": "Wario Cave Escape Devlog: Health, Damage, and Dramatic Falls! The project is moving fast, and the core gameplay loop is officially coming together. Wario is no longer safely exploring an empty cave and the environment is dangerous, and losing actually has some hilariously retro stakes now. 🛡️ The Garlic Health System & Enemy Attacks The enemies aren’t just pacing back and forth anymore, they are active threats! I got enemy hitboxes fully working as well as attacking animations, meaning they will now aggressively attack Wario on sight. To track his life, I implemented a custom health system themed around Wario’s absolute favorite food: Garlic . Instead of a boring heart container or health bar, Wario’s life is represented by garlic bulbs at the top of the screen. Invincibility Frames (i-Frames): To keep the gameplay fair and arcade-accurate, Wario doesn’t just instantly vaporize if he gets trapped against a wall. When hit, he gets a brief moment of total immunity where his sprite flashes translucent, giving the player a split second to scramble away and reset their positioning. 💀 Classic Mario-Style Death Animation If Wario runs out of Garlic health or the chaotic panic clock ticks down to absolute zero, the game triggers a dramatic, theatrical defeat sequence inspired directly by Super Mario Bros. : The Freeze: Wario instantly halts whatever he’s doing and plays a custom, shocked “hurt” animation frame. Camera Lock: The camera instantly unparents itself and freezes perfectly in place, locking onto the cave scene so it doesn’t follow his ragdoll physics. The Plunge: Wario’s collision shapes drop, and he gets propelled upward with a heavy vertical blast of speed before naturally succumb to gravity plunging straight down past the bottom edge of the screen into the abyss. 🪙 The Coin Migration & Next Steps While working on the collectibles, I hit a slight development roadblock. I originally scattered all the shiny gold coins directly inside the TileMapLayer . However, I quickly realized that to make coin collection feel truly dynamic (handling individual pickups, playing satisfying collection animations, and firing clean audio cues), I need to migrate them. The Plan: I am moving the coins out of the TileMap and rewriting them as independent 2D Sprites with localized Area2D triggers . Once that transition is finished, a clean global UI counter will track exactly how much loot Wario is escaping with. 🚀 Roadmap to Release The project is lowkey looking ready to ship very soon! Here is what’s left on the immediate checklist: Finish migrating the coins to independent sprite objects. Build the dedicated Win Screen and Death/Game Over Screen . Add the actual audio juice (SFX for jumping, getting hit, and collecting gold). Developer’s Future Note: I am making so much progress on the core engine syntax that I’m highly considering expanding this project later down the line by turning this cave escape into 1 of the many minigames of this Wario series."}, {"post_id": 17444, "ts": "2026-06-28T07:01:37Z", "hours": 9.5278, "text": "Wario Cave Escape Game: What I’ve Built So Far! Title Screen & The “Squish” Entry The game kicks off with a classic arcade-style main menu featuring a custom retro logo. But instead of just a boring fade-in, I added a super dynamic entry sequence. Wario actually drops into the screen and squishes the letters of the title logo, warping and flattening them like a cartoon accordion before they snap into place! Clicking Start Game instantly drops you right into the level, while Exit closes the game window smoothly. Cave Environment & Visual Depth The level itself is a retro-inspired underground cave filled with winding stone tunnels, platforms, a massive waterfall on the left, and a dangerous pit of boiling hot lava at the bottom. The Background Trick: Instead of wasting file size on separate dark artwork for the background, I used a clever color filter over the interior tunnel walls. By dropping the brightness filter down to a dark charcoal color, the light grey stone blocks transform into deep, moody shadows. This makes the foreground platforms, Wario, and hazards pop off the screen beautifully. Smooth Ladder Mechanics Scattered through the cave are vertical ladders that aren’t just decorative background pieces—they are fully interactive. Seamless Entry: The moment Wario walks into a ladder zone and you press move_up or move_down , the game’s gravity instantly turns off. He completely sticks to the ladder. The Animation Freeze: When climbing, his arms and legs scramble realistically up the rungs. If you let go of the controller, he doesn’t awkwardly drop into a standing stance or fall; his animation instantly pauses mid-frame, making it look like he’s firmly gripping the ladder while deciding his next move. Quick Escape: If you need to make a quick getaway, you can jump directly off the ladder at any point, instantly restoring normal gravity so you can slide or leap onto a nearby platform. Dynamic “Panic Mode” Escape Clock The absolute highlight of the gameplay is the high-intensity countdown timer sitting at the top of the screen, styled in a chunky, yellow, retro font. Normal Phase (30 down to 5 seconds): The clock ticks down calmly, second by second, showing a clean, steady countdown as you navigate the platforms. Panic Phase (Under 5 seconds): The exact microsecond the clock drops below 5 seconds, the entire game mood changes. The timer instantly turns bright red, starts tracking lightning-fast fractions of a second (just 1 decimal place!), and begins shaking violently on the screen to completely stress out the player. Game Over: If the clock hits zero before you escape, the level instantly resets, forcing you to try the frantic escape all over again. Next Up On The To-Do List! Now that the core movement and timer loop are locked down, I need to focus on adding the actual gameplay objectives and obstacles: Gold Nuggets / Collectibles: I need to scatter shiny gold nuggets throughout the branching cave paths for Wario to collect as he sprints for the exit. Enemies: I need to implement basic patrol enemies patrolling the platforms to block his paths and slow him down while the panic clock ticks away! Sound Effects (SFX): The game needs audio juice. I need to add crunching stomp sound effects for Wario’s entry squish, a tense ticking sound for the panic timer, and satisfying collecting noises for the gold. Developer’s Note Just getting the title slide together took 3 hours, (I really questioned the whole purpose of that, 3 hours never coming back again!) but seeing Wario smoothly scale the ladders and watching the clock aggressively shake makes the game loop feel incredibly rewarding. I can’t wait to see how it will turn out in the future1"}]...
|
Title: WarioWare Game Proper by @NC | Stardance
D Title: WarioWare Game Proper by @NC | Stardance
Devlogs:
Wario Cave Escape Game: What I’ve Built So Far! Title Screen & The “Squish” Entry The game kicks off with a classic arcade-style main menu featuring a custom retro logo. But instead of just a boring fade-in, I added a super dynamic entry sequence. Wario actually drops into the screen and squishes the letters of the title logo, warping and flattening them like a cartoon accordion before they snap into place! Clicking Start Game instantly drops you right into the level, while Exit closes the game window smoothly. Cave Environment & Visual Depth The level itself is a retro-inspired underground cave filled with winding stone tunnels, platforms, a massive waterfall on the left, and a dangerous pit of boiling hot lava at the bottom. The Background Trick: Instead of wasting file size on separate dark artwork for the background, I used a clever color filter over the interior tunnel walls. By dropping the brightness filter down to a dark charcoal color, the light grey stone blocks transform into deep, moody shadows. This makes the foreground platforms, Wario, and hazards pop off the screen beautifully. Smooth Ladder Mechanics Scattered through the cave are vertical ladders that aren’t just decorative background pieces—they are fully interactive. Seamless Entry: The moment Wario walks into a ladder zone and you press move_up or move_down , the game’s gravity instantly turns off. He completely sticks to the ladder. The Animation Freeze: When climbing, his arms and legs scramble realistically up the rungs. If you let go of the controller, he doesn’t awkwardly drop into a standing stance or fall; his animation instantly pauses mid-frame, making it look like he’s firmly gripping the ladder while deciding his next move. Quick Escape: If you need to make a quick getaway, you can jump directly off the ladder at any point, instantly restoring normal gravity so you can slide or leap onto a nearby platform. Dynamic “Panic Mode” Escape Clock The absolute highlight of the gameplay is the high-intensity countdown timer sitting at the top of the screen, styled in a chunky, yellow, retro font. Normal Phase (30 down to 5 seconds): The clock ticks down calmly, second by second, showing a clean, steady countdown as you navigate the platforms. Panic Phase (Under 5 seconds): The exact microsecond the clock drops below 5 seconds, the entire game mood changes. The timer instantly turns bright red, starts tracking lightning-fast fractions of a second (just 1 decimal place!), and begins shaking violently on the screen to completely stress out the player. Game Over: If the clock hits zero before you escape, the level instantly resets, forcing you to try the frantic escape all over again. Next Up On The To-Do List! Now that the core movement and timer loop are locked down, I need to focus on adding the actual gameplay objectives and obstacles: Gold Nuggets / Collectibles: I need to scatter shiny gold nuggets throughout the branching cave paths for Wario to collect as he sprints for the exit. Enemies: I need to implement basic patrol enemies patrolling the platforms to block his paths and slow him down while the panic clock ticks away! Sound Effects (SFX): The game needs audio juice. I need to add crunching stomp sound effects for Wario’s entry squish, a tense ticking sound for the panic timer, and satisfying collecting noises for the gold. Developer’s Note Just getting the title slide together took 3 hours, (I really questioned the whole purpose of that, 3 hours never coming back again!) but seeing Wario smoothly scale the ladders and watching the clock aggressively shake makes the game loop feel incredibly rewarding. I can’t wait to see how it will turn out in the future1
Wario Cave Escape Devlog: Health, Damage, and Dramatic Falls! The project is moving fast, and the core gameplay loop is officially coming together. Wario is no longer safely exploring an empty cave and the environment is dangerous, and losing actually has some hilariously retro stakes now. 🛡️ The Garlic Health System & Enemy Attacks The enemies aren’t just pacing back and forth anymore, they are active threats! I got enemy hitboxes fully working as well as attacking animations, meaning they will now aggressively attack Wario on sight. To track his life, I implemented a custom health system themed around Wario’s absolute favorite food: Garlic . Instead of a boring heart container or health bar, Wario’s life is represented by garlic bulbs at the top of the screen. Invincibility Frames (i-Frames): To keep the gameplay fair and arcade-accurate, Wario doesn’t just instantly vaporize if he gets trapped against a wall. When hit, he gets a brief moment of total immunity where his sprite flashes translucent, giving the player a split second to scramble away and reset their positioning. 💀 Classic Mario-Style Death Animation If Wario runs out of Garlic health or the chaotic panic clock ticks down to absolute zero, the game triggers a dramatic, theatrical defeat sequence inspired directly by Super Mario Bros. : The Freeze: Wario instantly halts whatever he’s doing and plays a custom, shocked “hurt” animation frame. Camera Lock: The camera instantly unparents itself and freezes perfectly in place, locking onto the cave scene so it doesn’t follow his ragdoll physics. The Plunge: Wario’s collision shapes drop, and he gets propelled upward with a heavy vertical blast of speed before naturally succumb to gravity plunging straight down past the bottom edge of the screen into the abyss. 🪙 The Coin Migration & Next Steps While working on the collectibles, I hit a slight development roadblock. I originally scattered all the shiny gold coins directly inside the TileMapLayer . However, I quickly realized that to make coin collection feel truly dynamic (handling individual pickups, playing satisfying collection animations, and firing clean audio cues), I need to migrate them. The Plan: I am moving the coins out of the TileMap and rewriting them as independent 2D Sprites with localized Area2D triggers . Once that transition is finished, a clean global UI counter will track exactly how much loot Wario is escaping with. 🚀 Roadmap to Release The project is lowkey looking ready to ship very soon! Here is what’s left on the immediate checklist: Finish migrating the coins to independent sprite objects. Build the dedicated Win Screen and Death/Game Over Screen . Add the actual audio juice (SFX for jumping, getting hit, and collecting gold). Developer’s Future Note: I am making so much progress on the core engine syntax that I’m highly considering expanding this project later down the line by turning this cave escape into 1 of the many minigames of this Wario series.
Guys just finished making the whole of level 1, it took a very long time very very early in the morning, not going to bother making my devlog pretty. I made smooth UI for win and death screens, its like a panel that slides UP/DOWN. Wario can now collect coins + I added a coin counter, + even an autoload high score save system so even if you close the game your score will be saved on disk, so the score will still be there. I added some camera juice, the screen shakes. S
Working on a new minigame (2)… TEASER: Wario won’t be collecting coins on the floor, nonono… hint: What happens to Wario when he gets stung by a bee? I’ll put a proper devlog of the 2nd minigame soon…
Devlog Update: Wario Land Mechanics & Microgame #2! Have you ever wondered what happens to Wario when he gets stung by a bee in the classic games? He inflates into a massive, round balloon! He gets so hilariously huge that he loses his regular platforming abilities and starts floating automatically. That exact mechanic is the core inspiration behind my second minigame ! The Concept: Excretion Propulsion Instead of your standard top-down or platforming setup, players have to navigate a panicked survival challenge while completely inflated: The Movement: Wario floats upward automatically. To move horizontally, you have to blast him sideways by burping out of one side or farting out of the other ! The Objective: Pilot Wario’s massive balloon collision box through tight corridors and narrow vertical alleys before the clock hits zero. What have I been upto so far? Custom Physics & Input: The funny burp/fart thrust logic is fully operational. Environmental Hazards: Industrial fans are officially placed and working as expected! They generate continuous wind forces that push Wario across the map. Visual Juice: The fan blades actually rotate dynamically, and I’ve added custom wind particles to show the direction of the draft. Next Steps The core engine code and character states are working beautifully. Now it’s all down to the physical level design. I need to finish constructing the full layout maps, adding hazards like spikes, and coding the closing walls for the higher difficulty tiers. I’m aiming to have the full map layouts completed (or very close to it) by tomorrow! Check out the screenshots below, seeing this vintage GBC puffed Wario rocket around the screen with gas clouds is absolutely hilarious! Found the wario sprites and wind particles here https://www.spriters-resource.com/game_boy_advance/wl4/asset/1577/ https://nyknck.itch.io/wind (I added the farts, burps, fans myself using this free sprite editor https://www.piskelapp.com )
Devlog Update Finished the environment for the 2nd Minigame Took a really long time, the tower length is pretty big, lots of different decorations. I am yet to add spikes, just started adding enemies moving left to right, to be continued!...
|
1792673486.056489
|
1793278286.056489
|
|
64601
|
My First Godot Game by @Zemal | Stardance
|
Zemal
|
1
|
27.85
|
207
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-29T00:12:48Z", "hours": 25.0, "multiplier": 8.43, "payout": 207, "blessing": "neutral", "text": "I made my first ever Godot game, Out of Sync, and honestly this project was much more challenging than I expected. I started with a simple idea, but while building it I ended up learning a lot about scenes, scripts, collisions, timers, character selection, level transitions, and fixing bugs. The most difficult part was making everything work together properly, especially the character selection across different levels, the locked/unlocked exits, the timer system, and the second laser level. There were so many small issues that kept coming up, and sometimes fixing one thing created another problem. I’m really proud that I kept working on it and turned the idea into a complete playable game with two levels, different challenges, restart functionality, and a proper ending. I also learned a lot about Godot during the process, and by the end I felt much more comfortable finding things and understanding how the project was structured. You can test the full game using the Try project link. I’m really happy to finally finish and ship my first Godot game!", "repo": "https://github.com/zemaldars01-png/out-of-sync-game", "demo": "https://zemal-dars.itch.io/out-of-sync"}]...
|
[{"post_id": 77388, "ts": "202 [{"post_id": 77388, "ts": "2026-10-06T19:15:47Z", "hours": 0.3667, "text": "Finally finished the updates!!! I uploaded the new version to itch.io and tested the whole game again. Everything is working properly now, and I also changed the screenshots so they match the updated game. I recorded a quick playthrough to show how it looks now :)"}, {"post_id": 76899, "ts": "2026-10-05T00:05:10Z", "hours": 2.4803, "text": "After I got the changes request, I went back to the game and changed a lot of the visuals.I made the new backgrounds myself in Canva and tried to keep everything in the same purple glitch theme. I also made the switches myself in Canva and changed the keys and character images so they matched the new style better.I worked on the title screen, character selection, Level 1, the laser room, the restart button, and the ending screen. I also added a moving background to the final screen.Most of the work today was fixing the parts that were mentioned in the feedback and making the game look more consistent. I still need to upload the updated version to itch.io, but the changes are now working in the game."}, {"post_id": 75048, "ts": "2026-09-29T00:08:56Z", "hours": 0.3275, "text": "Finally finished the whole game Both levels are now complete and working properly. I also fixed the last few issues with the character selection, exits, and the browser version. I tested the full game from start to finish and everything is working now.This project honestly made me so tired but I learned a lot while building it. At the start I barely knew where things were in Godot, but after working on it for so long, I got much more comfortable with scenes, scripts, signals, collisions, and fixing bugs.The game is now live in the browser and the code is also on GitHub. Really happy to finally finish and ship my first Godot game :)"}, {"post_id": 75026, "ts": "2026-09-28T22:00:18Z", "hours": 3.1764, "text": "Finally finished reworking Level 2! I changed it from being too simple into a more challenging laser room. Now the player has to reach 3 switches placed around the room, avoid the moving lasers, turn them off one by one, and then unlock the exit.Also fixed the character selection so the same character you choose at the start continues into this level too.This part took a lot of testing because the laser collisions, switches, and exit kept breaking in different ways but it finally works properly now.The game is basically complete now, and I’m really happy with how much better Level 2 feels compared to before."}, {"post_id": 74868, "ts": "2026-09-28T14:07:00Z", "hours": 2.6981, "text": "Finally got Level 1 into a proper playable state today. Added the 5-key challenge, timer, counter, locked/unlocked exit, and made the transition to the next room automatic once the level is cleared.I also cleaned up the HUD and fixed a bunch of annoying key/pickup issues along the way.It was one of those sessions where one small bug kept turning into another but seeing the full level work from start to finish was worth it. Next up: polishing the next room and making the game more challenging."}, {"post_id": 74681, "ts": "2026-09-27T23:58:23Z", "hours": 3.6211, "text": "Polished the title screen and it took a lot of effort 😭 I changed the main title font, worked on the purple panels, fixed the spacing, and cleaned up the character selection and Start button. I’m really tired now, but the more the game starts looking better, the more I feel like continuing and building the next parts."}, {"post_id": 74527, "ts": "2026-09-27T15:56:33Z", "hours": 3.4747, "text": "I’m currently working on improving Room 3 of my game, “Out of Sync.” I added moving laser obstacles around the key to make the level more challenging, adjusted the player and collision sizes, and finished the escape flow. I also redesigned the room-complete screen with a neon theme, a glowing Continue button, and sparkle effects that appear when the player hovers over it. The level is starting to feel much more polished and complete now."}, {"post_id": 74216, "ts": "2026-09-26T22:53:22Z", "hours": 6.1006, "text": "Today I worked on Room 3 of my Godot game. I added laser hazards, a collectible key, and an exit system. The player now has to avoid the lasers, collect the key, and reach the door to complete the room. I also fixed several script and movement issues while testing the level."}, {"post_id": 73151, "ts": "2026-09-24T14:18:59Z", "hours": 1.4631, "text": "Today I added a timer to my Godot game and made a proper time-up screen. I also added a restart button so the level can start again after losing. I had a few problems with button signals and node names, but I fixed them and now the game is working better."}, {"post_id": 71953, "ts": "2026-09-21T20:46:41Z", "hours": 3.6772, "text": "Today I worked on my Godot game. I created and tested different parts of the game, fixed some problems, and learned more about how Godot works. I also improved the gameplay and made progress on the project."}]...
|
Title: My First Godot Game by @Zemal | Stardance
Title: My First Godot Game by @Zemal | Stardance
Devlogs:
Today I worked on my Godot game. I created and tested different parts of the game, fixed some problems, and learned more about how Godot works. I also improved the gameplay and made progress on the project.
Today I added a timer to my Godot game and made a proper time-up screen. I also added a restart button so the level can start again after losing. I had a few problems with button signals and node names, but I fixed them and now the game is working better.
Today I worked on Room 3 of my Godot game. I added laser hazards, a collectible key, and an exit system. The player now has to avoid the lasers, collect the key, and reach the door to complete the room. I also fixed several script and movement issues while testing the level.
I’m currently working on improving Room 3 of my game, “Out of Sync.” I added moving laser obstacles around the key to make the level more challenging, adjusted the player and collision sizes, and finished the escape flow. I also redesigned the room-complete screen with a neon theme, a glowing Continue button, and sparkle effects that appear when the player hovers over it. The level is starting to feel much more polished and complete now.
Polished the title screen and it took a lot of effort 😭 I changed the main title font, worked on the purple panels, fixed the spacing, and cleaned up the character selection and Start button. I’m really tired now, but the more the game starts looking better, the more I feel like continuing and building the next parts.
Finally got Level 1 into a proper playable state today. Added the 5-key challenge, timer, counter, locked/unlocked exit, and made the transition to the next room automatic once the level is cleared.I also cleaned up the HUD and fixed a bunch of annoying key/pickup issues along the way.It was one of those sessions where one small bug kept turning into another but seeing the full level work from start to finish was worth it. Next up: polishing the next room and making the game more challenging.
Finally finished reworking Level 2! I changed it from being too simple into a more challenging laser room. Now the player has to reach 3 switches placed around the room, avoid the moving lasers, turn them off one by one, and then unlock the exit.Also fixed the character selection so the same character you choose at the start continues into this level too.This part took a lot of testing because the laser collisions, switches, and exit kept breaking in different ways but it finally works properly now.The game is basically complete now, and I’m really happy with how much better Level 2 feels compared to before.
Finally finished the whole game Both levels are now complete and working properly. I also fixed the last few issues with the character selection, exits, and the browser version. I tested the full game from start to finish and everything is working now.This project honestly made me so tired but I learned a lot while building it. At the start I barely knew where things were in Godot, but after working on it for so long, I got much more comfortable with scenes, scripts, signals, collisions, and fixing bugs.The game is now live in the browser and the code is also on GitHub. Really happy to finally finish and ship my first Godot game :)
After I got the changes request, I went back to the game and changed a lot of the visuals.I made the new backgrounds myself in Canva and tried to keep everything in the same purple glitch theme. I also made the switches myself in Canva and changed the keys and character images so they matched the new style better.I worked on the title screen, character selection, Level 1, the laser room, the restart button, and the ending screen. I also added a moving background to the final screen.Most of the work today was fixing the parts that were mentioned in the feedback and making the game look more consistent. I still need to upload the updated version to itch.io, but the changes are now working in the game.
Finally finished the updates!!! I uploaded the new version to itch.io and tested the whole game again. Everything is working properly now, and I also changed the screenshots so they match the updated game. I recorded a quick playthrough to show how it looks now :)
Ships:
I made my first ever Godot game, Out of Sync, and honestly this project was much more challenging than I expected. I started with a simple idea, but while building it I ended up learning a lot about scenes, scripts, collisions, timers, character selection, level transitions, and fixing bugs. The most difficult part was making everything work together properly, especially the character selection across different levels, the locked/unlocked exits, the timer system, and the second laser level. There were so many small issues that kept coming up, and sometimes fixing one thing created another problem. I’m really proud that I kept working on it and turned the idea into a complete playable game with two levels, different challenges, restart functionality, and a proper ending. I also learned a lot about Godot during the process, and by the end I felt much more comfortable finding things and understanding how the project was structured. You can test the full game using the Try project link. I’m really happy to finally finish and ship my first Godot game!...
|
1793213613.2191951
|
1793300013.2191951
|
|
61568
|
game_of_logicgates by @Phonemi | Stardance
|
Phonemi
|
0
|
27.78
|
0
|
[]
|
[{"post_id": 77922, "ts": "202 [{"post_id": 77922, "ts": "2026-10-08T19:36:33Z", "hours": 1.3156, "text": "game_oflogic-gates20 devblog 20 so big news we are finaly finished with the whole simulation so chapter 6 is totaly complete but idk if i will wor on the ther cahpters because i alredy lerned all the stuff and just writing it is realy borring and in the end this website will teach nobody else so i dont see any reson why i shold do that but now it looks prety good and to be honest i used ai to correct my spelling mistakes since i hav dislexia but yea still need to upload the site and make a read me cause right now it is just localhost hope you like it[-_-]"}, {"post_id": 77390, "ts": "2026-10-06T19:33:09Z", "hours": 4.5614, "text": "game_oflogic-gates19 so the full sim is almoast finish and most bugs from before are fixed still need to fix like 4 but that is ok and i need to add style cause this looks prety bad and i also lost my laptop charger thats why i needed to use a other one so i needed to do some things 2 times but now i found my laprop hope you like it[-_-]"}, {"post_id": 72711, "ts": "2026-09-23T15:47:56Z", "hours": 1.8211, "text": "game_oflogic-gates18 so i finished all the board logic but not which label is on which sheet so i made how it should calculate evrything in the code because that should be the same as my chip now i will need to create a ui for that in 6.1 so that you can look what haapens when and where hope you like it[-_-]"}, {"post_id": 72337, "ts": "2026-09-22T18:06:43Z", "hours": 1.6544, "text": "game_oflogic-gates17 1.3 finished and with that i finished chapter 1 only 5 chapters more to go so this chapter is about all the other logic gates which i didnt explain in 1.2 and also has a plan how you can build these gates with the 3 base gates probaply gonna do the full simulation first because then i can ship also if i am not finished hope you like it[-_-]"}, {"post_id": 71942, "ts": "2026-09-21T20:28:10Z", "hours": 2.5956, "text": "game_oflogic-gates16 1.2 finished and all the logic to create most important simulations o now i can easaly inport a simpulation for every gate so 1.3 will be way easier then 1.2 and i finished writing everything and the simulation is working fine (i didnt want to code svgs so you get a visual sim sry because i am to stupid for this ) hope you like it[-_-]"}, {"post_id": 71410, "ts": "2026-09-20T19:33:34Z", "hours": 0.6969, "text": "game_oflogic-gates15 i wrote 1.1 What are logic gates in my website (still need to fix spelling mistake) i didnt wana put any simulations in it because that should be 1.2 and 1.3 so yea in the screenshots you can see the end result"}, {"post_id": 71210, "ts": "2026-09-20T13:29:21Z", "hours": 1.3392, "text": "game_oflogic-gates14 i fixed all errors in the schem file so i fixed all the errors most of them where just power thinks but they are all gone we started like with 300 errors then i fixed them in a other devblog had still like 50 left and now i finaly fixed these also started working on the first explenation chaptor of the website hope you like it[-_-]"}, {"post_id": 71091, "ts": "2026-09-20T09:01:52Z", "hours": 0.3428, "text": "game_oflogic-gates13 i just changed font and color scheme so now it looks way cleaner idk what more can i say but i dont think i will be able to finish it but i will try my best hope you like it[-_-]"}, {"post_id": 70724, "ts": "2026-09-19T17:35:10Z", "hours": 2.5497, "text": "game_oflogic-gates12 so i decided to make it a software project why?: my project will be very expencive and if something isnt working i will lose all my funding also idk how much funding i will get so here is what i did for thi devblog i started creating a website with docs for my project the color scheme should be the one of a pcb board but i am not quite happy with it it should look like the rust docs but i got a ong way untill it looks that gud i also started fixing a lot of errors but then more apered so on the schem side it looking not that good i now need to fix 41 errors but i think i can do that in my docs there will also be simulations etc and i am using svelte if you guys have nay idea what i should change to make it look better pls write a comment hope you like it[-_-]"}, {"post_id": 69425, "ts": "2026-09-17T01:04:37Z", "hours": 0.5478, "text": "#game_oflogic-gates11 biig update!!!!!! we are almoast finished with the schmetics i did a speedrun and now there is a counter a clock a reset and a power module so yay you can see all the curguits below but still need to fix 32 errors and propably some other 2 and i need to see if i make a simulation for it next+ a website since i changed the type to a software project but yea we will look hope you like it[-_-]"}, {"post_id": 69379, "ts": "2026-09-16T22:49:39Z", "hours": 0.7953, "text": "game_oflogic-gates10 Pretty crazy that i am alredy ad devblogs 10 but good I added a Display If you looked at My other devblogs before you maby noticed that WE alredy have a Display in the Keyboard but that is only the thinks you Type in so this Displaydisplays the simulaton i am also getting faster ad making mut’s and placing Labels (over 200 global Labels again) Hope you Like IT[-_-]"}, {"post_id": 69322, "ts": "2026-09-16T19:58:45Z", "hours": 0.55, "text": "game_oflogic-gates9 i finished the mux yay : so i looked again what i still need and there are still a lot of thinks but this is one of the thinks and it was very very simple it basicly just implements start and stop button stuff like that i think you understand it if you want to look at the ogic gates and flipflops you can see the picture below still got lots to do but i am doing my best to speedrun this hope you like it[-_-]"}, {"post_id": 69234, "ts": "2026-09-16T16:59:03Z", "hours": 1.7869, "text": "game_oflogic-gates8 i finihed the button matrix evrything is working is fine i dont think i need to explain what a button matrix is hard part was placing all 200 labels and rebuilding some thinks and nooooo i didnt use logic gates to create the buttons and led’s so i am realy sry for that (yking ofc) thx for reading the devblog still got lots of thinks to do but i can make it hope you like it[-_-]"}, {"post_id": 68794, "ts": "2026-09-15T19:22:48Z", "hours": 1.2536, "text": "game_oflogic-gates7 i finished the counter yay so what is doas is pretty basic it counts and looks which piece it should calculate next it also looks if the whole the piece are at the boarder or not so yea if you see something in the picture below you dont understand jst ask me or follow the project or wait and wait a bit since i will probaply make a simulation website which describes the process and biggest update no more fcking logicgates next thinks on the to do is led and button matrix and then we will look furher hope you like it[-_-]"}, {"post_id": 68263, "ts": "2026-09-14T20:05:52Z", "hours": 2.0522, "text": "game_oflogik-gates6 so i aktually made a lot i finished making the ring in kicad thats just 14 8bit d-flip flops needed a bit time for that but thats finished now and i also fixed 218 errors so now i am only on 19 so thats pretty good wont explain evrything in deatail you can see most of the thinks in my pictures and if you have any question ten just comment and check the devblog like after 1 day then i probply answered it hope you like it[-_-]"}, {"post_id": 68066, "ts": "2026-09-14T13:46:08Z", "hours": 0.8194, "text": "game_oflogik-gates5 i am finished with the digital software tried to wire flipflops and calc together corectly managed to do it so now i am back to ki cad where i alredy made that the calc is a own block and yea now i am just adding the flip flop and then we are almoast finished jippi (only with that part that fucks my brain) we still need to do monitor and keys but that should be easy hopefully hope you like it[-_-]"}, {"post_id": 67970, "ts": "2026-09-14T09:25:54Z", "hours": 1.3794, "text": "game_oflogik-gates4 brought all to digital so know i can simulate it much better then i needed to fix some problems that i had before but yea also made it a bit simpler so it looks very simple now also started working on my flip flop hope you like it"}, {"post_id": 67396, "ts": "2026-09-13T14:19:33Z", "hours": 0.6667, "text": "game_oflogicgates 2 so i finaly understud that we dont need 2 different curcuts for the dead or alive status so here is what i did you can now enter all 8 values of the neigbors and if it is 3 it sets the value to alive if its 2 it stays the same and if its anything else its dead pretty simple so i just needed to place evrything down and label it corectly and i was finished thought this project will take a eternity but i guess not hope you like it[-_-]"}, {"post_id": 67248, "ts": "2026-09-13T09:42:00Z", "hours": 0.25, "text": "game_of_logicgates2 so yea devblog 2 is a bit short but i did something important so i thought it was cheating to just use a full adder block or half adder block so i made them first and now i think i can use them as predefined blocks"}, {"post_id": 66981, "ts": "2026-09-12T23:57:48Z", "hours": 0.8003, "text": "game_of_logicgates 1 this is my new project jippi idk if i manage to finish it in time also because shools starts soon but i am making a little consol with a 10 10 button grid and a 10 10 pixel screen and making all the rest only with logic gates so yea what did i do now i just thaught out loud how i can do all this so yea hope you like it[-_-]"}]...
|
Title: game_of_logicgates by @Phonemi | Stardance
Title: game_of_logicgates by @Phonemi | Stardance
Devlogs:
game_of_logicgates 1 this is my new project jippi idk if i manage to finish it in time also because shools starts soon but i am making a little consol with a 10 10 button grid and a 10 10 pixel screen and making all the rest only with logic gates so yea what did i do now i just thaught out loud how i can do all this so yea hope you like it[-_-]
game_of_logicgates2 so yea devblog 2 is a bit short but i did something important so i thought it was cheating to just use a full adder block or half adder block so i made them first and now i think i can use them as predefined blocks
game_oflogicgates 2 so i finaly understud that we dont need 2 different curcuts for the dead or alive status so here is what i did you can now enter all 8 values of the neigbors and if it is 3 it sets the value to alive if its 2 it stays the same and if its anything else its dead pretty simple so i just needed to place evrything down and label it corectly and i was finished thought this project will take a eternity but i guess not hope you like it[-_-]
game_oflogik-gates4 brought all to digital so know i can simulate it much better then i needed to fix some problems that i had before but yea also made it a bit simpler so it looks very simple now also started working on my flip flop hope you like it
game_oflogik-gates5 i am finished with the digital software tried to wire flipflops and calc together corectly managed to do it so now i am back to ki cad where i alredy made that the calc is a own block and yea now i am just adding the flip flop and then we are almoast finished jippi (only with that part that fucks my brain) we still need to do monitor and keys but that should be easy hopefully hope you like it[-_-]
game_oflogik-gates6 so i aktually made a lot i finished making the ring in kicad thats just 14 8bit d-flip flops needed a bit time for that but thats finished now and i also fixed 218 errors so now i am only on 19 so thats pretty good wont explain evrything in deatail you can see most of the thinks in my pictures and if you have any question ten just comment and check the devblog like after 1 day then i probply answered it hope you like it[-_-]
game_oflogic-gates7 i finished the counter yay so what is doas is pretty basic it counts and looks which piece it should calculate next it also looks if the whole the piece are at the boarder or not so yea if you see something in the picture below you dont understand jst ask me or follow the project or wait and wait a bit since i will probaply make a simulation website which describes the process and biggest update no more fcking logicgates next thinks on the to do is led and button matrix and then we will look furher hope you like it[-_-]
game_oflogic-gates8 i finihed the button matrix evrything is working is fine i dont think i need to explain what a button matrix is hard part was placing all 200 labels and rebuilding some thinks and nooooo i didnt use logic gates to create the buttons and led’s so i am realy sry for that (yking ofc) thx for reading the devblog still got lots of thinks to do but i can make it hope you like it[-_-]
game_oflogic-gates9 i finished the mux yay : so i looked again what i still need and there are still a lot of thinks but this is one of the thinks and it was very very simple it basicly just implements start and stop button stuff like that i think you understand it if you want to look at the ogic gates and flipflops you can see the picture below still got lots to do but i am doing my best to speedrun this hope you like it[-_-]
game_oflogic-gates10 Pretty crazy that i am alredy ad devblogs 10 but good I added a Display If you looked at My other devblogs before you maby noticed that WE alredy have a Display in the Keyboard but that is only the thinks you Type in so this Displaydisplays the simulaton i am also getting faster ad making mut’s and placing Labels (over 200 global Labels again) Hope you Like IT[-_-]
#game_oflogic-gates11 biig update!!!!!! we are almoast finished with the schmetics i did a speedrun and now there is a counter a clock a reset and a power module so yay you can see all the curguits below but still need to fix 32 errors and propably some other 2 and i need to see if i make a simulation for it next+ a website since i changed the type to a software project but yea we will look hope you like it[-_-]
game_oflogic-gates12 so i decided to make it a software project why?: my project will be very expencive and if something isnt working i will lose all my funding also idk how much funding i will get so here is what i did for thi devblog i started creating a website with docs for my project the color scheme should be the one of a pcb board but i am not quite happy with it it should look like the rust docs but i got a ong way untill it looks that gud i also started fixing a lot of errors but then more apered so on the schem side it looking not that good i now need to fix 41 errors but i think i can do that in my docs there will also be simulations etc and i am using svelte if you guys have nay idea what i should change to make it look better pls write a comment hope you like it[-_-]
game_oflogic-gates13 i just changed font and color scheme so now it looks way cleaner idk what more can i say but i dont think i will be able to finish it but i will try my best hope you like it[-_-]
game_oflogic-gates14 i fixed all errors in the schem file so i fixed all the errors most of them where just power thinks but they are all gone we started like with 300 errors then i fixed them in a other devblog had still like 50 left and now i finaly fixed these also started working on the first explenation chaptor of the website hope you like it[-_-]
game_oflogic-gates15 i wrote 1.1 What are logic gates in my website (still need to fix spelling mistake) i didnt wana put any simulations in it because that should be 1.2 and 1.3 so yea in the screenshots you can see the end result
game_oflogic-gates16 1.2 finished and all the logic to create most important simulations o now i can easaly inport a simpulation for every gate so 1.3 will be way easier then 1.2 and i finished writing everything and the simulation is working fine (i didnt want to code svgs so you get a visual sim sry because i am to stupid for this ) hope you like it[-_-]
game_oflogic-gates17 1.3 finished and with that i finished chapter 1 only 5 chapters more to go so this chapter is about all the other logic gates which i didnt explain in 1.2 and also has a plan how you can build these gates with the 3 base gates probaply gonna do the full simulation first because then i can ship also if i am not finished hope you like it[-_-]
game_oflogic-gates18 so i finished all the board logic but not which label is on which sheet so i made how it should calculate evrything in the code because that should be the same as my chip now i will need to create a ui for that in 6.1 so that you can look what haapens when and where hope you like it[-_-]
game_oflogic-gates19 so the full sim is almoast finish and most bugs from before are fixed still need to fix like 4 but that is ok and i need to add style cause this looks prety bad and i also lost my laptop charger thats why i needed to use a other one so i needed to do some things 2 times but now i found my laprop hope you like it[-_-]
game_oflogic-gates20 devblog 20 so big news we are finaly finished with the whole simulation so chapter 6 is totaly complete but idk if i will wor on the ther cahpters because i alredy lerned all the stuff and just writing it is realy borring and in the end this website will teach nobody else so i dont see any reson why i shold do that but now it looks prety good and to be honest i used ai to correct my spelling mistakes since i hav dislexia but yea still need to upload the site and make a read me cause right now it is just localhost hope you like it[-_-]...
|
1793040700.3367398
|
1793645500.3367398
|
|
60807
|
Audio Visualizer Generator by @EclipseShadow | Sta Audio Visualizer Generator by @EclipseShadow | Stardance...
|
EclipseShadow
|
0
|
27.77
|
0
|
[]
|
[{"post_id": 83042, "ts": "202 [{"post_id": 83042, "ts": "2026-10-26T17:29:25Z", "hours": 9.8956, "text": "Reformatted Entire Project to be an chained Effect-based audio/video processing library. Hopefully I can finish at the visualizer part in this new format before the deadline, but currently adding new features to make it more complete, like basic Effects and other versions of existing Effects."}, {"post_id": 65614, "ts": "2026-09-10T21:09:16Z", "hours": 17.8761, "text": "Audio Processing - load audio file, process audio through resonators, save data to and load data from files Post Processing Options Complete - Height Normalization, Power Compression, LPF, Ballistic Smoothing, Frame Interpolation Square Bars Frame Generation Compilation Helper Method (temporary) (I wasn’t planning on submitting this to Stardance, so I’ve done a lot of work on it. Future devlogs will be smaller)"}]...
|
Title: Audio Visualizer Generator by @EclipseShado Title: Audio Visualizer Generator by @EclipseShadow | Stardance
Devlogs:
Audio Processing - load audio file, process audio through resonators, save data to and load data from files Post Processing Options Complete - Height Normalization, Power Compression, LPF, Ballistic Smoothing, Frame Interpolation Square Bars Frame Generation Compilation Helper Method (temporary) (I wasn’t planning on submitting this to Stardance, so I’ve done a lot of work on it. Future devlogs will be smaller)
Reformatted Entire Project to be an chained Effect-based audio/video processing library. Hopefully I can finish at the visualizer part in this new format before the deadline, but currently adding new features to make it more complete, like basic Effects and other versions of existing Effects....
|
1793037040.9598904
|
1793641840.9598904
|
|
28471
|
Chat by @tosterabgx | Stardance
|
tosterabgx
|
0
|
27.75
|
0
|
[]
|
[{"post_id": 35135, "ts": "202 [{"post_id": 35135, "ts": "2026-07-26T11:41:50Z", "hours": 6.78, "text": "API Upgrade Read a bit more about RESTful APIs and made mine better. Now, the messages get pagination, so frontend doesn’t need to store all messages from all chats, it can load only parts of the information it needs."}, {"post_id": 32992, "ts": "2026-07-22T14:51:50Z", "hours": 8.0444, "text": "A lot of stuff Changed UI completely (I hate css, even tailwind css ), so it looks more useful, and there are even several channels!!! (this is kinda similar to discord or slack) Also learned a lot of things about react (like hooks) and express. Btw, it is pretty fun!"}, {"post_id": 31505, "ts": "2026-07-19T23:21:28Z", "hours": 4.4983, "text": "Some stuff Made accounts actually useful. Now, the username is shown before the message. Yes, I spent 4 hours on just adding authors to the messages🥀 It took so long, because I was paranoid about the security of my app and couldn’t decide where to check for the user’s identity."}, {"post_id": 30447, "ts": "2026-07-18T00:19:24Z", "hours": 3.7567, "text": "A simple chat I added the MongoDB part to my project, where I store my users (I mean, will store :ppp) and messages. Of course, nothing is encrypted for now (passwords are hashed though), but I will fix it soon."}, {"post_id": 29808, "ts": "2026-07-16T22:58:52Z", "hours": 4.6708, "text": "Just Chat I want to build some type of the chatting website (like telegram or discord) just to learn a bit more about MERN tech stack. What I plan to add: Accounts Text, image messages Channels DMs First implementation As of right now, I have made a simple chat with socket.io, which works, but there is no chat history or even usernames."}]...
|
Title: Chat by @tosterabgx | Stardance
Devlogs:
J Title: Chat by @tosterabgx | Stardance
Devlogs:
Just Chat I want to build some type of the chatting website (like telegram or discord) just to learn a bit more about MERN tech stack. What I plan to add: Accounts Text, image messages Channels DMs First implementation As of right now, I have made a simple chat with socket.io, which works, but there is no chat history or even usernames.
A simple chat I added the MongoDB part to my project, where I store my users (I mean, will store :ppp) and messages. Of course, nothing is encrypted for now (passwords are hashed though), but I will fix it soon.
Some stuff Made accounts actually useful. Now, the username is shown before the message. Yes, I spent 4 hours on just adding authors to the messages🥀 It took so long, because I was paranoid about the security of my app and couldn’t decide where to check for the user’s identity.
A lot of stuff Changed UI completely (I hate css, even tailwind css ), so it looks more useful, and there are even several channels!!! (this is kinda similar to discord or slack) Also learned a lot of things about react (like hooks) and express. Btw, it is pretty fun!
API Upgrade Read a bit more about RESTful APIs and made mine better. Now, the messages get pagination, so frontend doesn’t need to store all messages from all chats, it can load only parts of the information it needs....
|
1793192055.5302162
|
1793796855.5302162
|
|
26579
|
Tremenda by @antoin | Stardance
|
antoin
|
0
|
27.73
|
0
|
[]
|
[{"post_id": 61222, "ts": "202 [{"post_id": 61222, "ts": "2026-09-04T01:41:21Z", "hours": 0.5194, "text": "So, just came back after a long break because I needed to review for school. PlatformIO doesn’t want to cooperate so I have to deletea everything and start from scratch. I will update when some code will be rewritten."}, {"post_id": 44257, "ts": "2026-08-09T21:43:42Z", "hours": 6.7292, "text": "Updates: I had some problems with platformio and list all of my code from this project, but I have saved the code on another computer and I will repair the problem I created a code to connect to my phone through bluetooth."}, {"post_id": 37356, "ts": "2026-07-30T00:36:56Z", "hours": 6.6364, "text": "Hardware I finished the schematics and pcb layout for the custom esp32 version one for my project, ordered it and will test it out in the future. Software I am starting to code the UI (User interface) of my device and it should not take me too long to code everything."}, {"post_id": 23897, "ts": "2026-07-07T03:12:20Z", "hours": 9.1097, "text": "Hardware: Added a total of 7 buttons, left, right, up, down, volume up, volume down, and select. Software: Modified the code so it allows the user to access folders and view mp3 files and navigate through the MicroSD card contents To Do: Update the code so it connects to bluetooth earphones Update the code so it can read .txt files Find a way to display color on the screen"}, {"post_id": 19663, "ts": "2026-07-01T01:20:48Z", "hours": 2.2172, "text": "Finished wiring the MicroSD card module to the ESP32. Finnally finished the code for the ESP32 to check what is inside it after working on it for 3 hours. First real git commit for the code."}, {"post_id": 18603, "ts": "2026-06-29T19:56:49Z", "hours": 2.5206, "text": "I am working on a MP3 player with a ESP32 as “brains” for the project. During the coding part to detect if a button is pressed I encoutered a problem and can’t solve it. If someone could help me troubleshoot my problem would be greatly appreciated."}]...
|
Title: Tremenda by @antoin | Stardance
Devlogs:
I Title: Tremenda by @antoin | Stardance
Devlogs:
I am working on a MP3 player with a ESP32 as “brains” for the project. During the coding part to detect if a button is pressed I encoutered a problem and can’t solve it. If someone could help me troubleshoot my problem would be greatly appreciated.
Finished wiring the MicroSD card module to the ESP32. Finnally finished the code for the ESP32 to check what is inside it after working on it for 3 hours. First real git commit for the code.
Hardware: Added a total of 7 buttons, left, right, up, down, volume up, volume down, and select. Software: Modified the code so it allows the user to access folders and view mp3 files and navigate through the MicroSD card contents To Do: Update the code so it connects to bluetooth earphones Update the code so it can read .txt files Find a way to display color on the screen
Hardware I finished the schematics and pcb layout for the custom esp32 version one for my project, ordered it and will test it out in the future. Software I am starting to code the UI (User interface) of my device and it should not take me too long to code everything.
Updates: I had some problems with platformio and list all of my code from this project, but I have saved the code on another computer and I will repair the problem I created a code to connect to my phone through bluetooth.
So, just came back after a long break because I needed to review for school. PlatformIO doesn’t want to cooperate so I have to deletea everything and start from scratch. I will update when some code will be rewritten....
|
1792727468.4943516
|
1793332268.4943516
|