|
9451
|
Untitled by @Hackoona | Stardance
|
Hackoona
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled by @Hackoona | Stardance
|
1793332268.0783854
|
1793937068.0783854
|
|
9452
|
kernel by @ruka40365 | Stardance
|
ruka40365
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: kernel by @ruka40365 | Stardance
|
1793170162.9617054
|
1793774962.9617054
|
|
9453
|
My first slack bot! by @devsdenepal | Stardance
|
devsdenepal
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @devsdenepal | Stard Title: My first slack bot! by @devsdenepal | Stardance...
|
1793274916.4385538
|
1793879716.4385538
|
|
9454
|
VisionAI by @Rijul | Stardance
|
Rijul
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: VisionAI by @Rijul | Stardance
|
1792795718.8176813
|
1793400518.8176813
|
|
9455
|
risuko-over-slack by @yuemiyuki4737 | Stardance
|
yuemiyuki4737
|
1
|
3.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-06T08:04:42Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Made a downloader on slack… wait, its not as stupid as it sound, it use the high-performance download engine, RIsuko (created by me) to download content from the internet, compress it, and send it back to slack. The challenging part was actually making the bot reply, it is my first time making. a slack bot, while I do have experience on discord bot before, they are quite different. Really happy that everything works well after tons of debugging :)", "repo": "https://github.com/YueMiyuki/risuko-over-slack", "demo": "https://app.slack.com/client/E09V59WQY1E/C0B8MKR12G5"}]...
|
[{"post_id": 3366, "ts": "2026 [{"post_id": 3366, "ts": "2026-06-06T08:02:31Z", "hours": 3.4428, "text": "Made things work, added four comamnds: Help, ping, health check and download. Used a random image i found online to test, everything works really well :)"}]...
|
Title: risuko-over-slack by @yuemiyuki4737 | Stard Title: risuko-over-slack by @yuemiyuki4737 | Stardance
Devlogs:
Made things work, added four comamnds: Help, ping, health check and download. Used a random image i found online to test, everything works really well :)
Ships:
Made a downloader on slack… wait, its not as stupid as it sound, it use the high-performance download engine, RIsuko (created by me) to download content from the internet, compress it, and send it back to slack. The challenging part was actually making the bot reply, it is my first time making. a slack bot, while I do have experience on discord bot before, they are quite different. Really happy that everything works well after tons of debugging :)...
|
1793447746.7450175
|
1793534146.7450175
|
|
9456
|
My first slack bot! by @DanngDev | Stardance
|
DanngDev
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @DanngDev | Stardanc Title: My first slack bot! by @DanngDev | Stardance...
|
1793426008.2232082
|
1794030808.2232082
|
|
9457
|
NULL
|
NULL
|
0
|
0.0
|
0
|
[]
|
[]
|
|
1792921858.915835
|
1793785858.915835
|
|
9458
|
My first slack bot! by @Barkhistha | Stardance
|
Barkhistha
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @Barkhistha | Starda Title: My first slack bot! by @Barkhistha | Stardance...
|
1793145306.8549755
|
1793750106.8549755
|
|
9459
|
My awesome macropad! by @orus_trav | Stardance
|
orus_trav
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @orus_trav | Starda Title: My awesome macropad! by @orus_trav | Stardance...
|
1793368405.3633847
|
1793973205.3633847
|
|
9460
|
Ghostly Party by @foxors | Stardance
|
foxors
|
2
|
14.0
|
187
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-26T12:13:35Z", "hours": 6.0, "multiplier": 13.49, "payout": 80, "blessing": "neutral", "text": "A game written in html, css and js where you have to find a specific ghost in a picture with the fewest clicks and time as possible. The hardest thing was and still is for me the challenge to support a wide variate of browsers. Some don’t have an API point some do but only limited for privacy stuff etc. and some i can’t test because i don’t own a Mac nor a iPhone. Hope you will enjoy my small little game.", "repo": "https://codeberg.org/Foxors/Ghostly-party", "demo": "https://ghost.foxors.de"}, {"ship_num": 2, "ts": "2026-07-02T18:21:34Z", "hours": 8.0, "multiplier": 13.04, "payout": 107, "blessing": "neutral", "text": "I made a smoll random generated search picture game with GHOOOOSTs. Not creepy ghosts, just funny ghosts. I made it in pure HTML, CSS and JS fashion. Each time you play you will need to find a new specific ghost amongst others in a living room. When you find them you get shown how long you took and how many times you miss-clicked. The hardest part was to write the code to place the ghosts randomly without stacking on one another, while still guaranteeing that at least a few ghosts are always there. To not make it too hard or too easy. That you have to memorize the ghost you search, is by the way not a bug or a lack of testing. I thought it would be more fun if you had to memorize the ghost you search for while playing.", "repo": "https://codeberg.org/Foxors/Ghostly-party", "demo": "https://ghost.foxors.de"}]...
|
[{"post_id": 73952, "ts": "202 [{"post_id": 73952, "ts": "2026-09-26T12:05:09Z", "hours": 1.7142, "text": "Ready for ship 2 I fixed some minor issues and added a scoreboard at the end of each run. I also tried to make it more performant with small success. In this ship i have most of the feedback, from first ship, implemented and hope it is a better game now. I will probably stop with this ship for the time because i got my Minestom mini game server project right now which i need to finish."}, {"post_id": 28202, "ts": "2026-07-14T10:41:48Z", "hours": 4.2353, "text": "I am not finished yet First of all thanks to the feedback from some. It gave me a bit more motivation to work more on this project. Somebody bothered the loading timer after each round and guess what i also didn’t like that. So I fixed it. The cause was that each time a ghost was placed onto the canvas a new HTML image tag would have to be created, source set to the ghost image URL and than the script had to wait for the browser to load the image and only afterward it could place it onto the canvas. I fixed that by loading each image at the start of website loading. This way I already have all images loaded and only need to print them to the canvas no waiting needed. There was also this major randomness error. If you remember from an older post I did some random generator thing which makes it impossible to spawn too few ghosts while still allowing random positions on a mask without too much hugging each other. What i did not notice back then because of the mask, that if the mask isn’t applied the ghosts form a straight line from top left to bottom right. And guess what the error was: if (delta(g.x, x) < ghostSize / 2 || delta(g.y, y) < ghostSize / 2) vs if (delta(g.x, x) < ghostSize / 2 && delta(g.y, y) < ghostSize / 2) . I used and OR instead of and AND logic operator. It took me 30 mins to figure out :( Another person mentioned they had a optimization warning in their console. I did not had such a warning because I use Firefox personally. I also test on chromium but i don’t look into logs there, how ever now i did. The Dev tools of chromium really improved a lot, but i am still going to use Firefox as main browser. Well, I fixed all warnings chromium gave me. The context of a HTML canvas has an optimization flag in case you request data from it frequent what i do. I just had do set this option to true. Also the drawing part of the ghosts is now not blocking the main thread entirely with timeout calling the same function which acts like a for loop to distribute work over time. Otherwise the website would freeze for a second because printing images to a canvas is very sloww for some reason I don’t want to get into now. For the loading part i threw a bit CSS and HTML together making up a progress bar and added some random phrases so users don’t get bored. Furthermore instead of creating new HTML tags each scene change the code now already has them in the HTML code loaded but changes their visibility. In theory this should improve performance because the browser doesn’t have to create new elements each time."}, {"post_id": 20953, "ts": "2026-07-02T18:03:37Z", "hours": 1.3144, "text": "Last small improvements on my ghost game 👻 Code I reorganized parts of the code to make it, hopefully, more readable. Permission problems I have a browser with a bit more strict rules that broke my game. For that i made a check if the browser lies about color values of pixel and if that happens, we tell the user to please give us the permission. Canvas sizing Now after every try, of the game, the canvas resizes instead of only when reloading the page completely. What could be added? I had some ideas for what could be next. But i want to have a shipped project + move on with other projects. So i only list them here because i thought they are interesting. A seed calculated randomness generator to play against friends with same picture. More options of backgrounds and ghosts. Different ghost sizes. Different art styles. Dark mode."}, {"post_id": 19470, "ts": "2026-06-30T20:00:04Z", "hours": 0.6408, "text": "👀 Now you can actually play Ghostly party on the web I only did minor improvements today. In earlier versions of the game ghosts started plopping up on the canvas after one another and the worst part was that the ghost you should search for was always the first one because the browsers would use the cached version of the ghost, which obviously was way faster. To fix that i added a small loading screen which hides the canvas and makes a circle spin, in an CSS animation, until the canvas was finished drawing all the ghosts. There was also a dumb bug where i miscalculated the time the player took for a round I calculated Math.round(deltaTime / 60 * 100) / 100) when it should be Math.round(deltaTime / 60 * 10) / 100) . There was only one 0 too much. :[ Sometimes there are just those dumb bugs… I also finally deployed the game onto a web server, where it can now be played. https://ghost.foxors.de However before shipping i will try to find some bugs and add some icons and others stuff and generally try to polish up and tie loose ends together. Have a great day! or night or noon or whatever timezone you are in… :)"}, {"post_id": 18270, "ts": "2026-06-29T11:16:55Z", "hours": 1.4056, "text": "Hello, everybody! Today i fixed the width and height of the canvas. So that when you have a large screen you get a large canvas and if you have a smoll screen you get a smoll canvas. (Dynamic canvas size) I also fixed an issue where you couldn’t click the ghosts after scrolling, by taking scroll distance into account of the win condition check. I also made, just for fun, that when you find the right ghost and click on it. You get a zoomed in (cropped) image of them in the picture. Next thing would be to release it on my website…"}, {"post_id": 17051, "ts": "2026-06-27T17:59:26Z", "hours": 1.6925, "text": "I managed to implement the background. But wait! There are actually 2 backgrounds. One is a mask that masks specific areas, where ghosts are allowed to appear and the other one is the actual background with coloring. This should prevent ghosts from appearing at completely random nonsensical spots. I also programmed in that ghosts respect each other and spawn in some distance from one another, to not make it too crowded. But this created a new problem. The pseudo randomness is… well random. So there is a slight chance the ghost you need to find doesn’t even appear because you had bad luck. Furthermore many ghosts don’t appear. The script tries to spawn 50 total ghosts, in case one fails it will retry finding a position for that ghost 100 times before giving up and not spawning it. And out of the 50 only 10 manage to actually spawn. I will have to look into another solution to finding the random positions."}, {"post_id": 16932, "ts": "2026-06-27T14:23:01Z", "hours": 3.1883, "text": "I got many many drawings of a variety of ghosts from a relative and they remembered me of picture books where you would have to search a person or object among many in it. So i started programming a small website where you have to do exactly that. After showing it to the person who made the ghosts, they made more ghosts and a background. Now i will have to implement that :) For this to work i rewrote the entire thing with a canvas instead of plain images moved with transformation style sheet which makes it possible to implement the background. While I tried to I noticed that it was a bit scuffed working with images in canvas because you have to: Make a HTML image Let the browser load it And only afterwards you can put it on the canvas. But i still managed to pull it off."}]...
|
Title: Ghostly Party by @foxors | Stardance
Devlo Title: Ghostly Party by @foxors | Stardance
Devlogs:
I got many many drawings of a variety of ghosts from a relative and they remembered me of picture books where you would have to search a person or object among many in it. So i started programming a small website where you have to do exactly that. After showing it to the person who made the ghosts, they made more ghosts and a background. Now i will have to implement that :) For this to work i rewrote the entire thing with a canvas instead of plain images moved with transformation style sheet which makes it possible to implement the background. While I tried to I noticed that it was a bit scuffed working with images in canvas because you have to: Make a HTML image Let the browser load it And only afterwards you can put it on the canvas. But i still managed to pull it off.
I managed to implement the background. But wait! There are actually 2 backgrounds. One is a mask that masks specific areas, where ghosts are allowed to appear and the other one is the actual background with coloring. This should prevent ghosts from appearing at completely random nonsensical spots. I also programmed in that ghosts respect each other and spawn in some distance from one another, to not make it too crowded. But this created a new problem. The pseudo randomness is… well random. So there is a slight chance the ghost you need to find doesn’t even appear because you had bad luck. Furthermore many ghosts don’t appear. The script tries to spawn 50 total ghosts, in case one fails it will retry finding a position for that ghost 100 times before giving up and not spawning it. And out of the 50 only 10 manage to actually spawn. I will have to look into another solution to finding the random positions.
Hello, everybody! Today i fixed the width and height of the canvas. So that when you have a large screen you get a large canvas and if you have a smoll screen you get a smoll canvas. (Dynamic canvas size) I also fixed an issue where you couldn’t click the ghosts after scrolling, by taking scroll distance into account of the win condition check. I also made, just for fun, that when you find the right ghost and click on it. You get a zoomed in (cropped) image of them in the picture. Next thing would be to release it on my website…
👀 Now you can actually play Ghostly party on the web I only did minor improvements today. In earlier versions of the game ghosts started plopping up on the canvas after one another and the worst part was that the ghost you should search for was always the first one because the browsers would use the cached version of the ghost, which obviously was way faster. To fix that i added a small loading screen which hides the canvas and makes a circle spin, in an CSS animation, until the canvas was finished drawing all the ghosts. There was also a dumb bug where i miscalculated the time the player took for a round I calculated Math.round(deltaTime / 60 * 100) / 100) when it should be Math.round(deltaTime / 60 * 10) / 100) . There was only one 0 too much. :[ Sometimes there are just those dumb bugs… I also finally deployed the game onto a web server, where it can now be played. https://ghost.foxors.de However before shipping i will try to find some bugs and add some icons and others stuff and generally try to polish up and tie loose ends together. Have a great day! or night or noon or whatever timezone you are in… :)
Last small improvements on my ghost game 👻 Code I reorganized parts of the code to make it, hopefully, more readable. Permission problems I have a browser with a bit more strict rules that broke my game. For that i made a check if the browser lies about color values of pixel and if that happens, we tell the user to please give us the permission. Canvas sizing Now after every try, of the game, the canvas resizes instead of only when reloading the page completely. What could be added? I had some ideas for what could be next. But i want to have a shipped project + move on with other projects. So i only list them here because i thought they are interesting. A seed calculated randomness generator to play against friends with same picture. More options of backgrounds and ghosts. Different ghost sizes. Different art styles. Dark mode.
I am not finished yet First of all thanks to the feedback from some. It gave me a bit more motivation to work more on this project. Somebody bothered the loading timer after each round and guess what i also didn’t like that. So I fixed it. The cause was that each time a ghost was placed onto the canvas a new HTML image tag would have to be created, source set to the ghost image URL and than the script had to wait for the browser to load the image and only afterward it could place it onto the canvas. I fixed that by loading each image at the start of website loading. This way I already have all images loaded and only need to print them to the canvas no waiting needed. There was also this major randomness error. If you remember from an older post I did some random generator thing which makes it impossible to spawn too few ghosts while still allowing random positions on a mask without too much hugging each other. What i did not notice back then because of the mask, that if the mask isn’t applied the ghosts form a straight line from top left to bottom right. And guess what the error was: if (delta(g.x, x) < ghostSize / 2 || delta(g.y, y) < ghostSize / 2) vs if (delta(g.x, x) < ghostSize / 2 && delta(g.y, y) < ghostSize / 2) . I used and OR instead of and AND logic operator. It took me 30 mins to figure out :( Another person mentioned they had a optimization warning in their console. I did not had such a warning because I use Firefox personally. I also test on chromium but i don’t look into logs there, how ever now i did. The Dev tools of chromium really improved a lot, but i am still going to use Firefox as main browser. Well, I fixed all warnings chromium gave me. The context of a HTML canvas has an optimization flag in case you request data from it frequent what i do. I just had do set this option to true. Also the drawing part of the ghosts is now not blocking the main thread entirely with timeout calling the same function which acts like a for loop to distribute work over time. Otherwise the website would freeze for a second because printing images to a canvas is very sloww for some reason I don’t want to get into now. For the loading part i threw a bit CSS and HTML together making up a progress bar and added some random phrases so users don’t get bored. Furthermore instead of creating new HTML tags each scene change the code now already has them in the HTML code loaded but changes their visibility. In theory this should improve performance because the browser doesn’t have to create new elements each time.
Ready for ship 2 I fixed some minor issues and added a scoreboard at the end of each run. I also tried to make it more performant with small success. In this ship i have most of the feedback, from first ship, implemented and hope it is a better game now. I will probably stop with this ship for the time because i got my Minestom mini game server project right now which i need to finish.
Ships:
I made a smoll random generated search picture game with GHOOOOSTs. Not creepy ghosts, just funny ghosts. I made it in pure HTML, CSS and JS fashion. Each time you play you will need to find a new specific ghost amongst others in a living room. When you find them you get shown how long you took and how many times you miss-clicked. The hardest part was to write the code to place the ghosts randomly without stacking on one another, while still guaranteeing that at least a few ghosts are always there. To not make it too hard or too easy. That you have to memorize the ghost you search, is by the way not a bug or a lack of testing. I thought it would be more fun if you had to memorize the ghost you search for while playing.
A game written in html, css and js where you have to find a specific ghost in a picture with the fewest clicks and time as possible. The hardest thing was and still is for me the challenge to support a wide variate of browsers. Some don’t have an API point some do but only limited for privacy stuff etc. and some i can’t test because i don’t own a Mac nor a iPhone. Hope you will enjoy my small little game....
|
1793256611.4167547
|
1793343011.4167547
|
|
9461
|
ConvoComplete- Kusum by @shauryaladdha | Stardance
|
shauryaladdha
|
1
|
14.04
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-15T05:44:33Z", "hours": 11.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "very tough, to get into playstore and running app in background", "repo": "https://github.com/itsshera/ConvoComplete", "demo": "https://play.google.com/store/apps/details?id=com.kusum.app&hl=en_IN"}]...
|
[{"post_id": 14290, "ts": "202 [{"post_id": 14290, "ts": "2026-06-23T10:53:02Z", "hours": 3.0414, "text": "ConvoComplete Devlog Overview ConvoComplete is being developed as an AI-powered call intelligence tool. The main idea is to convert phone calls into transcripts, summaries, tasks, and follow-ups. The project focuses on helping teams save time after calls and avoid missing important next steps. Problem Business calls often contain important information, but most of it is not stored in a useful format. Common problems: Teams forget important follow-ups Managers cannot review every call manually Tasks discussed on calls are not always written down CRM notes are often incomplete Important decisions are lost inside long recordings Sales and support teams waste time writing manual summaries Solution ConvoComplete solves this by automatically processing calls and converting them into structured outputs. The system should be able to: Accept a call recording or audio file Convert speech to text Summarize the conversation Extract action items Identify deadlines and follow-ups Make the output easy to review and share Development Goals Goal 1: Build the Basic Call Processing Flow The first goal is to create a working flow where a user can provide call audio and get a transcript. Goal 2: Add AI Summaries After transcription, the next step is to generate a short and useful summary of the call. Goal 3: Extract Action Items The system should identify tasks from the conversation and present them clearly. Example: Task: Send proposal to customer Owner: Sales executive Due: Tomorrow Status: Pending Goal 4: Make the Output Useful for Teams The output should not just be a plain summary. It should help teams take action. Useful outputs may include: Call summary Customer needs Objections Follow-up tasks Deadlines Next meeting details CRM-ready notes Goal 5: Add Integrations Later Future versions can connect with: Google Calendar CRM tools WhatsApp Email Phone systems Task managers Current Progress Project idea defined Core use case identified README structure created Product description written Roadmap created Next Steps Finalize the tech stack Create project folder structure Build audio upload or call input flow Add speech-to-text processing Add AI summary generation Add action item extraction Create a simple dashboard Test with real call examples Challenges Audio Quality Call recordings may have background noise, multiple speakers, or unclear speech. The transcription system needs to handle this as well as possible. Accurate Task Extraction The AI must correctly understand what is actually a task and avoid creating fake or unnecessary action items. Business Usefulness The output should be simple, clear, and useful for real teams. The goal is not just to generate text, but to create something people can act on. Learnings Calls contain a lot of hidden business value Summaries are useful, but action items are more important The product should focus on saving time and preventing missed follow-ups The best output is structured, short, and easy to share Future Improvements Speaker identification Sentiment analysis CRM sync Calendar event creation WhatsApp summary delivery Searchable call history Team dashboard Role-based access Customer-wise call timeline"}, {"post_id": 9082, "ts": "2026-06-15T05:37:02Z", "hours": 3.8783, "text": "going well, play store closed testing"}, {"post_id": 3354, "ts": "2026-06-06T07:35:17Z", "hours": 6.6417, "text": "App is made beta 10"}]...
|
Title: ConvoComplete- Kusum by @shauryaladdha | St Title: ConvoComplete- Kusum by @shauryaladdha | Stardance
Devlogs:
App is made beta 10
going well, play store closed testing
ConvoComplete Devlog Overview ConvoComplete is being developed as an AI-powered call intelligence tool. The main idea is to convert phone calls into transcripts, summaries, tasks, and follow-ups. The project focuses on helping teams save time after calls and avoid missing important next steps. Problem Business calls often contain important information, but most of it is not stored in a useful format. Common problems: Teams forget important follow-ups Managers cannot review every call manually Tasks discussed on calls are not always written down CRM notes are often incomplete Important decisions are lost inside long recordings Sales and support teams waste time writing manual summaries Solution ConvoComplete solves this by automatically processing calls and converting them into structured outputs. The system should be able to: Accept a call recording or audio file Convert speech to text Summarize the conversation Extract action items Identify deadlines and follow-ups Make the output easy to review and share Development Goals Goal 1: Build the Basic Call Processing Flow The first goal is to create a working flow where a user can provide call audio and get a transcript. Goal 2: Add AI Summaries After transcription, the next step is to generate a short and useful summary of the call. Goal 3: Extract Action Items The system should identify tasks from the conversation and present them clearly. Example: Task: Send proposal to customer Owner: Sales executive Due: Tomorrow Status: Pending Goal 4: Make the Output Useful for Teams The output should not just be a plain summary. It should help teams take action. Useful outputs may include: Call summary Customer needs Objections Follow-up tasks Deadlines Next meeting details CRM-ready notes Goal 5: Add Integrations Later Future versions can connect with: Google Calendar CRM tools WhatsApp Email Phone systems Task managers Current Progress Project idea defined Core use case identified README structure created Product description written Roadmap created Next Steps Finalize the tech stack Create project folder structure Build audio upload or call input flow Add speech-to-text processing Add AI summary generation Add action item extraction Create a simple dashboard Test with real call examples Challenges Audio Quality Call recordings may have background noise, multiple speakers, or unclear speech. The transcription system needs to handle this as well as possible. Accurate Task Extraction The AI must correctly understand what is actually a task and avoid creating fake or unnecessary action items. Business Usefulness The output should be simple, clear, and useful for real teams. The goal is not just to generate text, but to create something people can act on. Learnings Calls contain a lot of hidden business value Summaries are useful, but action items are more important The product should focus on saving time and preventing missed follow-ups The best output is structured, short, and easy to share Future Improvements Speaker identification Sentiment analysis CRM sync Calendar event creation WhatsApp summary delivery Searchable call history Team dashboard Role-based access Customer-wise call timeline
Ships:
very tough, to get into playstore and running app in background...
|
1793310810.4880366
|
1793397210.4880366
|
|
9462
|
CSES in C++ by @joelynx | Stardance
|
joelynx
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: CSES in C++ by @joelynx | Stardance
|
1793270914.3563554
|
1793875714.3563554
|
|
9463
|
My first slack bot! by @Commander | Stardance
|
Commander
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @Commander | Stardan Title: My first slack bot! by @Commander | Stardance...
|
1792767185.3643913
|
1793371985.3643913
|
|
9464
|
NULL
|
NULL
|
0
|
0.0
|
0
|
[]
|
[]
|
|
1792950535.8341591
|
1793814535.8341591
|
|
9465
|
My first slack bot! by @Varad117 | Stardance
|
Varad117
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @Varad117 | Stardanc Title: My first slack bot! by @Varad117 | Stardance...
|
1792760089.629439
|
1793364889.629439
|
|
9466
|
My first slack bot! by @sweetdeadchild | Stardance
|
sweetdeadchild
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @sweetdeadchild | St Title: My first slack bot! by @sweetdeadchild | Stardance...
|
1792745372.6096077
|
1793350172.6096077
|
|
9467
|
Ask-Ai powered terminal by @Avhi | Stardance
|
Avhi
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Ask-Ai powered terminal by @Avhi | Stardanc Title: Ask-Ai powered terminal by @Avhi | Stardance...
|
1793436599.1981194
|
1794041399.1981194
|
|
9468
|
My awesome macropad! by @samikshasharma | Stardanc My awesome macropad! by @samikshasharma | Stardance...
|
samikshasharma
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @samikshasharma | S Title: My awesome macropad! by @samikshasharma | Stardance...
|
1792745395.8629732
|
1793350195.8629732
|
|
9469
|
My first slack bot! by @nikhilchaugule077 | Starda My first slack bot! by @nikhilchaugule077 | Stardance...
|
nikhilchaugule077
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @nikhilchaugule077 | Title: My first slack bot! by @nikhilchaugule077 | Stardance...
|
1792784926.9591048
|
1793389726.9591048
|
|
9470
|
Age Calculator by @yusufridwanulahiadeleke | Stard Age Calculator by @yusufridwanulahiadeleke | Stardance...
|
yusufridwanulahiadeleke
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Age Calculator by @yusufridwanulahiadeleke Title: Age Calculator by @yusufridwanulahiadeleke | Stardance...
|
1793328556.109886
|
1793933356.109886
|
|
9471
|
AfterImage by @anushkaa | Stardance
|
anushkaa
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: AfterImage by @anushkaa | Stardance
|
1792947052.950211
|
1793811052.950211
|
|
9472
|
NULL
|
NULL
|
0
|
0.0
|
0
|
[]
|
[]
|
|
1792939885.0527241
|
1793803885.0527241
|
|
9473
|
My first slack bot! by @thapa_oru | Stardance
|
thapa_oru
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @thapa_oru | Stardan Title: My first slack bot! by @thapa_oru | Stardance...
|
1793159480.4895313
|
1793764280.4895313
|
|
9474
|
My awesome macropad! by @kax675 | Stardance
|
kax675
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @kax675 | Stardance
|
1793170042.4148705
|
1793774842.4148705
|
|
9475
|
Hicoda by @Pawan | Stardance
|
Pawan
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Hicoda by @Pawan | Stardance
|
1793271165.5188184
|
1793875965.5188184
|
|
9476
|
Untitled project by @jsri | Stardance
|
jsri
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled project by @jsri | Stardance
|
1793404280.8638666
|
1794009080.8638666
|
|
9477
|
kiwa by @lalit | Stardance
|
lalit
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: kiwa by @lalit | Stardance
|
1793231435.2378635
|
1793836235.2378635
|
|
9478
|
My first slack bot! by @riyanshaik_vr46 | Stardanc My first slack bot! by @riyanshaik_vr46 | Stardance...
|
riyanshaik_vr46
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @riyanshaik_vr46 | S Title: My first slack bot! by @riyanshaik_vr46 | Stardance...
|
1793228191.5718818
|
1793832991.5718818
|
|
9479
|
QUANTUM COMPUTER by @jannes_ruder | Stardance
|
jannes_ruder
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: QUANTUM COMPUTER by @jannes_ruder | Stardan Title: QUANTUM COMPUTER by @jannes_ruder | Stardance...
|
1793296372.6965394
|
1793901172.6965394
|
|
9480
|
Voicesofree by @lokesh | Stardance
|
lokesh
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Voicesofree by @lokesh | Stardance
|
1793292895.9487627
|
1793897695.9487627
|
|
9481
|
Skydropix - Payload Manager by @apt_shadow | Stard Skydropix - Payload Manager by @apt_shadow | Stardance...
|
apt_shadow
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Skydropix - Payload Manager by @apt_shadow Title: Skydropix - Payload Manager by @apt_shadow | Stardance...
|
1793461987.3363235
|
1794066787.3363235
|
|
9482
|
My awesome macropad! by @hairen | Stardance
|
hairen
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @hairen | Stardance
|
1793213275.8494315
|
1793818075.8494315
|
|
9483
|
Celestial Drift by @karolgajda | Stardance
|
karolgajda
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Celestial Drift by @karolgajda | Stardance
|
1793432872.8243744
|
1794037672.8243744
|
|
9484
|
NULL
|
NULL
|
0
|
0.0
|
0
|
[]
|
[]
|
|
1792954245.2667313
|
1793818245.2667313
|
|
9485
|
My awesome macropad! by @jay | Stardance
|
jay
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @jay | Stardance
|
1793235245.20617
|
1793840045.20617
|
|
9486
|
My first slack bot! by @Shabana | Stardance
|
Shabana
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @Shabana | Stardance
|
1793242088.2694194
|
1793846888.2694194
|
|
9487
|
My first slack bot! by @Usman | Stardance
|
Usman
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @Usman | Stardance
|
1793346549.447224
|
1793951349.447224
|
|
9488
|
Imkerei_Familie_Ruder by @jannes_ruder | Stardance
|
jannes_ruder
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Imkerei_Familie_Ruder by @jannes_ruder | St Title: Imkerei_Familie_Ruder by @jannes_ruder | Stardance...
|
1793260277.5311701
|
1793865077.5311701
|
|
9489
|
Untitled project by @yazan | Stardance
|
yazan
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled project by @yazan | Stardance
|
1793184722.7309608
|
1793789522.7309608
|
|
9490
|
My awesome macropad! by @ArhamSami | Stardance
|
ArhamSami
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @ArhamSami | Starda Title: My awesome macropad! by @ArhamSami | Stardance...
|
1793191737.1925623
|
1793796537.1925623
|
|
9491
|
Tempest by @JameswillWinsock | Stardance
|
JameswillWinsock
|
0
|
18.58
|
0
|
[]
|
[{"post_id": 27793, "ts": "202 [{"post_id": 27793, "ts": "2026-07-13T17:39:51Z", "hours": 5.3203, "text": "YOU WANT A DEVLOG, YOU WANT ONE, HUH????? HERES A DEVLOG FOR YOU: net_name: “spi_sck” dont_route: true FUCK YOU RENESAS FUCK YOU FUCKING PIECE OF SHIT FUCK YOU!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! YOUR PLACE AND ROUTE TOOL IS UTTER GARBAGE!!!!!!!!!!!!!!!!!!!!!!!!! WHY ARE YOU IGNORING USER NETS!!!!!!!!!!!!!!!!!!!!!!! STOP. OPTIMISING. THE. USER. CODE. Edit: I figured what’s up Aparently Renesas bought dialog semiconductor which bought silego, which made their greenpak line of fpgas, which was essentially scratch/Lego mindstorms for fpgas, and not meant to handle actual verilog, which when renesas made their forgefpga line they just reused greenpak hence the mind boggling bugs its like trying to run c in scratch fuck my chud life"}, {"post_id": 25263, "ts": "2026-07-09T12:50:24Z", "hours": 11.6669, "text": "Devlog #2: Building the NTT Core Last time I ended on “okay, I’ll build a tiny NTT accelerator for Kyber on the Shrike Lite.” So that’s what I’ve been doing. No LEDs blinking yet since this whole devlog is me in a simulator, fighting my own garbage code. But it’s progress, and it’s the kind of progress where I learned something every single time it broke. Quick recap of the target: Kyber’s math runs mod q = 3329, and the whole NTT is 7 layers of 128 butterflies each (256 coefficients, standard Cooley-Tukey). On a chip with 1120 LUT5s and 32kb of BRAM, getting this to fit is a real damn sisyphean task. This sh*t is like tech from the 2000’s. Started at the bottom: a 16-bit Han-Carlson adder, because I refuse to put ripple-carry anywhere near a critical path (We’re civilized men, writing civilized code, not animals). Could I have done just a simple carry-look ahead? Yes, yes I could have. No, I don’t think I will. Fan out is getting crazy already, may as well use a PPA atp. Built it as a proper parallel-prefix tree using 2D wire arrays in Verilog instead of copy-pasting carry logic by hand. Found one non-bug worth noting for later: the top half of the adder (bits 8–15) isn’t a true prefix tree, it just ripples off the bit-7 carry. Works fine functionally, just means the top half is roughly double the gate depth of the bottom half. But, really, who cares. Not me. CBA. The Montgomery reducer (a.k.a. the finite state machine from hell): This is where it got ugly. Montgomery reduction is how you do modular multiplication without a hardware divider: multiply, then reduce using a precomputed constant instead of dividing by q every time. I wrote it, simulated it, ran it cycle by cycle in EDA Playground because Icarus was being uncooperative (yeah, when does Icarus help anyways??? may as well switch to Quartus at this point), and found: add_a/add_b were registers, so they only update after the clock edge, but result <= add_sum was reading the sum from the previous cycle’s stale operands. Every state that tried to compute-and-latch in one cycle was quietly latching garbage. Bit 0 of t_low was getting dropped somewhere in there too. Phenomenal. Simply beautiful. Fixed it by making the adder operands purely combinational (mux on state), so add_sum always reflects the current state’s actual intent. I thought that fixed it. No, why would it fully fix it? Of course it would not. There was still a state-transition bug lurking. Very fun to debug. The butterfly This is the unit that actually does the NTT math: read two coefficients + a twiddle factor, multiply, reduce, add/subtract, write back. Spent a good chunk of time chasing what looked like a hang here, that turned out to be nothing but a testbench race condition - sampling signals in the same cycle they change, not an actual DUT problem. Frick me. Bonus: figured out how BRAM actually gets wired Dug through some existing Renesas example projects (shoutout to whoever wrote the FIFO-on-BRAM one, you saved my life) Where it stands Working (in simulation, against reference vectors): Han-Carlson adder Montgomery reducer Modular ALU Serial multiplier (shoutout to whoever made the Kyber spec sheet; you saved my ass because most of the time all I have to do is bit shift to “multiply”) NTT butterfly Address generator Full 256-point forward NTT, top to bottom Still to build: the inverse NTT (GS-DIF, reusing everything above), the pointwise multiplication step for after both polynomials are transformed, and the actual RP2040-FPGA SPI link tying it all to real hardware instead of a testbench. atleast man the sim works, thats pretty damn good. im happy this works. next is getting it on the hardware and doing some actual cryptography with it."}, {"post_id": 4240, "ts": "2026-06-07T14:09:53Z", "hours": 1.5944, "text": "I was 15 minutes into a CTF crypto challenge, watching my CPU crawl through a polynomial multiplication, when it hit me: This is embarrassingly parallel. Why isn’t there hardware for this? That night I fell down the FPGA rabbit hole. The idea was pretty great, a chip you can rewire into literally anything, like a custom RISC-V CPU, a cryptography accelerator. Where does that second idea take me? A method to execute a side-channel attack on cryptographic protocols using the FPGA, and all on a chip smaller than a credit card. So I bought an FPGA on impulse, without researching properly. You can’t blame me, I was very excited. I bought a Sipeed Tang Primer 20K core board. What I didn’t know: it’s just the RAM stick. The actual brains need a baseboard with power switches, reset buttons, and USB. Aaaaaaand I had none of that. ba dum tss What I did have: a Vicharak Shrike Lite (the green board in the photo). 1120 LUTs. An RP2040. The Tang Primer has a JST debug connector. The Shrike Lite has JTAG pins. In theory, this was simple: connect the wires, run openFPGALoader, and go. In practice: The pinout I found online was confusing The BL702 debug chip locks up after programming unless you power cycle the JST connector. My multimeter showed 0V on TX, and no amount of head scratching made it work. A week of “should just work” turned into a desk covered in jumper wires, a growing collection of frustrated terminal logs, and the Shrike Lite blinking an LED like it was mocking me. I couldn’t get the Tang Primer running. But the Shrike Lite was working perfectly. So I asked myself: what’s the smallest possible cryptography accelerator I could build on 1120 LUTs? The answer: an NTT (Number Theoretic Transform) core for ML-KEM (Kyber). Why? Why not. Post-quantum cryptography is a hot topic of research. I figured I’d take a crack at it, see what makes it so hot. Surely, after all of this, I have some lessons to take home, right? Those are: FPGAs are not plug-and-play. The ecosystem assumes you bought the right baseboard. 1120 LUTs is tiny but not useless. You can’t fit full Kyber, but an NTT core fits comfortably. (I hope) Documentation is scattered. A working demo on cheap hardware beats a simulation on the PC. Much more satisfying to see a simple LED light up than stare at another waveform in GTKWave. So what do I do next? A working NTT accelerator on the Shrike Lite that processes Kyber polynomials with the RP2040 to FPGA and back bridge sending coefficients and getting transformed results. The Bottom Line I bought the wrong board. I didn’t have the right programmer. Nothing worked for weeks. But I learned more from breaking things than I ever would from following a tutorial."}]...
|
Title: Tempest by @JameswillWinsock | Stardance
D Title: Tempest by @JameswillWinsock | Stardance
Devlogs:
I was 15 minutes into a CTF crypto challenge, watching my CPU crawl through a polynomial multiplication, when it hit me: This is embarrassingly parallel. Why isn’t there hardware for this? That night I fell down the FPGA rabbit hole. The idea was pretty great, a chip you can rewire into literally anything, like a custom RISC-V CPU, a cryptography accelerator. Where does that second idea take me? A method to execute a side-channel attack on cryptographic protocols using the FPGA, and all on a chip smaller than a credit card. So I bought an FPGA on impulse, without researching properly. You can’t blame me, I was very excited. I bought a Sipeed Tang Primer 20K core board. What I didn’t know: it’s just the RAM stick. The actual brains need a baseboard with power switches, reset buttons, and USB. Aaaaaaand I had none of that. ba dum tss What I did have: a Vicharak Shrike Lite (the green board in the photo). 1120 LUTs. An RP2040. The Tang Primer has a JST debug connector. The Shrike Lite has JTAG pins. In theory, this was simple: connect the wires, run openFPGALoader, and go. In practice: The pinout I found online was confusing The BL702 debug chip locks up after programming unless you power cycle the JST connector. My multimeter showed 0V on TX, and no amount of head scratching made it work. A week of “should just work” turned into a desk covered in jumper wires, a growing collection of frustrated terminal logs, and the Shrike Lite blinking an LED like it was mocking me. I couldn’t get the Tang Primer running. But the Shrike Lite was working perfectly. So I asked myself: what’s the smallest possible cryptography accelerator I could build on 1120 LUTs? The answer: an NTT (Number Theoretic Transform) core for ML-KEM (Kyber). Why? Why not. Post-quantum cryptography is a hot topic of research. I figured I’d take a crack at it, see what makes it so hot. Surely, after all of this, I have some lessons to take home, right? Those are: FPGAs are not plug-and-play. The ecosystem assumes you bought the right baseboard. 1120 LUTs is tiny but not useless. You can’t fit full Kyber, but an NTT core fits comfortably. (I hope) Documentation is scattered. A working demo on cheap hardware beats a simulation on the PC. Much more satisfying to see a simple LED light up than stare at another waveform in GTKWave. So what do I do next? A working NTT accelerator on the Shrike Lite that processes Kyber polynomials with the RP2040 to FPGA and back bridge sending coefficients and getting transformed results. The Bottom Line I bought the wrong board. I didn’t have the right programmer. Nothing worked for weeks. But I learned more from breaking things than I ever would from following a tutorial.
Devlog #2: Building the NTT Core Last time I ended on “okay, I’ll build a tiny NTT accelerator for Kyber on the Shrike Lite.” So that’s what I’ve been doing. No LEDs blinking yet since this whole devlog is me in a simulator, fighting my own garbage code. But it’s progress, and it’s the kind of progress where I learned something every single time it broke. Quick recap of the target: Kyber’s math runs mod q = 3329, and the whole NTT is 7 layers of 128 butterflies each (256 coefficients, standard Cooley-Tukey). On a chip with 1120 LUT5s and 32kb of BRAM, getting this to fit is a real damn sisyphean task. This sh*t is like tech from the 2000’s. Started at the bottom: a 16-bit Han-Carlson adder, because I refuse to put ripple-carry anywhere near a critical path (We’re civilized men, writing civilized code, not animals). Could I have done just a simple carry-look ahead? Yes, yes I could have. No, I don’t think I will. Fan out is getting crazy already, may as well use a PPA atp. Built it as a proper parallel-prefix tree using 2D wire arrays in Verilog instead of copy-pasting carry logic by hand. Found one non-bug worth noting for later: the top half of the adder (bits 8–15) isn’t a true prefix tree, it just ripples off the bit-7 carry. Works fine functionally, just means the top half is roughly double the gate depth of the bottom half. But, really, who cares. Not me. CBA. The Montgomery reducer (a.k.a. the finite state machine from hell): This is where it got ugly. Montgomery reduction is how you do modular multiplication without a hardware divider: multiply, then reduce using a precomputed constant instead of dividing by q every time. I wrote it, simulated it, ran it cycle by cycle in EDA Playground because Icarus was being uncooperative (yeah, when does Icarus help anyways??? may as well switch to Quartus at this point), and found: add_a/add_b were registers, so they only update after the clock edge, but result <= add_sum was reading the sum from the previous cycle’s stale operands. Every state that tried to compute-and-latch in one cycle was quietly latching garbage. Bit 0 of t_low was getting dropped somewhere in there too. Phenomenal. Simply beautiful. Fixed it by making the adder operands purely combinational (mux on state), so add_sum always reflects the current state’s actual intent. I thought that fixed it. No, why would it fully fix it? Of course it would not. There was still a state-transition bug lurking. Very fun to debug. The butterfly This is the unit that actually does the NTT math: read two coefficients + a twiddle factor, multiply, reduce, add/subtract, write back. Spent a good chunk of time chasing what looked like a hang here, that turned out to be nothing but a testbench race condition - sampling signals in the same cycle they change, not an actual DUT problem. Frick me. Bonus: figured out how BRAM actually gets wired Dug through some existing Renesas example projects (shoutout to whoever wrote the FIFO-on-BRAM one, you saved my life) Where it stands Working (in simulation, against reference vectors): Han-Carlson adder Montgomery reducer Modular ALU Serial multiplier (shoutout to whoever made the Kyber spec sheet; you saved my ass because most of the time all I have to do is bit shift to “multiply”) NTT butterfly Address generator Full 256-point forward NTT, top to bottom Still to build: the inverse NTT (GS-DIF, reusing everything above), the pointwise multiplication step for after both polynomials are transformed, and the actual RP2040-FPGA SPI link tying it all to real hardware instead of a testbench. atleast man the sim works, thats pretty damn good. im happy this works. next is getting it on the hardware and doing some actual cryptography with it.
YOU WANT A DEVLOG, YOU WANT ONE, HUH????? HERES A DEVLOG FOR YOU: net_name: “spi_sck” dont_route: true FUCK YOU RENESAS FUCK YOU FUCKING PIECE OF SHIT FUCK YOU!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! YOUR PLACE AND ROUTE TOOL IS UTTER GARBAGE!!!!!!!!!!!!!!!!!!!!!!!!! WHY ARE YOU IGNORING USER NETS!!!!!!!!!!!!!!!!!!!!!!! STOP. OPTIMISING. THE. USER. CODE. Edit: I figured what’s up Aparently Renesas bought dialog semiconductor which bought silego, which made their greenpak line of fpgas, which was essentially scratch/Lego mindstorms for fpgas, and not meant to handle actual verilog, which when renesas made their forgefpga line they just reused greenpak hence the mind boggling bugs its like trying to run c in scratch fuck my chud life...
|
1793267512.6982954
|
1793872312.6982954
|
|
9492
|
GLM5.3 on AMD CDNA4 by @EOBD | Stardance
|
EOBD
|
0
|
207.36
|
0
|
[]
|
[{"post_id": 57250, "ts": "202 [{"post_id": 57250, "ts": "2026-08-29T11:12:01Z", "hours": 30.3531, "text": "ohhhhh MY ooh My I got CDNA4 And GLM5.3 it’s a party NOW!! I’ma first find the best way to quantize the experts than we go swimming in Aiter to find A8W4 for the experts and A8WA for the rest we then benchmark plain torch – probably 20% work for 80% performance we then squeeze the residuals into a fused kernel + proper grouped gemm for the MLA + fp4 indexer keys and then, finally, see if it all comes under one launch, and does a pretty spin to become a 100% resident, HBM synced pipeline system. it’s no longer a kernel, but an async token horse I did fail my tests but worth it I tell ya!"}, {"post_id": 43316, "ts": "2026-08-08T14:47:22Z", "hours": 18.5081, "text": "Huge Pain with tile schedule for the MLP. huge. still haven’t fully figured it out, but getting there"}, {"post_id": 37908, "ts": "2026-07-30T22:06:51Z", "hours": 9.4236, "text": "Don’t leave XNACK on 🤦🏽 It’s been like a whole day trying to understand why I have these idles (not a stall) Hate myself so much. And mannnn – AMD – why nooooo documentation whatsoever as to how yor MMU works ?? 😭 not sure if I’d feel better, learning that they are willing to share this – but you’d just need to sign off your grandma as collateral on an NDA Or maybe show somewhere that there was a fault 😭😭😭 (could also be me not knowing where to look…) ….but…. while breaking my head, I also improved rocprof compute viewer 🎉 and it’s going GPL until AMD gives me access to CDNA4 and 5 hardware😇 Because they are so so nice and willing to support a budding kernel developer ♥️ or I’ll stop being lazy and write a PR which ever comes first I guess"}, {"post_id": 36315, "ts": "2026-07-28T11:05:53Z", "hours": 16.4278, "text": "Going to do the MoE next (HipKittens sync first) And so before I commit to a very complex design that would piggyback low-token-experts on ones that can fill the 16 rows for the matrix cores – though I should what the distrebution actually looks like… ): complex design will be needed ): Expected but still a bummer. My sample space is tiny because GPUs are expensive as hell. But I imagine it’s a good proxy because the curve looks right. maybe a bit more concentrated across a large chat focused on coding."}, {"post_id": 33588, "ts": "2026-07-23T17:11:44Z", "hours": 5.1664, "text": "Well. That’s been a huge pain. But I’s got a native unix shell Should be amazing to not rely on this slugish p9 windows is like sweet poison so nice but so sloowwwww bitlocker is scary guys ubuntu is the best – linux without the added pain of knowing how linux works (:"}, {"post_id": 31945, "ts": "2026-07-20T19:17:20Z", "hours": 9.6733, "text": "last 6 spills super nasty. LLVM be complex should also hoist the loads before the stores (ugly stalls are swaits). but look at that pretty no-sigpgmend-barrier work"}, {"post_id": 30824, "ts": "2026-07-18T19:18:20Z", "hours": 12.7942, "text": "I don’t hate LLVM anymore!! So easy to just hook up to its headers and do what the hell I want with it (mostly in terms of what opt passes to run on the device code because I’m scared of that fat binary linking 😭) LICM is being stupid? Kick that sucker off the top the stairs!! possibly could have also done this with opt but C++ is way cooler and going to pay off once I really dig deep into this. Ima get my 0 spills even if it’s going to cost me all my finals. probably already did 🥲 phhh that poor-people normal kernel… Hardware scheduled… Meh. No match for my persistent kernel! not actually sure why I beat it, shouldn’t have. Stores are not acked on at the end of the kernel. But we first smile, then run them back to back and earn that smile! Look at me utilizing smile debt like finance bro. Maybe its my very cool scheduling algo. but I doubt it."}, {"post_id": 29330, "ts": "2026-07-16T06:19:01Z", "hours": 10.5694, "text": "I know how I’ll do it! We will unfraternally have to have kernel boundaries but really just because the L1i cache is too small (and GPU architecture is too dumb) But it’s fine for now. Going to have the following kernels: 1:1 Residual + Norm 8:1 Residual + Norm (for the MoE summing) 1:1 Residual + Norm + MPT norm MoE Full DSA Fused attention (with or without indexer) Head + Sampling +Embedding retrieval + normed MTP embedding EH_Proj + MLP And then! For the HBM sync we need between so many things (mostly the attention kernel) I’m going to extend HipKittens with a flagging mechanism that latches onto the stores, and add many more load methods that depend on it (like a stream of available blocks. the coolest thing is that I can have the flagging work at a certain granularity, and the load can infer if it’s OK based on a different one! Don’t do kernels kids."}, {"post_id": 27336, "ts": "2026-07-12T20:26:58Z", "hours": 94.4428, "text": "(90h) I don’t like LLVM! fun! Have you ever written manual ASM loops because it hoists like there’s no tomorrow? and can’t handle a back edge?? And since it’s impossible to get CDNA4 hardware, will be moving forward with MI300s. All my ❤️ to RunPod and HotAisle (and AMD dev cloud) Still a bit annoying because I much rather pay 5x and get access to CDNA4 then free credits. But also nice ! THANKS ! And to whoever is hogging all the capacity from from cloudrift – pig (: EDIT: llvm is very nice I love anyone who has ever worked on LLVM it was the AMD backend hoisting my licm figured it out though And ASM loops are a really bad idea"}]...
|
Title: GLM5.3 on AMD CDNA4 by @EOBD | Stardance
D Title: GLM5.3 on AMD CDNA4 by @EOBD | Stardance
Devlogs:
(90h) I don’t like LLVM! fun! Have you ever written manual ASM loops because it hoists like there’s no tomorrow? and can’t handle a back edge?? And since it’s impossible to get CDNA4 hardware, will be moving forward with MI300s. All my ❤️ to RunPod and HotAisle (and AMD dev cloud) Still a bit annoying because I much rather pay 5x and get access to CDNA4 then free credits. But also nice ! THANKS ! And to whoever is hogging all the capacity from from cloudrift – pig (: EDIT: llvm is very nice I love anyone who has ever worked on LLVM it was the AMD backend hoisting my licm figured it out though And ASM loops are a really bad idea
I know how I’ll do it! We will unfraternally have to have kernel boundaries but really just because the L1i cache is too small (and GPU architecture is too dumb) But it’s fine for now. Going to have the following kernels: 1:1 Residual + Norm 8:1 Residual + Norm (for the MoE summing) 1:1 Residual + Norm + MPT norm MoE Full DSA Fused attention (with or without indexer) Head + Sampling +Embedding retrieval + normed MTP embedding EH_Proj + MLP And then! For the HBM sync we need between so many things (mostly the attention kernel) I’m going to extend HipKittens with a flagging mechanism that latches onto the stores, and add many more load methods that depend on it (like a stream of available blocks. the coolest thing is that I can have the flagging work at a certain granularity, and the load can infer if it’s OK based on a different one! Don’t do kernels kids.
I don’t hate LLVM anymore!! So easy to just hook up to its headers and do what the hell I want with it (mostly in terms of what opt passes to run on the device code because I’m scared of that fat binary linking 😭) LICM is being stupid? Kick that sucker off the top the stairs!! possibly could have also done this with opt but C++ is way cooler and going to pay off once I really dig deep into this. Ima get my 0 spills even if it’s going to cost me all my finals. probably already did 🥲 phhh that poor-people normal kernel… Hardware scheduled… Meh. No match for my persistent kernel! not actually sure why I beat it, shouldn’t have. Stores are not acked on at the end of the kernel. But we first smile, then run them back to back and earn that smile! Look at me utilizing smile debt like finance bro. Maybe its my very cool scheduling algo. but I doubt it.
last 6 spills super nasty. LLVM be complex should also hoist the loads before the stores (ugly stalls are swaits). but look at that pretty no-sigpgmend-barrier work
Well. That’s been a huge pain. But I’s got a native unix shell Should be amazing to not rely on this slugish p9 windows is like sweet poison so nice but so sloowwwww bitlocker is scary guys ubuntu is the best – linux without the added pain of knowing how linux works (:
Going to do the MoE next (HipKittens sync first) And so before I commit to a very complex design that would piggyback low-token-experts on ones that can fill the 16 rows for the matrix cores – though I should what the distrebution actually looks like… ): complex design will be needed ): Expected but still a bummer. My sample space is tiny because GPUs are expensive as hell. But I imagine it’s a good proxy because the curve looks right. maybe a bit more concentrated across a large chat focused on coding.
Don’t leave XNACK on 🤦🏽 It’s been like a whole day trying to understand why I have these idles (not a stall) Hate myself so much. And mannnn – AMD – why nooooo documentation whatsoever as to how yor MMU works ?? 😭 not sure if I’d feel better, learning that they are willing to share this – but you’d just need to sign off your grandma as collateral on an NDA Or maybe show somewhere that there was a fault 😭😭😭 (could also be me not knowing where to look…) ….but…. while breaking my head, I also improved rocprof compute viewer 🎉 and it’s going GPL until AMD gives me access to CDNA4 and 5 hardware😇 Because they are so so nice and willing to support a budding kernel developer ♥️ or I’ll stop being lazy and write a PR which ever comes first I guess
Huge Pain with tile schedule for the MLP. huge. still haven’t fully figured it out, but getting there
ohhhhh MY ooh My I got CDNA4 And GLM5.3 it’s a party NOW!! I’ma first find the best way to quantize the experts than we go swimming in Aiter to find A8W4 for the experts and A8WA for the rest we then benchmark plain torch – probably 20% work for 80% performance we then squeeze the residuals into a fused kernel + proper grouped gemm for the MLA + fp4 indexer keys and then, finally, see if it all comes under one launch, and does a pretty spin to become a 100% resident, HBM synced pipeline system. it’s no longer a kernel, but an async token horse I did fail my tests but worth it I tell ya!...
|
1792792331.883065
|
1793397131.883065
|
|
9493
|
Personal Website by @Dark-Tiger | Stardance
|
Dark-Tiger
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Personal Website by @Dark-Tiger | Stardance
|
1793271208.9555655
|
1793876008.9555655
|
|
9494
|
My awesome macropad! by @TARG3T | Stardance
|
TARG3T
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @TARG3T | Stardance
|
1792730995.5675337
|
1793335795.5675337
|
|
9495
|
NULL
|
NULL
|
0
|
0.0
|
0
|
[]
|
[]
|
|
1792936068.0936842
|
1793800068.0936842
|
|
9496
|
Untitled project by @Jayanth | Stardance
|
Jayanth
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled project by @Jayanth | Stardance
|
1793299858.650153
|
1793904658.650153
|
|
9497
|
Untitled project by @Nefounz | Stardance
|
Nefounz
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled project by @Nefounz | Stardance
|
1793174027.713042
|
1793778827.713042
|
|
9498
|
Freelancing Dashboard by @khwaishdunani | Stardanc Freelancing Dashboard by @khwaishdunani | Stardance...
|
khwaishdunani
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Freelancing Dashboard by @khwaishdunani | S Title: Freelancing Dashboard by @khwaishdunani | Stardance...
|
1793447586.6073275
|
1794052386.6073275
|
|
9499
|
NULL
|
NULL
|
0
|
0.0
|
0
|
[]
|
[]
|
|
1792947043.659156
|
1793811043.659156
|
|
9500
|
Dasher_Slack-bot by @Dasher2801 | Stardance
|
|
2
|
2.37
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-14T10:02:58Z", "hours": 0.0, "multiplier": 1.03, "payout": 0, "blessing": "neutral", "text": "I improoved my slackbot, it reacts faster now and the offline error is fixed", "repo": "https://github.com/Dasher2801/Slack-bot", "demo": "https://hackclub.enterprise.slack.com/archives/C0B9M0E4UUB"}, {"ship_num": 2, "ts": "2026-06-09T11:28:07Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Ich habe einen Slack-bot entwickelt, der zwei Zahlen verrechnen kann egal ob +,-,* oder /. Er kann auch deinen aktuellen Ping anzeigen oder ganz simpel grüßen. Außerdem ist er 24/7 aktiv.", "repo": "https://github.com/Dasher2801/Slack-bot", "demo": "https://hackclub.enterprise.slack.com/archives/C0B9M0E4UUB"}]...
|
[{"post_id": 30047, "ts": "202 [{"post_id": 30047, "ts": "2026-07-17T09:59:09Z", "hours": 0.3692, "text": "I changed all the commands to /dashe-xxxxx, because some reviewer used not working commands of the other bots and said my commands don’t work. So I changed them to 100% unique commands"}, {"post_id": 19131, "ts": "2026-06-30T11:40:15Z", "hours": 0.2911, "text": "Der Bot antwortet jetzt wieder 24/7 und mit weniger delay"}, {"post_id": 5549, "ts": "2026-06-09T11:22:33Z", "hours": 0.2675, "text": "Der Bot läuft jetzt Rund um die Uhr 24/7"}, {"post_id": 5537, "ts": "2026-06-09T10:52:39Z", "hours": 1.6675, "text": "Ich arbeite an einem Slackbot, der 2 Zahlen addiren, substrahieren, multiplizieren oder dividieren kann. Er kann auch die Welt grüßen oder deinen aktuellen ping anzeigen."}]...
|
Title: Dasher_Slack-bot by @Dasher2801 | Stardance Title: Dasher_Slack-bot by @Dasher2801 | Stardance
Devlogs:
Ich arbeite an einem Slackbot, der 2 Zahlen addiren, substrahieren, multiplizieren oder dividieren kann. Er kann auch die Welt grüßen oder deinen aktuellen ping anzeigen.
Der Bot läuft jetzt Rund um die Uhr 24/7
Der Bot antwortet jetzt wieder 24/7 und mit weniger delay
I changed all the commands to /dashe-xxxxx, because some reviewer used not working commands of the other bots and said my commands don’t work. So I changed them to 100% unique commands
Ships:
Ich habe einen Slack-bot entwickelt, der zwei Zahlen verrechnen kann egal ob +,-,* oder /. Er kann auch deinen aktuellen Ping anzeigen oder ganz simpel grüßen. Außerdem ist er 24/7 aktiv.
I improoved my slackbot, it reacts faster now and the offline error is fixed...
|
1793271341.425411
|
1793357741.425411
|