|
5090
|
STARZONE by @gabrieltelesvent | Stardance
|
gabrieltelesvent
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: STARZONE by @gabrieltelesvent | Stardance
|
1792724001.4268193
|
1793328801.4268193
|
|
5091
|
Geometry of Poker by @DevomB | Stardance
|
DevomB
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Geometry of Poker by @DevomB | Stardance
|
1792788557.9591994
|
1793393357.9591994
|
|
5092
|
Untitled by @Nasir | Stardance
|
Nasir
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled by @Nasir | Stardance
|
1792936105.0748684
|
1793800105.0748684
|
|
5093
|
Cattatime update by @GurkeBaui | Stardance
|
GurkeBaui
|
0
|
0.59
|
0
|
[]
|
[{"post_id": 1223, "ts": "2026 [{"post_id": 1223, "ts": "2026-06-03T02:29:07Z", "hours": 0.5908, "text": "I updated the packages and added Binarys for Linux, next there will be visual changes!"}]...
|
Title: Cattatime update by @GurkeBaui | Stardance
Title: Cattatime update by @GurkeBaui | Stardance
Devlogs:
I updated the packages and added Binarys for Linux, next there will be visual changes!...
|
1792644459.1494534
|
1793249259.1494534
|
|
5094
|
My awesome macropad! by @Reeee | Stardance
|
Reeee
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @Reeee | Stardance
|
1793206533.524543
|
1793811333.524543
|
|
5095
|
krlink by @smollcoin | Stardance
|
smollcoin
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: krlink by @smollcoin | Stardance
|
1792914577.7746542
|
1793778577.7746542
|
|
5096
|
Astroneighbors by @Macbeth | Stardance
|
Macbeth
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Astroneighbors by @Macbeth | Stardance
|
1792713020.4734352
|
1793317820.4734352
|
|
5097
|
The Atlas Project by @haydopotato | Stardance
|
haydopotato
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: The Atlas Project by @haydopotato | Stardan Title: The Atlas Project by @haydopotato | Stardance...
|
1792695236.8928008
|
1793300036.8928008
|
|
5098
|
My first slack bot! by @abonthika | Stardance
|
abonthika
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @abonthika | Stardan Title: My first slack bot! by @abonthika | Stardance...
|
1792749220.12962
|
1793354020.12962
|
|
5099
|
Endeavor by @Sunny | Stardance
|
Sunny
|
0
|
4.99
|
0
|
[]
|
[{"post_id": 6448, "ts": "2026 [{"post_id": 6448, "ts": "2026-06-10T20:56:28Z", "hours": 2.7933, "text": "Devlog #2 Hi everyone! I’ve been working on the foundation of the game and made a lot of progress this update. Additions: Updated the main menu and added an Options menu with a working sound volume slider. Created the first level, which I plan to use as the game’s tutorial. Set up SFX and Music audio buses to make audio management easier as development continues. Added main menu music. Implemented the player character along with basic movement: Move left Move right Jump Added animations for the player’s movement and jumping. Created a Kill Zone using the world’s boundary so the player respawns when falling out of the level. Added a one-way platform, allowing the player to jump through from below and land on top. What’s Next? Expand the tutorial level with obstacles and mechanics. Add collectibles and interactive objects. Begin implementing enemies and basic combat. Continue polishing player movement and animations. Thanks for reading! More updates soon as development continues."}, {"post_id": 5397, "ts": "2026-06-09T04:39:44Z", "hours": 2.1919, "text": "Added a custom main menu and options menu opening."}]...
|
Title: Endeavor by @Sunny | Stardance
Devlogs:
Ad Title: Endeavor by @Sunny | Stardance
Devlogs:
Added a custom main menu and options menu opening.
Devlog #2 Hi everyone! I’ve been working on the foundation of the game and made a lot of progress this update. Additions: Updated the main menu and added an Options menu with a working sound volume slider. Created the first level, which I plan to use as the game’s tutorial. Set up SFX and Music audio buses to make audio management easier as development continues. Added main menu music. Implemented the player character along with basic movement: Move left Move right Jump Added animations for the player’s movement and jumping. Created a Kill Zone using the world’s boundary so the player respawns when falling out of the level. Added a one-way platform, allowing the player to jump through from below and land on top. What’s Next? Expand the tutorial level with obstacles and mechanics. Add collectibles and interactive objects. Begin implementing enemies and basic combat. Continue polishing player movement and animations. Thanks for reading! More updates soon as development continues....
|
1793029747.6692386
|
1793634547.6692386
|
|
5100
|
My awesome macropad! by @mattoxll | Stardance
|
mattoxll
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @mattoxll | Stardan Title: My awesome macropad! by @mattoxll | Stardance...
|
1793145047.954031
|
1793749847.954031
|
|
5101
|
My first slack bot! by @ajayyadav | Stardance
|
ajayyadav
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @ajayyadav | Stardan Title: My first slack bot! by @ajayyadav | Stardance...
|
1793156075.4230764
|
1793760875.4230764
|
|
5102
|
Rocket simulator by @stroodle | Stardance
|
stroodle
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Rocket simulator by @stroodle | Stardance
|
1792702194.6353815
|
1793306994.6353815
|
|
5103
|
My first slack bot! by @astrobuggies | Stardance
|
astrobuggies
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @astrobuggies | Star Title: My first slack bot! by @astrobuggies | Stardance...
|
1792641133.8732662
|
1793245933.8732662
|
|
5104
|
My awesome macropad! by @aazoozgyawali | Stardance
|
aazoozgyawali
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @aazoozgyawali | St Title: My awesome macropad! by @aazoozgyawali | Stardance...
|
1792666500.9448502
|
1793271300.9448502
|
|
5105
|
My first slack bot! by @Az | Stardance
|
Az
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @Az | Stardance
|
1792677100.4265277
|
1793281900.4265277
|
|
5106
|
Untitled by @aazoozgyawali | Stardance
|
aazoozgyawali
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled by @aazoozgyawali | Stardance
|
1793181372.251335
|
1793786172.251335
|
|
5107
|
GAI by @samuel_0xk | Stardance
|
samuel_0xk
|
0
|
24.36
|
0
|
[]
|
[{"post_id": 38823, "ts": "202 [{"post_id": 38823, "ts": "2026-08-01T11:58:28Z", "hours": 10.3825, "text": "GAI v0.6.0 – what changed since v0.5.0 Hi everyone 👋 My last devlogs were about GAI v0.5.0 and the new prompt builder, history system, and token budgeting. I originally thought the next release would mainly contain a few fixes. But while using GAI in a real application, I kept finding places where the abstractions were still too simple. Around 280 commits later, this turned into a much bigger release. The most important changes Added full OpenAI and Anthropic providers, alongside the existing Gemini and Mistral integrations. Added provider-native multi-turn messages instead of putting the whole conversation into one large rendered prompt. Added Workflow.RunEvents , which returns one ordered stream for tokens, retries, iterations, errors, cancellation, and completion. Added model capability descriptors, so applications can check whether a model supports tools, structured output, reasoning, tokenization, and native messages. Added local request validation, so unsupported combinations fail before making a provider request. Added an optional OpenAI Responses API transport with streaming, tool continuation, reasoning context, usage, and better error handling. Added workflow middleware for things such as memory extraction, auditing, formatting, and evaluations. Added OpenTelemetry tracing and an optional Langfuse exporter. Reworked the README and added a complete runnable order-support agent example. Added a lot more provider, workflow, tool, streaming, and end-to-end tests. One important problem I fixed Previously, a model could receive tool definitions twice: Through the provider’s native tool API. As a JSON tool protocol inside the rendered prompt. This wasted tokens and gave the model two different ways to call the same tool. GAI now decides between native and text-based tool transport once when the workflow is created. Native models receive AIRequest.Tools , while other models receive the text fallback. The runtime tools remain executable in both cases. The hardest part Honestly, adding more providers was not the hardest part. The difficult part was keeping one shared Go API without hiding useful provider-specific features. OpenAI, Anthropic, Gemini, and Mistral all represent tools, history, reasoning, streaming, and errors differently. Making everything look identical would remove useful features, but exposing every provider detail would make the abstraction pointless. The new capability descriptor system was my solution. A feature can be supported, unsupported, or unknown, and GAI can validate requests based on the information it actually has. Smaller API changes Because GAI is still pre-v1, I also cleaned up some APIs: NativeMessageBuilder now returns both the compatibility prompt and native messages together. NativeToolModel is deprecated in favor of the more complete ModelDescriber . Workflow.RunEvents is now the recommended API for primary-agent streaming. The older three-channel workflow API remains for middleware compatibility. What I learned The biggest lesson from this release is that an abstraction should not pretend every provider works in exactly the same way. It is better to expose capabilities clearly and fail early than to discover an unsupported combination after opening a stream or calling a tool. GAI is still pre-v1, but it now feels much more like a real agent runtime instead of only a collection of prompt and loop helpers. Repository: https://github.com/lace-ai/gai"}, {"post_id": 12059, "ts": "2026-06-19T17:46:38Z", "hours": 1.3256, "text": "finally I made it v0.5.0 is finish!! v0.5.0 is released • Simpler context.Builder API • Turn-aware history with summarization • Richer OpenTelemetry tracing + debug events • Cleaner agent and model APIs • Better token accounting • Legacy prompt, RAG, and session abstractions removed https://github.com/lace-ai/gai"}, {"post_id": 10104, "ts": "2026-06-16T18:14:24Z", "hours": 4.0831, "text": "What I updated: The history source to include summaries summary agent Prompt Renderer The history source now summarieses the past conversation if it doesn’t fit into the token budget. You can configure it like this: history , err := history . New ( sessionID , store , & history . SummarizerDefinition { Model : model , Enabled : true , }) or create a custom summarizer and pass it in the SummarizerDefinition The Summary agent got some bug fixes and better error handling It doesn’t panic if no model is configured :) The Renderer and the whole Prompt builder is updated with the focus on better renderer final prompts there is now a Render Part function that turns a part into a RenderNode Part and RenderNode can be recursive / hierarchical the default XML Renderer renders something like this: <system>...</system> <history> <user>...</user> <assistant>...</assistant> <user>...</user> .... </history> ...."}, {"post_id": 8711, "ts": "2026-06-14T13:59:03Z", "hours": 8.5656, "text": "Hi, everyone 👋 This is the Devlog of what changed in gai v0.5.0 I have updated the prompt builder and the budget handling for gai, the last couple of days Before there was a AI generated, huge and complex builder full of bugs and problems. Now gai has an intuitive simple and flexible to use prompt builder with build in budget managing The whole builder is build on the concept of an stack that is separated in three parts: System Instructions Context User Prompt / Current Loop System Instructions: These are just static parts that could be just text but also something else, doesn’t matter. There is a helper for loading instructions from a file, that turns these directly into a part that can be used as system instructions. systemInstructions, err := gaictx.LoadPromptFromFile(pathToFile) Context Context is special, it is used for dynamic sources, like history. These sources get rendered at the start of the loop and are just functions that return a part. A source is just an interface: type ContextSource interface { Name() string Function(ctx context.Context, TokenBudget int) (Part, error) } Currently there is just the history source, but in the future I will add some more, but they are meant for the user to implement them self. Current Loop The last section is just the user prompt and the last assistant massages or tool calls (if the assistant calls tools) These are rendered per Iterations. Nothing more. Token Budget The token budget is pretty simple, you pass in a token budget, and reserved output tokens. and the BuildContext function iterates over the sources and passes in the remaining token budget. So Yes, if the first source needs all the budget, the last sources don’t have any budget left. The internal flow is like this: First you pass in the system instructions, context sources, and user prompt: gaictx.New(gaictx.Definition{ SystemInstructions: []gaictx.Part{ systemInstructions, toolInstructions, }, ContextSources: []gaictx.ContextSource{ gaictx.NewHistory(sessionID, store), }, UserPrompt: input.Text, }) Now the stack looks like this: {[part,part], [source], [part]} Then one time at the start of the loop the sources are build: {[part,part], [part], [part]} parts, err := a.PromptBuilder.BuildContext(ctx) On each iteration, the current iterations parts get added to the end, and the prompt gets rendered (default XML render) {[part,part], [source], [part, part, part, part]} => <system>...</system><history><user>...</user></history><userPrompt>...</userPrompt><assistant>...</assistant><tool>...</tool>.... I also updated the way how to build reusable agents. here is a complete example: agent.New(agent.Definition{ Name: \"user-assistant\", Model: model, Tools: []loop.Tool{webSearch}, Prompt: func(ctx context.Context, input agent.RunInput) (gaictx.PromptBuilder, error) { return prompt := gaictx.New(gaictx.Definition{ SystemInstructions: []gaictx.Part{ systemInstructions, toolInstructions, }, ContextSources: []gaictx.ContextSource{ gaictx.NewHistory(sessionID, store), }, UserPrompt: input.Text, }), nil }, }) Work that needs to be done until I publish the new version the history needs to use the summarizer some small bug fixes summery should be more dynamic if it summaries, the summary of turns 1-3 and turns 4-6, this should be somewhere saved, and persisted. maybe some more issues that I find while using the library if someone is rely curios here is the pr: https://github.com/lace-ai/gai/pull/28"}]...
|
Title: GAI by @samuel_0xk | Stardance
Devlogs:
Hi Title: GAI by @samuel_0xk | Stardance
Devlogs:
Hi, everyone 👋 This is the Devlog of what changed in gai v0.5.0 I have updated the prompt builder and the budget handling for gai, the last couple of days Before there was a AI generated, huge and complex builder full of bugs and problems. Now gai has an intuitive simple and flexible to use prompt builder with build in budget managing The whole builder is build on the concept of an stack that is separated in three parts: System Instructions Context User Prompt / Current Loop System Instructions: These are just static parts that could be just text but also something else, doesn’t matter. There is a helper for loading instructions from a file, that turns these directly into a part that can be used as system instructions. systemInstructions, err := gaictx.LoadPromptFromFile(pathToFile) Context Context is special, it is used for dynamic sources, like history. These sources get rendered at the start of the loop and are just functions that return a part. A source is just an interface: type ContextSource interface { Name() string Function(ctx context.Context, TokenBudget int) (Part, error) } Currently there is just the history source, but in the future I will add some more, but they are meant for the user to implement them self. Current Loop The last section is just the user prompt and the last assistant massages or tool calls (if the assistant calls tools) These are rendered per Iterations. Nothing more. Token Budget The token budget is pretty simple, you pass in a token budget, and reserved output tokens. and the BuildContext function iterates over the sources and passes in the remaining token budget. So Yes, if the first source needs all the budget, the last sources don’t have any budget left. The internal flow is like this: First you pass in the system instructions, context sources, and user prompt: gaictx.New(gaictx.Definition{ SystemInstructions: []gaictx.Part{ systemInstructions, toolInstructions, }, ContextSources: []gaictx.ContextSource{ gaictx.NewHistory(sessionID, store), }, UserPrompt: input.Text, }) Now the stack looks like this: {[part,part], [source], [part]} Then one time at the start of the loop the sources are build: {[part,part], [part], [part]} parts, err := a.PromptBuilder.BuildContext(ctx) On each iteration, the current iterations parts get added to the end, and the prompt gets rendered (default XML render) {[part,part], [source], [part, part, part, part]} => <system>...</system><history><user>...</user></history><userPrompt>...</userPrompt><assistant>...</assistant><tool>...</tool>.... I also updated the way how to build reusable agents. here is a complete example: agent.New(agent.Definition{ Name: "user-assistant", Model: model, Tools: []loop.Tool{webSearch}, Prompt: func(ctx context.Context, input agent.RunInput) (gaictx.PromptBuilder, error) { return prompt := gaictx.New(gaictx.Definition{ SystemInstructions: []gaictx.Part{ systemInstructions, toolInstructions, }, ContextSources: []gaictx.ContextSource{ gaictx.NewHistory(sessionID, store), }, UserPrompt: input.Text, }), nil }, }) Work that needs to be done until I publish the new version the history needs to use the summarizer some small bug fixes summery should be more dynamic if it summaries, the summary of turns 1-3 and turns 4-6, this should be somewhere saved, and persisted. maybe some more issues that I find while using the library if someone is rely curios here is the pr: https://github.com/lace-ai/gai/pull/28
What I updated: The history source to include summaries summary agent Prompt Renderer The history source now summarieses the past conversation if it doesn’t fit into the token budget. You can configure it like this: history , err := history . New ( sessionID , store , & history . SummarizerDefinition { Model : model , Enabled : true , }) or create a custom summarizer and pass it in the SummarizerDefinition The Summary agent got some bug fixes and better error handling It doesn’t panic if no model is configured :) The Renderer and the whole Prompt builder is updated with the focus on better renderer final prompts there is now a Render Part function that turns a part into a RenderNode Part and RenderNode can be recursive / hierarchical the default XML Renderer renders something like this: <system>...</system> <history> <user>...</user> <assistant>...</assistant> <user>...</user> .... </history> ....
finally I made it v0.5.0 is finish!! v0.5.0 is released • Simpler context.Builder API • Turn-aware history with summarization • Richer OpenTelemetry tracing + debug events • Cleaner agent and model APIs • Better token accounting • Legacy prompt, RAG, and session abstractions removed https://github.com/lace-ai/gai
GAI v0.6.0 – what changed since v0.5.0 Hi everyone 👋 My last devlogs were about GAI v0.5.0 and the new prompt builder, history system, and token budgeting. I originally thought the next release would mainly contain a few fixes. But while using GAI in a real application, I kept finding places where the abstractions were still too simple. Around 280 commits later, this turned into a much bigger release. The most important changes Added full OpenAI and Anthropic providers, alongside the existing Gemini and Mistral integrations. Added provider-native multi-turn messages instead of putting the whole conversation into one large rendered prompt. Added Workflow.RunEvents , which returns one ordered stream for tokens, retries, iterations, errors, cancellation, and completion. Added model capability descriptors, so applications can check whether a model supports tools, structured output, reasoning, tokenization, and native messages. Added local request validation, so unsupported combinations fail before making a provider request. Added an optional OpenAI Responses API transport with streaming, tool continuation, reasoning context, usage, and better error handling. Added workflow middleware for things such as memory extraction, auditing, formatting, and evaluations. Added OpenTelemetry tracing and an optional Langfuse exporter. Reworked the README and added a complete runnable order-support agent example. Added a lot more provider, workflow, tool, streaming, and end-to-end tests. One important problem I fixed Previously, a model could receive tool definitions twice: Through the provider’s native tool API. As a JSON tool protocol inside the rendered prompt. This wasted tokens and gave the model two different ways to call the same tool. GAI now decides between native and text-based tool transport once when the workflow is created. Native models receive AIRequest.Tools , while other models receive the text fallback. The runtime tools remain executable in both cases. The hardest part Honestly, adding more providers was not the hardest part. The difficult part was keeping one shared Go API without hiding useful provider-specific features. OpenAI, Anthropic, Gemini, and Mistral all represent tools, history, reasoning, streaming, and errors differently. Making everything look identical would remove useful features, but exposing every provider detail would make the abstraction pointless. The new capability descriptor system was my solution. A feature can be supported, unsupported, or unknown, and GAI can validate requests based on the information it actually has. Smaller API changes Because GAI is still pre-v1, I also cleaned up some APIs: NativeMessageBuilder now returns both the compatibility prompt and native messages together. NativeToolModel is deprecated in favor of the more complete ModelDescriber . Workflow.RunEvents is now the recommended API for primary-agent streaming. The older three-channel workflow API remains for middleware compatibility. What I learned The biggest lesson from this release is that an abstraction should not pretend every provider works in exactly the same way. It is better to expose capabilities clearly and fail early than to discover an unsupported combination after opening a stream or calling a tool. GAI is still pre-v1, but it now feels much more like a real agent runtime instead of only a collection of prompt and loop helpers. Repository: https://github.com/lace-ai/gai...
|
1792724056.1263628
|
1793328856.1263628
|
|
5109
|
Deleated by @Gui | Stardance
|
Gui
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Deleated by @Gui | Stardance
|
1792781263.4580796
|
1793386063.4580796
|
|
5110
|
Robot Maid 2000 Game by @skyler_heeke | Stardance
|
skyler_heeke
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Robot Maid 2000 Game by @skyler_heeke | Sta Title: Robot Maid 2000 Game by @skyler_heeke | Stardance...
|
1793191675.057639
|
1793796475.057639
|
|
5111
|
My first slack bot! by @kolkatabiriyani2 | Stardan My first slack bot! by @kolkatabiriyani2 | Stardance...
|
kolkatabiriyani2
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @kolkatabiriyani2 | Title: My first slack bot! by @kolkatabiriyani2 | Stardance...
|
1792698819.0212524
|
1793303619.0212524
|
|
5112
|
Mini Keyboard Blob by @Yi | Stardance
|
Yi
|
0
|
1.44
|
0
|
[]
|
[{"post_id": 1008, "ts": "2026 [{"post_id": 1008, "ts": "2026-06-02T19:57:11Z", "hours": 1.4403, "text": "Made a 4-key mini-keyboard with a rotary encoder as a volume controller."}]...
|
Title: Mini Keyboard Blob by @Yi | Stardance
Devl Title: Mini Keyboard Blob by @Yi | Stardance
Devlogs:
Made a 4-key mini-keyboard with a rotary encoder as a volume controller....
|
1792785157.1534724
|
1793389957.1534724
|
|
5113
|
Practice Trading Roblox UGC Limiteds by @porgsrpog Practice Trading Roblox UGC Limiteds by @porgsrpogs | Stardance...
|
porgsrpogs
|
0
|
12.11
|
0
|
[]
|
[{"post_id": 25843, "ts": "202 [{"post_id": 25843, "ts": "2026-07-10T10:04:00Z", "hours": 5.435, "text": "Devlog 2 Project Description: Uses a custom made cloudflare worker to return details on limited items in Roblox such as RAP (Recent Average Price) and Demand (How many of the item was sold within a time period compared to other months/weeks). Changelog: Refactored most of the code to use reusable functions so expandability is easier and it’s simpler to edit certain functionality that many scripts use Details about UGC Limited items are now displayed correctly"}, {"post_id": 24328, "ts": "2026-07-07T20:45:30Z", "hours": 6.6728, "text": "Devlog 1 Project Description: A Roblox game which is used for tracking data on Roblox UGC Limiteds (Similar to stocks) and allows users to use an in-game currency to simulate investing in these items and view how much they could be earning if they made real investments. Changelog: Added an explorer for viewing UGC Limited items Added basic UI so tokens can later be added for making the fake investments Added a basic frame showing analytics of items Added system for retrieving the analytic data using a cloudflare worker I created"}]...
|
Title: Practice Trading Roblox UGC Limiteds by @po Title: Practice Trading Roblox UGC Limiteds by @porgsrpogs | Stardance
Devlogs:
Devlog 1 Project Description: A Roblox game which is used for tracking data on Roblox UGC Limiteds (Similar to stocks) and allows users to use an in-game currency to simulate investing in these items and view how much they could be earning if they made real investments. Changelog: Added an explorer for viewing UGC Limited items Added basic UI so tokens can later be added for making the fake investments Added a basic frame showing analytics of items Added system for retrieving the analytic data using a cloudflare worker I created
Devlog 2 Project Description: Uses a custom made cloudflare worker to return details on limited items in Roblox such as RAP (Recent Average Price) and Demand (How many of the item was sold within a time period compared to other months/weeks). Changelog: Refactored most of the code to use reusable functions so expandability is easier and it’s simpler to edit certain functionality that many scripts use Details about UGC Limited items are now displayed correctly...
|
1792694913.396139
|
1793299713.396139
|
|
5114
|
NULL
|
NULL
|
0
|
0.0
|
0
|
[]
|
[]
|
|
1792932780.564273
|
1793796780.564273
|
|
5115
|
My first slack bot! by @kushal56849 | Stardance
|
kushal56849
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @kushal56849 | Stard Title: My first slack bot! by @kushal56849 | Stardance...
|
1792698670.150791
|
1793303470.150791
|
|
5116
|
Coagent by @Alexandermum | Stardance
|
Alexandermum
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Coagent by @Alexandermum | Stardance
|
1793213245.9183981
|
1793818045.9183981
|
|
5117
|
MusicBox by @goosegt710 | Stardance
|
goosegt710
|
0
|
0.29
|
0
|
[]
|
[{"post_id": 1577, "ts": "2026 [{"post_id": 1577, "ts": "2026-06-03T17:55:07Z", "hours": 0.2906, "text": "The MIDI-eval Melodist Started on my music-box journey, or bard-in-a-box as I’d prefer to call it, idea is to use a rotary encoder as a music-box style lever to make an arduino play music through a set of piezo-buzzers, each of a different octave. Humble beginning, but we all start somewhere, this is my very first devlog to commemorate the start, however I encountered my very first problem - I don’t know enough Java to confidently code, so will be stopping rather soon today. Will work on that before I post my next log. Excited for the future, hope to make this funky piece of tech work."}]...
|
Title: MusicBox by @goosegt710 | Stardance
Devlog Title: MusicBox by @goosegt710 | Stardance
Devlogs:
The MIDI-eval Melodist Started on my music-box journey, or bard-in-a-box as I’d prefer to call it, idea is to use a rotary encoder as a music-box style lever to make an arduino play music through a set of piezo-buzzers, each of a different octave. Humble beginning, but we all start somewhere, this is my very first devlog to commemorate the start, however I encountered my very first problem - I don’t know enough Java to confidently code, so will be stopping rather soon today. Will work on that before I post my next log. Excited for the future, hope to make this funky piece of tech work....
|
1792572491.3177123
|
1793177291.3177123
|
|
5118
|
Spotify like app open source by @AlexandruB | Star Spotify like app open source by @AlexandruB | Stardance...
|
AlexandruB
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Spotify like app open source by @AlexandruB Title: Spotify like app open source by @AlexandruB | Stardance...
|
1792713043.4689224
|
1793317843.4689224
|
|
5120
|
My first slack bot! by @Eitay | Stardance
|
Eitay
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @Eitay | Stardance
|
1793181343.571677
|
1793786143.571677
|
|
5121
|
Untitled by @Joshua_Westrick | Stardance
|
Joshua_Westrick
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled by @Joshua_Westrick | Stardance
|
1793163221.3762553
|
1793768021.3762553
|
|
5122
|
School attendance system by @Gdon | Stardance
|
Gdon
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: School attendance system by @Gdon | Stardan Title: School attendance system by @Gdon | Stardance...
|
1792587204.3843753
|
1793192004.3843753
|
|
5123
|
My awesome macropad! by @lukepark62 | Stardance
|
lukepark62
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @lukepark62 | Stard Title: My awesome macropad! by @lukepark62 | Stardance...
|
1792774128.0727966
|
1793378928.0727966
|
|
5124
|
3D Printing Guide Website by @Johnny | Stardance
|
Johnny
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: 3D Printing Guide Website by @Johnny | Star Title: 3D Printing Guide Website by @Johnny | Stardance...
|
1792799367.711637
|
1793404167.711637
|
|
5125
|
ignore by @Gerafftes | Stardance
|
Gerafftes
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: ignore by @Gerafftes | Stardance
|
1792918431.8152602
|
1793782431.8152602
|
|
5126
|
Escape Game by @Mirage_I | Stardance
|
Mirage_I
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Escape Game by @Mirage_I | Stardance
|
1792561856.763032
|
1793166656.763032
|
|
5127
|
A to-do productivity app by @daksh_shah | Stardanc A to-do productivity app by @daksh_shah | Stardance...
|
daksh_shah
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: A to-do productivity app by @daksh_shah | S Title: A to-do productivity app by @daksh_shah | Stardance...
|
1792752644.1698718
|
1793357444.1698718
|
|
5128
|
My awesome macropad! by @Potatoes9000 | Stardance
|
Potatoes9000
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @Potatoes9000 | Sta Title: My awesome macropad! by @Potatoes9000 | Stardance...
|
1792659036.4996107
|
1793263836.4996107
|
|
5129
|
Boss Battle Music Attempt #3 by @Yi | Stardance
|
Yi
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Boss Battle Music Attempt #3 by @Yi | Stard Title: Boss Battle Music Attempt #3 by @Yi | Stardance...
|
1792586972.8424158
|
1793191772.8424158
|
|
5130
|
SteamSense-ESP32-Bathroom-Climate-Monitor by @Gera SteamSense-ESP32-Bathroom-Climate-Monitor by @Gerafftes | Stardance...
|
Gerafftes
|
0
|
2.79
|
0
|
[]
|
[{"post_id": 7652, "ts": "2026 [{"post_id": 7652, "ts": "2026-06-12T19:55:06Z", "hours": 2.3333, "text": "I’ve completed the DigiKey tutorial and searched for the Receptacle USB-C Connector. I’ll use the DX07B024ZJ1C1088. Now, I’ll create the custom ESP32 board ;)"}, {"post_id": 5016, "ts": "2026-06-08T17:45:34Z", "hours": 0.4603, "text": "Started learning KiCad with DigiKey. The annoying part was Hackatime/WakaTime. The timer kept tracking the wrong project and KiCad was not sending progress correctly, even though it was listed as a monitored app. After about an hour of debugging, I found an old .wakatime-project file causing the wrong name and set up a manual KiCad heartbeat command for the correct StarDance project. Not much visible hardware progress today, but the tracking problem is finally understood and mostly fixed :))))"}]...
|
Title: SteamSense-ESP32-Bathroom-Climate-Monitor b Title: SteamSense-ESP32-Bathroom-Climate-Monitor by @Gerafftes | Stardance
Devlogs:
Started learning KiCad with DigiKey. The annoying part was Hackatime/WakaTime. The timer kept tracking the wrong project and KiCad was not sending progress correctly, even though it was listed as a monitored app. After about an hour of debugging, I found an old .wakatime-project file causing the wrong name and set up a manual KiCad heartbeat command for the correct StarDance project. Not much visible hardware progress today, but the tracking problem is finally understood and mostly fixed :))))
I’ve completed the DigiKey tutorial and searched for the Receptacle USB-C Connector. I’ll use the DX07B024ZJ1C1088. Now, I’ll create the custom ESP32 board ;)...
|
1792612452.5031912
|
1793217252.5031912
|
|
5131
|
My first slack bot! by @isaacvsam09 | Stardance
|
isaacvsam09
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @isaacvsam09 | Stard Title: My first slack bot! by @isaacvsam09 | Stardance...
|
1792583568.1729534
|
1793188368.1729534
|
|
5132
|
My first slack bot! by @randomcoder | Stardance
|
randomcoder
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @randomcoder | Stard Title: My first slack bot! by @randomcoder | Stardance...
|
1792572833.7260687
|
1793177633.7260687
|
|
5133
|
Reading Wrapped! by @nanooo | Stardance
|
nanooo
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Reading Wrapped! by @nanooo | Stardance
|
1792932856.994905
|
1793796856.994905
|
|
5135
|
Untitled by @clayanicholson | Stardance
|
clayanicholson
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled by @clayanicholson | Stardance
|
1793177678.4793904
|
1793782478.4793904
|
|
5136
|
Untitled by @clayanicholson | Stardance
|
clayanicholson
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled by @clayanicholson | Stardance
|
1792810114.3106387
|
1793414914.3106387
|
|
5137
|
Double Jointed Arm by @Sxilver | Stardance
|
Sxilver
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Double Jointed Arm by @Sxilver | Stardance
|
1792713100.2875154
|
1793317900.2875154
|
|
5138
|
ShadowMed by @shanmukha | Stardance
|
shanmukha
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: ShadowMed by @shanmukha | Stardance
|
1793220732.0617733
|
1793825532.0617733
|
|
5139
|
Untitled by @clayanicholson | Stardance
|
clayanicholson
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled by @clayanicholson | Stardance
|
1792666394.820413
|
1793271194.820413
|
|
5140
|
Ergonomic Gaming Keyboard by @joyceyhaha | Stardan Ergonomic Gaming Keyboard by @joyceyhaha | Stardance...
|
joyceyhaha
|
0
|
10.28
|
0
|
[]
|
[{"post_id": 5739, "ts": "2026 [{"post_id": 5739, "ts": "2026-06-09T17:15:36Z", "hours": 1.8111, "text": "Finished Firmware! After following all the steps on the QMK website, I ran into errors when compiling. It took a lot of troubleshooting, and it was mainly all caused by my irregular keypad (it’s not a 4 x 4 keypad but had 16 keys) I’m very happy once it finally compiled. Hopefully, I wrote the firmware in the correct order, but I can only test that out once I get all the parts and build it. Last step is compiling everything into a github repo!"}, {"post_id": 3863, "ts": "2026-06-06T22:43:41Z", "hours": 4.7278, "text": "Finally finished case! A part of this time I spent rerouting parts of the PCB board since I realised the USB port needs to point outward. I also discovered you can precisely move each switch location on KiCAD, so I adjusted that alongside the border to be perfect. For the casing, originally I just wanted 2 pieces. However, I really wanted the screws to be invisible from the top, meaning I needed to screw from the bottom of the case. In order to ensure the 3D printer can print the case, I cut the case into 3 pieces where each piece can be oriented so tht there are more material on the bottom layer compared to the top (No hanging pieces that need scaffolding) I’m really liking how this turned out, I haven’t decided on the colors of the casing yet, but that also depends on what filaments the 3D printer has, so that’s a decision for future me. (I made the top layer of casing transparent so that you can see the PCB board)"}, {"post_id": 2251, "ts": "2026-06-04T17:21:00Z", "hours": 1.8889, "text": "I finished the schematics and PCB Board layout! I ended up slightly tweaking my plan for the layout. On the top left corner, I am adding the ESC button, so I will only have one key for space. The matrix wiring for the schematic wasn’t too difficult, but the main issue for me was the PCB copper routing. It was easy to connect between the keys, but when connecting the rows and the columns to the microcontroller, I ran into trouble making it work with only 2 layers. I went back to the schematic multiple times to switch connections so that the copper routing wouldn’t intersect. The final PCB board looks so cool! Designing the case will be fun as I have a good deal of CAD experience."}, {"post_id": 1686, "ts": "2026-06-03T20:47:04Z", "hours": 1.8556, "text": "Preliminary Plan for Layout Hi I’m Joyce, and I’m following the Hackpad tutorial to make a little gaming keyboard that can be used for most computer games. Since I also want to make it ergonomic, the layout below also curves like how fingers usually relaxed when in a curled, comfortable position. I’m not 100% sure about where the space bar should be and whether I should have a “V” key, but we will see. As my first ever hardware project, I’ve been figuring out KiCAD. So far, I have the schematics down, so now I need to figure out the routing for the PCB board."}]...
|
Title: Ergonomic Gaming Keyboard by @joyceyhaha | Title: Ergonomic Gaming Keyboard by @joyceyhaha | Stardance
Devlogs:
Preliminary Plan for Layout Hi I’m Joyce, and I’m following the Hackpad tutorial to make a little gaming keyboard that can be used for most computer games. Since I also want to make it ergonomic, the layout below also curves like how fingers usually relaxed when in a curled, comfortable position. I’m not 100% sure about where the space bar should be and whether I should have a “V” key, but we will see. As my first ever hardware project, I’ve been figuring out KiCAD. So far, I have the schematics down, so now I need to figure out the routing for the PCB board.
I finished the schematics and PCB Board layout! I ended up slightly tweaking my plan for the layout. On the top left corner, I am adding the ESC button, so I will only have one key for space. The matrix wiring for the schematic wasn’t too difficult, but the main issue for me was the PCB copper routing. It was easy to connect between the keys, but when connecting the rows and the columns to the microcontroller, I ran into trouble making it work with only 2 layers. I went back to the schematic multiple times to switch connections so that the copper routing wouldn’t intersect. The final PCB board looks so cool! Designing the case will be fun as I have a good deal of CAD experience.
Finally finished case! A part of this time I spent rerouting parts of the PCB board since I realised the USB port needs to point outward. I also discovered you can precisely move each switch location on KiCAD, so I adjusted that alongside the border to be perfect. For the casing, originally I just wanted 2 pieces. However, I really wanted the screws to be invisible from the top, meaning I needed to screw from the bottom of the case. In order to ensure the 3D printer can print the case, I cut the case into 3 pieces where each piece can be oriented so tht there are more material on the bottom layer compared to the top (No hanging pieces that need scaffolding) I’m really liking how this turned out, I haven’t decided on the colors of the casing yet, but that also depends on what filaments the 3D printer has, so that’s a decision for future me. (I made the top layer of casing transparent so that you can see the PCB board)
Finished Firmware! After following all the steps on the QMK website, I ran into errors when compiling. It took a lot of troubleshooting, and it was mainly all caused by my irregular keypad (it’s not a 4 x 4 keypad but had 16 keys) I’m very happy once it finally compiled. Hopefully, I wrote the firmware in the correct order, but I can only test that out once I get all the parts and build it. Last step is compiling everything into a github repo!...
|
1792666137.5727751
|
1793270937.5727751
|
|
5141
|
My awesome macropad! by @yahyaovz12 | Stardance
|
yahyaovz12
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @yahyaovz12 | Stard Title: My awesome macropad! by @yahyaovz12 | Stardance...
|
1792558152.869349
|
1793162952.869349
|
|
5142
|
Designing my own RAM w/ Verilog by @rensinna | Sta Designing my own RAM w/ Verilog by @rensinna | Stardance...
|
rensinna
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Designing my own RAM w/ Verilog by @rensinn Title: Designing my own RAM w/ Verilog by @rensinna | Stardance...
|
1792576332.5481303
|
1793181132.5481303
|