|
2203
|
Untitled by @maya | Stardance
|
maya
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled by @maya | Stardance
|
1792738360.1565335
|
1793343160.1565335
|
|
39211
|
MGSC Website by @zyluxXD | Stardance
|
zyluxXD
|
0
|
1.19
|
0
|
[]
|
[{"post_id": 34282, "ts": "202 [{"post_id": 34282, "ts": "2026-07-24T21:09:15Z", "hours": 1.1872, "text": "Finished the basic site structure, will add anims and other things."}]...
|
Title: MGSC Website by @zyluxXD | Stardance
Devlo Title: MGSC Website by @zyluxXD | Stardance
Devlogs:
Finished the basic site structure, will add anims and other things....
|
1792738359.2902968
|
1793343159.2902968
|
|
39543
|
WarioWare Game by @marium_mm695 | Stardance
|
marium_mm695
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: WarioWare Game by @marium_mm695 | Stardance
|
1792738358.4024293
|
1793343158.4024293
|
|
23770
|
My very own WebOS by @Real_chicken_Master | Starda My very own WebOS by @Real_chicken_Master | Stardance...
|
Real_chicken_Master
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My very own WebOS by @Real_chicken_Master | Title: My very own WebOS by @Real_chicken_Master | Stardance...
|
1792738357.515327
|
1793343157.515327
|
|
7673
|
My first slack bot! by @TheBigW | Stardance
|
TheBigW
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @TheBigW | Stardance
|
1792738354.2458034
|
1793343154.2458034
|
|
20686
|
hello wrold by @winner_of_all | Stardance
|
winner_of_all
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: hello wrold by @winner_of_all | Stardance
|
1792738353.380263
|
1793343153.380263
|
|
23869
|
My awesome macropad! by @karenmota1016 | Stardance
|
karenmota1016
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @karenmota1016 | St Title: My awesome macropad! by @karenmota1016 | Stardance...
|
1792738352.5002234
|
1793343152.5002234
|
|
29204
|
My awesome macropad! by @amrutharjetty | Stardance
|
amrutharjetty
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @amrutharjetty | St Title: My awesome macropad! by @amrutharjetty | Stardance...
|
1792738351.6011717
|
1793343151.6011717
|
|
3820
|
My awesome macropad! by @Vinny | Stardance
|
Vinny
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @Vinny | Stardance
|
1792738350.7263236
|
1793343150.7263236
|
|
5803
|
Untitled by @IzStar | Stardance
|
IzStar
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled by @IzStar | Stardance
|
1792738349.8622668
|
1793343149.8622668
|
|
6379
|
ROBOTIC ARM by @Anay | Stardance
|
Anay
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: ROBOTIC ARM by @Anay | Stardance
|
1792738349.0149696
|
1793343149.0149696
|
|
3017
|
My first slack bot! by @C4RR0TC4K3 | Stardance
|
C4RR0TC4K3
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @C4RR0TC4K3 | Starda Title: My first slack bot! by @C4RR0TC4K3 | Stardance...
|
1792738348.1604042
|
1793343148.1604042
|
|
35227
|
Bird identifying game by @Coolguy | Stardance
|
Coolguy
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Bird identifying game by @Coolguy | Stardan Title: Bird identifying game by @Coolguy | Stardance...
|
1792738347.2658432
|
1793343147.2658432
|
|
25663
|
Drum world by @Cordsparks | Stardance
|
Cordsparks
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Drum world by @Cordsparks | Stardance
|
1792738346.4313178
|
1793343146.4313178
|
|
21216
|
My awesome macropad! by @arjun_mathan1016 | Starda My awesome macropad! by @arjun_mathan1016 | Stardance...
|
arjun_mathan1016
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @arjun_mathan1016 | Title: My awesome macropad! by @arjun_mathan1016 | Stardance...
|
1792738345.5471847
|
1793343145.5471847
|
|
16404
|
My first slack bot! by @Scarlet-s | Stardance
|
Scarlet-s
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @Scarlet-s | Stardan Title: My first slack bot! by @Scarlet-s | Stardance...
|
1792738344.7085261
|
1793343144.7085261
|
|
1388
|
My awesome macropad! by @alison_davis | Stardance
|
alison_davis
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @alison_davis | Sta Title: My awesome macropad! by @alison_davis | Stardance...
|
1792738343.849806
|
1793343143.849806
|
|
27483
|
Frictionless by @Bogey13 | Stardance
|
Bogey13
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Frictionless by @Bogey13 | Stardance
|
1792738342.9791844
|
1793343142.9791844
|
|
38627
|
Minecraft server Manager by @sebastian | Stardance
|
sebastian
|
0
|
7.67
|
0
|
[]
|
[{"post_id": 35436, "ts": "202 [{"post_id": 35436, "ts": "2026-07-26T20:48:04Z", "hours": 2.4183, "text": "#DieLog #3 Live stats & Status polling Picked up where I left off with a working dashboard that could start/stop containers via HTMX, but the status label was static — no way to tell “starting” from “running,” and CPU/RAM usage was still hardcoded placeholder data from servers.json. Today’s session closed both gaps. Starting vs. running. Turns out docker start marks a container as running in .State.Status almost instantly — the process is alive, but a Minecraft server still needs real time to generate the world and load plugins. Digging into docker inspect showed the missing piece was .State.Health.Status (starting / healthy / unhealthy), which reflects whether the game actually responds on its port. Combining both fields gives an accurate starting → running transition instead of a status that lies for the first 30+ seconds of boot. Polling instead of guessing. Wrote pollUntilStatus, a goroutine kicked off after a successful docker start/stop call. It checks container status every 5s and writes the result back into the shared server map until it hits the target state, then exits — no wasted background work once the goal is reached. When the target is running, it hands off to a second goroutine, pollStats, which polls docker stats –no-stream every 5s for as long as the server stays up, and quietly stops the moment status flips away from running. What went wrong (and got fixed). Two real bugs, both classic Go concurrency traps: A deadlock in pollStats — called Lock() on the mutex, then called Lock() again a few lines later without releasing the first one. Everything just hung. Fixed by splitting reads (RLock) from writes (Lock) into properly scoped, non-overlapping sections. An HTMX polling storm — the status fragment carried hx-trigger=“load, every 5s” on itself, so every 5-second refresh re-triggered load instantly, turning “every 5 seconds” into “every few milliseconds.” Fix was moving load to the outer placeholder only, leaving every 5s on the fragment that gets swapped in. Numbers sanity check. docker stats reported ~0.7% CPU / ~10% memory for an idle vanilla server, while the system monitor showed 40–60% CPU and 5GB RAM at the same time. Looked alarming until it became clear those are two different measurements entirely — docker stats is scoped to the one container, the system monitor is the whole machine (browser, editor, Docker daemon, everything). Once isolated, the container numbers checked out fine. Net result: dashboard now shows live, accurate status and live CPU/RAM bars over HTMX auto-refresh, all backed by two lightweight, self-terminating goroutines instead of one permanent background loop. Also switched from VS Code to Zed mid-session over memory leaks — anecdotally, Zed didn’t break a sweat running alongside the Docker container, something VS Code couldn’t handle before."}, {"post_id": 34772, "ts": "2026-07-25T19:17:32Z", "hours": 1.8283, "text": "base UI, client side routing, login and placeholder GUI In our serever i reserved two routes, one will send you to localhost:8080/static/login.html there you go to the login validatioin with our nnonperamnently hardcoded data. It willmhit the endpoint to validate and rerout to localhost:8080/dashboard now. I will connect the html to html/template base to get refreshed data from our go server, and update in time. What would i like today to manage is make working Start stop button. THATS IT. it will be a lot of work but go easier from there"}, {"post_id": 34597, "ts": "2026-07-25T13:40:37Z", "hours": 1.54, "text": "This was long (DieLog #2) What did we achive ? Go serrver -> reads status of current container, start, stop handlers, with curl on the endpoint. Working status reader. AUTH, middleware, and cookie token flow to make sure our user is our user. Whats up next? we are aprochaing the great work of frontzend. We have a bit of an issue tho -> HTMX wants an HTML fragment, were sending JSON strings so we have to fix that. And now i quote claude “Look at my frontend skill so the auth pagfe doesnt endup like a 5 year olds crayon project” im lowk fried."}, {"post_id": 33968, "ts": "2026-07-24T10:17:33Z", "hours": 1.88, "text": "Auth, middleware, cookies completed (dieLog #1) go server now supports these actions. you might ask. BUT WHATS NEXT i will tell you Docker integration 2.Install setup flow Small stuff to fix 99999……..fronten why ? we have to have a working api to make it usable.:) Peace, im out"}]...
|
Title: Minecraft server Manager by @sebastian | St Title: Minecraft server Manager by @sebastian | Stardance
Devlogs:
Auth, middleware, cookies completed (dieLog #1) go server now supports these actions. you might ask. BUT WHATS NEXT i will tell you Docker integration 2.Install setup flow Small stuff to fix 99999……..fronten why ? we have to have a working api to make it usable.:) Peace, im out
This was long (DieLog #2) What did we achive ? Go serrver -> reads status of current container, start, stop handlers, with curl on the endpoint. Working status reader. AUTH, middleware, and cookie token flow to make sure our user is our user. Whats up next? we are aprochaing the great work of frontzend. We have a bit of an issue tho -> HTMX wants an HTML fragment, were sending JSON strings so we have to fix that. And now i quote claude “Look at my frontend skill so the auth pagfe doesnt endup like a 5 year olds crayon project” im lowk fried.
base UI, client side routing, login and placeholder GUI In our serever i reserved two routes, one will send you to localhost:8080/static/login.html there you go to the login validatioin with our nnonperamnently hardcoded data. It willmhit the endpoint to validate and rerout to localhost:8080/dashboard now. I will connect the html to html/template base to get refreshed data from our go server, and update in time. What would i like today to manage is make working Start stop button. THATS IT. it will be a lot of work but go easier from there
#DieLog #3 Live stats & Status polling Picked up where I left off with a working dashboard that could start/stop containers via HTMX, but the status label was static — no way to tell “starting” from “running,” and CPU/RAM usage was still hardcoded placeholder data from servers.json. Today’s session closed both gaps. Starting vs. running. Turns out docker start marks a container as running in .State.Status almost instantly — the process is alive, but a Minecraft server still needs real time to generate the world and load plugins. Digging into docker inspect showed the missing piece was .State.Health.Status (starting / healthy / unhealthy), which reflects whether the game actually responds on its port. Combining both fields gives an accurate starting → running transition instead of a status that lies for the first 30+ seconds of boot. Polling instead of guessing. Wrote pollUntilStatus, a goroutine kicked off after a successful docker start/stop call. It checks container status every 5s and writes the result back into the shared server map until it hits the target state, then exits — no wasted background work once the goal is reached. When the target is running, it hands off to a second goroutine, pollStats, which polls docker stats –no-stream every 5s for as long as the server stays up, and quietly stops the moment status flips away from running. What went wrong (and got fixed). Two real bugs, both classic Go concurrency traps: A deadlock in pollStats — called Lock() on the mutex, then called Lock() again a few lines later without releasing the first one. Everything just hung. Fixed by splitting reads (RLock) from writes (Lock) into properly scoped, non-overlapping sections. An HTMX polling storm — the status fragment carried hx-trigger=“load, every 5s” on itself, so every 5-second refresh re-triggered load instantly, turning “every 5 seconds” into “every few milliseconds.” Fix was moving load to the outer placeholder only, leaving every 5s on the fragment that gets swapped in. Numbers sanity check. docker stats reported ~0.7% CPU / ~10% memory for an idle vanilla server, while the system monitor showed 40–60% CPU and 5GB RAM at the same time. Looked alarming until it became clear those are two different measurements entirely — docker stats is scoped to the one container, the system monitor is the whole machine (browser, editor, Docker daemon, everything). Once isolated, the container numbers checked out fine. Net result: dashboard now shows live, accurate status and live CPU/RAM bars over HTMX auto-refresh, all backed by two lightweight, self-terminating goroutines instead of one permanent background loop. Also switched from VS Code to Zed mid-session over memory leaks — anecdotally, Zed didn’t break a sweat running alongside the Docker container, something VS Code couldn’t handle before....
|
1792738341.83292
|
1793343141.83292
|
|
14295
|
sas by @dhamari | Stardance
|
dhamari
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: sas by @dhamari | Stardance
|
1792738340.9667213
|
1793343140.9667213
|
|
811
|
My first slack bot! by @Darly | Stardance
|
Darly
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @Darly | Stardance
|
1792738340.099889
|
1793343140.099889
|
|
2202
|
My awesome macropad! by @Rude_Thunder | Stardance
|
Rude_Thunder
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @Rude_Thunder | Sta Title: My awesome macropad! by @Rude_Thunder | Stardance...
|
1792738339.1232095
|
1793343139.1232095
|
|
13791
|
game by @warrenyi | Stardance
|
warrenyi
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: game by @warrenyi | Stardance
|
1792738337.985642
|
1793343137.985642
|
|
2539
|
Custom Hot Dog roller by @Tipmaster | Stardance
|
Tipmaster
|
0
|
2.8
|
0
|
[]
|
[{"post_id": 51437, "ts": "202 [{"post_id": 51437, "ts": "2026-08-21T04:35:25Z", "hours": 2.8042, "text": "Making the roller casing. This should be able to fit in most sedans, crossovers, and all large SUVS."}]...
|
Title: Custom Hot Dog roller by @Tipmaster | Stard Title: Custom Hot Dog roller by @Tipmaster | Stardance
Devlogs:
Making the roller casing. This should be able to fit in most sedans, crossovers, and all large SUVS....
|
1792738336.8905828
|
1793343136.8905828
|
|
18616
|
ImGui PSP by @Mahmoud1205 | Stardance
|
Mahmoud1205
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: ImGui PSP by @Mahmoud1205 | Stardance
|
1792738336.0356176
|
1793343136.0356176
|
|
4270
|
Untitled project by @Ihsan | Stardance
|
Ihsan
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled project by @Ihsan | Stardance
|
1792738335.1723022
|
1793343135.1723022
|
|
29861
|
EcoChain by @Verxion | Stardance
|
Verxion
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: EcoChain by @Verxion | Stardance
|
1792738334.3225327
|
1793343134.3225327
|
|
26733
|
Keyboard by @SaskoLOL | Stardance
|
SaskoLOL
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Keyboard by @SaskoLOL | Stardance
|
1792738333.4826667
|
1793343133.4826667
|
|
31738
|
SAWS rocket engine by @sebassZAP | Stardance
|
sebassZAP
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: SAWS rocket engine by @sebassZAP | Stardanc Title: SAWS rocket engine by @sebassZAP | Stardance...
|
1792738332.6290548
|
1793343132.6290548
|
|
2886
|
My first slack bot! by @Ege | Stardance
|
Ege
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @Ege | Stardance
|
1792738331.745944
|
1793343131.745944
|
|
15054
|
My first slack bot! by @Angele | Stardance
|
Angele
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @Angele | Stardance
|
1792738330.8791423
|
1793343130.8791423
|
|
32803
|
Untitled by @kulchaitu09 | Stardance
|
kulchaitu09
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled by @kulchaitu09 | Stardance
|
1792738330.0080485
|
1793343130.0080485
|
|
8354
|
Untitled project by @noahnovak31 | Stardance
|
noahnovak31
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled project by @noahnovak31 | Stardanc Title: Untitled project by @noahnovak31 | Stardance...
|
1792738329.1500137
|
1793343129.1500137
|
|
13783
|
TI-83 Plus Claude Modification by @propworks_co | TI-83 Plus Claude Modification by @propworks_co | Stardance...
|
propworks_co
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: TI-83 Plus Claude Modification by @propwork Title: TI-83 Plus Claude Modification by @propworks_co | Stardance...
|
1792738328.3086288
|
1793343128.3086288
|
|
7963
|
My awesome macropad! by @gold | Stardance
|
gold
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @gold | Stardance
|
1792738327.4347663
|
1793343127.4347663
|
|
40100
|
GoSpace by @sabithakishore08 | Stardance
|
sabithakishore08
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: GoSpace by @sabithakishore08 | Stardance
|
1792738326.5958927
|
1793343126.5958927
|
|
36419
|
ALL ABOUT RC by @MEGAmoos | Stardance
|
MEGAmoos
|
0
|
6.3
|
0
|
[]
|
[{"post_id": 30672, "ts": "202 [{"post_id": 30672, "ts": "2026-07-18T13:23:22Z", "hours": 2.36, "text": "Wanted to be able to update the Website and store the Updates on Github, failed completly, even with help from AI"}, {"post_id": 30338, "ts": "2026-07-17T20:15:36Z", "hours": 1.9836, "text": "Reworked the whole page"}, {"post_id": 30194, "ts": "2026-07-17T15:56:23Z", "hours": 1.96, "text": "Setup of my webpage about how to construct a RC car"}]...
|
Title: ALL ABOUT RC by @MEGAmoos | Stardance
Devl Title: ALL ABOUT RC by @MEGAmoos | Stardance
Devlogs:
Setup of my webpage about how to construct a RC car
Reworked the whole page
Wanted to be able to update the Website and store the Updates on Github, failed completly, even with help from AI...
|
1792738325.72602
|
1793343125.72602
|
|
38371
|
HydraSense by @Balasai | Stardance
|
Balasai
|
0
|
6.67
|
0
|
[]
|
[{"post_id": 36154, "ts": "202 [{"post_id": 36154, "ts": "2026-07-28T01:51:24Z", "hours": 0.6833, "text": "Weight and Motion Sensor Code"}, {"post_id": 36091, "ts": "2026-07-27T23:25:13Z", "hours": 3.2508, "text": "Mechanical Design"}, {"post_id": 35899, "ts": "2026-07-27T17:01:33Z", "hours": 2.7342, "text": "Mechanical body of product"}]...
|
Title: HydraSense by @Balasai | Stardance
Devlogs Title: HydraSense by @Balasai | Stardance
Devlogs:
Mechanical body of product
Mechanical Design
Weight and Motion Sensor Code...
|
1792738324.8440604
|
1793343124.8440604
|
|
20738
|
My very own WebOS by @hemant | Stardance
|
hemant
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My very own WebOS by @hemant | Stardance
|
1792738323.9736001
|
1793343123.9736001
|
|
16689
|
Untitled by @GeneralKenobi | Stardance
|
GeneralKenobi
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled by @GeneralKenobi | Stardance
|
1792738323.111594
|
1793343123.111594
|
|
25114
|
My very own WebOS by @lalita_s44 | Stardance
|
lalita_s44
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My very own WebOS by @lalita_s44 | Stardanc Title: My very own WebOS by @lalita_s44 | Stardance...
|
1792738322.2233021
|
1793343122.2233021
|
|
25888
|
Medic Documentation System by @Pillepalle | Starda Medic Documentation System by @Pillepalle | Stardance...
|
Pillepalle
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Medic Documentation System by @Pillepalle | Title: Medic Documentation System by @Pillepalle | Stardance...
|
1792738318.914887
|
1793343118.914887
|
|
15059
|
Untitled by @BigET | Stardance
|
BigET
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled by @BigET | Stardance
|
1792738318.0629327
|
1793343118.0629327
|
|
10315
|
My awesome macropad! by @Nasser | Stardance
|
Nasser
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @Nasser | Stardance
|
1792738317.1701715
|
1793343117.1701715
|
|
10899
|
Cool Hackpad by @raahat | Stardance
|
raahat
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Cool Hackpad by @raahat | Stardance
|
1792738316.0061853
|
1793343116.0061853
|
|
1437
|
My awesome macropad! by @khayden | Stardance
|
khayden
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @khayden | Stardanc Title: My awesome macropad! by @khayden | Stardance...
|
1792738315.1573205
|
1793343115.1573205
|
|
26851
|
IGNIS MK1 Rocket by @sebastienharens | Stardance
|
sebastienharens
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: IGNIS MK1 Rocket by @sebastienharens | Star Title: IGNIS MK1 Rocket by @sebastienharens | Stardance...
|
1792738314.3099952
|
1793343114.3099952
|
|
17355
|
Cube Guide by @parthsharma234 | Stardance
|
parthsharma234
|
0
|
1.2
|
0
|
[]
|
[{"post_id": 7701, "ts": "2026 [{"post_id": 7701, "ts": "2026-06-12T21:08:20Z", "hours": 1.1958, "text": "CubeGuide Devlog #1: Building the Input Welcome to the first CubeGuide devlog.The goal of this project is pretty simple: make it easy for someone to enter what their real Rubik’s Cube looks like, and learn how to solve it. Right now, I’m focusing on the input page. Before CubeGuide can solve anything, it needs a reliable way for users to copy their physical cube into the app. That means building the color picker, the 2D cube net, the sticker interactions, and the basic validation rules that make sure the cube state actually makes sense before solving starts. HOW THE INPUT PAGE WORK Each face is stored as a flat list of 9 stickers, and the center sticker is locked to that face’s fixed color. That matters because on a real Rubik’s Cube, the center pieces don’t move. They define which face is which. Here is the shape of the current cube model: type FaceName = “Up” | “Down” | “Front” | “Back” | “Left” | “Right”; type CubeColor = | “white” | “yellow” | “red” | “orange” | “blue” | “green” | “none”; type CubeState = Record<FaceName, CubeColor[]>; A few important details: Centers: the center sticker is fixed and cannot be painted over. Unset state: empty stickers use none, which renders as gray so it is easy to tell what still needs to be filled in. Interaction model: clicking paints a sticker, clicking the same selected color again clears it, and drag painting makes it faster to fill several stickers in a row. WHAT’S ALREADY WORKING The color picker lets users choose between white, yellow, red, orange, blue, green, and unset. The 2D cube net shows all six faces, with the center pieces already locked in place. The main interaction is simple: pick a color, then click stickers to paint them. If a sticker already has the selected color, clicking it again clears it back to gray. I also added drag painting so entering a cube feels less repetitive, especially when several stickers have the same color. There are also some convivence items: color picker: large color chips for white, yellow, red, orange, blue, green, and unset. 2D cube net: a full editable net for all six faces with locked centers. toggle to unset: clicking a sticker with the same selected color clears it back to gray. clear: clears all editable stickers and leaves unset selected. random: fills the 48 editable stickers with a valid shuffled distribution of exactly 8 of each color. export json: downloads the current cube state for later use. validation: checks the editable stickers only, so each color must appear exactly 8 times outside its center. THE GOAL CubeGuide should let someone look at their physical cube, enter it quickly, check that the state is valid, and then move directly into a clear step-by-step solving experience."}]...
|
Title: Cube Guide by @parthsharma234 | Stardance
Title: Cube Guide by @parthsharma234 | Stardance
Devlogs:
CubeGuide Devlog #1: Building the Input Welcome to the first CubeGuide devlog.The goal of this project is pretty simple: make it easy for someone to enter what their real Rubik’s Cube looks like, and learn how to solve it. Right now, I’m focusing on the input page. Before CubeGuide can solve anything, it needs a reliable way for users to copy their physical cube into the app. That means building the color picker, the 2D cube net, the sticker interactions, and the basic validation rules that make sure the cube state actually makes sense before solving starts. HOW THE INPUT PAGE WORK Each face is stored as a flat list of 9 stickers, and the center sticker is locked to that face’s fixed color. That matters because on a real Rubik’s Cube, the center pieces don’t move. They define which face is which. Here is the shape of the current cube model: type FaceName = “Up” | “Down” | “Front” | “Back” | “Left” | “Right”; type CubeColor = | “white” | “yellow” | “red” | “orange” | “blue” | “green” | “none”; type CubeState = Record<FaceName, CubeColor[]>; A few important details: Centers: the center sticker is fixed and cannot be painted over. Unset state: empty stickers use none, which renders as gray so it is easy to tell what still needs to be filled in. Interaction model: clicking paints a sticker, clicking the same selected color again clears it, and drag painting makes it faster to fill several stickers in a row. WHAT’S ALREADY WORKING The color picker lets users choose between white, yellow, red, orange, blue, green, and unset. The 2D cube net shows all six faces, with the center pieces already locked in place. The main interaction is simple: pick a color, then click stickers to paint them. If a sticker already has the selected color, clicking it again clears it back to gray. I also added drag painting so entering a cube feels less repetitive, especially when several stickers have the same color. There are also some convivence items: color picker: large color chips for white, yellow, red, orange, blue, green, and unset. 2D cube net: a full editable net for all six faces with locked centers. toggle to unset: clicking a sticker with the same selected color clears it back to gray. clear: clears all editable stickers and leaves unset selected. random: fills the 48 editable stickers with a valid shuffled distribution of exactly 8 of each color. export json: downloads the current cube state for later use. validation: checks the editable stickers only, so each color must appear exactly 8 times outside its center. THE GOAL CubeGuide should let someone look at their physical cube, enter it quickly, check that the state is valid, and then move directly into a clear step-by-step solving experience....
|
1792738313.442157
|
1793343113.442157
|
|
23258
|
Frictionless by @adhvikeze | Stardance
|
adhvikeze
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Frictionless by @adhvikeze | Stardance
|
1792738312.5698178
|
1793343112.5698178
|
|
29257
|
Frictionless by @Temmy | Stardance
|
Temmy
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Frictionless by @Temmy | Stardance
|
1792738311.6705458
|
1793343111.6705458
|