|
4157
|
lander by @mahmoud | Stardance
|
mahmoud
|
1
|
4.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-30T07:30:43Z", "hours": 4.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "My first terminal games in raw C++, and also my first interaction with ASCII art. I worked on this one 3 months ago then I forgot it, so I will just ship it anyway đ", "repo": "https://github.com/mahmuudsarhan/lander", "demo": "https://mahmuudsarhan.itch.io/lander"}]...
|
[{"post_id": 1028, "ts": "2026 [{"post_id": 1028, "ts": "2026-06-02T20:20:34Z", "hours": 2.2372, "text": "Added a fuel burn animation to look explosive, (assuming your definition of âexplosiveâ is flashing punctuation marks) The window now auto-maximizes on launch 3.Cleaned up the math loops so the game logic doesnât break NOTE: It is definitely not the most visually stunning game in the world, but I hope you enjoy trying to beat it ÂŻ _ (ă)_/ÂŻ"}, {"post_id": 694, "ts": "2026-06-02T08:06:50Z", "hours": 2.0036, "text": "A terminal game where you control a spacecraft to land safely on the moon, just finished the core logic and will start adding animation"}]...
|
Title: lander by @mahmoud | Stardance
Devlogs:
A Title: lander by @mahmoud | Stardance
Devlogs:
A terminal game where you control a spacecraft to land safely on the moon, just finished the core logic and will start adding animation
Added a fuel burn animation to look explosive, (assuming your definition of âexplosiveâ is flashing punctuation marks) The window now auto-maximizes on launch 3.Cleaned up the math loops so the game logic doesnât break NOTE: It is definitely not the most visually stunning game in the world, but I hope you enjoy trying to beat it ÂŻ _ (ă)_/ÂŻ
Ships:
My first terminal games in raw C++, and also my first interaction with ASCII art. I worked on this one 3 months ago then I forgot it, so I will just ship it anyway đ...
|
1793652535.9377685
|
1793738935.9377685
|
|
4485
|
lander game by @dale | Stardance
|
dale
|
0
|
6.14
|
0
|
[]
|
[{"post_id": 3996, "ts": "2026 [{"post_id": 3996, "ts": "2026-06-07T04:20:24Z", "hours": 0.9672, "text": "Fixed stars and scrollbar bugs What I fixed: star,radius typo causing stars not to render Stars bunching in the corner before canvas resize White scrollbars around the edge with CSS What I added: Full screen starfield with 500 stars Changed lander color to white"}, {"post_id": 3238, "ts": "2026-06-06T02:11:07Z", "hours": 2.0525, "text": "The lander can now be flown around the page with veloicty and engine flame!!"}, {"post_id": 2601, "ts": "2026-06-05T06:45:49Z", "hours": 1.6419, "text": "Made the shape of the lander"}, {"post_id": 1923, "ts": "2026-06-04T04:58:33Z", "hours": 1.085, "text": "made a red square using a canvas"}, {"post_id": 1029, "ts": "2026-06-02T20:21:45Z", "hours": 0.3928, "text": "lander game says hello world"}]...
|
Title: lander game by @dale | Stardance
Devlogs:
Title: lander game by @dale | Stardance
Devlogs:
lander game says hello world
made a red square using a canvas
Made the shape of the lander
The lander can now be flown around the page with veloicty and engine flame!!
Fixed stars and scrollbar bugs What I fixed: star,radius typo causing stars not to render Stars bunching in the corner before canvas resize White scrollbars around the edge with CSS What I added: Full screen starfield with 500 stars Changed lander color to white...
|
1793382899.567928
|
1793987699.567928
|
|
44855
|
landinhere by @Amna-s | Stardance
|
Amna-s
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: landinhere by @Amna-s | Stardance
|
1793300014.7829163
|
1793904814.7829163
|
|
28998
|
lang by @aloe | Stardance
|
aloe
|
0
|
11.72
|
0
|
[]
|
[{"post_id": 20400, "ts": "202 [{"post_id": 20400, "ts": "2026-07-02T00:03:52Z", "hours": 3.3228, "text": "Basic types, generics, function calls, and nested identifiers Function calls are now parsed, and identifiers can be nested via dots and indices via brackets. I think Iâll have to reuse the same AST node used for function calls for enum fields carrying tuples when used in an expression other than enum itself. I got a headache thinking about the type system with generics. It probably wouldâve been easier if I drew a diagram before trying to implement them into the AST and parser. I got there eventually. I have yet to add support for tuple and array types outside the AST interface/type definitions. Basic named types and generics are supported and parsed properly. I should probably move all my type definitions for the AST to a new file so I donât have to keep scrolling past a couple hundred lines every time I need to reference them."}, {"post_id": 20075, "ts": "2026-07-01T16:22:10Z", "hours": 4.0131, "text": "Started AST and parser Iâve been referencing the parser guide for Easel . Itâs been quite useful. I started working on this last night, but I got tired and paused without writing a journal. I made a git commit with the broken changes this morning. So far, Iâve implemented basic parsing for variable and function declarations, literals, tuples, and expressions. I spent quite a while trying to settle on values for operator precedence. I lost track of time testing things in the JS console and on the Rust playground website to see what made sense for precedence. Apparently 1..5==1..5 evaluates to 1..(5==1)..5 , and 1&1+1 evaluates to 1&(1+1) . Like JS, Rust treats += as an expression instead of a statement, but it evaluates to () every time. Looking at Go, it supports the ++ operator, but doesnât allow it to be used inside an expression. Language design is odd, but I like how everything fits together."}, {"post_id": 19605, "ts": "2026-06-30T23:32:02Z", "hours": 4.3861, "text": "Initial blueprint, and a lexer. Before I wrote any code, I spent a while brainstorming features I wanted in this language. I wanted something with simple syntax and few keywords. There are currently 18 keywords. No keyword has more than four letters. I have yet to reserve names for types. I might stick with something similar to Rust for naming types. Declarations val Value (immutable). var Variable (mutable). fn enum I intend to support storing values inside, like Rust. obj Equivalent to a struct in Rust. type Type alias or an interface. ext Like an impl block in Rust. Conditional if else cmp Similar to Rustâs match statement. Flow ret Return. loop Overloaded loop operator. Go uses for, this uses loop. jmp Depending on context, this replaces continue and goto (though I intend to add constraints like Go for memory safety). drop Acts as a break statement, dropping out of a labeled loop or scope. May take a return value. Misc in Used for iteration. use Import. pub Export. del Manually delete a variable (free memory). Iâm considering two more keywords for a macro system later on, but Iâm not going to invest energy into that quite yet. For the sake of simplicity, there will be no :: operator . It will all be . . For type casting, I intend to use -> instead of adding another keyword. To keep the parser simple, Iâm looking at using square brackets instead of angled brackets for type generics, like Go does. Iâm still deciding. I intend to support function variadics with .. prefixing a parameter name. Like with Rust, labels will be prefixed by a single quote. I might change this. I wrote a lexer for this with a bit of hacky TypeScript and RegExp. Donât ask why itâs in TypeScript. Iâm pretty sure I was half-asleep when I started this the other day, and it shouldnât matter in the long run. If I can get this to transpile to C or something, Iâll bootstrap it. For memory management, I donât want a garbage collector. I donât want Rustâs ownership system either. It would defeat the point of a simple language if you need to wrestle with the compiler so often. The current plan is to use RAII and manual freeing where needed. Iâm considering an ARC hybrid with RAII or something later on, so memory management wonât be manual forever."}]...
|
Title: lang by @aloe | Stardance
Devlogs:
Initial Title: lang by @aloe | Stardance
Devlogs:
Initial blueprint, and a lexer. Before I wrote any code, I spent a while brainstorming features I wanted in this language. I wanted something with simple syntax and few keywords. There are currently 18 keywords. No keyword has more than four letters. I have yet to reserve names for types. I might stick with something similar to Rust for naming types. Declarations val Value (immutable). var Variable (mutable). fn enum I intend to support storing values inside, like Rust. obj Equivalent to a struct in Rust. type Type alias or an interface. ext Like an impl block in Rust. Conditional if else cmp Similar to Rustâs match statement. Flow ret Return. loop Overloaded loop operator. Go uses for, this uses loop. jmp Depending on context, this replaces continue and goto (though I intend to add constraints like Go for memory safety). drop Acts as a break statement, dropping out of a labeled loop or scope. May take a return value. Misc in Used for iteration. use Import. pub Export. del Manually delete a variable (free memory). Iâm considering two more keywords for a macro system later on, but Iâm not going to invest energy into that quite yet. For the sake of simplicity, there will be no :: operator . It will all be . . For type casting, I intend to use -> instead of adding another keyword. To keep the parser simple, Iâm looking at using square brackets instead of angled brackets for type generics, like Go does. Iâm still deciding. I intend to support function variadics with .. prefixing a parameter name. Like with Rust, labels will be prefixed by a single quote. I might change this. I wrote a lexer for this with a bit of hacky TypeScript and RegExp. Donât ask why itâs in TypeScript. Iâm pretty sure I was half-asleep when I started this the other day, and it shouldnât matter in the long run. If I can get this to transpile to C or something, Iâll bootstrap it. For memory management, I donât want a garbage collector. I donât want Rustâs ownership system either. It would defeat the point of a simple language if you need to wrestle with the compiler so often. The current plan is to use RAII and manual freeing where needed. Iâm considering an ARC hybrid with RAII or something later on, so memory management wonât be manual forever.
Started AST and parser Iâve been referencing the parser guide for Easel . Itâs been quite useful. I started working on this last night, but I got tired and paused without writing a journal. I made a git commit with the broken changes this morning. So far, Iâve implemented basic parsing for variable and function declarations, literals, tuples, and expressions. I spent quite a while trying to settle on values for operator precedence. I lost track of time testing things in the JS console and on the Rust playground website to see what made sense for precedence. Apparently 1..5==1..5 evaluates to 1..(5==1)..5 , and 1&1+1 evaluates to 1&(1+1) . Like JS, Rust treats += as an expression instead of a statement, but it evaluates to () every time. Looking at Go, it supports the ++ operator, but doesnât allow it to be used inside an expression. Language design is odd, but I like how everything fits together.
Basic types, generics, function calls, and nested identifiers Function calls are now parsed, and identifiers can be nested via dots and indices via brackets. I think Iâll have to reuse the same AST node used for function calls for enum fields carrying tuples when used in an expression other than enum itself. I got a headache thinking about the type system with generics. It probably wouldâve been easier if I drew a diagram before trying to implement them into the AST and parser. I got there eventually. I have yet to add support for tuple and array types outside the AST interface/type definitions. Basic named types and generics are supported and parsed properly. I should probably move all my type definitions for the AST to a new file so I donât have to keep scrolling past a couple hundred lines every time I need to reference them....
|
1792929067.63588
|
1793793067.63588
|
|
54670
|
language learning helper (llh) by @tsellios | Star language learning helper (llh) by @tsellios | Stardance...
|
tsellios
|
0
|
11.78
|
0
|
[]
|
[{"post_id": 68202, "ts": "202 [{"post_id": 68202, "ts": "2026-09-14T18:09:44Z", "hours": 0.8333, "text": "FINALLY completed the case!! After a lot of work I finally completed the case for the llh. The project might be pretty much ready for funding. Although it is an issue, I guess, that the words can only be up to 16 characters (size of each block), I might find a way of doubling that tomorrow like using 2 blocks and that Ill submit it!!"}, {"post_id": 66700, "ts": "2026-09-12T16:05:46Z", "hours": 1.2, "text": "Almost completed the case!!! Today I finished the bottom and top part of the case. Only thing left before this project is finished is adding a way to connect the 2 parts, adding the handle, and an opening for the switch. In contrast with how it looked yesterday, i am much more proud today. (almost done :))"}, {"post_id": 66109, "ts": "2026-09-11T18:17:15Z", "hours": 1.0, "text": "Made significant progress on the case today I mapped out every other part and finally got it into the 3rd dimension. I decided that making threads was too hard for my first project, so I will make the holes a bit smaller than the screws, so that the will be able to screw on easily (hopefully). Additionally, I will need to add a hole on the side, since i decided to add a switch to turn it one and off."}, {"post_id": 65543, "ts": "2026-09-10T19:05:25Z", "hours": 1.1, "text": "Made for progress on the case Today I added the esp and the mfrc552 in the sketch, (the lcd and the button I will have to do tomorrow). The size is kind of, funky. Once completed it will be 15 10cm (apprx. 6 4 inch.) and will be kind of flat, and with the addition of the handle, I am not sure how I will look holding the printed case irl. I also will have to consider stability and have to start thinking how to make the handle. Lastly, I need to consider how the power will be supplied, which is something I have given enough thought. I hope to get this done by Sunday, but weâll see. I am kind of proud of myself."}, {"post_id": 64933, "ts": "2026-09-09T17:33:50Z", "hours": 1.7503, "text": "Started working on the 3d case for the llh I had no idea where to start from, and to be honest, I was afraid to start. I watched a tutorial, that suggested openscad, which while seems cool, just didnt work for me. I instead chose onshape. While this thing ,might not look like much, it took me a fair while and i am really proud. Despite now having much time with school, i will try to finish the case within the week to finally ship. i hope ill get better at cad and make something that actually looks pleasing to the eye."}, {"post_id": 62402, "ts": "2026-09-05T18:58:40Z", "hours": 0.5833, "text": "redid the circuit in wokwi I needed to remake it since it was not properly saved. Now its time to make the case it cad which really scares me and so I researched a bit abt it."}, {"post_id": 61037, "ts": "2026-09-03T19:01:22Z", "hours": 1.2317, "text": "I completed the main code for the llh today I basically completed the main code for the llh today, I was pretty pleased with the code I had written, until I compiled it and a lot of errors showed up. Most of them were just mistakes I made when writing the code. The rest was the lcd i2c library not working. Despite that, I think the code will work great and i am really proud. I will look into the i2c library tomorrow"}, {"post_id": 60438, "ts": "2026-09-02T19:27:57Z", "hours": 0.6167, "text": "Started the main code for the llh Wrote the code that will read the words off the NFC stickers. I am pretty happy about the progress since this got done pretty fast. Tomorrow, I will complete the rest of the code (LDC, buttons)."}, {"post_id": 59709, "ts": "2026-09-01T17:10:57Z", "hours": 1.4833, "text": "Finally completed the code for writing on nfc stickers with the MFRC522. Started by modifying the code I made yesterday, but I realised that it just wasnt functional, so I scraped it and found a perfect tutorial on yt, that helped me understand how the coding of the MFRC522 works. By using the source code as a basis, I wrote a working code for writing a english word and, (in this instance) its german translation on a nfc sticker, (blocks 4&5). I am really happy with my progress today, and with what I learned today, I think writing the main LLH code will be easier."}, {"post_id": 58346, "ts": "2026-08-30T18:48:52Z", "hours": 1.5789, "text": "writing code for the llh in order for the llh to read information off the nfc stickers, the stickers should contain the information, in this case the words. I have coded before in c++, but this really had me stumped. I had to watch a couple of videos and do some research before understanding how most of the code for writing information works. I think that what I have coded could work, however I am not satisfied and will continue tomorrow. I also read that you should do something regarding authentication, which I have no idea how to do. All in all, I think today was really productive, since I learned how to kind of code for the MFRC522, more tomorrow"}, {"post_id": 57431, "ts": "2026-08-29T16:05:27Z", "hours": 0.4056, "text": "Started work on the LLH(Language learning helper) by designing the circuit. It consists of an esp32, connected to an MFRC522, which is a nfc/rfid reader. To write and read the words on the nfc tags that you stick on items. By clicking the button, the translation of the word in the foreign language should appear on the lcd i2c screen."}]...
|
Title: language learning helper (llh) by @tsellios Title: language learning helper (llh) by @tsellios | Stardance
Devlogs:
Started work on the LLH(Language learning helper) by designing the circuit. It consists of an esp32, connected to an MFRC522, which is a nfc/rfid reader. To write and read the words on the nfc tags that you stick on items. By clicking the button, the translation of the word in the foreign language should appear on the lcd i2c screen.
writing code for the llh in order for the llh to read information off the nfc stickers, the stickers should contain the information, in this case the words. I have coded before in c++, but this really had me stumped. I had to watch a couple of videos and do some research before understanding how most of the code for writing information works. I think that what I have coded could work, however I am not satisfied and will continue tomorrow. I also read that you should do something regarding authentication, which I have no idea how to do. All in all, I think today was really productive, since I learned how to kind of code for the MFRC522, more tomorrow
Finally completed the code for writing on nfc stickers with the MFRC522. Started by modifying the code I made yesterday, but I realised that it just wasnt functional, so I scraped it and found a perfect tutorial on yt, that helped me understand how the coding of the MFRC522 works. By using the source code as a basis, I wrote a working code for writing a english word and, (in this instance) its german translation on a nfc sticker, (blocks 4&5). I am really happy with my progress today, and with what I learned today, I think writing the main LLH code will be easier.
Started the main code for the llh Wrote the code that will read the words off the NFC stickers. I am pretty happy about the progress since this got done pretty fast. Tomorrow, I will complete the rest of the code (LDC, buttons).
I completed the main code for the llh today I basically completed the main code for the llh today, I was pretty pleased with the code I had written, until I compiled it and a lot of errors showed up. Most of them were just mistakes I made when writing the code. The rest was the lcd i2c library not working. Despite that, I think the code will work great and i am really proud. I will look into the i2c library tomorrow
redid the circuit in wokwi I needed to remake it since it was not properly saved. Now its time to make the case it cad which really scares me and so I researched a bit abt it.
Started working on the 3d case for the llh I had no idea where to start from, and to be honest, I was afraid to start. I watched a tutorial, that suggested openscad, which while seems cool, just didnt work for me. I instead chose onshape. While this thing ,might not look like much, it took me a fair while and i am really proud. Despite now having much time with school, i will try to finish the case within the week to finally ship. i hope ill get better at cad and make something that actually looks pleasing to the eye.
Made for progress on the case Today I added the esp and the mfrc552 in the sketch, (the lcd and the button I will have to do tomorrow). The size is kind of, funky. Once completed it will be 15 10cm (apprx. 6 4 inch.) and will be kind of flat, and with the addition of the handle, I am not sure how I will look holding the printed case irl. I also will have to consider stability and have to start thinking how to make the handle. Lastly, I need to consider how the power will be supplied, which is something I have given enough thought. I hope to get this done by Sunday, but weâll see. I am kind of proud of myself.
Made significant progress on the case today I mapped out every other part and finally got it into the 3rd dimension. I decided that making threads was too hard for my first project, so I will make the holes a bit smaller than the screws, so that the will be able to screw on easily (hopefully). Additionally, I will need to add a hole on the side, since i decided to add a switch to turn it one and off.
Almost completed the case!!! Today I finished the bottom and top part of the case. Only thing left before this project is finished is adding a way to connect the 2 parts, adding the handle, and an opening for the switch. In contrast with how it looked yesterday, i am much more proud today. (almost done :))
FINALLY completed the case!! After a lot of work I finally completed the case for the llh. The project might be pretty much ready for funding. Although it is an issue, I guess, that the words can only be up to 16 characters (size of each block), I might find a way of doubling that tomorrow like using 2 blocks and that Ill submit it!!...
|
1793559362.6154528
|
1794164162.6154528
|
|
51812
|
laptop cooler by @ys996x | Stardance
|
ys996x
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: laptop cooler by @ys996x | Stardance
|
1793408160.1982033
|
1794012960.1982033
|
|
6467
|
larning by @PRATINOX | Stardance
|
PRATINOX
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: larning by @PRATINOX | Stardance
|
1793253357.4503057
|
1793858157.4503057
|
|
58478
|
larp by @tjingi_ | Stardance
|
tjingi_
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: larp by @tjingi_ | Stardance
|
1793494254.2940254
|
1794099054.2940254
|
|
62383
|
larping alarm clock by @kunshyuh | Stardance
|
kunshyuh
|
0
|
1.27
|
0
|
[]
|
[{"post_id": 82171, "ts": "202 [{"post_id": 82171, "ts": "2026-10-24T04:58:22Z", "hours": 1.2669, "text": "update - 1 designed the pcb schematic mainly with the help of the diagrams given in the blare website and now gonna headon to the actual casing and placement of buzzer and buttons"}]...
|
Title: larping alarm clock by @kunshyuh | Stardanc Title: larping alarm clock by @kunshyuh | Stardance
Devlogs:
update - 1 designed the pcb schematic mainly with the help of the diagrams given in the blare website and now gonna headon to the actual casing and placement of buzzer and buttons...
|
1793044387.8169904
|
1793649187.8169904
|
|
61981
|
las teclas by @Vini_dev | Stardance
|
Vini_dev
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-28T00:58:51Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I created a macropad called MarcinhoPad (I couldnât think of what to call it, so I decided to combine my name with the word âpadâ at the end). This project really challenged me, as it was the first âbigâ project Iâve ever made. But the most annoying thing that gave me a huge headache was the LEDs. Man, it felt like nothing was working! I would run the ERC and it gave so many errors, so many errors, that I almost gave up on the project, but I decided to just remove themâdidnât want any more headaches, lol. Not to mention the 3D modeling: I spent two nights without sleep just thinking about it. Before going to school, I would make use of the 1 hour I had, get up, and turn on the PC right away to try to finish the model. Same thing when I got back, exhausted and only thinking about sleep, but there I was, learning 3D modeling, lol. Now, what made me think âIâm the manâ the mostâmy ego totally inflated when I finished the project and it got approved. Man, my heart raced with joy, I saw that my hard work paid off! Ah, I was almost forgetting, lol: to test the project, all you need is Arduino IDE installed. Connect the board to your computerâs USB, clone my repository, and flash my code.", "repo": "https://github.com/Developer-Vini/MarcinhoPad", "demo": ""}]...
|
[{"post_id": 74675, "ts": "202 [{"post_id": 74675, "ts": "2026-09-27T23:40:24Z", "hours": 1.0117, "text": "I went to see if it would actually work; I managed to mount the 3D parts on the board to test everything, and I made a few tweaks. I think Iâll go for a unique designâIâm thinking of making it all black; itâs going to look awesome."}, {"post_id": 70908, "ts": "2026-09-20T00:28:59Z", "hours": 0.5489, "text": "Finished!"}, {"post_id": 70294, "ts": "2026-09-18T21:46:34Z", "hours": 1.5661, "text": "Trying to model the case (itâs proving very difficult)."}, {"post_id": 69899, "ts": "2026-09-18T01:08:57Z", "hours": 0.505, "text": "What a beautiful PCB!"}, {"post_id": 69414, "ts": "2026-09-17T00:28:16Z", "hours": 0.8728, "text": "finished!!"}, {"post_id": 69376, "ts": "2026-09-16T22:36:50Z", "hours": 2.135, "text": "I decided to remove the LEDs; Iâm going to do it without them. Connecting the LEDs was proving too difficult, so I preferred to leave them out. The important thing is that it works. The PCB is already complete; now I just need to adjust a few things and transfer it to the case."}, {"post_id": 69241, "ts": "2026-09-16T17:26:35Z", "hours": 2.7272, "text": "I finished the schematic and Iâm going to the PCB, now I just have to decide what I want to do haha, Iâm very indecisive, I have to see the layout."}, {"post_id": 68918, "ts": "2026-09-16T01:29:57Z", "hours": 1.9889, "text": "Yo guys, I was studying how I could do the hackpad scheme, man, think of a work that is giving, but itâs gonna work out, thereâs no rush."}, {"post_id": 67760, "ts": "2026-09-14T00:25:31Z", "hours": 0.3833, "text": "i was preparing the work environment to begin development."}]...
|
Title: las teclas by @Vini_dev | Stardance
Devlog Title: las teclas by @Vini_dev | Stardance
Devlogs:
i was preparing the work environment to begin development.
Yo guys, I was studying how I could do the hackpad scheme, man, think of a work that is giving, but itâs gonna work out, thereâs no rush.
I finished the schematic and Iâm going to the PCB, now I just have to decide what I want to do haha, Iâm very indecisive, I have to see the layout.
I decided to remove the LEDs; Iâm going to do it without them. Connecting the LEDs was proving too difficult, so I preferred to leave them out. The important thing is that it works. The PCB is already complete; now I just need to adjust a few things and transfer it to the case.
finished!!
What a beautiful PCB!
Trying to model the case (itâs proving very difficult).
Finished!
I went to see if it would actually work; I managed to mount the 3D parts on the board to test everything, and I made a few tweaks. I think Iâll go for a unique designâIâm thinking of making it all black; itâs going to look awesome.
Ships:
I created a macropad called MarcinhoPad (I couldnât think of what to call it, so I decided to combine my name with the word âpadâ at the end). This project really challenged me, as it was the first âbigâ project Iâve ever made. But the most annoying thing that gave me a huge headache was the LEDs. Man, it felt like nothing was working! I would run the ERC and it gave so many errors, so many errors, that I almost gave up on the project, but I decided to just remove themâdidnât want any more headaches, lol. Not to mention the 3D modeling: I spent two nights without sleep just thinking about it. Before going to school, I would make use of the 1 hour I had, get up, and turn on the PC right away to try to finish the model. Same thing when I got back, exhausted and only thinking about sleep, but there I was, learning 3D modeling, lol. Now, what made me think âIâm the manâ the mostâmy ego totally inflated when I finished the project and it got approved. Man, my heart raced with joy, I saw that my hard work paid off! Ah, I was almost forgetting, lol: to test the project, all you need is Arduino IDE installed. Connect the board to your computerâs USB, clone my repository, and flash my code....
|
1793591323.0615861
|
1793677723.0615861
|
|
25100
|
laserCat by @QD | Stardance
|
QD
|
0
|
7.43
|
0
|
[]
|
[{"post_id": 19006, "ts": "202 [{"post_id": 19006, "ts": "2026-06-30T05:12:49Z", "hours": 7.4342, "text": "PCB wiring"}]...
|
Title: laserCat by @QD | Stardance
Devlogs:
PCB w Title: laserCat by @QD | Stardance
Devlogs:
PCB wiring...
|
1793393610.9237049
|
1793998410.9237049
|
|
66148
|
last boss by @Xenoxx | Stardance
|
Xenoxx
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: last boss by @Xenoxx | Stardance
|
1793094753.8402107
|
1793958753.8402107
|
|
48235
|
last laugh by @adityashah | Stardance
|
adityashah
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: last laugh by @adityashah | Stardance
|
1793220539.8633485
|
1793825339.8633485
|
|
67300
|
last minute blare by @Giostrix | Stardance
|
Giostrix
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: last minute blare by @Giostrix | Stardance
|
1793109039.323333
|
1793713839.323333
|
|
69605
|
last run by @reyaanshgadia | Stardance
|
reyaanshgadia
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: last run by @reyaanshgadia | Stardance
|
1793584336.2629476
|
1794189136.2629476
|
|
71574
|
last star dust project by @ayeshawadoodkhan | Star last star dust project by @ayeshawadoodkhan | Stardance...
|
ayeshawadoodkhan
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: last star dust project by @ayeshawadoodkhan Title: last star dust project by @ayeshawadoodkhan | Stardance...
|
1793098022.790886
|
1793702822.790886
|
|
70073
|
last surprise project by @amateur_tech_guy | Stard last surprise project by @amateur_tech_guy | Stardance...
|
amateur_tech_guy
|
0
|
0.55
|
0
|
[]
|
[{"post_id": 81139, "ts": "202 [{"post_id": 81139, "ts": "2026-10-20T01:21:44Z", "hours": 0.5511, "text": "devlog #1: working on a surprise new project! I wont tell anyone what it is yet, try to guess, heres a hint"}]...
|
Title: last surprise project by @amateur_tech_guy Title: last surprise project by @amateur_tech_guy | Stardance
Devlogs:
devlog #1: working on a surprise new project! I wont tell anyone what it is yet, try to guess, heres a hint...
|
1793605798.2375047
|
1794210598.2375047
|
|
50635
|
late night fishing game by @frankly2012 | Stardanc late night fishing game by @frankly2012 | Stardance...
|
frankly2012
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: late night fishing game by @frankly2012 | S Title: late night fishing game by @frankly2012 | Stardance...
|
1793353998.713449
|
1793958798.713449
|
|
63805
|
launchpad hotkey board by @valdtaniem | Stardance
|
valdtaniem
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: launchpad hotkey board by @valdtaniem | Sta Title: launchpad hotkey board by @valdtaniem | Stardance...
|
1793055021.5701435
|
1793659821.5701435
|
|
4830
|
laurengracebroadbent by @laurengracebroadbent | St laurengracebroadbent by @laurengracebroadbent | Stardance...
|
laurengracebroadbent
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: laurengracebroadbent by @laurengracebroadbe Title: laurengracebroadbent by @laurengracebroadbent | Stardance...
|
1792932879.0149727
|
1793796879.0149727
|
|
32190
|
lavende by @aikyaam | Stardance
|
aikyaam
|
1
|
12.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-07T17:10:33Z", "hours": 12.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "We built Lavende, a high-performance Discord voice engine written in Rust with official SDKs for Rust, JavaScript/TypeScript, Go, and Python. Instead of relying on an external Lavalink server, Lavende runs in-process and provides a consistent API across multiple programming languages for building Discord music bots and voice applications. One of the biggest challenges was designing a shared Rust core while exposing safe, idiomatic bindings for each language. We also reorganized the repository into a workspace, simplified the build and release pipeline, and implemented cross-platform native binaries to make installation easier for developers. Weâre most proud of creating a single, high-performance voice engine that can be used across multiple ecosystems without sacrificing performance or developer experience. To test the project, open the _examples folder and choose the language you want to use (Rust, JavaScript/TypeScript, Go, or Python). For example, if you choose the Node.js example, navigate to that folder, install the dependencies, add your Discord bot token to the .env file, and run the bot. The setup process is essentially the same for all the supported languages, with language-specific instructions included in each example.", "repo": "", "demo": ""}]...
|
[{"post_id": 31662, "ts": "202 [{"post_id": 31662, "ts": "2026-07-20T07:50:38Z", "hours": 0.0, "text": "Spent today improving Lavendeâs core playback reliability. Fixed several issues with the YouTube source after recent extraction changes, preventing playback failures. Resolved a bug where the player was being recreated on every request, allowing playback state and queues to persist correctly. Tracked down 404 search errors to empty search results (length: 0) and added proper handling for cases where no tracks are returned. Also improved the voice connection lifecycle, making joins, reconnects, and playback significantly more stable."}, {"post_id": 28104, "ts": "2026-07-14T05:01:31Z", "hours": 0.0, "text": "[v1.0.6] - 2026-07-14 Changed Complete refactoring of all legacy monolithic audio source files into clean, modular subdirectories (api, extractor, track, token, reader, etc.) to improve maintainability and decouple codebase components. Rewrote let-chain patterns to standard nested conditional patterns to enhance stability and ensure compatibility with standard Rust compilation profiles."}, {"post_id": 24590, "ts": "2026-07-08T09:21:10Z", "hours": 0.0, "text": "Today I completed the configPath feature across all Lavende language bindings (Rust, Node.js, Python, and Go). I updated the documentation and examples to support custom configuration file paths, making configuration management consistent across every SDK. I also expanded and standardized the source.json configuration files, adding comprehensive support for 28+ music sources and ensuring all examples use the same configuration structure. With these changes, the configuration system is now fully documented, consistent, and much easier for developers to use."}, {"post_id": 24209, "ts": "2026-07-07T16:57:02Z", "hours": 12.4317, "text": "Today we wrapped up the final release of Lavende. Most of our time was spent polishing the library, fixing the remaining bugs we found during testing, and making sure everything was stable before shipping. We also cleaned up the project structure, improved the developer experience, and updated the examples and documentation so the library is easier to understand and use. After running through the final round of testing, we were happy with the results and prepared the project for release. Itâs exciting to finally reach this milestone after all the work thatâs gone into the project. From here, weâll focus on maintenance, performance improvements, and new features based on feedback from users."}]...
|
Title: lavende by @aikyaam | Stardance
Devlogs:
T Title: lavende by @aikyaam | Stardance
Devlogs:
Today we wrapped up the final release of Lavende. Most of our time was spent polishing the library, fixing the remaining bugs we found during testing, and making sure everything was stable before shipping. We also cleaned up the project structure, improved the developer experience, and updated the examples and documentation so the library is easier to understand and use. After running through the final round of testing, we were happy with the results and prepared the project for release. Itâs exciting to finally reach this milestone after all the work thatâs gone into the project. From here, weâll focus on maintenance, performance improvements, and new features based on feedback from users.
Today I completed the configPath feature across all Lavende language bindings (Rust, Node.js, Python, and Go). I updated the documentation and examples to support custom configuration file paths, making configuration management consistent across every SDK. I also expanded and standardized the source.json configuration files, adding comprehensive support for 28+ music sources and ensuring all examples use the same configuration structure. With these changes, the configuration system is now fully documented, consistent, and much easier for developers to use.
[v1.0.6] - 2026-07-14 Changed Complete refactoring of all legacy monolithic audio source files into clean, modular subdirectories (api, extractor, track, token, reader, etc.) to improve maintainability and decouple codebase components. Rewrote let-chain patterns to standard nested conditional patterns to enhance stability and ensure compatibility with standard Rust compilation profiles.
Spent today improving Lavendeâs core playback reliability. Fixed several issues with the YouTube source after recent extraction changes, preventing playback failures. Resolved a bug where the player was being recreated on every request, allowing playback state and queues to persist correctly. Tracked down 404 search errors to empty search results (length: 0) and added proper handling for cases where no tracks are returned. Also improved the voice connection lifecycle, making joins, reconnects, and playback significantly more stable.
Ships:
We built Lavende, a high-performance Discord voice engine written in Rust with official SDKs for Rust, JavaScript/TypeScript, Go, and Python. Instead of relying on an external Lavalink server, Lavende runs in-process and provides a consistent API across multiple programming languages for building Discord music bots and voice applications. One of the biggest challenges was designing a shared Rust core while exposing safe, idiomatic bindings for each language. We also reorganized the repository into a workspace, simplified the build and release pipeline, and implemented cross-platform native binaries to make installation easier for developers. Weâre most proud of creating a single, high-performance voice engine that can be used across multiple ecosystems without sacrificing performance or developer experience. To test the project, open the _examples folder and choose the language you want to use (Rust, JavaScript/TypeScript, Go, or Python). For example, if you choose the Node.js example, navigate to that folder, install the dependencies, add your Discord bot token to the .env file, and run the bot. The setup process is essentially the same for all the supported languages, with language-specific instructions included in each example....
|
1793368269.496202
|
1794232269.496202
|
|
31953
|
lavende by @sahilarun | Stardance
|
sahilarun
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: lavende by @sahilarun | Stardance
|
1793501403.4402118
|
1794106203.4402118
|
|
50298
|
lazyOS by @tiyas | Stardance
|
tiyas
|
2
|
18.0
|
18
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-30T09:08:41Z", "hours": 4.0, "multiplier": 4.46, "payout": 18, "blessing": "neutral", "text": "i have added some features and apps, i gave the page a icon added a top section for Quotes added a calculator added a browser which can do Google searches added a music player These were some main features, Besides these, i added some images in the gallery and 3 focus songsâŠ", "repo": "https://github.com/Tiyasbanerjee/LazyOs", "demo": "https://tiyasbanerjee.github.io/LazyOs/"}, {"ship_num": 2, "ts": "2026-08-22T12:43:59Z", "hours": 14.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "i made a webOS, i named it LazyOs, because my mom calls me lazy⊠i have used my own clicked photos , which looks really cool. you can see my childhood pic, and also some other pics. there is a gallery app you can open to explore the photos, i tried to do animate as much as i could⊠and that littery fried my brain to understand⊠i also added a note app, you can write something if you want⊠i think i will add more features and apps in it soon⊠it really feels so good to see my os workingâŠ", "repo": "https://github.com/Tiyasbanerjee/LazyOs", "demo": "https://tiyasbanerjee.github.io/LazyOs/"}]...
|
[{"post_id": 57950, "ts": "202 [{"post_id": 57950, "ts": "2026-08-30T09:01:55Z", "hours": 0.6811, "text": "i have added a calculatorâŠ"}, {"post_id": 57925, "ts": "2026-08-30T08:14:31Z", "hours": 0.5925, "text": "i have added a browser which can make google searchesâŠ."}, {"post_id": 57894, "ts": "2026-08-30T07:01:31Z", "hours": 0.4369, "text": "i have added a motivational quote section which will show you a motivational quotes every time you reload itâŠ"}, {"post_id": 57133, "ts": "2026-08-29T07:32:04Z", "hours": 1.8708, "text": "i have added a music player todayâŠ"}, {"post_id": 56461, "ts": "2026-08-28T07:18:13Z", "hours": 0.5008, "text": "i have added a new application , a clock."}, {"post_id": 52295, "ts": "2026-08-22T12:35:00Z", "hours": 2.2133, "text": "pushed one github, and its working properly. the photo app is also build , and i am ready to submit it now."}, {"post_id": 51787, "ts": "2026-08-21T17:05:36Z", "hours": 1.7756, "text": "fixed some bugs, and made this note app window, now i am working on making this usable , and beautifulâŠ"}, {"post_id": 51419, "ts": "2026-08-21T03:34:00Z", "hours": 0.7631, "text": "updated the wallpapers and images to fit my vibeâŠ"}, {"post_id": 51192, "ts": "2026-08-20T18:13:20Z", "hours": 0.4108, "text": "made some more app start buttons and windows for them. i am planing to include a calculator, a note book, a wallpaper manager, a music playerâŠ"}, {"post_id": 51055, "ts": "2026-08-20T15:16:06Z", "hours": 0.7808, "text": "added feature to open closed window, and a fancy button. and fixed some minor bugs today."}, {"post_id": 50818, "ts": "2026-08-20T07:48:11Z", "hours": 0.8594, "text": "now in our lazy os, you can close windows !"}, {"post_id": 50533, "ts": "2026-08-19T18:39:57Z", "hours": 1.1256, "text": "i have made the window dragable, but now i noticed a new type of bug. for making the window absolute its is flowing out of the screen⊠if you have any tips, tell meâŠ"}, {"post_id": 50171, "ts": "2026-08-19T08:54:24Z", "hours": 0.9708, "text": "i have finished the 2ed part of this project, making the home screen. now the next step is to make the window resizable and draggableâŠ"}, {"post_id": 50139, "ts": "2026-08-19T07:35:34Z", "hours": 2.7311, "text": "It took me a good amount of time to make this animation. and hope it looks good. Please tell me what do you think?"}, {"post_id": 49381, "ts": "2026-08-18T05:19:10Z", "hours": 1.9619, "text": "working on making personal os, and it is the welcome page⊠i tried to make it look cool , and also tried to personalize. some features are not done, like the redirect buttons , and a animation when clicking my ghibili photo.. though i am think if i can create that animation⊠i want when hovering over the picture, it rotates and the photo changes into another photo which will be my OS icon⊠if you can give me some suggestions i will be thankful."}]...
|
Title: lazyOS by @tiyas | Stardance
Devlogs:
work Title: lazyOS by @tiyas | Stardance
Devlogs:
working on making personal os, and it is the welcome page⊠i tried to make it look cool , and also tried to personalize. some features are not done, like the redirect buttons , and a animation when clicking my ghibili photo.. though i am think if i can create that animation⊠i want when hovering over the picture, it rotates and the photo changes into another photo which will be my OS icon⊠if you can give me some suggestions i will be thankful.
It took me a good amount of time to make this animation. and hope it looks good. Please tell me what do you think?
i have finished the 2ed part of this project, making the home screen. now the next step is to make the window resizable and draggableâŠ
i have made the window dragable, but now i noticed a new type of bug. for making the window absolute its is flowing out of the screen⊠if you have any tips, tell meâŠ
now in our lazy os, you can close windows !
added feature to open closed window, and a fancy button. and fixed some minor bugs today.
made some more app start buttons and windows for them. i am planing to include a calculator, a note book, a wallpaper manager, a music playerâŠ
updated the wallpapers and images to fit my vibeâŠ
fixed some bugs, and made this note app window, now i am working on making this usable , and beautifulâŠ
pushed one github, and its working properly. the photo app is also build , and i am ready to submit it now.
i have added a new application , a clock.
i have added a music player todayâŠ
i have added a motivational quote section which will show you a motivational quotes every time you reload itâŠ
i have added a browser which can make google searchesâŠ.
i have added a calculatorâŠ
Ships:
i made a webOS, i named it LazyOs, because my mom calls me lazy⊠i have used my own clicked photos , which looks really cool. you can see my childhood pic, and also some other pics. there is a gallery app you can open to explore the photos, i tried to do animate as much as i could⊠and that littery fried my brain to understand⊠i also added a note app, you can write something if you want⊠i think i will add more features and apps in it soon⊠it really feels so good to see my os workingâŠ
i have added some features and apps, i gave the page a icon added a top section for Quotes added a calculator added a browser which can do Google searches added a music player These were some main features, Besides these, i added some images in the gallery and 3 focus songsâŠ...
|
1793616776.5618405
|
1793703176.5618405
|
|
9729
|
lazyTimes by @heafnan | Stardance
|
heafnan
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: lazyTimes by @heafnan | Stardance
|
1793472960.4534981
|
1794077760.4534981
|
|
51201
|
lazyymania by @safayet | Stardance
|
safayet
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: lazyymania by @safayet | Stardance
|
1793382631.126547
|
1793987431.126547
|
|
16709
|
lbarragan personal portfolio by @Corentfley | Star lbarragan personal portfolio by @Corentfley | Stardance...
|
Corentfley
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: lbarragan personal portfolio by @Corentfley Title: lbarragan personal portfolio by @Corentfley | Stardance...
|
1793512050.5649939
|
1794116850.5649939
|
|
46363
|
le site and first project by @harshjmakwana13 | St le site and first project by @harshjmakwana13 | Stardance...
|
harshjmakwana13
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: le site and first project by @harshjmakwana Title: le site and first project by @harshjmakwana13 | Stardance...
|
1793382674.9238276
|
1793987474.9238276
|
|
29287
|
le-fat-chaton by @unknown_lizzard | Stardance
|
unknown_lizzard
|
1
|
172.0
|
1818
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-20T09:10:04Z", "hours": 172.0, "multiplier": 14.88, "payout": 1818, "blessing": "neutral", "text": "at first I wanted to make a normal text model to try and learn more about llms, but I wanted to go further, agentic coding is a big thing so what better way to learn about llms than trying to make an agentic coding ai model. So thats how le gros chaton was born, the name originated from a joke on x about a fake huge mistral model coming out. to train this model I used already made datasets on hugging face, like fable5 traces, I also used kimi k3 as a teacher model to teach my smaller model to be good at coding and running commands, it kind of worked? but iâm not completely satisfied with the result, but at least i have learned some things and soon enough I will trying making an even better model! I dont have a demo url for you guys to try the model out since it was too expensive to run on a gpu so youâll need to run it yourself, check it out on hugging face, follow the instructions and have fun.", "repo": "https://github.com/Mateooo93/le-gros-chaton", "demo": "https://mateooo93.github.io/le-gros-chaton/"}]...
|
[{"post_id": 50841, "ts": "202 [{"post_id": 50841, "ts": "2026-08-20T08:57:48Z", "hours": 3.2394, "text": "devlog #17 MI300X vLLM serving The old GPU box got destroyed, so I spun up a new MI300X with the same SSH key. ROCm 6.2 and Torch 2.5.1 were already set up, so getting the machine ready was easy. The hard part was vLLM. The pip version is CUDA only, and the ROCm Docker image only supported the multimodal version of Qwen3.5. Our model is text-only, so I had to patch the image. I added Qwen3_5ForCausalLM, fixed the hybrid KV-cache setup, added the missing Mamba state methods, and mapped the weight names so the text-only safetensors loaded correctly. I also patched the merged config to remove the M-RoPE and dtype fields. After that, the model served normally. I ran a one-task test with fix-git. The pipeline worked, but the model got stuck repeating git show until it ran out of turns. ##Shipped The merged model is now public on Hugging Face as mateo0093/le-gros-chaton under Apache-2.0. The 5Ă5 Terminal-Bench pilot finished at 3/25 (25%). All three successes were on fix-git, which shows that the SFT data was too focused on git tasks. I also tested RLVR with GRPO and a novelty bonus. The reward had almost no variance, so the training signal was basically useless. I saved the step-10 adapter but didnât merge it. The GPU used about 12 hours of the 50 hour budget. All the vLLM patches and harness changes are in the repo. Main lesson: Qwen3.5âs hybrid model is a bit annoying to serve as text-only on ROCm. The model works but i think this was more of a learning opportunity, i know what iâve done wrong and what i would have done differently, I will be working on a new model in a few weeks once I do a bit more research."}, {"post_id": 49761, "ts": "2026-08-18T18:01:12Z", "hours": 0.7992, "text": "Devlog #16, t4gpu The T4 16GB fought us the whole way. BF16 was baked into a pre quantized checkpoint, which made each step take 668 seconds because it had to use FP32 emulation. 2K context ran out of memory, the 248K logits ran out of memory too, FP16 started producing NaNs, Kaggle session limits locked us out, and the paged optimizer crashed last. Every fix seemed to create another problem. We eventually got it working with FP16 compute, chunked assistant token loss, autocast, and plain AdamW. Then we got access to an AMD MI300X with 192GB of memory. No quantization, 16K context, and enough memory to train full traces instead of cutting them off halfway through a message. Right now the 16K BF16 SFT run is training on the MI300X. Next up is merging the model, running Terminal Bench, and then RLVR."}, {"post_id": 49140, "ts": "2026-08-17T19:31:53Z", "hours": 16.24, "text": "Devlog 15 Traces are done The trace generator finally hit the target and went past it. We got 474 verified trajectories, zero malformed, zero duplicates, 19 templates, and a 95 percent self review pass rate. We were aiming for 450, so we ended up with 474. The dataset is synced to Hugging Face in two versions: raw and normalized. That part is finally done. It was the longest part of the project, and the model is only going to be as good as the traces, so getting this right was important The Kimi endpoint also stopped working. The old teacher account started returning 503 errors during generation and eventually died completely. We switched to a second Kimi account, which needed an extra header that we did not have at first. After figuring that out, generation resumed without losing any progress For GPUs, the 2070 still cannot realistically train the 9B. Kaggle hours are back, so we have 30 hours on a T4. The 4090 from my dad should arrive next week. The plan is to use the T4 for trajectory SFT, then the 4090 for merging, Terminal Bench evaluation, and RLVR. Status: 474 out of 474 traces done,"}, {"post_id": 42823, "ts": "2026-08-07T19:01:50Z", "hours": 8.9192, "text": "Devlog #14 worked a lot, still not done we worked a lot this week. honestly the main takeaway is that the fable5 sft was good but its traces alone werenât enough the model needs way more verified agent trajectories, so weâve been grinding those out (target is 450). we also ran out of credits mid-generation (the modal endpoint started failing with 503s) and had to switch to a second kimi account. took a minute to get the auth right the new endpoint wanted an extra header we didnât have. after that the generator resumed fine and itâs been adding verified traces since (~340/450 now). biggest scare: we found out peft 0.20 silently drops the second adapter when you merge two at once. tested it and yeah, the outputs were identical with one or two adapters so our trajectory sft would have been lost in the merge. fixed it by merging sequentially (base first, then the second adapter). checked against the live model and it matches, so weâre good. my 2070 couldnât fit the 9b model for real training, so weâre waiting on a 4090 (my dadâs) next week. all the scripts are ready sft, merge, rlvr, eval, even a setup script for the gpu box. just need the hardware. status: 340/450 traces, everything ready, waiting on the 4090. weâve worked a lot, but the real run hasnât happened yet :/."}, {"post_id": 41470, "ts": "2026-08-05T18:10:35Z", "hours": 18.5394, "text": "Devlog #13 we worked ALOT so this was the grind day. 18 hours of training babysitting and honestly it felt like 40. the modal training kept dying every hour. the client would crash and take the whole run with it. we restarted like 3 times before figuring out modal run -d (detached) keeps it alive on their servers even if our computer shits the bed. tested it by literally killing the process and it kept going. ez fix but we worked ALOT to get there. then we ran out of credits at 93% and switched accounts, but the other account âfinishedâ the run in 6 MILLISECONDS which was sus af. turns out it just re-uploaded the old checkpoint and trained nothing. the resume logic had a bug where it thought 6200 >= 3799 meant done. patched it. another lesson learned. also we made the model creative lol. added diversity sampling to the trajectory generator (5 solutions per task, keep the novel ones), a novelty bonus reward for RLVR, and a creativity rule in the self-awareness prompt. so the fat cat will be innovative, not just memorize. current state: SFT is done at 91% (good enough), resume bug fixed, phase 2 (trajectory SFT with creativity + self-awareness baked in) is up next. 18 hours. we worked ALOT. the fat cat will be worth it đŒ"}, {"post_id": 40883, "ts": "2026-08-04T18:02:57Z", "hours": 10.0019, "text": "Devlog #12 training kept dying for the last 10 hours the training kept crashing. not the model, not the gp but the modal client. every hour or so it would lose connection and take the whole run down with it. weâd restart, itâd run an hour, crash again. three times. the fix was simple: modal run -d runs detached, so the training lives on modalâs servers and doesnât care if our local process dies. killed the client on purpose to test â training kept going. thatâs it, thatâs the fix. also worried the loss wasnât moving but it was fine. lr had wound down on the crashed run, looked scary, re-warmed fine after restart. loss is 0.668 now and dropping. status: 72% through the fable5 sft. checkpoints safe on hf. after this: trajectory sft with the self-awareness stuff baked in, then rlvr, then real numbers."}, {"post_id": 40601, "ts": "2026-08-04T08:01:50Z", "hours": 11.4342, "text": "** Devlog #11 half way there! ** the training is going pretty well, I fixed a few bugs with the code and added documentation training is at 50%!"}, {"post_id": 40369, "ts": "2026-08-03T20:35:48Z", "hours": 8.8192, "text": "** Devlog #10 the full training is finally running ** ok so phase 1 full training is officially going. 160k rows of fable5 data on modal, resuming from the 12.8k rows we got on kaggle before the session cap killed us. weâre at ~27% and it should take like a day and a half total. big stuff that happened since last time: fast kernels actually work now. the model has hybrid linear-attention layers and transformers kept falling back to a slow torch path. the fix was: nvidia cuda-devel base image (needs nvcc to compile), installing flash-linear-attention[cuda] + causal-conv1d , and pinning torch 2.10. took a couple tries but now training is like 4x faster than it would be without them. had to split across two modal accounts. first account ran out of credits, so we set up a second profile and the script auto-resumes from the huggingface checkpoints when it dies. itâs been rock solid, it happens every 20% plus every hour it saves and uploads. lost zero progress to the account switch. we gave the model a personality. itâs called Le Gros Chaton (the fat cat) and weâre training self-awareness into it, not as a system prompt but baked into the weights. state-sheets ([STATE] goal/known/tried/failed/next), metacognition lines, and self-review at the end of tasks. the trajectory sft masks out the system prompt so the model learns to track its own state as behavior, not as a script it repeats. did some benchmark research too. base qwen3.5-9b scores 9.2% on terminal-bench 2.0. comparable 9b fine-tunes hit 24-28%. thatâs our realistic target which is 2.5-3x the baseline. honestly at this point itâs just⊠waiting. the pipeline works, the checkpoints work, the account switching works. now the model just needs to finish cooking. then trajectory sft, then rlvr, then we actually see the benchmark numbers."}, {"post_id": 40029, "ts": "2026-08-03T11:45:18Z", "hours": 13.3375, "text": "# Devlog #9 â finally training, and now with checkpoints! so last time i was stuck debugging phase 1/2 on kaggle. well, still debugging lol, but we actually got somewhere. the first issue was transformers not knowing what the qwen3.5 model was, had to pin transformers 5.14.1. then tokenizers kept fighting with it (0.22.0 wants old huggingface-hub, 0.22.1 is fine). then torch on kaggle kept giving a p100 which modern pytorch just refuses to run on, so we had to tell it to give us a t4 instead. then the fun one: out of memory on the very first step. batch 2 was too big for the gpu they gave us, so batch 1 it is. also i learned the hard way that kaggle kills your session after 12 hours. the first long run got cancelled at 80% done and i had nothing saved. so now the training script saves a checkpoint every 20% + every hour and uploads it to huggingface, so if it dies we just resume. it actually saved us, the run got cut and we picked right back up from the checkpoint. right now the full 160k sft is running on modal (paying for gpus now, kaggle time ran out). itâs at like 9% and should take a couple days. weâll see how it goes, and then rlvr after that. the end of the errors⊠might actually be in sight this time."}, {"post_id": 38292, "ts": "2026-07-31T16:38:26Z", "hours": 5.4886, "text": "Devlog #8 â phase 2 fixes Iâve been getting a lot of issues with the first two for this model. Iâve gotten a lot of errors in Kaggle and Colab. Iâve tried everything, and Iâm still fixing the code. Itâs taking a good amount of time, but I think Iâm almost there. Iâve gone through a lot of errors, and Iâm probably right at the end of the errors. I might be able to start actually training it tomorrow, but for now Iâll stop."}, {"post_id": 38079, "ts": "2026-07-31T09:21:05Z", "hours": 10.3872, "text": "Devlog #7 â phase 2 running phase 1 (sft) is done and phase 2 (rlvr) is running now on kaggle. this is the part where the model actually gets trained on solving coding problems with our verifier giving rewards, not just imitating fable data. honestly this is the part i care about more. sft just makes it mimic. rlvr is where it learns to actually fix code. grpo with proportional rewards = the model gets partial credit for getting some tests passing, which is way better than all-or-nothing. while it runs im just waiting tbh. not much to build. the pipeline works, the eval works, the agent works. next after this: full benchmark run. humaneval, swebench, agentic eval. weâll see if all this actually made the model good at coding or if i just spent a week on a worse qwen lol."}, {"post_id": 37100, "ts": "2026-07-29T16:05:47Z", "hours": 8.4747, "text": "Devlog #6 â training done (phase 1) finally got the qwen finetune to actually run with 625 steps, took like 8 hours on kaggle. it finished. havent run full benchmarks yet cause i was busy building other stuff while it trained. but it trained. thats the main thing. I also built a swebench agent that can actually navigate repos and edit files and make patches. not just the basic agent loop that runs commands. this one actually works for real se tasks. also added swebench eval so we can measure if the model is actually good at fixing bugs and coding then iâll run the benchmarks on the trained model and see if its actually any good lol."}, {"post_id": 36367, "ts": "2026-07-28T13:16:16Z", "hours": 13.6447, "text": "Devlog #5 â ok so Iâm not building a 10B MoE anymore So last time I had this whole plan. 10B MoE, from scratch, SwiGLU, GQA, all that. And I actually built it. Like 60 Python files, tests passing, RL pipeline, self-play data gen, the whole thing. It was kinda sick ngl. But then I was like⊠wait. Iâm building an ENGINE that TRAINS coding agents. Not the agent. And the engine is cool but training a 10B model from zero on $30 of Modal credits is not how you beat GLM-5.2. You know what beats GLM-5.2? Fine-tuning a model that already knows how to code. the pivot (again) Qwen3.5-9B came out. 9B params. Fits on a Kaggle T4 with 4-bit QLoRA. And Kaggle gives me 30 HOURS of free GPU. 2Ă T4. Thatâs literally free training. So I had to adapt the entire codebase to work with HuggingFace models instead of my custom GPT. Made like 5 new files. All the verifier/agent/reward stuff I built for the MoE? Now works with Qwen too. Didnât have to rewrite everything â just slapped a Qwen adapter on top. the dataset Found this dataset on HF: Nexlab/fable5-agentic-coding-sft . 160K rows of Claude Fable 5 output. Like actual coding traces â building games, fixing bugs, writing shell scripts. Not just âwrite a function that passes a test.â Real agentic stuff. Training right now actually. Qwen3.5-9B on 10K rows. Should take like 8 hours on 2Ă T4. Weâll see if it doesnât OOM again lol. While waiting for training I read papers: Routing-Free MoE â what if experts just decide for themselves when to activate? No router, no top-k. Already implemented it in model.py. GLM-5.2 has this IndexShare thing that reuses computation across layers. 2.9Ă cheaper at 1M context. Maybe later. DeepSWE trained Qwen3-32B with RL only and got 42% SWE-Bench. So our approach is valid. the first phase of training is going on right now, iâll post another devlog once itâs done!"}, {"post_id": 20759, "ts": "2026-07-02T13:35:48Z", "hours": 5.6175, "text": "Devlog #4 â wait, why am I training on Wikipedia? Last week I got le gros chaton (my from-scratch transformer) to actually train. Ran it on wikitext-103 in a Colab notebook on a free T4, 12k steps, val loss hit 3.73. Felt insane for something I wrote myself from PyTorch primitives. But then I looked at what it generated. It could do English-ish. It knew about Singapore and stuff. The moment I asked it to write code? Total garbage. Fair enough. It has never seen a single line of code. the pivot I thought about what I actually want this thing to do. Answer: a coding agent. Something that mogs on terminal-bench, that you give a task and it runs commands, fixes its own bugs, gets it done. Qwen-coder territory. Wikitext wonât get me there. You canât learn Python from Wikipedia articles about the snake. So the plan changed. The big project is now le fat chaton, the bigger sibling. And itâs a coder. the architecture stuff I went down a rabbit hole on what frontier coding models do. Theyâre basically all mixture-of-experts (MoE) now. Qwen3-coder is 480B params / 35B active. Deepseek-coder-v2-lite is 16B / 2.4B active. The trick: big total params (knows a lot) small active params per token (runs fast and cheap) Runs like a small model, knows like a big one. Exactly what I want for a snappy terminal agent. So I rewrote the model. Added an MoE class. A gate routes each token to its top-2 experts out of 8, with a load-balance loss so the router doesnât pick the same expert every time. Also threw in: SwiGLU â gated MLP, basically free quality, every Llama uses it GQA â smaller KV cache, faster long-context decoding (the agent harness needs this) Shared expert â DeepSeek-style, one always-on expert for common knowledge Fat config math: ~10.25B total / ~3.65B active. Not building that locally, it would crash my PC again. the data question Wikitext was a fine proof. For the coder I need code. Options: smollm-corpus python-edu â 7.6M educational Python files, high quality, but gated behind S3 (slow pull) starcoderdata python â ~50GB Python, streams fast from HF, the Codellama workhorse the-stack-v2 â 900B tokens, overkill for my budget Going with starcoderdata Python, blended with ~15-20% cosmopedia (prose) so it has general knowledge. That blend is the Qwen-coder recipe. am I warm-starting from wikitext? No. Different architecture entirely (17M dense vs 10B MoE, weights donât fit). Even if they did, warm-starting a coder from prose wastes compute unlearning prose. Fresh random init on the mixed corpus. Clean slate. This went from âlets make a little model that talksâ to âlets build a coding agent that mogs the big labsâ real fast. Ambitious for a solo student with a 2070 and $30 of Modal credits? Absolutely. Doing it anyway? Yeah. Next: the eval harness so I can measure if this is making the model better at code (pass@1, pass@5 on HumanEval). Val loss going down means nothing if it still canât write a"}, {"post_id": 20019, "ts": "2026-07-01T14:54:30Z", "hours": 0.3917, "text": "DEVLOG #3: teaching it to talk (fine-tuning) the base model was a completer. ask it âwhat is 2+2?â and it just continues the sentence. fine-tuning is what makes it actually answer: same model, more training, but on prompt/response pairs. i wrote ~48 Q&A pairs by hand. trivia, math, jokes, hellos. all in the same rigid Q: âŠ\\nA: format. new trick: loss masking. only the response counts toward the loss, not the prompt, so i set prompt targets to -100 (pytorchâs cross_entropy ignores that automatically, zero model changes). tested the mask boundary in isolation first. wrong mask = 400 steps of training the wrong thing. the run: load base weights, 400 steps, lower lr. loss went 12.3 to 0.02.then the reality check. it nails everything in the set. capitals, math, jokes, âwho are you,â verbatim. but something NOT in the set? slop. 17M params + 48 examples is a lookup table, not a reasoner. real chat models are billions of params. not a bug, just the scale.but itâs finally coherent. the first base model was word salad. now you type a question and get a real answer back that makes sense. itâs tiny and dumb and canât generalize, but it actually talks. thatâs the win. full pipeline done: tokenizer, model from scratch, pretrain on wikipedia, fine-tune, chat. mine, it talks, i understand every piece."}, {"post_id": 20006, "ts": "2026-07-01T14:16:25Z", "hours": 0.4139, "text": "DEVLOG #2: real data, real loss, and a lesson about memorizing split my data into 90% train / 10% val. before i only had one number, training loss, and it lies to you. you canât tell learning from memorizing with just that. now i check both every 200 steps. rule: both go down = learning. train down but val up = memorizing = useless.also made the model bigger, 7M -> 17.7M params. immediately ran out of gpu memory lol. dropped batch size to 32 to fit my 8GB card.training: 3000 steps. loss started at 158 (should be ~10 for random , my first pass blew up and made garbage). recovered fast though, didnât ruin the run. right now the llm is spitting out gibberish and random words but after finetuning it should sound more coherent"}, {"post_id": 19989, "ts": "2026-07-01T13:48:37Z", "hours": 36.31, "text": "DEVLOG #1: wiki text training so i finally got the model to train on actual data instead of that one paragraph about singapore nature reserves lol. before this the whole thing was basically a joke, i trained a 7M parameter transformer on like 134 tokens and it just spat out jumbled fragments of the same sentence over and over. cool proof it worked but definitely not a âlanguage modelâ in any real sense.anyway. the big move this week was swapping out the tiny json file for wikitext-2. thatâs a huggingface dataset of wikipedia text, about 2.4 million tokens once you filter out the empty lines. thatâs⊠a lot more than 134 lol. encoding it took maybe half a minute with tiktoken and the whole tensor fits on my gpu no problem (itâs only like 8MB of ints)."}]...
|
Title: le-fat-chaton by @unknown_lizzard | Stardan Title: le-fat-chaton by @unknown_lizzard | Stardance
Devlogs:
DEVLOG #1: wiki text training so i finally got the model to train on actual data instead of that one paragraph about singapore nature reserves lol. before this the whole thing was basically a joke, i trained a 7M parameter transformer on like 134 tokens and it just spat out jumbled fragments of the same sentence over and over. cool proof it worked but definitely not a âlanguage modelâ in any real sense.anyway. the big move this week was swapping out the tiny json file for wikitext-2. thatâs a huggingface dataset of wikipedia text, about 2.4 million tokens once you filter out the empty lines. thatâs⊠a lot more than 134 lol. encoding it took maybe half a minute with tiktoken and the whole tensor fits on my gpu no problem (itâs only like 8MB of ints).
DEVLOG #2: real data, real loss, and a lesson about memorizing split my data into 90% train / 10% val. before i only had one number, training loss, and it lies to you. you canât tell learning from memorizing with just that. now i check both every 200 steps. rule: both go down = learning. train down but val up = memorizing = useless.also made the model bigger, 7M -> 17.7M params. immediately ran out of gpu memory lol. dropped batch size to 32 to fit my 8GB card.training: 3000 steps. loss started at 158 (should be ~10 for random , my first pass blew up and made garbage). recovered fast though, didnât ruin the run. right now the llm is spitting out gibberish and random words but after finetuning it should sound more coherent
DEVLOG #3: teaching it to talk (fine-tuning) the base model was a completer. ask it âwhat is 2+2?â and it just continues the sentence. fine-tuning is what makes it actually answer: same model, more training, but on prompt/response pairs. i wrote ~48 Q&A pairs by hand. trivia, math, jokes, hellos. all in the same rigid Q: âŠ\nA: format. new trick: loss masking. only the response counts toward the loss, not the prompt, so i set prompt targets to -100 (pytorchâs cross_entropy ignores that automatically, zero model changes). tested the mask boundary in isolation first. wrong mask = 400 steps of training the wrong thing. the run: load base weights, 400 steps, lower lr. loss went 12.3 to 0.02.then the reality check. it nails everything in the set. capitals, math, jokes, âwho are you,â verbatim. but something NOT in the set? slop. 17M params + 48 examples is a lookup table, not a reasoner. real chat models are billions of params. not a bug, just the scale.but itâs finally coherent. the first base model was word salad. now you type a question and get a real answer back that makes sense. itâs tiny and dumb and canât generalize, but it actually talks. thatâs the win. full pipeline done: tokenizer, model from scratch, pretrain on wikipedia, fine-tune, chat. mine, it talks, i understand every piece.
Devlog #4 â wait, why am I training on Wikipedia? Last week I got le gros chaton (my from-scratch transformer) to actually train. Ran it on wikitext-103 in a Colab notebook on a free T4, 12k steps, val loss hit 3.73. Felt insane for something I wrote myself from PyTorch primitives. But then I looked at what it generated. It could do English-ish. It knew about Singapore and stuff. The moment I asked it to write code? Total garbage. Fair enough. It has never seen a single line of code. the pivot I thought about what I actually want this thing to do. Answer: a coding agent. Something that mogs on terminal-bench, that you give a task and it runs commands, fixes its own bugs, gets it done. Qwen-coder territory. Wikitext wonât get me there. You canât learn Python from Wikipedia articles about the snake. So the plan changed. The big project is now le fat chaton, the bigger sibling. And itâs a coder. the architecture stuff I went down a rabbit hole on what frontier coding models do. Theyâre basically all mixture-of-experts (MoE) now. Qwen3-coder is 480B params / 35B active. Deepseek-coder-v2-lite is 16B / 2.4B active. The trick: big total params (knows a lot) small active params per token (runs fast and cheap) Runs like a small model, knows like a big one. Exactly what I want for a snappy terminal agent. So I rewrote the model. Added an MoE class. A gate routes each token to its top-2 experts out of 8, with a load-balance loss so the router doesnât pick the same expert every time. Also threw in: SwiGLU â gated MLP, basically free quality, every Llama uses it GQA â smaller KV cache, faster long-context decoding (the agent harness needs this) Shared expert â DeepSeek-style, one always-on expert for common knowledge Fat config math: ~10.25B total / ~3.65B active. Not building that locally, it would crash my PC again. the data question Wikitext was a fine proof. For the coder I need code. Options: smollm-corpus python-edu â 7.6M educational Python files, high quality, but gated behind S3 (slow pull) starcoderdata python â ~50GB Python, streams fast from HF, the Codellama workhorse the-stack-v2 â 900B tokens, overkill for my budget Going with starcoderdata Python, blended with ~15-20% cosmopedia (prose) so it has general knowledge. That blend is the Qwen-coder recipe. am I warm-starting from wikitext? No. Different architecture entirely (17M dense vs 10B MoE, weights donât fit). Even if they did, warm-starting a coder from prose wastes compute unlearning prose. Fresh random init on the mixed corpus. Clean slate. This went from âlets make a little model that talksâ to âlets build a coding agent that mogs the big labsâ real fast. Ambitious for a solo student with a 2070 and $30 of Modal credits? Absolutely. Doing it anyway? Yeah. Next: the eval harness so I can measure if this is making the model better at code (pass@1, pass@5 on HumanEval). Val loss going down means nothing if it still canât write a
Devlog #5 â ok so Iâm not building a 10B MoE anymore So last time I had this whole plan. 10B MoE, from scratch, SwiGLU, GQA, all that. And I actually built it. Like 60 Python files, tests passing, RL pipeline, self-play data gen, the whole thing. It was kinda sick ngl. But then I was like⊠wait. Iâm building an ENGINE that TRAINS coding agents. Not the agent. And the engine is cool but training a 10B model from zero on $30 of Modal credits is not how you beat GLM-5.2. You know what beats GLM-5.2? Fine-tuning a model that already knows how to code. the pivot (again) Qwen3.5-9B came out. 9B params. Fits on a Kaggle T4 with 4-bit QLoRA. And Kaggle gives me 30 HOURS of free GPU. 2Ă T4. Thatâs literally free training. So I had to adapt the entire codebase to work with HuggingFace models instead of my custom GPT. Made like 5 new files. All the verifier/agent/reward stuff I built for the MoE? Now works with Qwen too. Didnât have to rewrite everything â just slapped a Qwen adapter on top. the dataset Found this dataset on HF: Nexlab/fable5-agentic-coding-sft . 160K rows of Claude Fable 5 output. Like actual coding traces â building games, fixing bugs, writing shell scripts. Not just âwrite a function that passes a test.â Real agentic stuff. Training right now actually. Qwen3.5-9B on 10K rows. Should take like 8 hours on 2Ă T4. Weâll see if it doesnât OOM again lol. While waiting for training I read papers: Routing-Free MoE â what if experts just decide for themselves when to activate? No router, no top-k. Already implemented it in model.py. GLM-5.2 has this IndexShare thing that reuses computation across layers. 2.9Ă cheaper at 1M context. Maybe later. DeepSWE trained Qwen3-32B with RL only and got 42% SWE-Bench. So our approach is valid. the first phase of training is going on right now, iâll post another devlog once itâs done!
Devlog #6 â training done (phase 1) finally got the qwen finetune to actually run with 625 steps, took like 8 hours on kaggle. it finished. havent run full benchmarks yet cause i was busy building other stuff while it trained. but it trained. thats the main thing. I also built a swebench agent that can actually navigate repos and edit files and make patches. not just the basic agent loop that runs commands. this one actually works for real se tasks. also added swebench eval so we can measure if the model is actually good at fixing bugs and coding then iâll run the benchmarks on the trained model and see if its actually any good lol.
Devlog #7 â phase 2 running phase 1 (sft) is done and phase 2 (rlvr) is running now on kaggle. this is the part where the model actually gets trained on solving coding problems with our verifier giving rewards, not just imitating fable data. honestly this is the part i care about more. sft just makes it mimic. rlvr is where it learns to actually fix code. grpo with proportional rewards = the model gets partial credit for getting some tests passing, which is way better than all-or-nothing. while it runs im just waiting tbh. not much to build. the pipeline works, the eval works, the agent works. next after this: full benchmark run. humaneval, swebench, agentic eval. weâll see if all this actually made the model good at coding or if i just spent a week on a worse qwen lol.
Devlog #8 â phase 2 fixes Iâve been getting a lot of issues with the first two for this model. Iâve gotten a lot of errors in Kaggle and Colab. Iâve tried everything, and Iâm still fixing the code. Itâs taking a good amount of time, but I think Iâm almost there. Iâve gone through a lot of errors, and Iâm probably right at the end of the errors. I might be able to start actually training it tomorrow, but for now Iâll stop.
# Devlog #9 â finally training, and now with checkpoints! so last time i was stuck debugging phase 1/2 on kaggle. well, still debugging lol, but we actually got somewhere. the first issue was transformers not knowing what the qwen3.5 model was, had to pin transformers 5.14.1. then tokenizers kept fighting with it (0.22.0 wants old huggingface-hub, 0.22.1 is fine). then torch on kaggle kept giving a p100 which modern pytorch just refuses to run on, so we had to tell it to give us a t4 instead. then the fun one: out of memory on the very first step. batch 2 was too big for the gpu they gave us, so batch 1 it is. also i learned the hard way that kaggle kills your session after 12 hours. the first long run got cancelled at 80% done and i had nothing saved. so now the training script saves a checkpoint every 20% + every hour and uploads it to huggingface, so if it dies we just resume. it actually saved us, the run got cut and we picked right back up from the checkpoint. right now the full 160k sft is running on modal (paying for gpus now, kaggle time ran out). itâs at like 9% and should take a couple days. weâll see how it goes, and then rlvr after that. the end of the errors⊠might actually be in sight this time.
** Devlog #10 the full training is finally running ** ok so phase 1 full training is officially going. 160k rows of fable5 data on modal, resuming from the 12.8k rows we got on kaggle before the session cap killed us. weâre at ~27% and it should take like a day and a half total. big stuff that happened since last time: fast kernels actually work now. the model has hybrid linear-attention layers and transformers kept falling back to a slow torch path. the fix was: nvidia cuda-devel base image (needs nvcc to compile), installing flash-linear-attention[cuda] + causal-conv1d , and pinning torch 2.10. took a couple tries but now training is like 4x faster than it would be without them. had to split across two modal accounts. first account ran out of credits, so we set up a second profile and the script auto-resumes from the huggingface checkpoints when it dies. itâs been rock solid, it happens every 20% plus every hour it saves and uploads. lost zero progress to the account switch. we gave the model a personality. itâs called Le Gros Chaton (the fat cat) and weâre training self-awareness into it, not as a system prompt but baked into the weights. state-sheets ([STATE] goal/known/tried/failed/next), metacognition lines, and self-review at the end of tasks. the trajectory sft masks out the system prompt so the model learns to track its own state as behavior, not as a script it repeats. did some benchmark research too. base qwen3.5-9b scores 9.2% on terminal-bench 2.0. comparable 9b fine-tunes hit 24-28%. thatâs our realistic target which is 2.5-3x the baseline. honestly at this point itâs just⊠waiting. the pipeline works, the checkpoints work, the account switching works. now the model just needs to finish cooking. then trajectory sft, then rlvr, then we actually see the benchmark numbers.
** Devlog #11 half way there! ** the training is going pretty well, I fixed a few bugs with the code and added documentation training is at 50%!
Devlog #12 training kept dying for the last 10 hours the training kept crashing. not the model, not the gp but the modal client. every hour or so it would lose connection and take the whole run down with it. weâd restart, itâd run an hour, crash again. three times. the fix was simple: modal run -d runs detached, so the training lives on modalâs servers and doesnât care if our local process dies. killed the client on purpose to test â training kept going. thatâs it, thatâs the fix. also worried the loss wasnât moving but it was fine. lr had wound down on the crashed run, looked scary, re-warmed fine after restart. loss is 0.668 now and dropping. status: 72% through the fable5 sft. checkpoints safe on hf. after this: trajectory sft with the self-awareness stuff baked in, then rlvr, then real numbers.
Devlog #13 we worked ALOT so this was the grind day. 18 hours of training babysitting and honestly it felt like 40. the modal training kept dying every hour. the client would crash and take the whole run with it. we restarted like 3 times before figuring out modal run -d (detached) keeps it alive on their servers even if our computer shits the bed. tested it by literally killing the process and it kept going. ez fix but we worked ALOT to get there. then we ran out of credits at 93% and switched accounts, but the other account âfinishedâ the run in 6 MILLISECONDS which was sus af. turns out it just re-uploaded the old checkpoint and trained nothing. the resume logic had a bug where it thought 6200 >= 3799 meant done. patched it. another lesson learned. also we made the model creative lol. added diversity sampling to the trajectory generator (5 solutions per task, keep the novel ones), a novelty bonus reward for RLVR, and a creativity rule in the self-awareness prompt. so the fat cat will be innovative, not just memorize. current state: SFT is done at 91% (good enough), resume bug fixed, phase 2 (trajectory SFT with creativity + self-awareness baked in) is up next. 18 hours. we worked ALOT. the fat cat will be worth it đŒ
Devlog #14 worked a lot, still not done we worked a lot this week. honestly the main takeaway is that the fable5 sft was good but its traces alone werenât enough the model needs way more verified agent trajectories, so weâve been grinding those out (target is 450). we also ran out of credits mid-generation (the modal endpoint started failing with 503s) and had to switch to a second kimi account. took a minute to get the auth right the new endpoint wanted an extra header we didnât have. after that the generator resumed fine and itâs been adding verified traces since (~340/450 now). biggest scare: we found out peft 0.20 silently drops the second adapter when you merge two at once. tested it and yeah, the outputs were identical with one or two adapters so our trajectory sft would have been lost in the merge. fixed it by merging sequentially (base first, then the second adapter). checked against the live model and it matches, so weâre good. my 2070 couldnât fit the 9b model for real training, so weâre waiting on a 4090 (my dadâs) next week. all the scripts are ready sft, merge, rlvr, eval, even a setup script for the gpu box. just need the hardware. status: 340/450 traces, everything ready, waiting on the 4090. weâve worked a lot, but the real run hasnât happened yet :/.
Devlog 15 Traces are done The trace generator finally hit the target and went past it. We got 474 verified trajectories, zero malformed, zero duplicates, 19 templates, and a 95 percent self review pass rate. We were aiming for 450, so we ended up with 474. The dataset is synced to Hugging Face in two versions: raw and normalized. That part is finally done. It was the longest part of the project, and the model is only going to be as good as the traces, so getting this right was important The Kimi endpoint also stopped working. The old teacher account started returning 503 errors during generation and eventually died completely. We switched to a second Kimi account, which needed an extra header that we did not have at first. After figuring that out, generation resumed without losing any progress For GPUs, the 2070 still cannot realistically train the 9B. Kaggle hours are back, so we have 30 hours on a T4. The 4090 from my dad should arrive next week. The plan is to use the T4 for trajectory SFT, then the 4090 for merging, Terminal Bench evaluation, and RLVR. Status: 474 out of 474 traces done,
Devlog #16, t4gpu The T4 16GB fought us the whole way. BF16 was baked into a pre quantized checkpoint, which made each step take 668 seconds because it had to use FP32 emulation. 2K context ran out of memory, the 248K logits ran out of memory too, FP16 started producing NaNs, Kaggle session limits locked us out, and the paged optimizer crashed last. Every fix seemed to create another problem. We eventually got it working with FP16 compute, chunked assistant token loss, autocast, and plain AdamW. Then we got access to an AMD MI300X with 192GB of memory. No quantization, 16K context, and enough memory to train full traces instead of cutting them off halfway through a message. Right now the 16K BF16 SFT run is training on the MI300X. Next up is merging the model, running Terminal Bench, and then RLVR.
devlog #17 MI300X vLLM serving The old GPU box got destroyed, so I spun up a new MI300X with the same SSH key. ROCm 6.2 and Torch 2.5.1 were already set up, so getting the machine ready was easy. The hard part was vLLM. The pip version is CUDA only, and the ROCm Docker image only supported the multimodal version of Qwen3.5. Our model is text-only, so I had to patch the image. I added Qwen3_5ForCausalLM, fixed the hybrid KV-cache setup, added the missing Mamba state methods, and mapped the weight names so the text-only safetensors loaded correctly. I also patched the merged config to remove the M-RoPE and dtype fields. After that, the model served normally. I ran a one-task test with fix-git. The pipeline worked, but the model got stuck repeating git show until it ran out of turns. ##Shipped The merged model is now public on Hugging Face as mateo0093/le-gros-chaton under Apache-2.0. The 5Ă5 Terminal-Bench pilot finished at 3/25 (25%). All three successes were on fix-git, which shows that the SFT data was too focused on git tasks. I also tested RLVR with GRPO and a novelty bonus. The reward had almost no variance, so the training signal was basically useless. I saved the step-10 adapter but didnât merge it. The GPU used about 12 hours of the 50 hour budget. All the vLLM patches and harness changes are in the repo. Main lesson: Qwen3.5âs hybrid model is a bit annoying to serve as text-only on ROCm. The model works but i think this was more of a learning opportunity, i know what iâve done wrong and what i would have done differently, I will be working on a new model in a few weeks once I do a bit more research.
Ships:
at first I wanted to make a normal text model to try and learn more about llms, but I wanted to go further, agentic coding is a big thing so what better way to learn about llms than trying to make an agentic coding ai model. So thats how le gros chaton was born, the name originated from a joke on x about a fake huge mistral model coming out. to train this model I used already made datasets on hugging face, like fable5 traces, I also used kimi k3 as a teacher model to teach my smaller model to be good at coding and running commands, it kind of worked? but iâm not completely satisfied with the result, but at least i have learned some things and soon enough I will trying making an even better model! I dont have a demo url for you guys to try the model out since it was too expensive to run on a gpu so youâll need to run it yourself, check it out on hugging face, follow the instructions and have fun....
|
1792878632.7358682
|
1793742632.7358682
|
|
69319
|
lead scaper by @KrishnaDeoli | Stardance
|
KrishnaDeoli
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: lead scaper by @KrishnaDeoli | Stardance
|
1793130892.8531792
|
1793735692.8531792
|
|
50331
|
leaenin Onsape 3d cad by @jonathanajokpaniovo | St leaenin Onsape 3d cad by @jonathanajokpaniovo | Stardance...
|
jonathanajokpaniovo
|
0
|
0.5
|
0
|
[]
|
[{"post_id": 48893, "ts": "202 [{"post_id": 48893, "ts": "2026-08-17T13:39:59Z", "hours": 0.5003, "text": "tryin to learn onsape to eventially uild ben 10 watc"}]...
|
Title: leaenin Onsape 3d cad by @jonathanajokpanio Title: leaenin Onsape 3d cad by @jonathanajokpaniovo | Stardance
Devlogs:
tryin to learn onsape to eventially uild ben 10 watc...
|
1793335848.0156024
|
1793940648.0156024
|
|
29677
|
leapfrog 3d by @jwexly | Stardance
|
jwexly
|
0
|
13.8
|
0
|
[]
|
[{"post_id": 53464, "ts": "202 [{"post_id": 53464, "ts": "2026-08-24T01:12:38Z", "hours": 4.6022, "text": "start screen pt 2 ANOTHER 4 hours of coding the start screen later genuinely whys it taking so long anyway i want a first ship by the end of august so im going to start working on the actual game mechanics now that im done w the start screen goals for next devlog: layout the main level start a randomization process (for both maze branching and obstacle placement) see the video for what ive done so far!! also i feel like the fading is a TINY bit off but idk how⊠i think ill leave it for now until i find out whats wrong"}, {"post_id": 50764, "ts": "2026-08-20T03:54:50Z", "hours": 4.0019, "text": "start screen im not even done w the start screen omg đđđđ literally ALL 4 hours ive spent ive been debugging the start screen. and more time than that to design it too anyway i wanted to post bc its so close to a nice round 4 hours and i thought that was cool heres what the start screen looks like so far! the start button starts the game but i still need to add animation for it, and the credits button doesnt do anything"}, {"post_id": 40773, "ts": "2026-08-04T14:57:41Z", "hours": 2.3039, "text": "game updatesss general so i finally decided what type of game i want this to be! its going to be some sort of maze x infinite runner game (think flappy bird/dinosaur game-esque but maze and 3d). im not quite sure how to get the maze mechanism down, but i like this idea and i think it could totally be a cool game :) code camera : i originally wanted it to be sort of like roblox with a platformer type thing, so i had a whole roblox camera movement thing going, but i decided to overhaul that and replace it with a side camera so you can see what the frog is doing and where it is going! movement : like i said it was originally like roblox movement, so pressing left/right arrows would rotate some amount, but now it just rotates 90 degrees left/right. im planning to use this to let the player choose which direction they want to go jumping : the player can now jump infinitely! animation : used another character design thing that displayes when you jump #TODO fix the jump design it looks sooo wonky the camera also feels kind of weird but idk what to do about that?? i might position it slightly behind the character instead of a straigh 90 degree angle level design obviouslyyy! eventually i want it to auto gen levels work out how exactly the game works and what i want it to look like im still learning godot and it is a slow and arduous process đ uhhh yeah thats it watch the video i guess???"}, {"post_id": 30451, "ts": "2026-07-18T00:24:16Z", "hours": 2.89, "text": "getting started! all ive rly done so far is a TON of character design which is unfortunately not included in the programming hours (i think it should be.. its lwk a lot harder than actual programming) if anyone has good free 3d modeling / texturing platforms please share, iâve been using vectary since its easily accessible in browser and i find it kinda hard to use on the coding side, ive learned a tiny bit of godot so now the frog moves and jumps! next on my to-do for this game is designing the first level and unfortunately creating more textures :( im going for some sort of platformer game, but i think its a bit basic to just jump around so ill be brainstorming unique twists too. i also lwk hate the name âleapfrogâ it sounds so silly but i unfortunately cannot come up with anything better anyway, heres where itâs at right now (beautiful i know):"}]...
|
Title: leapfrog 3d by @jwexly | Stardance
Devlogs Title: leapfrog 3d by @jwexly | Stardance
Devlogs:
getting started! all ive rly done so far is a TON of character design which is unfortunately not included in the programming hours (i think it should be.. its lwk a lot harder than actual programming) if anyone has good free 3d modeling / texturing platforms please share, iâve been using vectary since its easily accessible in browser and i find it kinda hard to use on the coding side, ive learned a tiny bit of godot so now the frog moves and jumps! next on my to-do for this game is designing the first level and unfortunately creating more textures :( im going for some sort of platformer game, but i think its a bit basic to just jump around so ill be brainstorming unique twists too. i also lwk hate the name âleapfrogâ it sounds so silly but i unfortunately cannot come up with anything better anyway, heres where itâs at right now (beautiful i know):
game updatesss general so i finally decided what type of game i want this to be! its going to be some sort of maze x infinite runner game (think flappy bird/dinosaur game-esque but maze and 3d). im not quite sure how to get the maze mechanism down, but i like this idea and i think it could totally be a cool game :) code camera : i originally wanted it to be sort of like roblox with a platformer type thing, so i had a whole roblox camera movement thing going, but i decided to overhaul that and replace it with a side camera so you can see what the frog is doing and where it is going! movement : like i said it was originally like roblox movement, so pressing left/right arrows would rotate some amount, but now it just rotates 90 degrees left/right. im planning to use this to let the player choose which direction they want to go jumping : the player can now jump infinitely! animation : used another character design thing that displayes when you jump #TODO fix the jump design it looks sooo wonky the camera also feels kind of weird but idk what to do about that?? i might position it slightly behind the character instead of a straigh 90 degree angle level design obviouslyyy! eventually i want it to auto gen levels work out how exactly the game works and what i want it to look like im still learning godot and it is a slow and arduous process đ uhhh yeah thats it watch the video i guess???
start screen im not even done w the start screen omg đđđđ literally ALL 4 hours ive spent ive been debugging the start screen. and more time than that to design it too anyway i wanted to post bc its so close to a nice round 4 hours and i thought that was cool heres what the start screen looks like so far! the start button starts the game but i still need to add animation for it, and the credits button doesnt do anything
start screen pt 2 ANOTHER 4 hours of coding the start screen later genuinely whys it taking so long anyway i want a first ship by the end of august so im going to start working on the actual game mechanics now that im done w the start screen goals for next devlog: layout the main level start a randomization process (for both maze branching and obstacle placement) see the video for what ive done so far!! also i feel like the fading is a TINY bit off but idk how⊠i think ill leave it for now until i find out whats wrong...
|
1793267752.8814952
|
1793872552.8814952
|
|
59415
|
learing html by @sharma_manjuroyal | Stardance
|
sharma_manjuroyal
|
0
|
0.82
|
0
|
[]
|
[{"post_id": 63992, "ts": "202 [{"post_id": 63992, "ts": "2026-09-08T02:49:33Z", "hours": 0.405, "text": "uploaded new repo"}, {"post_id": 63616, "ts": "2026-09-07T15:20:11Z", "hours": 0.4106, "text": "here my peoject dealited i will teaching a html term and css per day"}]...
|
Title: learing html by @sharma_manjuroyal | Starda Title: learing html by @sharma_manjuroyal | Stardance
Devlogs:
here my peoject dealited i will teaching a html term and css per day
uploaded new repo...
|
1793559071.0689352
|
1794163871.0689352
|
|
10019
|
learn react by @ttiramisu | Stardance
|
ttiramisu
|
0
|
0.92
|
0
|
[]
|
[{"post_id": 3920, "ts": "2026 [{"post_id": 3920, "ts": "2026-06-07T01:09:27Z", "hours": 0.9158, "text": "working on learning react while making some bad ui designs for fun. no css yet though cuz i didnt have the time for itâŠ."}]...
|
Title: learn react by @ttiramisu | Stardance
Devl Title: learn react by @ttiramisu | Stardance
Devlogs:
working on learning react while making some bad ui designs for fun. no css yet though cuz i didnt have the time for itâŠ....
|
1793444016.322345
|
1794048816.322345
|
|
45633
|
learnbot-ros2 by @antek042 | Stardance
|
antek042
|
0
|
0.43
|
0
|
[]
|
[{"post_id": 43464, "ts": "202 [{"post_id": 43464, "ts": "2026-08-08T18:57:56Z", "hours": 0.4292, "text": "Power management PCB is now finalized. It takes the 12V battery input and provides regulated 5V and 3.3V rails for the robot. Iâll add the full BOM in the next commit."}]...
|
Title: learnbot-ros2 by @antek042 | Stardance
Dev Title: learnbot-ros2 by @antek042 | Stardance
Devlogs:
Power management PCB is now finalized. It takes the 12V battery input and provides regulated 5V and 3.3V rails for the robot. Iâll add the full BOM in the next commit....
|
1793339935.3329616
|
1793944735.3329616
|
|
4182
|
learning JS by @dimple | Stardance
|
dimple
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: learning JS by @dimple | Stardance
|
1793487409.1694736
|
1794092209.1694736
|
|
45505
|
learning assistant by @sakshyamniraula | Stardance
|
sakshyamniraula
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: learning assistant by @sakshyamniraula | St Title: learning assistant by @sakshyamniraula | Stardance...
|
1793335956.784468
|
1793940756.784468
|
|
9865
|
learning ig by @Otoko | Stardance
|
Otoko
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: learning ig by @Otoko | Stardance
|
1793393299.916183
|
1793998099.916183
|
|
50257
|
learning neural networks by @infoajith2020 | Stard learning neural networks by @infoajith2020 | Stardance...
|
infoajith2020
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: learning neural networks by @infoajith2020 Title: learning neural networks by @infoajith2020 | Stardance...
|
1793332358.71045
|
1793937158.71045
|
|
11447
|
learning project by @supertheoctagon | Stardance
|
supertheoctagon
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: learning project by @supertheoctagon | Star Title: learning project by @supertheoctagon | Stardance...
|
1793368457.2251108
|
1793973257.2251108
|
|
64784
|
learning python by @puneetdhiman41 | Stardance
|
puneetdhiman41
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: learning python by @puneetdhiman41 | Starda Title: learning python by @puneetdhiman41 | Stardance...
|
1793066037.9790382
|
1793670837.9790382
|
|
28519
|
learning python/ml by @euler_rr | Stardance
|
euler_rr
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: learning python/ml by @euler_rr | Stardance
|
1793188125.2372937
|
1793792925.2372937
|
|
45259
|
learning react by @crunchy | Stardance
|
crunchy
|
0
|
1.17
|
0
|
[]
|
[{"post_id": 45029, "ts": "202 [{"post_id": 45029, "ts": "2026-08-11T05:45:48Z", "hours": 1.1694, "text": "I want to learn ReactJS to develop my career as an Industrial Engineer. While it may seem like an irrelevant career path, Industrial Engineers strive to optimize and make systems more efficient. It is highly beneficial for Industrial Engineers to be able to create models and visualize systems for others to see and critique. Learning React will allow me to build upon my existing JavaScript knowledge to create a functional webpage that I can customize to fit the needs of whatever project I am working on. At the moment, I am working on learning the different elements of React. By the end of the project, I want to be able to come up with an interactive model to fix a problem that I see in my everyday life."}]...
|
Title: learning react by @crunchy | Stardance
Dev Title: learning react by @crunchy | Stardance
Devlogs:
I want to learn ReactJS to develop my career as an Industrial Engineer. While it may seem like an irrelevant career path, Industrial Engineers strive to optimize and make systems more efficient. It is highly beneficial for Industrial Engineers to be able to create models and visualize systems for others to see and critique. Learning React will allow me to build upon my existing JavaScript knowledge to create a functional webpage that I can customize to fit the needs of whatever project I am working on. At the moment, I am working on learning the different elements of React. By the end of the project, I want to be able to come up with an interactive model to fix a problem that I see in my everyday life....
|
1793324914.1957104
|
1793929714.1957104
|
|
67346
|
learning rust by @Elia_Piagentini | Stardance
|
Elia_Piagentini
|
0
|
10.51
|
0
|
[]
|
[{"post_id": 81783, "ts": "202 [{"post_id": 81783, "ts": "2026-10-22T13:44:56Z", "hours": 8.1306, "text": "going strong"}, {"post_id": 76231, "ts": "2026-10-02T19:44:00Z", "hours": 2.3842, "text": "rust"}]...
|
Title: learning rust by @Elia_Piagentini | Stardan Title: learning rust by @Elia_Piagentini | Stardance
Devlogs:
rust
going strong...
|
1793109106.3595996
|
1793713906.3595996
|
|
23461
|
learning trumpet fingerings by @Dasher2801 | Stard learning trumpet fingerings by @Dasher2801 | Stardance...
|
|
1
|
6.0
|
23
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-23T17:51:45Z", "hours": 6.0, "multiplier": 4.1, "payout": 23, "blessing": "neutral", "text": "Master Trumpet Fingerings: The Interactive Trainer This minimalist web app is the perfect digital tool for trumpet beginners, music students, and returning playersto intuitively master classic fingerings in the treble clef.Without any downloads or registrations, the tool transforms any web browser into a motivating educational game. The app randomly generates notes between low C and high C, featuring a dynamic sheet music staff that automatically handles ledger lines. You control the virtual valves using your keyboard keys 1, 2, and 3, while pressing 0 immediately resets all valves to the open position. Pressing the Enter key evaluates your attempt. If you are correct, the entire screen instantly turns green and a synthesized trumpet fanfare sounds. Thanks to this combination of visual staff notation, tactile keyboard input, and immediate acoustic rewards, this website ensures rapid learning success. It is the ideal companion for your daily musical warm-up.", "repo": "https://github.com/Dasher2801/Trompete-lernen", "demo": "https://dasher2801.github.io/Trompete-lernen/"}]...
|
[{"post_id": 14356, "ts": "202 [{"post_id": 14356, "ts": "2026-06-23T13:39:19Z", "hours": 1.7, "text": "The design has been completely revamped. Several bugs have also been fixedâsuch as the issue where only one key could be pressed at a time, or notes being displayed incorrectly."}, {"post_id": 13725, "ts": "2026-06-22T14:31:15Z", "hours": 2.2825, "text": "Now, all notes from Gb to C3 are being tested. The design is still the old one."}, {"post_id": 13012, "ts": "2026-06-21T09:04:53Z", "hours": 1.7472, "text": "Ich arbeite an einer Website, mit der Trompetenspieler schnell und Effizient alle Griffe fĂŒr die Trompete lernen können. Bis jetzt ist es mur dieser eine Ton (A1).Jetzt muss ich alle anderen Töne und Vorzeichen hinzufĂŒgen. Auch das Design muss ich noch anpassen."}]...
|
Title: learning trumpet fingerings by @Dasher2801 Title: learning trumpet fingerings by @Dasher2801 | Stardance
Devlogs:
Ich arbeite an einer Website, mit der Trompetenspieler schnell und Effizient alle Griffe fĂŒr die Trompete lernen können. Bis jetzt ist es mur dieser eine Ton (A1).Jetzt muss ich alle anderen Töne und Vorzeichen hinzufĂŒgen. Auch das Design muss ich noch anpassen.
Now, all notes from Gb to C3 are being tested. The design is still the old one.
The design has been completely revamped. Several bugs have also been fixedâsuch as the issue where only one key could be pressed at a time, or notes being displayed incorrectly.
Ships:
Master Trumpet Fingerings: The Interactive Trainer This minimalist web app is the perfect digital tool for trumpet beginners, music students, and returning playersto intuitively master classic fingerings in the treble clef.Without any downloads or registrations, the tool transforms any web browser into a motivating educational game. The app randomly generates notes between low C and high C, featuring a dynamic sheet music staff that automatically handles ledger lines. You control the virtual valves using your keyboard keys 1, 2, and 3, while pressing 0 immediately resets all valves to the open position. Pressing the Enter key evaluates your attempt. If you are correct, the entire screen instantly turns green and a synthesized trumpet fanfare sounds. Thanks to this combination of visual staff notation, tactile keyboard input, and immediate acoustic rewards, this website ensures rapid learning success. It is the ideal companion for your daily musical warm-up....
|
1793634512.6722484
|
1793720912.6722484
|
|
62769
|
learnivia by @shouryasharan27 | Stardance
|
shouryasharan27
|
1
|
4.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-16T13:30:36Z", "hours": 4.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Itâs a browser-based vocab trainer with a few game modes that force you to engage with words instead of just passively reading them", "repo": "https://github.com/shouryasharan7-netizen/sat-vocab-game", "demo": "https://www.satvocab.xyz"}]...
|
[{"post_id": 69134, "ts": "202 [{"post_id": 69134, "ts": "2026-09-16T13:27:52Z", "hours": 3.5114, "text": "a look at the interface"}]...
|
Title: learnivia by @shouryasharan27 | Stardance
Title: learnivia by @shouryasharan27 | Stardance
Devlogs:
a look at the interface
Ships:
Itâs a browser-based vocab trainer with a few game modes that force you to engage with words instead of just passively reading them...
|
1793591416.3191895
|
1793677816.3191895
|
|
44345
|
learnova-v2 by @ranveergill | Stardance
|
ranveergill
|
2
|
27.0
|
259
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-09T04:12:17Z", "hours": 8.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "active recall is usually regraded as one of the best study methods of all time, and here you can practice it indefinitely! also, if you believe that your a better debater than ai/someone you know, you can challenge that here too! live at learnova.software :)", "repo": "https://github.com/ranveerlabs/learnova-v2", "demo": "https://www.learnova.software/"}, {"ship_num": 2, "ts": "2026-08-24T09:26:40Z", "hours": 19.0, "multiplier": 13.46, "payout": 259, "blessing": "neutral", "text": "Are you smarter than AI, your friends, or alone? Learnova is a study tool that only counts it as learned once you can say it back with no help. Multiple choice, then fill in the blank, then rebuild the explanation from pieces, then explain it cold, in your own words, with nothing to lean on. Most study tools stop testing you the moment you can recognize the right answer. This one starts there. The new part is who youâre up against. Debate Mode puts you against an AI opponent that argues the other side of whatever you just explained, four speeches, then a real judge call scores who actually held their ground. Or skip the AI and go against a friend instead, live, same format, one shared link, no accounts. The room exists the moment two people are in it and nothing else. Built this week: live 1v1 debate, real time, no database, a room is just two people and a shared connection. Rewrote how the grading talks to you, since a screen that quietly claims you contradicted a source that was never there does real damage to someone trying to learn. Killed the rating system twice over, first for hiding how different a study run and a debate round actually are, then for existing at all when neither needed to accumulate into a score. Rebuilt the whole color palette off the actual logo instead of picking colors that looked fine. None of it is graded on vibes. The AI opponent isnât told to be nice or mean, itâs told to actually argue, and the judge is a second, separate model call that never sees what the first one said about itself. The score is out of ten, not a made up elo number a language model invented on the spot, because a model asked to do arithmetic will hand you a plausible number whether or not the arithmetic happened. Live at learnova.software. Open source. Built with Claude Code, over about five weeks of actual work, dates and all in the README because a repo that predates its own hackathon submission should say so plainly. Try it against yourself first. Then a friend. Then, if youâre feeling something, the AI.", "repo": "https://github.com/ranveerlabs/learnova-v2", "demo": "https://www.learnova.software/"}]...
|
[{"post_id": 77995, "ts": "202 [{"post_id": 77995, "ts": "2026-10-09T04:10:10Z", "hours": 3.2511, "text": "no idea how i have this unlogged time lol"}, {"post_id": 63383, "ts": "2026-09-07T05:35:06Z", "hours": 0.5103, "text": "trimmed it down and tried to remove anything that could be potentially flagged as ai. i kinda think it looks better now, anyways running out of devlog content haha"}, {"post_id": 61640, "ts": "2026-09-04T17:09:45Z", "hours": 0.5211, "text": "recent rejection said round mode doesnt work i think it might have just been in an api rate limit thing as i wasnt able to find anything proving thats actually true"}, {"post_id": 60528, "ts": "2026-09-02T22:30:58Z", "hours": 0.2811, "text": "idk why i keep getting rejected for ai use my last rejection literally said âemojis in readme convey ai useâ, ive never had any emojis in the readme ever. anyways devlogging cuz i wanna claim my 16 mins of skimming docs"}, {"post_id": 60017, "ts": "2026-09-02T03:38:18Z", "hours": 0.3928, "text": "claiming 23 minutes"}, {"post_id": 59412, "ts": "2026-09-01T07:12:15Z", "hours": 3.0644, "text": "everything is a window now whole app reskinned. every screen sits in a title bar and a paper body on a dark desktop, hard borders, no rounded corner left anywhere, 71 of those came out the token swap broke the landing immediately. âink went #101010, âground went #2b2b2b, and the headline sits straight on the ground, so LEARNOVA was black on near-black. wrapping screens in a window fixed it. i would have shipped that on the arithmetic two bugs turned out to be the same shape. the notes sheet had tape, punch holes and a pencil at -right-7, all deliberately outside the container, which nobody notices until a screen has a border. and the timer was a conic-gradient ring with a bg-ground disc punched out to make its hole, so once bg-ground became the desktop it drew a dark circle on a white toolbar /feed shipped. no CI on this repo, check-runs returns total_count: 0, so the build half is the deployments api. unauthenticated github is 60 an hour per ip and that ip is the whole deployment, so the answer sits on globalThis for 60 seconds the palette went round the houses. the title bar started as the blue off the reference screenshot, the only colour in the app from outside its own set, then charcoal which read as the old learnova, then mint, then cream warmed toward the starâs gold. i said the blue was gone twice before it actually was, cuz the first pass only moved the title bar and âaccent-wash is what paints ::selection worst near miss: computeRoute(â/debate/live/QBTRâ, {code:âQBTRâ}) came back unmasked and i had most of a paragraph written abt room codes leaking to analytics. turnValueToRegExp wasnt in scope, so it hit the functionâs own catch and handed the input straight back. with the helper in scope its /debate/live/[code] still emulated chrome on one machine. analytics loads but has never reported, that only happens off a deploy"}, {"post_id": 53640, "ts": "2026-08-24T09:20:45Z", "hours": 5.425, "text": "live rooms, and the rating that stopped existing live 1v1 debate shipped. two people, a four character code, no accounts the real decision was what a room even is. serverless functions dont share memory between instances, so a Map tracking whether a room exists lies abt half the time. host creates it on one instance, the guestâs join lands on another, and the guest gets told the room doesnt exist while the host is sat inside it. so nothing tracks existence any more. presence on an ably channel is the room two bugs that only turned up by testing it properly only the hostâs browser calls the judge, so the ballot came back written entirely from the hostâs side. both players read the hostâs strengths and the hostâs weaknesses in the second person. the judge writes both ballots now and mirror swaps them for the guest and a room was ending when the first person left instead of the last, which threw out whoever had stayed this reverses the last log, twice both elo modules got deleted. one number going up and down implies a round mode run and a debate round measure the same thing, and they dont. it became a plain record instead then the record got deleted too. a debate ends on its verdict and nothing counts up across rounds results were showing +1,380 of 2,280, a division you have to do in your head at the exact moment you want one answer. its a score out of ten now. anything above ten written by an older build gets dropped rather than converted, cuz converting needs a denominator that was never stored cut suggestion chips, which turned âname a topicâ into âpick one of theseâ. three motions that typewrote themselves onto the debate note for no functional reason. /proof, which was a third way into a landing page arguing there are two. thirteen exported symbols nothing was calling and the âget the ballotâ button. the eighth speech lands and the round goes to the judge on its own palette rebuilt off the logo. the dark ground is sampled straight out of the asset, and every neutral swapped for the grey at the same relative luminance, so the contrast ratios that were already tuned still hold. type warmed to the logoâs cream and the accent became the starâs gold two prompt bugs the voice instructions were teaching third person inside their own example. and the ballot voice used bare letters A and B, which now and then came out as âa flaw in Aâs hanging out pointâ worst near miss of the session: the case insensitive fix for the letter A also matched the article âaâ, and shipped âwith they cheaper alternativeâ thru a live judge call before anybody caught it separate one, numbered lists were coming out as a single run-on line. fixed, and property tested against 200 random chunkings copy the unavailable message used to claim nothing youd typed had been lost, which this app has no way of knowing bigger one. every ai call was failing with a raw HTTP 402 on a studentâs screen, telling them to retry something that was never going to work, cuz the shared key had run out of balance. it says plainly that retrying wont fix it now readme the status section had gone stale before, so it got corrected twice this session first pass: a full eight speech live debate across two real browsers, 1.6s to join, each speech reaching the other window in 423 to 1039ms, and a 15.2 second wait before a disconnect gets noticed, written down as measured rather than rounded down. the judge was stubbed that pass, the key had no balance second pass, once the key refilled: two real judge calls, two genuinely different ballots, no stray letters still open: a judge call made from inside a live room and mirrored to the guest has only ever been checked against a stub"}, {"post_id": 48684, "ts": "2026-08-17T06:00:05Z", "hours": 5.7667, "text": "debate mode, and the source that wasnt there biggest thing this session is a second mode. round modeâs ladder tops out at saying something in your own words. debate wants something else out of you, holding a position for four speeches while an opponent tries to take it off you. own route, rather than bolting a sixth round on the end the rating is arithmetic the judge hands back a winner, a margin and ten dimension scores. the elo change gets worked out from those in integer maths the model never sees. ask a model to update an elo directly and you get a number that looks like arithmetic, and you cant catch it going wrong cuz every value it gives you is plausible two tabs and they never mix. open debate is judged on whether the argument holds up. tournament prep gets judged against a tournament bar, where a dropped argument is conceded and 60 means mediocre rather than good for a beginner. format is required and never defaulted, a Public Forum ballot handed to somebody practising Lincoln-Douglas is worse than no ballot cuz theyll act on it tritoflex somebody ran a topic-only session on Tritoflex, a spray-on rubber roofing compound, and got told over and over that it was torch-applied. he caught it cuz he installs the stuff. anybody studying something new wouldnt have ask the model cold abt an obscure term and it comes back with a protein, an alpha helix, signal transduction, implicated in cancer. none of it true, none of it reading as invented, and it never once says it doesnt know the worst bit wasnt a missing disclaimer. on a topic-only round 4 the marking screen printed âContradicts the sourceâ under a heading reading âThe notesâ, in a session where the student pasted nothing and the server blanks every citation on the way out anyway. so somebody who wrote a true sentence got told they contradicted evidence that had never existed. it says âthe model disagreesâ now the header badge went from âAI-generatedâ to âAI, uncheckedâ. they typed the topic in themselves so they already know who wrote it. what they have no way to know is that nothing checked it. âAIâ stays in the label cuz it outlives the moment, screenshots get shared and come back a week later runs leave something behind they used to die with the tab. honest enough abt the plumbing. but retrieval practice does its work thru spacing, and meeting a concept once, failing to explain it and never seeing it again is the half that only feels like studying the session already worked out the thing worth keeping, a map of which ideas you can recognise but cant say. computed it, showed it once, threw it away on the walk to the results. one standing per concept sticks around now and the front door leads with whats still unsaid the tests that tested nothing my first two boundary assertions both passed against the exact bugs they were written for. one compared trimmed pieces, and trimming erases the evidence, so it cant tell a mid-word cut from a clean one. the other ran on a sample that had collapsed to a single chunk, so there was no join left in it to get wrong only found out bcuz i reverted the fix to watch them fail and they sat there green status the green âstrongâ band is verified, which closes the open item from the last log. seen in a browser by somebody who knew the answers, rather than by a driver answering option 1 every time readme the privacy section had gone from cautious to false. ânothing is stored beyond the current sessionâ stopped being true the moment runs started leaving a record behind. thats twice a claim in there has drifted while the product moved under it, so anything that stores something now drags a readme check into the same commit still no accounts. standings are per device and clearing site data wipes them"}, {"post_id": 43181, "ts": "2026-08-08T09:29:30Z", "hours": 4.9756, "text": "deleting the score biggest change this session was taking things out. round mode had points, a running total and a combo multiplier. all three gone!!! the argument lowk fell out as soon as i said it aloud. the number at the top of the results was the run time, and the quickest way thru a round is to answer everything wrong immediately. so the headline figure was paying you for the one behaviour the app exists to catch. points and combos were the same information twice over, worked out from how fast and how often you were right, then shown next to how fast and how often you were right whats there instead weights every answer by how little help it had. warm up counts once, round 1 three times, round 2 five, round 3 six, and saying a concept in your own words in round 4 is worth 150. speed isnt in the formula anywhere and two tests hold that down: the same answers given at wildly different speeds come out identical, and fast-and-wrong lands below slow-and-right it reads +615 of 2,120. a bare number says nothing when a short session and a long one have different ceilings round 3 the chip tray used to have wrong words mixed in, so the round was a hunt for what to avoid. now it holds the sentenceâs own pieces and nothing else grading stopped being fussy abt list order. seven tests, four of them cases that still have to fail: âsugar traps lightâ for âlight traps sugarâ, a scrambled non-list, a missing chip, a changed verb round 4 cant be skipped any more. there was a âstop here and see the resultsâ button sitting right in front of the only moment in the session with nothing on screen to lean on, which is where bailing is most tempting the interface stopped hiding the header used to empty itself during a round, on the theory that chrome at the edges competes with retrieval. thats true for one person at a desk. round mode gets passed round a room with several people reading one screen, so it stays up now locking the page to the viewport turned up two bugs. one of them clipped the verdict off the bottom on a short window, and the verdict is the line that tells you the answer the run clock was a nice one. it measured wall clock from the start of the run, so it counted loading and the between-round screens, and it disagreed with the time the results reported. header said 3:20 against a reported 1:08. built off the same splits the results use now the cold open prompt trimmed it after noticing it asked the model to write explanation lines nobody reads. a/b against the real proxy over 10 topics took median completion tokens from 397 to 266, abt 33%, on the one call every student sits and waits for setTimeout i overrode it in the harness to freeze auto-advance long enough to screenshot a verdict, and it swallowed the harnessâs own sleeps. script hung and i captured the wrong state. keep a reference to the real function before you replace it status the assembled round is verified, which closes the open item from the last log. full ladder played end to end, in dev and against a production build"}, {"post_id": 41804, "ts": "2026-08-06T07:19:45Z", "hours": 3.1092, "text": "round mode, inspo is hackclub mail!!!! you type a topic and start guessing. five rounds, each one takes away more of the help: two options, four options, a sentence with the word missing, the same sentence in pieces you have to put back together, then nothing on screen at all and you just say it. the ladder runs recognise -> produce bcuz thats the direction the research points, retrieval beats rereading and producing beats picking anyway that part was already built. today was worse the scores were fake correct answers kept turning up in the first slot. felt wrong, so i wrote a script that generates questions thru the real route and counts where the answer actually lands warm up came back 5 of 5 at index 0. round 1 was 7 / 5 / 3 / 0 which means every score this app has ever shown anybody was inflated. you could do well without reading the question it was my own prompt doing it. every JSON example i handed the model had âanswerIndexâ: 0 sitting in it, so of course it learned that. placement happens on the server after generation now, for every format with ordered options, and that includes the chip tray, which had been shuffling in the browser where nothing could measure it 197 questions across four topics. chi-square under the 5% critical value on every format repeated questions are gone too. the dedupe compares what a question asks for rather than how its worded, so a rephrasing doesnt sneak past. when a topic runs dry the generator gets told to ask abt distinctions and consequences instead of drawing from the same pool twice three things a diff would never show drove headless chrome over all 21 presentations, cuz none of this is visible in code constellationâs stars stacked into a column. tailwind emits .relative after .absolute, and Pick set relative, so it beat the absolute that was being passed in doors swung 72 degrees, which turns the correct answer edge on at the exact moment you need to read it and a burst balloon faded to 0.25 opacity. so a wrong answer got softened by becoming unreadable. that one still bugs me, the marking is the one part that has to stay honest and it was quietly making the bad news harder to look at audio the generated pad sounded like fan noise. gone. its â8bit Dungeon Levelâ by Kevin MacLeod now, CC BY 4.0, credited in the app and in the repo on by default, the feel is half of why the mode works, and theres a mute for anyone sitting in a library autoplay turned into its own afternoon. no browser lets a page make noise before you touch it, so the track asks to play on mount, the rejection arms a listener, and your first click or keypress is what starts it testing that turned up a bug i had already talked myself out of. react batches state, so if the first thing you touched was the mute button, the listener fired while the value still read on, started the track, then paused it a frame later. a blip of music played at exactly the person switching it off. set synchronously now Two things from the test rig mattered more than the thing it was testing. element.click() doesnt grant user activation in chrome, so my first run looked like the whole feature was broken and was just the harness lying to me. and running chrome with a permissive autoplay flag meant the gesture fallback never fired once, so i was measuring nothing at all not done nobody has played the full ladder in a real browser yet. the presentations render, thats genuinely all i know. tomorrow"}]...
|
Title: learnova-v2 by @ranveergill | Stardance
De Title: learnova-v2 by @ranveergill | Stardance
Devlogs:
round mode, inspo is hackclub mail!!!! you type a topic and start guessing. five rounds, each one takes away more of the help: two options, four options, a sentence with the word missing, the same sentence in pieces you have to put back together, then nothing on screen at all and you just say it. the ladder runs recognise -> produce bcuz thats the direction the research points, retrieval beats rereading and producing beats picking anyway that part was already built. today was worse the scores were fake correct answers kept turning up in the first slot. felt wrong, so i wrote a script that generates questions thru the real route and counts where the answer actually lands warm up came back 5 of 5 at index 0. round 1 was 7 / 5 / 3 / 0 which means every score this app has ever shown anybody was inflated. you could do well without reading the question it was my own prompt doing it. every JSON example i handed the model had âanswerIndexâ: 0 sitting in it, so of course it learned that. placement happens on the server after generation now, for every format with ordered options, and that includes the chip tray, which had been shuffling in the browser where nothing could measure it 197 questions across four topics. chi-square under the 5% critical value on every format repeated questions are gone too. the dedupe compares what a question asks for rather than how its worded, so a rephrasing doesnt sneak past. when a topic runs dry the generator gets told to ask abt distinctions and consequences instead of drawing from the same pool twice three things a diff would never show drove headless chrome over all 21 presentations, cuz none of this is visible in code constellationâs stars stacked into a column. tailwind emits .relative after .absolute, and Pick set relative, so it beat the absolute that was being passed in doors swung 72 degrees, which turns the correct answer edge on at the exact moment you need to read it and a burst balloon faded to 0.25 opacity. so a wrong answer got softened by becoming unreadable. that one still bugs me, the marking is the one part that has to stay honest and it was quietly making the bad news harder to look at audio the generated pad sounded like fan noise. gone. its â8bit Dungeon Levelâ by Kevin MacLeod now, CC BY 4.0, credited in the app and in the repo on by default, the feel is half of why the mode works, and theres a mute for anyone sitting in a library autoplay turned into its own afternoon. no browser lets a page make noise before you touch it, so the track asks to play on mount, the rejection arms a listener, and your first click or keypress is what starts it testing that turned up a bug i had already talked myself out of. react batches state, so if the first thing you touched was the mute button, the listener fired while the value still read on, started the track, then paused it a frame later. a blip of music played at exactly the person switching it off. set synchronously now Two things from the test rig mattered more than the thing it was testing. element.click() doesnt grant user activation in chrome, so my first run looked like the whole feature was broken and was just the harness lying to me. and running chrome with a permissive autoplay flag meant the gesture fallback never fired once, so i was measuring nothing at all not done nobody has played the full ladder in a real browser yet. the presentations render, thats genuinely all i know. tomorrow
deleting the score biggest change this session was taking things out. round mode had points, a running total and a combo multiplier. all three gone!!! the argument lowk fell out as soon as i said it aloud. the number at the top of the results was the run time, and the quickest way thru a round is to answer everything wrong immediately. so the headline figure was paying you for the one behaviour the app exists to catch. points and combos were the same information twice over, worked out from how fast and how often you were right, then shown next to how fast and how often you were right whats there instead weights every answer by how little help it had. warm up counts once, round 1 three times, round 2 five, round 3 six, and saying a concept in your own words in round 4 is worth 150. speed isnt in the formula anywhere and two tests hold that down: the same answers given at wildly different speeds come out identical, and fast-and-wrong lands below slow-and-right it reads +615 of 2,120. a bare number says nothing when a short session and a long one have different ceilings round 3 the chip tray used to have wrong words mixed in, so the round was a hunt for what to avoid. now it holds the sentenceâs own pieces and nothing else grading stopped being fussy abt list order. seven tests, four of them cases that still have to fail: âsugar traps lightâ for âlight traps sugarâ, a scrambled non-list, a missing chip, a changed verb round 4 cant be skipped any more. there was a âstop here and see the resultsâ button sitting right in front of the only moment in the session with nothing on screen to lean on, which is where bailing is most tempting the interface stopped hiding the header used to empty itself during a round, on the theory that chrome at the edges competes with retrieval. thats true for one person at a desk. round mode gets passed round a room with several people reading one screen, so it stays up now locking the page to the viewport turned up two bugs. one of them clipped the verdict off the bottom on a short window, and the verdict is the line that tells you the answer the run clock was a nice one. it measured wall clock from the start of the run, so it counted loading and the between-round screens, and it disagreed with the time the results reported. header said 3:20 against a reported 1:08. built off the same splits the results use now the cold open prompt trimmed it after noticing it asked the model to write explanation lines nobody reads. a/b against the real proxy over 10 topics took median completion tokens from 397 to 266, abt 33%, on the one call every student sits and waits for setTimeout i overrode it in the harness to freeze auto-advance long enough to screenshot a verdict, and it swallowed the harnessâs own sleeps. script hung and i captured the wrong state. keep a reference to the real function before you replace it status the assembled round is verified, which closes the open item from the last log. full ladder played end to end, in dev and against a production build
debate mode, and the source that wasnt there biggest thing this session is a second mode. round modeâs ladder tops out at saying something in your own words. debate wants something else out of you, holding a position for four speeches while an opponent tries to take it off you. own route, rather than bolting a sixth round on the end the rating is arithmetic the judge hands back a winner, a margin and ten dimension scores. the elo change gets worked out from those in integer maths the model never sees. ask a model to update an elo directly and you get a number that looks like arithmetic, and you cant catch it going wrong cuz every value it gives you is plausible two tabs and they never mix. open debate is judged on whether the argument holds up. tournament prep gets judged against a tournament bar, where a dropped argument is conceded and 60 means mediocre rather than good for a beginner. format is required and never defaulted, a Public Forum ballot handed to somebody practising Lincoln-Douglas is worse than no ballot cuz theyll act on it tritoflex somebody ran a topic-only session on Tritoflex, a spray-on rubber roofing compound, and got told over and over that it was torch-applied. he caught it cuz he installs the stuff. anybody studying something new wouldnt have ask the model cold abt an obscure term and it comes back with a protein, an alpha helix, signal transduction, implicated in cancer. none of it true, none of it reading as invented, and it never once says it doesnt know the worst bit wasnt a missing disclaimer. on a topic-only round 4 the marking screen printed âContradicts the sourceâ under a heading reading âThe notesâ, in a session where the student pasted nothing and the server blanks every citation on the way out anyway. so somebody who wrote a true sentence got told they contradicted evidence that had never existed. it says âthe model disagreesâ now the header badge went from âAI-generatedâ to âAI, uncheckedâ. they typed the topic in themselves so they already know who wrote it. what they have no way to know is that nothing checked it. âAIâ stays in the label cuz it outlives the moment, screenshots get shared and come back a week later runs leave something behind they used to die with the tab. honest enough abt the plumbing. but retrieval practice does its work thru spacing, and meeting a concept once, failing to explain it and never seeing it again is the half that only feels like studying the session already worked out the thing worth keeping, a map of which ideas you can recognise but cant say. computed it, showed it once, threw it away on the walk to the results. one standing per concept sticks around now and the front door leads with whats still unsaid the tests that tested nothing my first two boundary assertions both passed against the exact bugs they were written for. one compared trimmed pieces, and trimming erases the evidence, so it cant tell a mid-word cut from a clean one. the other ran on a sample that had collapsed to a single chunk, so there was no join left in it to get wrong only found out bcuz i reverted the fix to watch them fail and they sat there green status the green âstrongâ band is verified, which closes the open item from the last log. seen in a browser by somebody who knew the answers, rather than by a driver answering option 1 every time readme the privacy section had gone from cautious to false. ânothing is stored beyond the current sessionâ stopped being true the moment runs started leaving a record behind. thats twice a claim in there has drifted while the product moved under it, so anything that stores something now drags a readme check into the same commit still no accounts. standings are per device and clearing site data wipes them
live rooms, and the rating that stopped existing live 1v1 debate shipped. two people, a four character code, no accounts the real decision was what a room even is. serverless functions dont share memory between instances, so a Map tracking whether a room exists lies abt half the time. host creates it on one instance, the guestâs join lands on another, and the guest gets told the room doesnt exist while the host is sat inside it. so nothing tracks existence any more. presence on an ably channel is the room two bugs that only turned up by testing it properly only the hostâs browser calls the judge, so the ballot came back written entirely from the hostâs side. both players read the hostâs strengths and the hostâs weaknesses in the second person. the judge writes both ballots now and mirror swaps them for the guest and a room was ending when the first person left instead of the last, which threw out whoever had stayed this reverses the last log, twice both elo modules got deleted. one number going up and down implies a round mode run and a debate round measure the same thing, and they dont. it became a plain record instead then the record got deleted too. a debate ends on its verdict and nothing counts up across rounds results were showing +1,380 of 2,280, a division you have to do in your head at the exact moment you want one answer. its a score out of ten now. anything above ten written by an older build gets dropped rather than converted, cuz converting needs a denominator that was never stored cut suggestion chips, which turned âname a topicâ into âpick one of theseâ. three motions that typewrote themselves onto the debate note for no functional reason. /proof, which was a third way into a landing page arguing there are two. thirteen exported symbols nothing was calling and the âget the ballotâ button. the eighth speech lands and the round goes to the judge on its own palette rebuilt off the logo. the dark ground is sampled straight out of the asset, and every neutral swapped for the grey at the same relative luminance, so the contrast ratios that were already tuned still hold. type warmed to the logoâs cream and the accent became the starâs gold two prompt bugs the voice instructions were teaching third person inside their own example. and the ballot voice used bare letters A and B, which now and then came out as âa flaw in Aâs hanging out pointâ worst near miss of the session: the case insensitive fix for the letter A also matched the article âaâ, and shipped âwith they cheaper alternativeâ thru a live judge call before anybody caught it separate one, numbered lists were coming out as a single run-on line. fixed, and property tested against 200 random chunkings copy the unavailable message used to claim nothing youd typed had been lost, which this app has no way of knowing bigger one. every ai call was failing with a raw HTTP 402 on a studentâs screen, telling them to retry something that was never going to work, cuz the shared key had run out of balance. it says plainly that retrying wont fix it now readme the status section had gone stale before, so it got corrected twice this session first pass: a full eight speech live debate across two real browsers, 1.6s to join, each speech reaching the other window in 423 to 1039ms, and a 15.2 second wait before a disconnect gets noticed, written down as measured rather than rounded down. the judge was stubbed that pass, the key had no balance second pass, once the key refilled: two real judge calls, two genuinely different ballots, no stray letters still open: a judge call made from inside a live room and mirrored to the guest has only ever been checked against a stub
everything is a window now whole app reskinned. every screen sits in a title bar and a paper body on a dark desktop, hard borders, no rounded corner left anywhere, 71 of those came out the token swap broke the landing immediately. âink went #101010, âground went #2b2b2b, and the headline sits straight on the ground, so LEARNOVA was black on near-black. wrapping screens in a window fixed it. i would have shipped that on the arithmetic two bugs turned out to be the same shape. the notes sheet had tape, punch holes and a pencil at -right-7, all deliberately outside the container, which nobody notices until a screen has a border. and the timer was a conic-gradient ring with a bg-ground disc punched out to make its hole, so once bg-ground became the desktop it drew a dark circle on a white toolbar /feed shipped. no CI on this repo, check-runs returns total_count: 0, so the build half is the deployments api. unauthenticated github is 60 an hour per ip and that ip is the whole deployment, so the answer sits on globalThis for 60 seconds the palette went round the houses. the title bar started as the blue off the reference screenshot, the only colour in the app from outside its own set, then charcoal which read as the old learnova, then mint, then cream warmed toward the starâs gold. i said the blue was gone twice before it actually was, cuz the first pass only moved the title bar and âaccent-wash is what paints ::selection worst near miss: computeRoute(â/debate/live/QBTRâ, {code:âQBTRâ}) came back unmasked and i had most of a paragraph written abt room codes leaking to analytics. turnValueToRegExp wasnt in scope, so it hit the functionâs own catch and handed the input straight back. with the helper in scope its /debate/live/[code] still emulated chrome on one machine. analytics loads but has never reported, that only happens off a deploy
claiming 23 minutes
idk why i keep getting rejected for ai use my last rejection literally said âemojis in readme convey ai useâ, ive never had any emojis in the readme ever. anyways devlogging cuz i wanna claim my 16 mins of skimming docs
recent rejection said round mode doesnt work i think it might have just been in an api rate limit thing as i wasnt able to find anything proving thats actually true
trimmed it down and tried to remove anything that could be potentially flagged as ai. i kinda think it looks better now, anyways running out of devlog content haha
no idea how i have this unlogged time lol
Ships:
Are you smarter than AI, your friends, or alone? Learnova is a study tool that only counts it as learned once you can say it back with no help. Multiple choice, then fill in the blank, then rebuild the explanation from pieces, then explain it cold, in your own words, with nothing to lean on. Most study tools stop testing you the moment you can recognize the right answer. This one starts there. The new part is who youâre up against. Debate Mode puts you against an AI opponent that argues the other side of whatever you just explained, four speeches, then a real judge call scores who actually held their ground. Or skip the AI and go against a friend instead, live, same format, one shared link, no accounts. The room exists the moment two people are in it and nothing else. Built this week: live 1v1 debate, real time, no database, a room is just two people and a shared connection. Rewrote how the grading talks to you, since a screen that quietly claims you contradicted a source that was never there does real damage to someone trying to learn. Killed the rating system twice over, first for hiding how different a study run and a debate round actually are, then for existing at all when neither needed to accumulate into a score. Rebuilt the whole color palette off the actual logo instead of picking colors that looked fine. None of it is graded on vibes. The AI opponent isnât told to be nice or mean, itâs told to actually argue, and the judge is a second, separate model call that never sees what the first one said about itself. The score is out of ten, not a made up elo number a language model invented on the spot, because a model asked to do arithmetic will hand you a plausible number whether or not the arithmetic happened. Live at learnova.software. Open source. Built with Claude Code, over about five weeks of actual work, dates and all in the README because a repo that predates its own hackathon submission should say so plainly. Try it against yourself first. Then a friend. Then, if youâre feeling something, the AI.
active recall is usually regraded as one of the best study methods of all time, and here you can practice it indefinitely! also, if you believe that your a better debater than ai/someone you know, you can challenge that here too! live at learnova.software :)...
|
1793598699.647689
|
1793685099.647689
|
|
68570
|
led matrix joinable by @gagaruk | Stardance
|
gagaruk
|
0
|
7.37
|
0
|
[]
|
[{"post_id": 82232, "ts": "202 [{"post_id": 82232, "ts": "2026-10-24T10:57:37Z", "hours": 7.3739, "text": "A led matrix Devlog 1: *choosing parts ^designing the circuit ~parts wont fit on the pcb I wanted to build this from scratch so instead of using a driver board Iâm using 8 shift-registers linked together. The first one gets the input from a buffer to keep the input from degrading. I didnât use any transistors arrays because i thought 5mA for a single led would be enough. So the parts are as follows: 8x 74HC595 1x 74HC244 64x 5mm LED(standard THT) 64x 560 ohm THT resistors (1/8W) 9x 10nf decopling caps (ceramic) 32x 10k THT resistors pull-__ (1/8W) ^The circuit desing was relatively easy. I just connected the components on kicad editor. But first time using it so there are some naming issues and the whole circuit doesnât quite fit on the A4. Footprints were from the standard library. ~ Currently designing the pcb (at least trying to). Iâm having problems trying to align every single component by hand since there is a lot of them. And I wasnât able to fit the buffer on the size I wanted the pcb to be. (I can always put it vertically thought). Even then I want to have a common potential plane witht the 5V on the side of the LEDs but after putting all the components there doesnt look like it will have much effect. Other than the main power lines carrying 5V at 2.8A looks hard to fit ( if its even possible). So I might go for 2 seperate pcbs."}]...
|
Title: led matrix joinable by @gagaruk | Stardance Title: led matrix joinable by @gagaruk | Stardance
Devlogs:
A led matrix Devlog 1: *choosing parts ^designing the circuit ~parts wont fit on the pcb I wanted to build this from scratch so instead of using a driver board Iâm using 8 shift-registers linked together. The first one gets the input from a buffer to keep the input from degrading. I didnât use any transistors arrays because i thought 5mA for a single led would be enough. So the parts are as follows: 8x 74HC595 1x 74HC244 64x 5mm LED(standard THT) 64x 560 ohm THT resistors (1/8W) 9x 10nf decopling caps (ceramic) 32x 10k THT resistors pull-__ (1/8W) ^The circuit desing was relatively easy. I just connected the components on kicad editor. But first time using it so there are some naming issues and the whole circuit doesnât quite fit on the A4. Footprints were from the standard library. ~ Currently designing the pcb (at least trying to). Iâm having problems trying to align every single component by hand since there is a lot of them. And I wasnât able to fit the buffer on the size I wanted the pcb to be. (I can always put it vertically thought). Even then I want to have a common potential plane witht the 5V on the side of the LEDs but after putting all the components there doesnt look like it will have much effect. Other than the main power lines carrying 5V at 2.8A looks hard to fit ( if its even possible). So I might go for 2 seperate pcbs....
|
1793123403.8701365
|
1793728203.8701365
|
|
42007
|
ledkapetka by @natalka | Stardance
|
natalka
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: ledkapetka by @natalka | Stardance
|
1793159595.2132227
|
1793764395.2132227
|
|
62988
|
leeaf cafe by @Leeaaaf | Stardance
|
Leeaaaf
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: leeaf cafe by @Leeaaaf | Stardance
|
1793047944.2428067
|
1793652744.2428067
|
|
10065
|
leefy's personal site (with node.js!) by @leef leefy's personal site (with node.js!) by @leefymoon | Stardance...
|
leefymoon
|
0
|
8.44
|
0
|
[]
|
[{"post_id": 13531, "ts": "202 [{"post_id": 13531, "ts": "2026-06-22T04:36:27Z", "hours": 1.2431, "text": "rewrote the blog post to work with the json file! take a look at the code!"}, {"post_id": 13474, "ts": "2026-06-22T02:06:13Z", "hours": 3.3589, "text": "put my blog posts into a json and created the blog page and rss feed using the json! now i need to make a script that formats the date for the rss feed when posting new blogsâŠ"}, {"post_id": 5449, "ts": "2026-06-09T07:25:39Z", "hours": 1.3492, "text": "made a blog post maker! honestly was a ton easier than i thought it would be :]"}, {"post_id": 5421, "ts": "2026-06-09T05:43:33Z", "hours": 0.4078, "text": "phew,, more madness with the date for lastfm scrobbles LOL reworked it so it checks for the now playing property in the json response, but defaults to the date if it doesnât have it. i donât know WHY that took me sooooo long 3:"}, {"post_id": 3915, "ts": "2026-06-07T01:01:42Z", "hours": 0.3089, "text": "discovered that if youâre actively scrobbling a track for lastfm then thereâs no date! had to fix that one lol"}, {"post_id": 3906, "ts": "2026-06-07T00:41:42Z", "hours": 0.3, "text": "tweaked the design of the whatâs new section ^^ (might add this change to my actual site)"}, {"post_id": 3784, "ts": "2026-06-06T20:47:01Z", "hours": 0.4883, "text": "widget is done AND styled yay!!! time for a gaming break :3"}, {"post_id": 3745, "ts": "2026-06-06T19:50:38Z", "hours": 0.585, "text": "widget is made!! time to style it :3"}, {"post_id": 3699, "ts": "2026-06-06T19:09:50Z", "hours": 0.3986, "text": "currently making a new widget to show my most recent track on last.fm⊠(ignore most of the code, stole it from my other lastfm script lol)"}]...
|
Title: leefy's personal site (with node.js!) b Title: leefy's personal site (with node.js!) by @leefymoon | Stardance
Devlogs:
currently making a new widget to show my most recent track on last.fm⊠(ignore most of the code, stole it from my other lastfm script lol)
widget is made!! time to style it :3
widget is done AND styled yay!!! time for a gaming break :3
tweaked the design of the whatâs new section ^^ (might add this change to my actual site)
discovered that if youâre actively scrobbling a track for lastfm then thereâs no date! had to fix that one lol
phew,, more madness with the date for lastfm scrobbles LOL reworked it so it checks for the now playing property in the json response, but defaults to the date if it doesnât have it. i donât know WHY that took me sooooo long 3:
made a blog post maker! honestly was a ton easier than i thought it would be :]
put my blog posts into a json and created the blog page and rss feed using the json! now i need to make a script that formats the date for the rss feed when posting new blogsâŠ
rewrote the blog post to work with the json file! take a look at the code!...
|
1793443987.6542282
|
1794048787.6542282
|