|
13845
|
NULL
|
NULL
|
0
|
0.0
|
0
|
[]
|
[]
|
|
1792947305.7482407
|
1793811305.7482407
|
|
12772
|
NULL
|
NULL
|
0
|
0.0
|
0
|
[]
|
[]
|
|
1792947306.5568576
|
1793811306.5568576
|
|
10774
|
NULL
|
NULL
|
0
|
0.0
|
0
|
[]
|
[]
|
|
1792947307.3809202
|
1793811307.3809202
|
|
71352
|
NULL
|
NULL
|
0
|
0.0
|
0
|
[]
|
[]
|
|
1792950449.1116395
|
1793814449.1116395
|
|
35069
|
WarioWare Game by @NoOneExisting | Stardance
|
NoOneExisting
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: WarioWare Game by @NoOneExisting | Stardanc Title: WarioWare Game by @NoOneExisting | Stardance...
|
1792950454.6400821
|
1793814454.6400821
|
|
11009
|
NULL
|
NULL
|
0
|
0.0
|
0
|
[]
|
[]
|
|
1792950455.4834127
|
1793814455.4834127
|
|
46572
|
NULL
|
NULL
|
0
|
0.0
|
0
|
[]
|
[]
|
|
1792950456.3273559
|
1793814456.3273559
|
|
46575
|
NULL
|
NULL
|
0
|
0.0
|
0
|
[]
|
[]
|
|
1792950457.1662314
|
1793814457.1662314
|
|
46576
|
NULL
|
NULL
|
0
|
0.0
|
0
|
[]
|
[]
|
|
1792950457.982435
|
1793814457.982435
|
|
46589
|
NULL
|
NULL
|
0
|
0.0
|
0
|
[]
|
[]
|
|
1792950458.8209617
|
1793814458.8209617
|
|
46593
|
NULL
|
NULL
|
0
|
0.0
|
0
|
[]
|
[]
|
|
1792950459.6269867
|
1793814459.6269867
|
|
50136
|
Hack box by @dragonvibes01 | Stardance
|
dragonvibes01
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Hack box by @dragonvibes01 | Stardance
|
1792950460.4469507
|
1793814460.4469507
|
|
36013
|
t by @Fahmi_Ahamed | Stardance
|
Fahmi_Ahamed
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: t by @Fahmi_Ahamed | Stardance
|
1792950461.2582824
|
1793814461.2582824
|
|
4224
|
My awesome macropad! by @bartoszkasyna | Stardance
|
bartoszkasyna
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @bartoszkasyna | St Title: My awesome macropad! by @bartoszkasyna | Stardance...
|
1792950462.0945635
|
1793814462.0945635
|
|
33058
|
GameFrame by @satvikhardat | Stardance
|
satvikhardat
|
0
|
8.0
|
0
|
[]
|
[{"post_id": 30576, "ts": "202 [{"post_id": 30576, "ts": "2026-07-18T08:36:37Z", "hours": 8.0, "text": "Devlog-1: Making the canva for video games!!! The Tech Stack I wanted this engine to run natively in the browser without massive downloads, so I chose: React + Vite for the frontend UI and state management. Three.js & React-Three-Fiber (R3F) for the 3D rendering pipeline. Cannon-es ( @react-three /cannon) for rigid-body physics. Zustand for lightweight, blazing-fast state management. React Flow ( @xyflow /react) for the Visual Scripting node editor. 1. Building the ECS (Entity-Component System) in Zustand Most React apps map data to UI components linearly, but game engines need an Entity-Component System (ECS) to handle hundreds of objects dynamically. I built a custom ECS using Zustand. // The core engine state powering the ECS interface EngineState { entities: Record<string, Entity>; addEntity: (name: string) => string; addComponent: (entityId: string, componentType: ComponentType) => void; updateComponent: (entityId: string, componentType: ComponentType, data: any) => void; } This allows the engine’s Outliner and Inspector panels to dynamically edit any object in the scene in real-time, just like Unity or Unreal. 2. The Visual Scripting Compiler The coolest feature I got working today was the Visual Script Editor. I used React Flow to let users connect nodes (like “On Update” -> “Move To Player”). But how does a node graph become executable game? I wrote a compiler that traverses the node graph and translates it into a raw JavaScript string. This string is saved into the entity’s script component and executed dynamically in the game loop using a Function constructor! // A snippet of the compiler output injected into the game loop } else if (node.data.label === 'Enemy: Move To Player') { output += ` if (api.velocity) { const toPlayer = camera.position.clone().sub(mesh.position); toPlayer.y = 0; toPlayer.normalize(); api.velocity.set(toPlayer.x * 4, -1, toPlayer.z * 4); } `; } 3. Bypassing React for Performance The biggest hurdle today was the physics loop. Initially, the enemy tracking script updated the Zustand state every frame. With 15 enemies running at 60fps, it was triggering 900 React state updates a second, completely freezing the browser! The novel solution for this was bypassing React’s render lifecycle entirely for physics. Instead of updating the state.entities transform data, the compiled scripts now directly tap into the raw Cannon-es physics API (api.velocity.set()), mutating the physics hull natively. The performance skyrocketed from a frozen screen to a buttery smooth 60fps."}]...
|
Title: GameFrame by @satvikhardat | Stardance
Dev Title: GameFrame by @satvikhardat | Stardance
Devlogs:
Devlog-1: Making the canva for video games!!! The Tech Stack I wanted this engine to run natively in the browser without massive downloads, so I chose: React + Vite for the frontend UI and state management. Three.js & React-Three-Fiber (R3F) for the 3D rendering pipeline. Cannon-es ( @react-three /cannon) for rigid-body physics. Zustand for lightweight, blazing-fast state management. React Flow ( @xyflow /react) for the Visual Scripting node editor. 1. Building the ECS (Entity-Component System) in Zustand Most React apps map data to UI components linearly, but game engines need an Entity-Component System (ECS) to handle hundreds of objects dynamically. I built a custom ECS using Zustand. // The core engine state powering the ECS interface EngineState { entities: Record<string, Entity>; addEntity: (name: string) => string; addComponent: (entityId: string, componentType: ComponentType) => void; updateComponent: (entityId: string, componentType: ComponentType, data: any) => void; } This allows the engine’s Outliner and Inspector panels to dynamically edit any object in the scene in real-time, just like Unity or Unreal. 2. The Visual Scripting Compiler The coolest feature I got working today was the Visual Script Editor. I used React Flow to let users connect nodes (like “On Update” -> “Move To Player”). But how does a node graph become executable game? I wrote a compiler that traverses the node graph and translates it into a raw JavaScript string. This string is saved into the entity’s script component and executed dynamically in the game loop using a Function constructor! // A snippet of the compiler output injected into the game loop } else if (node.data.label === 'Enemy: Move To Player') { output += ` if (api.velocity) { const toPlayer = camera.position.clone().sub(mesh.position); toPlayer.y = 0; toPlayer.normalize(); api.velocity.set(toPlayer.x * 4, -1, toPlayer.z * 4); } `; } 3. Bypassing React for Performance The biggest hurdle today was the physics loop. Initially, the enemy tracking script updated the Zustand state every frame. With 15 enemies running at 60fps, it was triggering 900 React state updates a second, completely freezing the browser! The novel solution for this was bypassing React’s render lifecycle entirely for physics. Instead of updating the state.entities transform data, the compiled scripts now directly tap into the raw Cannon-es physics API (api.velocity.set()), mutating the physics hull natively. The performance skyrocketed from a frozen screen to a buttery smooth 60fps....
|
1792950462.9166887
|
1793814462.9166887
|
|
29147
|
BioCompass by @Moony_notes | Stardance
|
Moony_notes
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: BioCompass by @Moony_notes | Stardance
|
1792950463.727232
|
1793814463.727232
|
|
32693
|
WNLOS by @S_U_Wasi | Stardance
|
S_U_Wasi
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: WNLOS by @S_U_Wasi | Stardance
|
1792950464.5633836
|
1793814464.5633836
|
|
36966
|
My very own WebOS by @Vixinity | Stardance
|
Vixinity
|
0
|
2.0
|
0
|
[]
|
[{"post_id": 31763, "ts": "202 [{"post_id": 31763, "ts": "2026-07-20T12:27:55Z", "hours": 2.0, "text": "Devlog 1 -added background -added clock any suggestions?"}]...
|
Title: My very own WebOS by @Vixinity | Stardance
Title: My very own WebOS by @Vixinity | Stardance
Devlogs:
Devlog 1 -added background -added clock any suggestions?...
|
1792950465.4072583
|
1793814465.4072583
|
|
30959
|
Packet Scope by @Gantavya | Stardance
|
Gantavya
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Packet Scope by @Gantavya | Stardance
|
1792950466.221439
|
1793814466.221439
|
|
11647
|
NULL
|
NULL
|
0
|
0.0
|
0
|
[]
|
[]
|
|
1792950467.0303087
|
1793814467.0303087
|
|
38458
|
NULL
|
NULL
|
0
|
0.0
|
0
|
[]
|
[]
|
|
1792950467.8643064
|
1793814467.8643064
|
|
11968
|
NULL
|
NULL
|
0
|
0.0
|
0
|
[]
|
[]
|
|
1792950468.6944122
|
1793814468.6944122
|
|
11935
|
NULL
|
NULL
|
0
|
0.0
|
0
|
[]
|
[]
|
|
1792950469.523811
|
1793814469.523811
|
|
11790
|
NULL
|
NULL
|
0
|
0.0
|
0
|
[]
|
[]
|
|
1792950470.3569746
|
1793814470.3569746
|
|
12794
|
NULL
|
NULL
|
0
|
0.0
|
0
|
[]
|
[]
|
|
1792950471.163811
|
1793814471.163811
|
|
10952
|
NULL
|
NULL
|
0
|
0.0
|
0
|
[]
|
[]
|
|
1792950471.9802425
|
1793814471.9802425
|
|
24098
|
FPV Freestyle 5in by @driulevicius | Stardance
|
driulevicius
|
0
|
0.0
|
0
|
[]
|
[{"post_id": 23414, "ts": "202 [{"post_id": 23414, "ts": "2026-07-06T11:08:30Z", "hours": 0.0, "text": "Long story short, the FC was the wrong orientation so I had to spin it around and fix it, desoldering all the connections to the motors and resoldering again. Gonna buy an ELRS receiver today and tomorrow and it’ll be flightworthy in a few days once I get my goggles. Photo is from before the swap"}]...
|
Title: FPV Freestyle 5in by @driulevicius | Starda Title: FPV Freestyle 5in by @driulevicius | Stardance
Devlogs:
Long story short, the FC was the wrong orientation so I had to spin it around and fix it, desoldering all the connections to the motors and resoldering again. Gonna buy an ELRS receiver today and tomorrow and it’ll be flightworthy in a few days once I get my goggles. Photo is from before the swap...
|
1792950472.7897685
|
1793814472.7897685
|
|
13155
|
NULL
|
NULL
|
0
|
0.0
|
0
|
[]
|
[]
|
|
1792950473.6207662
|
1793814473.6207662
|
|
12629
|
NULL
|
NULL
|
0
|
0.0
|
0
|
[]
|
[]
|
|
1792950474.4310172
|
1793814474.4310172
|
|
12761
|
NULL
|
NULL
|
0
|
0.0
|
0
|
[]
|
[]
|
|
1792950475.5549028
|
1793814475.5549028
|
|
38541
|
NULL
|
NULL
|
0
|
0.0
|
0
|
[]
|
[]
|
|
1792950479.9195254
|
1793814479.9195254
|
|
31847
|
deleted by @Camiel | Stardance
|
Camiel
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: deleted by @Camiel | Stardance
|
1792950481.206065
|
1793814481.206065
|
|
38758
|
NULL
|
NULL
|
0
|
0.0
|
0
|
[]
|
[]
|
|
1792950482.0089412
|
1793814482.0089412
|
|
31567
|
WarioWare Game by @hudson_berg | Stardance
|
hudson_berg
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: WarioWare Game by @hudson_berg | Stardance
|
1792950482.8347247
|
1793814482.8347247
|
|
28983
|
Obsidian CSS by @Arnav_Sh | Stardance
|
Arnav_Sh
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Obsidian CSS by @Arnav_Sh | Stardance
|
1792950483.645593
|
1793814483.645593
|
|
12338
|
NULL
|
NULL
|
0
|
0.0
|
0
|
[]
|
[]
|
|
1792950484.4511476
|
1793814484.4511476
|
|
11859
|
NULL
|
NULL
|
0
|
0.0
|
0
|
[]
|
[]
|
|
1792950485.2919216
|
1793814485.2919216
|
|
6230
|
NULL
|
NULL
|
0
|
0.0
|
0
|
[]
|
[]
|
|
1792950486.120417
|
1793814486.120417
|
|
13989
|
NULL
|
NULL
|
0
|
0.0
|
0
|
[]
|
[]
|
|
1792950486.949595
|
1793814486.949595
|
|
11749
|
NULL
|
NULL
|
0
|
0.0
|
0
|
[]
|
[]
|
|
1792950487.7862184
|
1793814487.7862184
|
|
21234
|
HackCalc by @mrrobot0246 | Stardance
|
mrrobot0246
|
0
|
16.0
|
0
|
[]
|
[{"post_id": 45807, "ts": "202 [{"post_id": 45807, "ts": "2026-08-12T15:02:12Z", "hours": 7.0, "text": "Devlog 4 I have made my PCB Layout and also started to make the code for my project."}, {"post_id": 33187, "ts": "2026-07-22T21:19:24Z", "hours": 4.0, "text": "Devlog 3 I have finished my HackCalc schematic and will finally make the PCB for it. I believe that by the end of July, I will have finished it and will continue to make the firmware and 3D case for it."}, {"post_id": 28817, "ts": "2026-07-15T09:52:40Z", "hours": 3.0, "text": "Devlog 2: ESP32 Handheld Calculator Power Subsystem Author: Ibrahim Qureshi Overview This log details the three-stage power delivery system designed for the custom terminal device. Generating a stable, noise-free supply is critical to prevent brownouts during wireless transmission and to prevent artifacts on the ILI9341 display. System Architecture [ 18650 Battery ] | [ TP4056 Charger ] -> (Protection & USB Charging) | [ MT3608 Boost ] -> (Steps up to 5V) | [ AMS1117 LDO ] -> (Drops to clean 3.3V) | [ ESP32 ]"}, {"post_id": 21687, "ts": "2026-07-03T19:37:02Z", "hours": 2.0, "text": "Building ‘HackCalc’: An ESP32 Calculator, AI Terminal, and pentesting tools. Hi everyone. I wanted to share a project I’ve been working on called HackCalc. I’ve recently started diving into embedded systems, and as I’m actively learning C++ for Arduinos and microcontrollers, building this from scratch has been an incredible trial by fire. I’m documenting the journey and hopefully providing a useful reference for other developers and students building similar portable devices.## The Core Concept HackCalc is a custom-built pocket calculator designed for both simple and complex calculations, with integrated AI and hardware hacking tools.* The Brain: ESP32 development board that handles Wi-Fi and hardware protocols. * The Display: 2.8-inch SPI TFT display (ILI9341) running a custom green and amber retro-styled GUI.* The RF Tool: A CC1101 wireless transceiver module that also functions as a sub-1 GHz radio detector.## The AI Engine: The terminal successfully pings the Groq API over Wi-Fi. I’m using HTTPClient and ArduinoJson to send queries to it. I initially built a prototype breadboard using a 4x4 numeric keypad and a custom C++ T9 multi-tap state machine. However, writing long AI prompts on a 16-key keyboard is difficult, so I’m upgrading to a 5x9 pushbutton matrix (45 keys). Since an ESP32 doesn’t have the GPIO pins for a 45-key array, an SPI display, an RF module, and more, I’m solving the bottleneck with hardware:* Shift registers: I’m daisy-chaining two 74HC595 shift registers to have 16 output pins for column scanning, using only a few ESP32 pins.* Shared SPI bus: The TFT display, CC1101, 74HC595, and more modules share the same hardware SPI lines (MOSI, MISO, SCK) using dedicated CS pins. I’ve been using a 24MHz logic analyzer to debug the bus contention.## Next steps and open to advice! I’m currently migrating the breadboard circuit to a PCB. Since I’m just getting started with embedded systems and C++, any help, advice, or code review would be immensely appreciated! Whether it’s advice on handling shared SPI buses, optimizing C++ array scans, or ESP32 memory management, I’d love to hear your thoughts. I really hope that documenting this helps developers and students who are trying to bridge the gap between physical electronics and software. Thanks for reading!"}]...
|
Title: HackCalc by @mrrobot0246 | Stardance
Devlo Title: HackCalc by @mrrobot0246 | Stardance
Devlogs:
Building ‘HackCalc’: An ESP32 Calculator, AI Terminal, and pentesting tools. Hi everyone. I wanted to share a project I’ve been working on called HackCalc. I’ve recently started diving into embedded systems, and as I’m actively learning C++ for Arduinos and microcontrollers, building this from scratch has been an incredible trial by fire. I’m documenting the journey and hopefully providing a useful reference for other developers and students building similar portable devices.## The Core Concept HackCalc is a custom-built pocket calculator designed for both simple and complex calculations, with integrated AI and hardware hacking tools.* The Brain: ESP32 development board that handles Wi-Fi and hardware protocols. * The Display: 2.8-inch SPI TFT display (ILI9341) running a custom green and amber retro-styled GUI.* The RF Tool: A CC1101 wireless transceiver module that also functions as a sub-1 GHz radio detector.## The AI Engine: The terminal successfully pings the Groq API over Wi-Fi. I’m using HTTPClient and ArduinoJson to send queries to it. I initially built a prototype breadboard using a 4x4 numeric keypad and a custom C++ T9 multi-tap state machine. However, writing long AI prompts on a 16-key keyboard is difficult, so I’m upgrading to a 5x9 pushbutton matrix (45 keys). Since an ESP32 doesn’t have the GPIO pins for a 45-key array, an SPI display, an RF module, and more, I’m solving the bottleneck with hardware:* Shift registers: I’m daisy-chaining two 74HC595 shift registers to have 16 output pins for column scanning, using only a few ESP32 pins.* Shared SPI bus: The TFT display, CC1101, 74HC595, and more modules share the same hardware SPI lines (MOSI, MISO, SCK) using dedicated CS pins. I’ve been using a 24MHz logic analyzer to debug the bus contention.## Next steps and open to advice! I’m currently migrating the breadboard circuit to a PCB. Since I’m just getting started with embedded systems and C++, any help, advice, or code review would be immensely appreciated! Whether it’s advice on handling shared SPI buses, optimizing C++ array scans, or ESP32 memory management, I’d love to hear your thoughts. I really hope that documenting this helps developers and students who are trying to bridge the gap between physical electronics and software. Thanks for reading!
Devlog 2: ESP32 Handheld Calculator Power Subsystem Author: Ibrahim Qureshi Overview This log details the three-stage power delivery system designed for the custom terminal device. Generating a stable, noise-free supply is critical to prevent brownouts during wireless transmission and to prevent artifacts on the ILI9341 display. System Architecture [ 18650 Battery ] | [ TP4056 Charger ] -> (Protection & USB Charging) | [ MT3608 Boost ] -> (Steps up to 5V) | [ AMS1117 LDO ] -> (Drops to clean 3.3V) | [ ESP32 ]
Devlog 3 I have finished my HackCalc schematic and will finally make the PCB for it. I believe that by the end of July, I will have finished it and will continue to make the firmware and 3D case for it.
Devlog 4 I have made my PCB Layout and also started to make the code for my project....
|
1792950488.6213129
|
1793814488.6213129
|
|
46602
|
NULL
|
NULL
|
0
|
0.0
|
0
|
[]
|
[]
|
|
1792950489.427226
|
1793814489.427226
|
|
46606
|
NULL
|
NULL
|
0
|
0.0
|
0
|
[]
|
[]
|
|
1792950490.2380972
|
1793814490.2380972
|
|
46609
|
NULL
|
NULL
|
0
|
0.0
|
0
|
[]
|
[]
|
|
1792950491.046495
|
1793814491.046495
|
|
46617
|
NULL
|
NULL
|
0
|
0.0
|
0
|
[]
|
[]
|
|
1792950491.883558
|
1793814491.883558
|
|
46619
|
NULL
|
NULL
|
0
|
0.0
|
0
|
[]
|
[]
|
|
1792950492.7105289
|
1793814492.7105289
|
|
46623
|
NULL
|
NULL
|
0
|
0.0
|
0
|
[]
|
[]
|
|
1792950493.5176623
|
1793814493.5176623
|
|
46633
|
NULL
|
NULL
|
0
|
0.0
|
0
|
[]
|
[]
|
|
1792950494.3496745
|
1793814494.3496745
|
|
46635
|
NULL
|
NULL
|
0
|
0.0
|
0
|
[]
|
[]
|
|
1792950495.1750398
|
1793814495.1750398
|
|
46636
|
NULL
|
NULL
|
0
|
0.0
|
0
|
[]
|
[]
|
|
1792950495.9967914
|
1793814495.9967914
|