|
13216
|
App by @krishisnoname | Stardance
|
krishisnoname
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: App by @krishisnoname | Stardance
|
1792633907.9234686
|
1793238707.9234686
|
|
9616
|
revo by @ratmuds | Stardance
|
ratmuds
|
1
|
134.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-21T01:26:40Z", "hours": 134.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I wanted to make a robot arm that punched above it’s weight. The price is pretty similar to smaller robot arms on Amazon that may not include cameras, which would need to be purchased seperately. The way this is achieved by using cheap servos, servos that are 100% NOT made for this purpose, and adding most of the functionality of a smart servo back by using a TON of PCBs. It was a lot of soldering. I just wanted to make something that had more features for less money :) This project was SUPER difficult for me, and pushed my limits a bit. The amount of tolerences especially for the stupid custom motor case and magnet and PCBs and the crazy mainboard and generally having everything play well together took so long, I had many days where I quit frustrated. I’m very happy about how it turned out though, even seeing the lots of shortcomings it has.", "repo": "https://github.com/ratmuds/revo", "demo": ""}]...
|
[{"post_id": 71545, "ts": "202 [{"post_id": 71545, "ts": "2026-09-21T01:17:14Z", "hours": 1.7336, "text": "Finish Project Up :) I wrote a ton in the repository im tired :( https://github.com/ratmuds/revo"}, {"post_id": 71258, "ts": "2026-09-20T15:14:42Z", "hours": 3.1572, "text": "Setup VR and Gripper, Robot Rapidly Disassembles my robot arm is broken I setup VR and fixed some more IK when I go into VR and try playing around, it instantly flies out and throws itself off the table and breaks into pieces. This is going to be fun to fix."}, {"post_id": 70809, "ts": "2026-09-19T19:55:52Z", "hours": 3.8861, "text": "Integration Hell I’ve just been like trying to get this stupid project to work. Screws keep falling out, the IK keeps failing, things are hitting each other and wires are being strained I’m in integration hell. Everything works fine on its own, but combining everything is horrible. I’ve been reassembling and trying to fix this stupid thing for so long. Anyway I’ve went through a few more revisions of some CAD and some more refinements and the gripper and camera is now mounted but this is just incredibly incredibly annoying :(((("}, {"post_id": 69881, "ts": "2026-09-18T00:05:17Z", "hours": 3.8311, "text": "Fixed Broken Magnet, Redoing all IK joint data and offsets, Stereo depth test An encoder magnet broke off, so I had to disassemble and reassemble the top half of the arm to get to the encoder magnet and glue it back on. I also started properly punching in the IK joint data, before it was mostly just random data but now almost all of the data is mostly correct, and I’m waiting for a print to complete that will flip a motor to finally get the IK simulation matching with real life and have the IK endpoint be tracked at the tip of the gripper. It was a lot of trial and error and measurements. I also started experimenting with adding depth estimation. Eventually this could add collision avoidance IK pathfinding, which would be really cool but it’s just a pointcloud in the render right now. But the robot arm is slowly coming together finally! I’ll be able to grab something soon I think."}, {"post_id": 68903, "ts": "2026-09-16T00:31:34Z", "hours": 2.8461, "text": "Assembled Full Arm (not all motors active yet for safety) and Basic Interpolation for Control I assembled the new full arm assembly minus the end effector and didn’t plug in the first two motors as they have the highest chance of doing something really bad. I also made some general changes to the code and also added a flag to some motors to interpolate their movement slowly to not explode the robot arm while controlling it."}, {"post_id": 68352, "ts": "2026-09-15T00:17:44Z", "hours": 2.5044, "text": "Significantly Better Motor Control and Gripper CAD The motor code was getting a bit messy, so I rewrote it. I separated the motor code from the main control code which cleaned it up a bit. LADRC I’m using LADRC now. It’s kind of like PID, but advanced. I took the implementation from online. I feed it the motor current, encoder value, and the target and it goes. The algorithm or whatever somehow calculates the velocity of the motor and how much “effort” it’s using and then gives an effort to put to the motor. It somehow cancels out like disturbances like gravity, backlash, the general physics, etc. As you can see, the motor control is so so so much better than before. It cleanly decelerates. It handles load and dynamically increases effort. Before there was some oscillation because it just couldn’t figure out how to get to the target, this one is just so much better and so hands off. There’s basically like no calibration as it does it over time :)))"}, {"post_id": 67779, "ts": "2026-09-14T00:57:25Z", "hours": 1.4489, "text": "Assembled last 4 DoF for Integrated Test I assembled the MG996R servos in a test piece that will represent the full regular arm segment to test if everything worked. With some fiddling it worked. As you can see there’s more transparent pieces. The pieces that connect the previous joint are transparent to show the Neopixel below it a lot better as before the LED was almost completely occluded. The bright green LEDs power status ones are too bright but I can cover them later."}, {"post_id": 67735, "ts": "2026-09-13T23:20:04Z", "hours": 6.6769, "text": "Dashboard Revamp WIP, Tons of CAD changes, Code Updates, Tolerances I’ve just been refining everything and it’s just going really slowly. Many problems. Magnets shorting out stuff. Magnet too far and not being detected. Wires breaking. I’ve also redesigned the dashboard UI to hopefully look better. I’m still working on it, hopefully it will look more polished later. The dashboard It shows a load speedometer type thing, with the load (max current from a motor out of 500mA) and the temp on the right (for now just dummy value) The motors have cool little animations now too and look less cluttered. I’ve just been working on it a lot. Just everything in general tbh."}, {"post_id": 65061, "ts": "2026-09-09T22:13:56Z", "hours": 5.7644, "text": "Debugging and Fixing Is Killing Me and the Mainboard Exploded :( I have spent SO many hours trying to get this to work. It’s so annoying. This isn’t near how many hours I spent, I’ve been too frustrated to log it. The case is incredibly annoying. Getting the initial case works fine. Doing all of this stuff makes it complicated and break and jam up. The RS485 busses just randomly stop working. The servo output is wiggly and not stable. A PCB header snapped and I didn’t have replacements so I had to bodge solder it back on. The mainboard voltage regulator literally exploded. It was a cheap part but yeah that literally just broke stuff. Fixes to everything. CAD. Firmware. bruh"}, {"post_id": 60577, "ts": "2026-09-03T00:49:54Z", "hours": 6.7731, "text": "MG996Rs Finally Working The servos finally work. I don’t even think this amount of hours logged is equal to how long this took, because I just got tired of it. I think I printed like 20 new revisions of the case and servo mount. It was just so so annoying. While the general case worked, getting a reliable magnet output shaft was impossible. From tolerances, to my own errors to binding to hot glue getting everywhere, or superglue binding random gears, or my getting my fingers stuck to the actual case from superglue (was not fun and hurt) The case finally works. And the prototype code somewhat works too. It basically rotates until the sensor hits zero, it resets the “ticks”. A tick is a raw output from the AS5600. Because this magnet shaft spins faster than the output shaft, like 10x faster, the MCU needs to poll the sensor super quickly, which also needed some optimizations to clear the blocking bus communication wait that would let the magnet skip multiple full turns. The sensor doesn’t internally count turns so we just need to count manually and detect when it jumps from 4096-0 or the other way around. It then spins around until the sensor is hit AGAIN to calculate tick to degrees, assuming the sensor was zeroed before, and then the current ticks would equal 360 degrees. Another problem was the servo needs a PWM signal to move. The threshold from stop to go is pretty garbage on these cheap servos, leading it to spin quite fast already when at the lowest PWM value. Instead when far from the value it increases the PWM signal, closer it brings to minimum and starts linearly flickering the PWM signal from 0 to the speed, with the closer it is the more ratio of time stopped to inch it closer to the target. It actually surprisingly works. It’s very fragile though, any skipped reads, from potentially slow bus transfers would completely throw it off, so all the code running locally on the weak 8 bit MCU needs to be extremely lightweight. Yeah this was super super painful. I’ve been sitting here redoing superglue and code for hours."}, {"post_id": 58979, "ts": "2026-08-31T15:36:35Z", "hours": 3.4036, "text": "Servo Code I did some slight refining to the servo case again, making the tolerances tighter to keep the gears from wobbling. It’s still sort of loose, so I need to just keep trying over and over again. I’m also still writing the servo code. It’s already much more organized than before. I’m also learning Vim keybinds and stuff to try and code faster. The RS485 bus communication works now, and it’s just sending dummy telemetry data back right now. It can also control the servo fine. I’ve just been doing like the lower level architecting I guess, or not really I’m not sure. Before everything was crammed into a single file and now there’s actually header files and multiple source files and it’s actually somewhat readable. I had an issue with LED control for a second but that’s fixed now :)"}, {"post_id": 58467, "ts": "2026-08-30T21:44:37Z", "hours": 2.4922, "text": "V2 Servo Case Working; Servo Code Revamp WIP After around 10 more revisions, the new servo case is fully working with the magnetic extender. The V2 is significantly better designed and higher efficiency than the last, more guess and check result. I’ve also started to rewrite the servo code. Right now, its really messy and just kind of snowballed over time as I’ve slapped on patches and features to a fundamentally weak base. I’m in the progress of writing that now, hopefully it will be done soon. It will also include the new auto calibration and encoder usage and PID (and potentially advanced auto tuned curve to combat motor acceleration overshoot and backlash)"}, {"post_id": 57778, "ts": "2026-08-30T02:16:49Z", "hours": 3.8514, "text": "Working on IK System & Resoldered Joints Again Bruh so my robot arm after finally being assembled by the way exceeded it’s limits and tore its wires out. I had to take apart the mainboard assembly again, which just is SO TEDIOUS. I just dumped solder and hot glue again and fixed a short caused from another wire being sheared off. Also I’m working on the IK system, but it’s not really going well right now. I need to add offsets and config to each of the motors to get them to work correctly. The motors hooked up right now started crashing into my table sadly. Hopefully it will work soon. I also continued working on the servo case. I still haven’t added the code to calibrate and get closed loop control on the MG996R servos. The DS5180 encoders should be easier though."}, {"post_id": 57272, "ts": "2026-08-29T11:42:11Z", "hours": 3.1006, "text": "Reprinted Arm Segments; Added Segment Cover; Servo Mount Working; Working on Web UI I reprinted the arm segments, hopefully for one of the last times, I’ve went through so much filament already. It now allows the mainboard to be neatly packed inside, hiding most of it while still allowing wires to come out. Due to the design of the mainboard, the wires do have to stick out the front like that sadly. To avoid crushing wires, the servo mount has been expanded to allow more clearance for wires and general electronics. The servo mount works now with a new design. I remeasured and adjusted the sketches and added proper hole sizes and a little chamfer to allow the insert to slot in before using a soldering iron to melt it in to help align much better than before. The web UI now shows a representation of the arm. It’s not tuned yet, so the angles are wrong but I’ll fix it soon. I had to move everything from Fusion to Onshape to create the assemblies, and then use a Python library to convert the Onshape assembly into a URDF file that can be rendered with the correct joints inside ThreeJS. Next, I’ll be adding IK and general arm control."}, {"post_id": 56800, "ts": "2026-08-28T18:32:28Z", "hours": 3.1978, "text": "Heatset Inserts Working; Fixing Faulty Motor Power Connections; Internal Fan Power Connectors I verified that the servo cover works, and it’s much much better than the last version. The tolerances are much better this time, leading to less stress on the gears. The same amount of turning uses around 100mA compared to 300mA before, almost reaching it’s limit without any load. Some motor power connectors disconnected, so I found it with a multimeter and added hot glue to some connectors to secure them. I soldered the fan power things inside the PCB, but realized that the JST connectors I’m using are different from the fans. I might have to make a sort of adapter or something by crimping more wires. And the heatset inserts finally work after some tweaking, before the inserts would get misaligned when put in, now with a aligning lip thing it can be slotted in and melted in more accurately."}, {"post_id": 56316, "ts": "2026-08-28T01:34:32Z", "hours": 4.6306, "text": "New Mainboard Cover, Wiring, Bearing Revamp, Heatset Inserts, Servo Cover I added space for the mainboard segment, now it has clearance to actually fit, I redid the cover for this segment, and now it can allow the wires to come out The servo mount now has heatset inserts, because the previous screw in print kept slipping out, but this time the screws just would not go into the inserts through the mount for some reason? The screws went in normally, but with the tolerances, when multiple screws go in they just fight and push against the edge of the insert instead of going in. The MG996R servo housing now has been redesigned, based off of picture references and calipers to attempt to be more accurate than the last one to try and reduce the amount of bad tolerances affecting the gears and making them misaligned, reducing torque output. And just general wiring and CAD work."}, {"post_id": 55294, "ts": "2026-08-27T01:14:32Z", "hours": 2.9064, "text": "Assembled Basic Arm Parts and Packaged Main Board Assembly; Reprogrammed servo MCUs & worked on web UI I redid some soldering on the mainboard PCB, secured connections, and secured everything with tape for now. I’ll likely have to reprint the first arm segment to fit everything in flush because as you can see there are wires and things bulging out of the segment itself right now. I also redesigned the CAD to include heat set inserts. I did programming and a bunch of bug testing and fixing too. An hour of time was lost because Lapse errored out :((((( very sad about that :( I also had an issue with data corruption on the RS485 bus but that is fixed now, and it works like it should."}, {"post_id": 54840, "ts": "2026-08-26T00:29:08Z", "hours": 4.3236, "text": "Mainboard Stack Redo & Firmware Updates and Test Web UI I had to take the electronics out, and redo some of the wiring. The screw terminals are pretty cheap and suck, which makes it incredibly annoying to use as it’s impossible to fit these thicker AWG wires in and they sometimes slide out of the terminals. When I’m done I’m probably going to hot glue the wires. The incredibly fragile flexible extension jumpers for data transfer between the stack is also super fragile, and especially doesn’t grip. Sometimes the data wires just slip out. I took apart the arm, as during testing the motor stripped some screws. I’ve ordered some heat set inserts to prevent that from happening again, which will require me to reprint all the arm segments again. I also added a simple web UI for moving the joints. There is an empty ThreeJS sidebar and the right has some graphs (real data) from the mainboard sensors. The smaller MG996R servos haven’t been mounted yet due to a power delivery issue from the mainboard but hopefully that will be fixed soon."}, {"post_id": 28657, "ts": "2026-07-15T01:25:27Z", "hours": 4.0167, "text": "Test assembly and fitting of robot arm I am mostly done with the core functionality of the mainboard, so i packed everything together and double checked eerything works including power Then I started assembling most of the servos The smaller servo casing doesn’t fit very well, and the transparent window doesn’t fit either But the magnetic cover for the arm segments works great :) It was a lot of fitting, screwing, testing with multimeter, etc"}, {"post_id": 28409, "ts": "2026-07-14T17:26:49Z", "hours": 5.1303, "text": "Finalizing hardware I crimped and soldered almost the remaining wires, I’ve made some last redesigns to the arm CAD and I’m now fitting everything into the new prints and assembling. I’ve also had a ton of trouble with my servo PCBs lately, but I found out a lot of the issue was my programmer is actually fried somehow, so I’m now using an old RPi Pico to act as a UPDI adapter so PlatformIO can now successfully program the ATtinys much better now. A lot of the CAD was slightly tweaked so that everything fits better"}, {"post_id": 26853, "ts": "2026-07-11T21:36:43Z", "hours": 1.175, "text": "Servo firmware almost done The servo firmware now (with the mainboard) sends validation data back and forth so both the servo and mainboard can verify that the data was sent successfully and can ignore corrupted packets because my wiring can be flaky sometimes The firmware now sends real data again and is much more robust, with a proper stateful LED that shows useful information, like offline, online and driving motor, homing, error (fast flashing of LED as red), and the error state is also triggered in the case of corrupted packets (I tried it and it works :)) I’m also still printing out the pieces to assemble the arm. I actually have more hours working on it, I just forgot to log :((((((("}, {"post_id": 26218, "ts": "2026-07-10T21:40:32Z", "hours": 8.1217, "text": "Rewrote all firmware; Fixing Servo Cover and a ton of other CAD; Almost fried everything For the CAD, it doesn’t look like much changed, but I’ve basically redesigned a bunch of things and fixed tolerances and now it should move really smoothly. With the bearings added, everything moves incredibly smoothly now Especially the servo cover was annoying. I needed to attach a magnet to the shaft which was really annoying. I haven’t logged that well, I’ve done more like 15 hours of work instead of just 5 but whatever Most of those hours was the painful debugging. RS-485 busses, JSON not communcating with the PC, dropped connections, corrupted data, disconnected jumpers, FTDI programmer becoming flaky for some reason It’s just been pain :((( Now the PC (screenshot) recieves all the data and sends all the data You can see a lot (not all) of the telemetry being received. Ignore the volts though my math is wrong. Realtime connecting now works smoothly, as you can see the other RS485 servos are offline."}, {"post_id": 24091, "ts": "2026-07-07T13:11:08Z", "hours": 5.9586, "text": "Bidirectional Communication To PC/RPi 5 with LeRobot & More CAD changes I setup a basic class for my robot in LeRobot (which was a little confusing) and then I also got communication between the Pico and my PC working. Originally I have SPI pins exposed on my mainboard PCB to connect to the RPi 5’s GPIO pins, but for some reason after lots of debugging, even running it at super low speeds it just would not work. So I switched to just using serial over USB, and using the SerialTransfer library to send data more reliably. The script on the PC now can send target joint angles, and receive a lot of data back, like if the joint is online, temp, current, angle, homing sensor, home status, LED, firmware version, voltage, etc I also iterated on the CAD for everything, and it should be done soon. It’s just a bunch of tolerance fixes to make everything fit at this point and some new things like mounts for encoders and DC buck modules and fixing the CAD for the custom MG996R case."}, {"post_id": 23468, "ts": "2026-07-06T13:46:37Z", "hours": 1.9767, "text": "Mainboard and other CAD I got the mainboard to stack on top of each other with a weird jumper and two piece jumper holder and some screws setup which required some revisions and trying to get everything to fit. I’ve squeezed one of the DC buck modules into between the mainboard, and the second arm segment will hold the two remaining DC buck modules. The bottom mainboard PCB also has 2 smaller buck modules. There’s a lot of things going on with the voltages in this project due to the servos peak current draw being so large. I also refined the arm segment CAD by some reprints and made the DS5180 servo fit better. I’ve also made one of the buck module mounts for the second arm segment to fit more cleanly."}, {"post_id": 22393, "ts": "2026-07-04T21:03:02Z", "hours": 4.3272, "text": "Servo Control Working, More CAD and 3D Printing I got the mainboard to be able to control the servo on the servo PCBs. I also tested a bunch of the functions, like the magnetic sensor, neopixel LED, etc The communication now sends the PCB ID, and the target speed and the servo PCB echos it back and moves the servo. I also worked on the CAD (and refined) for the mainboard connector that will make connecting the two mainboards not a total pain. I also soldered the connectors on the mainboard PCBs for them to connect to each other."}, {"post_id": 21568, "ts": "2026-07-03T16:23:00Z", "hours": 0.4833, "text": "Servo PCB Daisy Chaining Working I plugged in the JST VH and JST 1.25mm wires into the PCBs, and they seem to work! I adjusted the message struct to hold a desired PCB sort of address or ID. When the MCU detects that the ID matches the PCB (by using the solder jumpers at the bottom of each PCB to program the PCB ID), only then it lights up the LED and replies to the main board. The mainboard now loops through IDs and sends a message and waits for a response. I’m very very happy this worked without any really big problems."}, {"post_id": 21540, "ts": "2026-07-03T15:45:12Z", "hours": 3.4667, "text": "Crimped JST VH wires, Connected JST 1.25mm wires, Soldered more PCB connectors Crimping JST VH wires is a ton easier than JST 1.25mm, and after a bunch of failed attempts still, I got some okay crimps that work finally. It took me a long time because I didn’t know that I had to rotate the wire for the hook on the terminal to go into the housing hole, and then also that the box shape part on the terminal actually has to stick out of the crimper or the crimper will crush the whole terminal into bits"}, {"post_id": 21185, "ts": "2026-07-03T00:14:50Z", "hours": 4.7722, "text": "Finished Soldering all Smaller PCBs & Got RS-485 communication working from main board to servo PCBs First, I finished soldering the PCBs. I added the connectors for power and the small data connectors. I also finished the servo expansion boards that hold the magnetic encoder and sensor. I also finished soldering the joint encoder PCBs that will track shoulder and elbow lift servo positions. I also got the bus communication to work. It was really really painful and I was really scared it wouldn’t work. First, the PCBs wouldn’t communicate at all. But eventually, I realized that it was because I wasn’t supplying 3.3V to the main board. This is when I realized that I haven’t adjusted the buck converters on the main board to supply the correct voltage, so I was about to unsolder the buck converter when I realized that I could just set the power supply to 5V (which the ICs on the mainboard can handle luckily), and then adjust the voltage down to 3.3V. But after a really long time of debugging, it still wasn’t working. The connection would sometimes work but was really flaky. Eventually, I soldered on the RPi Pico 2 onto the board completely and then found out the reason, it was because the ATtiny3216 was set to clock at a slow speed that would mess with the communication. I made them use the SerialTransfer library to send data more reliably and it now can communicate properly :)"}, {"post_id": 20354, "ts": "2026-07-01T22:40:54Z", "hours": 5.5597, "text": "Done Soldering Most PCBs, Crimped JST wires kind of I’m pretty much done soldering, I just have like 3 more tiny PCBs and I should be done. The big main board PCBs are pretty much done, I just need to make some botched tall headers since the clearance of regular headers are too small, and the servo PCBs are almost done, with just some connectors left to solder. Soldering JST 1.25mm wires ARE THE WORST EVER THING TO EVER EXIST I spent 2 hours crimping terminals on multiple wires and its so so so annoying. I can barely hold the terminal itself and they are so easy to bend. I couldn’t afford the real tool to crimp them, so I have cheap crimpers that are the wrong size and can’t technically crimp these. If crimping the metal things wasn’t bad enough, inserting the terminals into the housing was even worse. The housing would bend, or I would accidentally somehow insert it where it shorts the pin next to it??? Also while soldering a JST 1.25mm connector on a PCB, I ripped the pads clean off the PCB. I guess that one just will be missing the daisy chain feature because it only has one connector for data now and all the components and MCU are already soldered on, which really sucks. The rest of the servo PCB (4 in total for now) went fine though, and I’m getting faster at it."}, {"post_id": 18843, "ts": "2026-06-30T01:27:03Z", "hours": 4.7572, "text": "Worked on firmware & CAD & Soldered Second PCB I got the PCB and ATtiny3216 to power a servo. I soldered on the remaining components on it, like the custom LED (which just turns on when the motor is spinning for now) and the 100uF capacitor and also the RS485 bus IC. I also changed the CAD of the arm to use a bearing and changed the servo horn to fit inside of the bearing. I’ve ordered right angle headers and the bearing and metal servo horn already. I also added some transparent parts to the arm design to make it look more interesting hopefully. I also am almost done soldering the second servo PCB. Now that I have all the parts ready and I actually got better at soldering ICs I can do it faster now."}, {"post_id": 17022, "ts": "2026-06-27T17:00:47Z", "hours": 4.0433, "text": "Finally got ATtiny3216 on PCB Working This took so so long. Basically, I spent hours trying to get it to work. First, the 3.3V rail wasn’t getting power and the LED wasn’t lighting so I had to resolder the voltage regulator and then both green LEDs lit up, meaning everything was working. Then I got my FTDI programmer, and plugged it into my PCB. Because I have a FTDI programmer and the ATtiny3216 has a UPDI programming interface, there is a resistor on the board to combine the two pins into one. Even just getting megaTinyCore installed in Arduino IDE was a pain. The website that hosted the package info was down again, with an expired certificate. Apparently, this happens very often with it but I found an alternative mirror. Then I tried flashing code, and it didn’t work. Then I realized that the board type I was using was the Optiboot version, and I couldn’t find the non Optiboot version so I had to flash Optiboot onto the MCU. I did not realize that doing this would cause problems later on. I also had to switch the programmer from the one that programs Arduinos to the UPDI programmer. But I STILL couldn’t get any GPIO to work. I just tried things for hours. I switched to PlatformIO. I tried switching from C to Arduino in PlatformIO. I tried unplugging the programmer because I saw some voltage leaking from it. I tried emptying the caps and trying again. I probed every single pin to see if I wrote the wrong pin. Then after all of that, when I switched to non Optiboot (having to find online that I have to downgrade megaTinyCore), and flashing that, it works. I think it was because flashing a bootloader burns some fuses to expect a bootloader, but when I flash my code it actually overwrites the bootloader code because I don’t have access to the TX and RX pins typically used to flash when Optiboot is installed, and that just caused the code to not run."}, {"post_id": 14058, "ts": "2026-06-23T01:15:22Z", "hours": 2.3747, "text": "Soldered Smaller PCBs, Ordered Missing Parts, Continued CAD work I soldered most of the small PCBs, but now I need to order the parts I missed from the first order I placed. I’m also running out of 0.1uF caps, which sucks. I added a spot and holes for a fan on the camera mount and also some arm segment CAD improvements and back plating to hold the metal rods in. I printed out a test and it works fine. As for the PCBs, I’m still waiting for a few parts."}, {"post_id": 13444, "ts": "2026-06-22T00:49:23Z", "hours": 2.6311, "text": "Continued Soldering PCB (Diodes/LEDs, power circuitry, etc) and worked on arm CAD. For the PCB, after some time, I got the power switching circuit to output power. It’s a collection of things that I hope will make it safer, with a some diodes and a fuse, some MOSFETs, so the main MCU can command to send power, and also another stage that requires the E-STOP to not be pressed to actually be able to send power through with two MOSFETs (one main power, another switch the main MOSFET). I added a fan to the global shutter main wrist camera since it gets hot, and added a new “head” to the arm segment CAD (the heads are swappable depending on what you need to print) for the smaller motor for the last DOFs in the arm. It fits my custom daisy chaining two part PCB hat for the MG996R to give it current, temp, power sensing, and daisy chaining power and data via a RS485 bus with an onboard MCU to provide communication and control. I added some holes for airflow for this PCB. I also added some screw holes to actually connect the halves of the arm together."}, {"post_id": 12830, "ts": "2026-06-21T00:22:41Z", "hours": 1.6036, "text": "Continued Soldering and Working on CAD I snapped some headers and soldered on some more ICs on the PCBs. I did also mess up and ordered a wrong footprint for a part, so now I have to delay that too. It’s so tiny I can barely see the pins. I also worked on the CAD, where I designed the stereo camera holder, added a spot for the RPi 5 to go on top, and maybe a display. I also made a V2 of my grabber since the old one didn’t work well. It also seems that Stardance isn’t syncing my time properly, and it’s missing a few hours so that’s annoying :("}, {"post_id": 12281, "ts": "2026-06-20T01:43:23Z", "hours": 5.3406, "text": "I soldered some parts on the PCB, and worked on the CAD files some more I did realize that I forgot some parts, so I ordered them on DigiKey. I’ll continue soldering the rest tomorrow. One of the parts was the LDO, which I only found out because I soldered the parts and realized that the voltage being put on the 3.3V rail is 5V My project needs both versions of the same LDO and I only bought the 5V one I also bought the wrong resistors. I’ve ordered them and they should arrive in a week or so. My design of stacking the PCBs and then adding the buck modules in the middle might be very challenging, and I might need to stack multiple headers on top of each other to fit the modules inside. Hopefully it will still fit inside my arm segment and not short anything. There also needs to be sufficient airflow, which is def a challenge"}, {"post_id": 10584, "ts": "2026-06-17T12:06:26Z", "hours": 1.8508, "text": "Added Bottom Reinforcements with holes for magnets and wiring Added Fans and airflow holes And just fixed and refined the CAD, like adding spots for magnetic attached front and back plates and more"}]...
|
Title: revo by @ratmuds | Stardance
Devlogs:
Adde Title: revo by @ratmuds | Stardance
Devlogs:
Added Bottom Reinforcements with holes for magnets and wiring Added Fans and airflow holes And just fixed and refined the CAD, like adding spots for magnetic attached front and back plates and more
I soldered some parts on the PCB, and worked on the CAD files some more I did realize that I forgot some parts, so I ordered them on DigiKey. I’ll continue soldering the rest tomorrow. One of the parts was the LDO, which I only found out because I soldered the parts and realized that the voltage being put on the 3.3V rail is 5V My project needs both versions of the same LDO and I only bought the 5V one I also bought the wrong resistors. I’ve ordered them and they should arrive in a week or so. My design of stacking the PCBs and then adding the buck modules in the middle might be very challenging, and I might need to stack multiple headers on top of each other to fit the modules inside. Hopefully it will still fit inside my arm segment and not short anything. There also needs to be sufficient airflow, which is def a challenge
Continued Soldering and Working on CAD I snapped some headers and soldered on some more ICs on the PCBs. I did also mess up and ordered a wrong footprint for a part, so now I have to delay that too. It’s so tiny I can barely see the pins. I also worked on the CAD, where I designed the stereo camera holder, added a spot for the RPi 5 to go on top, and maybe a display. I also made a V2 of my grabber since the old one didn’t work well. It also seems that Stardance isn’t syncing my time properly, and it’s missing a few hours so that’s annoying :(
Continued Soldering PCB (Diodes/LEDs, power circuitry, etc) and worked on arm CAD. For the PCB, after some time, I got the power switching circuit to output power. It’s a collection of things that I hope will make it safer, with a some diodes and a fuse, some MOSFETs, so the main MCU can command to send power, and also another stage that requires the E-STOP to not be pressed to actually be able to send power through with two MOSFETs (one main power, another switch the main MOSFET). I added a fan to the global shutter main wrist camera since it gets hot, and added a new “head” to the arm segment CAD (the heads are swappable depending on what you need to print) for the smaller motor for the last DOFs in the arm. It fits my custom daisy chaining two part PCB hat for the MG996R to give it current, temp, power sensing, and daisy chaining power and data via a RS485 bus with an onboard MCU to provide communication and control. I added some holes for airflow for this PCB. I also added some screw holes to actually connect the halves of the arm together.
Soldered Smaller PCBs, Ordered Missing Parts, Continued CAD work I soldered most of the small PCBs, but now I need to order the parts I missed from the first order I placed. I’m also running out of 0.1uF caps, which sucks. I added a spot and holes for a fan on the camera mount and also some arm segment CAD improvements and back plating to hold the metal rods in. I printed out a test and it works fine. As for the PCBs, I’m still waiting for a few parts.
Finally got ATtiny3216 on PCB Working This took so so long. Basically, I spent hours trying to get it to work. First, the 3.3V rail wasn’t getting power and the LED wasn’t lighting so I had to resolder the voltage regulator and then both green LEDs lit up, meaning everything was working. Then I got my FTDI programmer, and plugged it into my PCB. Because I have a FTDI programmer and the ATtiny3216 has a UPDI programming interface, there is a resistor on the board to combine the two pins into one. Even just getting megaTinyCore installed in Arduino IDE was a pain. The website that hosted the package info was down again, with an expired certificate. Apparently, this happens very often with it but I found an alternative mirror. Then I tried flashing code, and it didn’t work. Then I realized that the board type I was using was the Optiboot version, and I couldn’t find the non Optiboot version so I had to flash Optiboot onto the MCU. I did not realize that doing this would cause problems later on. I also had to switch the programmer from the one that programs Arduinos to the UPDI programmer. But I STILL couldn’t get any GPIO to work. I just tried things for hours. I switched to PlatformIO. I tried switching from C to Arduino in PlatformIO. I tried unplugging the programmer because I saw some voltage leaking from it. I tried emptying the caps and trying again. I probed every single pin to see if I wrote the wrong pin. Then after all of that, when I switched to non Optiboot (having to find online that I have to downgrade megaTinyCore), and flashing that, it works. I think it was because flashing a bootloader burns some fuses to expect a bootloader, but when I flash my code it actually overwrites the bootloader code because I don’t have access to the TX and RX pins typically used to flash when Optiboot is installed, and that just caused the code to not run.
Worked on firmware & CAD & Soldered Second PCB I got the PCB and ATtiny3216 to power a servo. I soldered on the remaining components on it, like the custom LED (which just turns on when the motor is spinning for now) and the 100uF capacitor and also the RS485 bus IC. I also changed the CAD of the arm to use a bearing and changed the servo horn to fit inside of the bearing. I’ve ordered right angle headers and the bearing and metal servo horn already. I also added some transparent parts to the arm design to make it look more interesting hopefully. I also am almost done soldering the second servo PCB. Now that I have all the parts ready and I actually got better at soldering ICs I can do it faster now.
Done Soldering Most PCBs, Crimped JST wires kind of I’m pretty much done soldering, I just have like 3 more tiny PCBs and I should be done. The big main board PCBs are pretty much done, I just need to make some botched tall headers since the clearance of regular headers are too small, and the servo PCBs are almost done, with just some connectors left to solder. Soldering JST 1.25mm wires ARE THE WORST EVER THING TO EVER EXIST I spent 2 hours crimping terminals on multiple wires and its so so so annoying. I can barely hold the terminal itself and they are so easy to bend. I couldn’t afford the real tool to crimp them, so I have cheap crimpers that are the wrong size and can’t technically crimp these. If crimping the metal things wasn’t bad enough, inserting the terminals into the housing was even worse. The housing would bend, or I would accidentally somehow insert it where it shorts the pin next to it??? Also while soldering a JST 1.25mm connector on a PCB, I ripped the pads clean off the PCB. I guess that one just will be missing the daisy chain feature because it only has one connector for data now and all the components and MCU are already soldered on, which really sucks. The rest of the servo PCB (4 in total for now) went fine though, and I’m getting faster at it.
Finished Soldering all Smaller PCBs & Got RS-485 communication working from main board to servo PCBs First, I finished soldering the PCBs. I added the connectors for power and the small data connectors. I also finished the servo expansion boards that hold the magnetic encoder and sensor. I also finished soldering the joint encoder PCBs that will track shoulder and elbow lift servo positions. I also got the bus communication to work. It was really really painful and I was really scared it wouldn’t work. First, the PCBs wouldn’t communicate at all. But eventually, I realized that it was because I wasn’t supplying 3.3V to the main board. This is when I realized that I haven’t adjusted the buck converters on the main board to supply the correct voltage, so I was about to unsolder the buck converter when I realized that I could just set the power supply to 5V (which the ICs on the mainboard can handle luckily), and then adjust the voltage down to 3.3V. But after a really long time of debugging, it still wasn’t working. The connection would sometimes work but was really flaky. Eventually, I soldered on the RPi Pico 2 onto the board completely and then found out the reason, it was because the ATtiny3216 was set to clock at a slow speed that would mess with the communication. I made them use the SerialTransfer library to send data more reliably and it now can communicate properly :)
Crimped JST VH wires, Connected JST 1.25mm wires, Soldered more PCB connectors Crimping JST VH wires is a ton easier than JST 1.25mm, and after a bunch of failed attempts still, I got some okay crimps that work finally. It took me a long time because I didn’t know that I had to rotate the wire for the hook on the terminal to go into the housing hole, and then also that the box shape part on the terminal actually has to stick out of the crimper or the crimper will crush the whole terminal into bits
Servo PCB Daisy Chaining Working I plugged in the JST VH and JST 1.25mm wires into the PCBs, and they seem to work! I adjusted the message struct to hold a desired PCB sort of address or ID. When the MCU detects that the ID matches the PCB (by using the solder jumpers at the bottom of each PCB to program the PCB ID), only then it lights up the LED and replies to the main board. The mainboard now loops through IDs and sends a message and waits for a response. I’m very very happy this worked without any really big problems.
Servo Control Working, More CAD and 3D Printing I got the mainboard to be able to control the servo on the servo PCBs. I also tested a bunch of the functions, like the magnetic sensor, neopixel LED, etc The communication now sends the PCB ID, and the target speed and the servo PCB echos it back and moves the servo. I also worked on the CAD (and refined) for the mainboard connector that will make connecting the two mainboards not a total pain. I also soldered the connectors on the mainboard PCBs for them to connect to each other.
Mainboard and other CAD I got the mainboard to stack on top of each other with a weird jumper and two piece jumper holder and some screws setup which required some revisions and trying to get everything to fit. I’ve squeezed one of the DC buck modules into between the mainboard, and the second arm segment will hold the two remaining DC buck modules. The bottom mainboard PCB also has 2 smaller buck modules. There’s a lot of things going on with the voltages in this project due to the servos peak current draw being so large. I also refined the arm segment CAD by some reprints and made the DS5180 servo fit better. I’ve also made one of the buck module mounts for the second arm segment to fit more cleanly.
Bidirectional Communication To PC/RPi 5 with LeRobot & More CAD changes I setup a basic class for my robot in LeRobot (which was a little confusing) and then I also got communication between the Pico and my PC working. Originally I have SPI pins exposed on my mainboard PCB to connect to the RPi 5’s GPIO pins, but for some reason after lots of debugging, even running it at super low speeds it just would not work. So I switched to just using serial over USB, and using the SerialTransfer library to send data more reliably. The script on the PC now can send target joint angles, and receive a lot of data back, like if the joint is online, temp, current, angle, homing sensor, home status, LED, firmware version, voltage, etc I also iterated on the CAD for everything, and it should be done soon. It’s just a bunch of tolerance fixes to make everything fit at this point and some new things like mounts for encoders and DC buck modules and fixing the CAD for the custom MG996R case.
Rewrote all firmware; Fixing Servo Cover and a ton of other CAD; Almost fried everything For the CAD, it doesn’t look like much changed, but I’ve basically redesigned a bunch of things and fixed tolerances and now it should move really smoothly. With the bearings added, everything moves incredibly smoothly now Especially the servo cover was annoying. I needed to attach a magnet to the shaft which was really annoying. I haven’t logged that well, I’ve done more like 15 hours of work instead of just 5 but whatever Most of those hours was the painful debugging. RS-485 busses, JSON not communcating with the PC, dropped connections, corrupted data, disconnected jumpers, FTDI programmer becoming flaky for some reason It’s just been pain :((( Now the PC (screenshot) recieves all the data and sends all the data You can see a lot (not all) of the telemetry being received. Ignore the volts though my math is wrong. Realtime connecting now works smoothly, as you can see the other RS485 servos are offline.
Servo firmware almost done The servo firmware now (with the mainboard) sends validation data back and forth so both the servo and mainboard can verify that the data was sent successfully and can ignore corrupted packets because my wiring can be flaky sometimes The firmware now sends real data again and is much more robust, with a proper stateful LED that shows useful information, like offline, online and driving motor, homing, error (fast flashing of LED as red), and the error state is also triggered in the case of corrupted packets (I tried it and it works :)) I’m also still printing out the pieces to assemble the arm. I actually have more hours working on it, I just forgot to log :(((((((
Finalizing hardware I crimped and soldered almost the remaining wires, I’ve made some last redesigns to the arm CAD and I’m now fitting everything into the new prints and assembling. I’ve also had a ton of trouble with my servo PCBs lately, but I found out a lot of the issue was my programmer is actually fried somehow, so I’m now using an old RPi Pico to act as a UPDI adapter so PlatformIO can now successfully program the ATtinys much better now. A lot of the CAD was slightly tweaked so that everything fits better
Test assembly and fitting of robot arm I am mostly done with the core functionality of the mainboard, so i packed everything together and double checked eerything works including power Then I started assembling most of the servos The smaller servo casing doesn’t fit very well, and the transparent window doesn’t fit either But the magnetic cover for the arm segments works great :) It was a lot of fitting, screwing, testing with multimeter, etc
Mainboard Stack Redo & Firmware Updates and Test Web UI I had to take the electronics out, and redo some of the wiring. The screw terminals are pretty cheap and suck, which makes it incredibly annoying to use as it’s impossible to fit these thicker AWG wires in and they sometimes slide out of the terminals. When I’m done I’m probably going to hot glue the wires. The incredibly fragile flexible extension jumpers for data transfer between the stack is also super fragile, and especially doesn’t grip. Sometimes the data wires just slip out. I took apart the arm, as during testing the motor stripped some screws. I’ve ordered some heat set inserts to prevent that from happening again, which will require me to reprint all the arm segments again. I also added a simple web UI for moving the joints. There is an empty ThreeJS sidebar and the right has some graphs (real data) from the mainboard sensors. The smaller MG996R servos haven’t been mounted yet due to a power delivery issue from the mainboard but hopefully that will be fixed soon.
Assembled Basic Arm Parts and Packaged Main Board Assembly; Reprogrammed servo MCUs & worked on web UI I redid some soldering on the mainboard PCB, secured connections, and secured everything with tape for now. I’ll likely have to reprint the first arm segment to fit everything in flush because as you can see there are wires and things bulging out of the segment itself right now. I also redesigned the CAD to include heat set inserts. I did programming and a bunch of bug testing and fixing too. An hour of time was lost because Lapse errored out :((((( very sad about that :( I also had an issue with data corruption on the RS485 bus but that is fixed now, and it works like it should.
New Mainboard Cover, Wiring, Bearing Revamp, Heatset Inserts, Servo Cover I added space for the mainboard segment, now it has clearance to actually fit, I redid the cover for this segment, and now it can allow the wires to come out The servo mount now has heatset inserts, because the previous screw in print kept slipping out, but this time the screws just would not go into the inserts through the mount for some reason? The screws went in normally, but with the tolerances, when multiple screws go in they just fight and push against the edge of the insert instead of going in. The MG996R servo housing now has been redesigned, based off of picture references and calipers to attempt to be more accurate than the last one to try and reduce the amount of bad tolerances affecting the gears and making them misaligned, reducing torque output. And just general wiring and CAD work.
Heatset Inserts Working; Fixing Faulty Motor Power Connections; Internal Fan Power Connectors I verified that the servo cover works, and it’s much much better than the last version. The tolerances are much better this time, leading to less stress on the gears. The same amount of turning uses around 100mA compared to 300mA before, almost reaching it’s limit without any load. Some motor power connectors disconnected, so I found it with a multimeter and added hot glue to some connectors to secure them. I soldered the fan power things inside the PCB, but realized that the JST connectors I’m using are different from the fans. I might have to make a sort of adapter or something by crimping more wires. And the heatset inserts finally work after some tweaking, before the inserts would get misaligned when put in, now with a aligning lip thing it can be slotted in and melted in more accurately.
Reprinted Arm Segments; Added Segment Cover; Servo Mount Working; Working on Web UI I reprinted the arm segments, hopefully for one of the last times, I’ve went through so much filament already. It now allows the mainboard to be neatly packed inside, hiding most of it while still allowing wires to come out. Due to the design of the mainboard, the wires do have to stick out the front like that sadly. To avoid crushing wires, the servo mount has been expanded to allow more clearance for wires and general electronics. The servo mount works now with a new design. I remeasured and adjusted the sketches and added proper hole sizes and a little chamfer to allow the insert to slot in before using a soldering iron to melt it in to help align much better than before. The web UI now shows a representation of the arm. It’s not tuned yet, so the angles are wrong but I’ll fix it soon. I had to move everything from Fusion to Onshape to create the assemblies, and then use a Python library to convert the Onshape assembly into a URDF file that can be rendered with the correct joints inside ThreeJS. Next, I’ll be adding IK and general arm control.
Working on IK System & Resoldered Joints Again Bruh so my robot arm after finally being assembled by the way exceeded it’s limits and tore its wires out. I had to take apart the mainboard assembly again, which just is SO TEDIOUS. I just dumped solder and hot glue again and fixed a short caused from another wire being sheared off. Also I’m working on the IK system, but it’s not really going well right now. I need to add offsets and config to each of the motors to get them to work correctly. The motors hooked up right now started crashing into my table sadly. Hopefully it will work soon. I also continued working on the servo case. I still haven’t added the code to calibrate and get closed loop control on the MG996R servos. The DS5180 encoders should be easier though.
V2 Servo Case Working; Servo Code Revamp WIP After around 10 more revisions, the new servo case is fully working with the magnetic extender. The V2 is significantly better designed and higher efficiency than the last, more guess and check result. I’ve also started to rewrite the servo code. Right now, its really messy and just kind of snowballed over time as I’ve slapped on patches and features to a fundamentally weak base. I’m in the progress of writing that now, hopefully it will be done soon. It will also include the new auto calibration and encoder usage and PID (and potentially advanced auto tuned curve to combat motor acceleration overshoot and backlash)
Servo Code I did some slight refining to the servo case again, making the tolerances tighter to keep the gears from wobbling. It’s still sort of loose, so I need to just keep trying over and over again. I’m also still writing the servo code. It’s already much more organized than before. I’m also learning Vim keybinds and stuff to try and code faster. The RS485 bus communication works now, and it’s just sending dummy telemetry data back right now. It can also control the servo fine. I’ve just been doing like the lower level architecting I guess, or not really I’m not sure. Before everything was crammed into a single file and now there’s actually header files and multiple source files and it’s actually somewhat readable. I had an issue with LED control for a second but that’s fixed now :)
MG996Rs Finally Working The servos finally work. I don’t even think this amount of hours logged is equal to how long this took, because I just got tired of it. I think I printed like 20 new revisions of the case and servo mount. It was just so so annoying. While the general case worked, getting a reliable magnet output shaft was impossible. From tolerances, to my own errors to binding to hot glue getting everywhere, or superglue binding random gears, or my getting my fingers stuck to the actual case from superglue (was not fun and hurt) The case finally works. And the prototype code somewhat works too. It basically rotates until the sensor hits zero, it resets the “ticks”. A tick is a raw output from the AS5600. Because this magnet shaft spins faster than the output shaft, like 10x faster, the MCU needs to poll the sensor super quickly, which also needed some optimizations to clear the blocking bus communication wait that would let the magnet skip multiple full turns. The sensor doesn’t internally count turns so we just need to count manually and detect when it jumps from 4096-0 or the other way around. It then spins around until the sensor is hit AGAIN to calculate tick to degrees, assuming the sensor was zeroed before, and then the current ticks would equal 360 degrees. Another problem was the servo needs a PWM signal to move. The threshold from stop to go is pretty garbage on these cheap servos, leading it to spin quite fast already when at the lowest PWM value. Instead when far from the value it increases the PWM signal, closer it brings to minimum and starts linearly flickering the PWM signal from 0 to the speed, with the closer it is the more ratio of time stopped to inch it closer to the target. It actually surprisingly works. It’s very fragile though, any skipped reads, from potentially slow bus transfers would completely throw it off, so all the code running locally on the weak 8 bit MCU needs to be extremely lightweight. Yeah this was super super painful. I’ve been sitting here redoing superglue and code for hours.
Debugging and Fixing Is Killing Me and the Mainboard Exploded :( I have spent SO many hours trying to get this to work. It’s so annoying. This isn’t near how many hours I spent, I’ve been too frustrated to log it. The case is incredibly annoying. Getting the initial case works fine. Doing all of this stuff makes it complicated and break and jam up. The RS485 busses just randomly stop working. The servo output is wiggly and not stable. A PCB header snapped and I didn’t have replacements so I had to bodge solder it back on. The mainboard voltage regulator literally exploded. It was a cheap part but yeah that literally just broke stuff. Fixes to everything. CAD. Firmware. bruh
Dashboard Revamp WIP, Tons of CAD changes, Code Updates, Tolerances I’ve just been refining everything and it’s just going really slowly. Many problems. Magnets shorting out stuff. Magnet too far and not being detected. Wires breaking. I’ve also redesigned the dashboard UI to hopefully look better. I’m still working on it, hopefully it will look more polished later. The dashboard It shows a load speedometer type thing, with the load (max current from a motor out of 500mA) and the temp on the right (for now just dummy value) The motors have cool little animations now too and look less cluttered. I’ve just been working on it a lot. Just everything in general tbh.
Assembled last 4 DoF for Integrated Test I assembled the MG996R servos in a test piece that will represent the full regular arm segment to test if everything worked. With some fiddling it worked. As you can see there’s more transparent pieces. The pieces that connect the previous joint are transparent to show the Neopixel below it a lot better as before the LED was almost completely occluded. The bright green LEDs power status ones are too bright but I can cover them later.
Significantly Better Motor Control and Gripper CAD The motor code was getting a bit messy, so I rewrote it. I separated the motor code from the main control code which cleaned it up a bit. LADRC I’m using LADRC now. It’s kind of like PID, but advanced. I took the implementation from online. I feed it the motor current, encoder value, and the target and it goes. The algorithm or whatever somehow calculates the velocity of the motor and how much “effort” it’s using and then gives an effort to put to the motor. It somehow cancels out like disturbances like gravity, backlash, the general physics, etc. As you can see, the motor control is so so so much better than before. It cleanly decelerates. It handles load and dynamically increases effort. Before there was some oscillation because it just couldn’t figure out how to get to the target, this one is just so much better and so hands off. There’s basically like no calibration as it does it over time :)))
Assembled Full Arm (not all motors active yet for safety) and Basic Interpolation for Control I assembled the new full arm assembly minus the end effector and didn’t plug in the first two motors as they have the highest chance of doing something really bad. I also made some general changes to the code and also added a flag to some motors to interpolate their movement slowly to not explode the robot arm while controlling it.
Fixed Broken Magnet, Redoing all IK joint data and offsets, Stereo depth test An encoder magnet broke off, so I had to disassemble and reassemble the top half of the arm to get to the encoder magnet and glue it back on. I also started properly punching in the IK joint data, before it was mostly just random data but now almost all of the data is mostly correct, and I’m waiting for a print to complete that will flip a motor to finally get the IK simulation matching with real life and have the IK endpoint be tracked at the tip of the gripper. It was a lot of trial and error and measurements. I also started experimenting with adding depth estimation. Eventually this could add collision avoidance IK pathfinding, which would be really cool but it’s just a pointcloud in the render right now. But the robot arm is slowly coming together finally! I’ll be able to grab something soon I think.
Integration Hell I’ve just been like trying to get this stupid project to work. Screws keep falling out, the IK keeps failing, things are hitting each other and wires are being strained I’m in integration hell. Everything works fine on its own, but combining everything is horrible. I’ve been reassembling and trying to fix this stupid thing for so long. Anyway I’ve went through a few more revisions of some CAD and some more refinements and the gripper and camera is now mounted but this is just incredibly incredibly annoying :((((
Setup VR and Gripper, Robot Rapidly Disassembles my robot arm is broken I setup VR and fixed some more IK when I go into VR and try playing around, it instantly flies out and throws itself off the table and breaks into pieces. This is going to be fun to fix.
Finish Project Up :) I wrote a ton in the repository im tired :( https://github.com/ratmuds/revo
Ships:
I wanted to make a robot arm that punched above it’s weight. The price is pretty similar to smaller robot arms on Amazon that may not include cameras, which would need to be purchased seperately. The way this is achieved by using cheap servos, servos that are 100% NOT made for this purpose, and adding most of the functionality of a smart servo back by using a TON of PCBs. It was a lot of soldering. I just wanted to make something that had more features for less money :) This project was SUPER difficult for me, and pushed my limits a bit. The amount of tolerences especially for the stupid custom motor case and magnet and PCBs and the crazy mainboard and generally having everything play well together took so long, I had many days where I quit frustrated. I’m very happy about how it turned out though, even seeing the lots of shortcomings it has....
|
1793152308.0471609
|
1793238708.0471609
|
|
24020
|
My awesome macropad! by @VaishnavS | Stardance
|
VaishnavS
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @VaishnavS | Starda Title: My awesome macropad! by @VaishnavS | Stardance...
|
1792633908.7567213
|
1793238708.7567213
|
|
52810
|
Tabby Tab by @Kinza | Stardance
|
Kinza
|
1
|
8.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-16T16:46:01Z", "hours": 8.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Simple, Modern, and Amazing Minimal Tab! Features Search for whatever you want. You can change color of background not needed to download a pic for color. You can also set a wallpaper or GIF. There also time and date in the corner!", "repo": "https://github.com/KinzaSyedHussain/Tabby-Tab", "demo": "https://tabby-tab.vercel.app/"}]...
|
[{"post_id": 69225, "ts": "202 [{"post_id": 69225, "ts": "2026-09-16T16:43:43Z", "hours": 3.6028, "text": "Simple, Modern, and Amazing Minimal Tab! Changes that I have made! Enhance the shortcuts buttons with pic. Add delete and adding shortcuts. I also change Time and date location. Features ✨ You can change color of background not needed to download a pic for color. You can also set a wallpaper or GIF."}, {"post_id": 66025, "ts": "2026-09-11T15:50:58Z", "hours": 1.7039, "text": "Woohooo! Just added some amazing things! I add the app name on the top of the search box I change the location of time and in date in left side. I add shortcuts of some most use website."}, {"post_id": 62815, "ts": "2026-09-06T10:36:36Z", "hours": 2.4831, "text": "Make minimal tab! with the background change options."}]...
|
Title: Tabby Tab by @Kinza | Stardance
Devlogs:
M Title: Tabby Tab by @Kinza | Stardance
Devlogs:
Make minimal tab! with the background change options.
Woohooo! Just added some amazing things! I add the app name on the top of the search box I change the location of time and in date in left side. I add shortcuts of some most use website.
Simple, Modern, and Amazing Minimal Tab! Changes that I have made! Enhance the shortcuts buttons with pic. Add delete and adding shortcuts. I also change Time and date location. Features ✨ You can change color of background not needed to download a pic for color. You can also set a wallpaper or GIF.
Ships:
Simple, Modern, and Amazing Minimal Tab! Features Search for whatever you want. You can change color of background not needed to download a pic for color. You can also set a wallpaper or GIF. There also time and date in the corner!...
|
1793152309.4628325
|
1793238709.4628325
|
|
17980
|
Pegserve by @Anthonly | Stardance
|
Anthonly
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Pegserve by @Anthonly | Stardance
|
1792633909.5925426
|
1793238709.5925426
|
|
52846
|
Electronic Calculator by @IndexJson | Stardance
|
IndexJson
|
1
|
6.0
|
14
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-24T11:56:56Z", "hours": 6.0, "multiplier": 2.32, "payout": 14, "blessing": "neutral", "text": "I made an electronic calculator. That is a tool for hobbyists that want to make cool project and don’t want to deal with a lot of math. This project makes it simple since it bundles the most used equations into 1 program. I wrote it in C++ with Dear ImGui and GLFW. As rendering backend I chose OpenGL. It supports Linux.", "repo": "https://github.com/IndexAsm/ElectronicCalculator", "demo": "https://github.com/IndexAsm/ElectronicCalculator/releases/tag/v1.0"}]...
|
[{"post_id": 66499, "ts": "202 [{"post_id": 66499, "ts": "2026-09-12T10:33:55Z", "hours": 1.01, "text": "Devlog #05 Overview Voltage divider is now finished! Features For this calculator I decided to add combo boxes to select resistance units. It is quite useful sometimes. And everything else is the exact same as Ohm’s law. You fill all the required fields and it calculates as expected."}, {"post_id": 53957, "ts": "2026-08-24T17:45:27Z", "hours": 0.6994, "text": "Devlog #04 Overview I added a menu and fully finished Ohm’s law calculator. Menu From the menu you can now select what calculator you want to use. For now there aren’t too many options but there will be more in the future. Ohm’s Law Calculator This section is now fully finished! You have to select what to calculate, input all remaining parameters and click Calculate."}, {"post_id": 53697, "ts": "2026-08-24T11:28:05Z", "hours": 1.4592, "text": "Devlog #03 Overview So Ohm’s Law calculator is finished! You can select what to calculate and it will do just that. Language support As you can see everything is translated and has no impact on performance. Further plans I still have to add a few calculators. I was thinking about: Voltage divider Capacitor filter for bridge rectifier Transmission lines"}, {"post_id": 53035, "ts": "2026-08-23T12:57:51Z", "hours": 2.0119, "text": "Devlog #02 Overview I finished language manager. Adding translations is now quite easy. Just add a file and that’s it. Languages can be changed at runtime but it still has a few problem. New Font With addition of a new font all characters are displayed correctly. It now supports latin + cyrylic and of couse greek. And whatever else is in the font by default. Ohm’s Law Calculator Ohm’s law section is starting to take shape. Maintenance Also I refactored a lot of code, cleaned up big files, moved code into function and different files."}, {"post_id": 52398, "ts": "2026-08-22T14:54:48Z", "hours": 0.9042, "text": "Devlog #01 Overview I started working on a calculator that would help hobbyist with their electronic projects. Whenever I am designing a project, I use online calculator for many things: Ohm’s Law, Voltage Divider, Transmission Line. These are just the most common. With this project I intend to make it simpler by combining all of these calculators into one. Language & GUI Library I decided to write the project in C++, because it’s my favorite language. As for the GUI Library I went with Dear ImGui with glfw and opengl3. Language support This project is meant to be multilingual, so I decided to make this system first. Languages are stored as text files with .lang extension. Language Manager load text form this file and stores it in a map. This way adding new languages is very simple. Here you can see a quick demo showing that ImGui is working."}]...
|
Title: Electronic Calculator by @IndexJson | Stard Title: Electronic Calculator by @IndexJson | Stardance
Devlogs:
Devlog #01 Overview I started working on a calculator that would help hobbyist with their electronic projects. Whenever I am designing a project, I use online calculator for many things: Ohm’s Law, Voltage Divider, Transmission Line. These are just the most common. With this project I intend to make it simpler by combining all of these calculators into one. Language & GUI Library I decided to write the project in C++, because it’s my favorite language. As for the GUI Library I went with Dear ImGui with glfw and opengl3. Language support This project is meant to be multilingual, so I decided to make this system first. Languages are stored as text files with .lang extension. Language Manager load text form this file and stores it in a map. This way adding new languages is very simple. Here you can see a quick demo showing that ImGui is working.
Devlog #02 Overview I finished language manager. Adding translations is now quite easy. Just add a file and that’s it. Languages can be changed at runtime but it still has a few problem. New Font With addition of a new font all characters are displayed correctly. It now supports latin + cyrylic and of couse greek. And whatever else is in the font by default. Ohm’s Law Calculator Ohm’s law section is starting to take shape. Maintenance Also I refactored a lot of code, cleaned up big files, moved code into function and different files.
Devlog #03 Overview So Ohm’s Law calculator is finished! You can select what to calculate and it will do just that. Language support As you can see everything is translated and has no impact on performance. Further plans I still have to add a few calculators. I was thinking about: Voltage divider Capacitor filter for bridge rectifier Transmission lines
Devlog #04 Overview I added a menu and fully finished Ohm’s law calculator. Menu From the menu you can now select what calculator you want to use. For now there aren’t too many options but there will be more in the future. Ohm’s Law Calculator This section is now fully finished! You have to select what to calculate, input all remaining parameters and click Calculate.
Devlog #05 Overview Voltage divider is now finished! Features For this calculator I decided to add combo boxes to select resistance units. It is quite useful sometimes. And everything else is the exact same as Ohm’s law. You fill all the required fields and it calculates as expected.
Ships:
I made an electronic calculator. That is a tool for hobbyists that want to make cool project and don’t want to deal with a lot of math. This project makes it simple since it bundles the most used equations into 1 program. I wrote it in C++ with Dear ImGui and GLFW. As rendering backend I chose OpenGL. It supports Linux....
|
1793152310.6845572
|
1793238710.6845572
|
|
57800
|
AEGIS by @aron_roger | Stardance
|
aron_roger
|
2
|
71.0
|
795
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-29T19:55:05Z", "hours": 21.0, "multiplier": 14.56, "payout": 301, "blessing": "neutral", "text": "A NFC tag tracker app, it is on the web right now, for designing and prototyping purpose, although I have written much greater detail in my previous ship, this is just a contiuation to my last ship. So, from the previous feedback, I have fixed few thing worked more on the representation and then also added a instruction page to the routes. I want to say I am happy with where I have reached as said in my previous dev-log, I have decided to get this project a halt, due to other responsibilities and priorities. I wanted to do more than that, but I am glad with whatever I learned along the way, it was all fun. As of now it is still not a native application rather a web hosted testing prototype, you can use the graphs and toggle option to change option, and yeah for now i haven’t yet added different user option, although I started with it. I might be signing off after this, would try to comeback but till then, may everyone do well in anything they do, I would still like to receive feedback, and yeah Ik I have sm things in mind to do and add, but yet again sadly it is kinda hard for me as of now.", "repo": "https://github.com/aron-roger/aegis", "demo": "https://aronnn.pythonanywhere.com/hydration"}, {"ship_num": 2, "ts": "2026-09-19T09:57:04Z", "hours": 50.0, "multiplier": 9.92, "payout": 494, "blessing": "neutral", "text": "AEGIS General intro I made a NFC tracker application, even though it is on the web rn, I have deployed it to pythonanywhere for use, currently. Story-Time: I might be a strange guy but I like to track my habits and count everything, and I surely have done tracking across both digitally and manually on my journal. That is when I knew about NFC stickers where a person showcased how he is using it to track his stuff, and i thought it to be so cool if i can do it too, so I began searching… later, here I am. Challenges I tried my best to make this as best i can, ngl I kinda tripped, and hit so many walls, at some point I was about to give up, but nah, I was more determined to complete it. I watched few HTML videos and CSS workaround, as i learned them through this project too, I learned a lot of stuff, I do not regret it, And the java-script was so hard to learn with my studies and in this short amount of time, that i must day i used AI to get me through it. Happy? Yeah I am so happy, with all I could do I wish i could do more, but as ever I’m not giving up. I am so happy about it, also when i discussed it with my cousin and he was like he wanted to track his water intake, it was hard for him. And i instantly knew, I can do it and I might can help him too. NOTE: I uses a NFC sticker on the objects, for example; water bottle, where the user can scan it whenever he can log his intake, and I have shared the link to where the person can use it, I am sorry not everyone can get a sticker, but I can make sure if they do have it it is most best UX for them. Otherwise, I have added an approach to to manually log the intake, Since, it is suppose to be an app and i haven’t yet made it an app, so i deployed it on pythonanywhere you can try out manual logging into my db. but as soon as the project is completed i will produce it such way the users have their local db to store their intake which is when a mobile app comes in. This a WIP PROJECT and I have so many things in mind to add, as I progress, lets hope I can do it, I believe i can do more pages faster as I have whole workflow in my head. Thank you for reading it this farrrr, arigato gozaimasu.", "repo": "https://github.com/aron-roger/aegis", "demo": "https://aronnn.pythonanywhere.com/hydration"}]...
|
[{"post_id": 75273, "ts": "202 [{"post_id": 75273, "ts": "2026-09-29T16:39:51Z", "hours": 4.0106, "text": "This might be my last dev-log I hate to admit but my study have been over-whelming. I am in 12th grade and catching up with my studies + preparing for a screening test olympiads. It is like juggling them but can’t do anything, I must eliminate something to keep up with everything else. Not gonna lie, it has been so much fun and learning during my time in Star-dance. I would miss this. I wanted to complete aegis-project but I still seem to have a long way to go especially learning dart or xml to host my app. Actually there might a bit more longer way because i haven’t really picked up on java-script either. I am kinda sad because I can not put in my everything, but I am happy with whatever I have learnt, plus all the new people I have met and then also able to tell more people about it. For this dev-log I’d like to showcase my whole app and designs Ive been working on. I have tried learning a lil bit of schema, but unable to give my whole time towards it also, I have also sent my code to ai to help me too. Things I have done instruction route is done for now re-newed the db for new schema (which i would not use after this decision) tweaked some design for my all routes and html which I have attached ss to it."}, {"post_id": 74088, "ts": "2026-09-26T17:15:09Z", "hours": 7.4475, "text": "#YOPP! I tried re-designing my home page and here is hat Ive come up with I used this pale-yellow green. I don’t know if i would change it or keep it. Any-ways here is what Ive been up to and what I did I have read the reasons that came through with the shipment results, and few reviewers claimed that they can’t understand they way it works, which for what i would like to apologize for I should’ve made an instruction screen, or smth more prominent of the usage of my system. I am glad they have pointed it out! So, I have tried making a Home-screen and a simple instruction screen. It was fun and quick process, although few designing got me time tinkering. Here is a overview to what I have done, I used lapse to record my Figma designing hours and then, later tried implementing it inside my code. although there have been so many inconsistencies that I had to use ai to help me, but Im glas with what im at. Then, also I have changed date selector bar which was again fun, because this time there was less friction than before, I’m kinda disappointed that I couldn’t manipulate JS on my own. Aside naturally, everything worked well, now I would like to complete it soon, because my other responsibilities have been hiking. BTW, I am tweaking myself I am kinda super glad with my hydration and sleep routes they are peaking, I would like to highlight them at next dev post, keep getting posted, I am sure you guys would like it"}, {"post_id": 72246, "ts": "2026-09-22T15:00:37Z", "hours": 8.0583, "text": "YO - I’m back I have posted my app to what I designed and where I am rn, first picture is my figma design, second is my where I am… I’ve been wanting to add those animated giphy, let me know how you guys do it. I tweaked my route kinda completed it, I’m kinda happy with this, some of the things are repetitive but so far here is what i did: re-made my date selector bar changed the background for sleep tracker theme sleep button toggle, it was kinda hard to learn DOM manipulation, so I let ai do it (will learn it) set-up routes in the backend, kinda fun to tweak it and used ai to help me clear my mess Honestly, I think must showcase my result properly, it is not a web but an app, soon converting it to a whole app, as im finished with logic routes. NFC is working, soon uploading it on Github. You can send me your reviews as you like my app to be, I would be happy to view them and react to them."}, {"post_id": 70771, "ts": "2026-09-19T18:52:19Z", "hours": 1.18, "text": "IRONY So, I have been flagged, to be using ai styled design, which is sad truly because, I myself had came up with the layout, in figma, and then later i tweaked the design in dark theme, because i probably my eyes hurt working with bright screen lol. light theme I was hoping to use this design, later, for customizing theme option in settings. Apparently, I am switching back to it, after some tweaks, I will be able to push it on github Clarification Also, I want to tell that I wanted to make an app out of it, and all i did rn is just made it on a web, so i got a long way to go, I was am soon using flutter for my application and deployment. I believe i wont be flagged next because yeah, It is my design, i wonder if it is that good or that much slop."}, {"post_id": 70461, "ts": "2026-09-19T07:31:03Z", "hours": 4.5711, "text": "FINALLY, I THINK MY HYDRATION PAGE IS DONE. Changes; First of all I have graphss, like it is working the one day graph is supposed to be a cumulative graph and its working well. fixed few bugs i was facing when i was testing it, i still cannot test 1w and 1 month graph due to limited logs, It was a long way, honestly, i have put my design i made on figma in the later image, and the first one is what Im at rn. If you scroll through my other dev logs you might stumble upon my whole design phase. However, I am glad with what I got to, it is just as expected, I am ship this as a WIP project, please I really put my heart at it, learning and idealizing, I really appreciate your rating and help, Thanks for reading it this farr, really thank you. I will add more details, when i will ship this."}, {"post_id": 69699, "ts": "2026-09-17T16:36:31Z", "hours": 6.0686, "text": "HYDRATION TRACKER TLDR; deployed it on pythonanywhere removed variable input created tables for history I’ve re- the whole hydration.html, due to the reasons my javascript wasn’t performing well with variable input. so now i backed off from it and start to complete the basics. Deployed my project on pythonanywhere so now i can officially use the sticker when i go outside too, please acknowledy this my first time making a dedicated project and i have learned a lot of stuff, yet i try to keep on improving ##Future plans… making graphsss (tuff) ig, i always liked visual representation. sleep.html but diff cards mihi med tracker (custom medication) Will work on better dev posts."}, {"post_id": 67561, "ts": "2026-09-13T18:15:53Z", "hours": 8.3778, "text": "It was supposed to be a mobile app but it looks cool anyways, YEPP i worked on backend, again and yet got to this new screen with new cardsss. NOW user can adjust the amount logs, there is bug i found while testing but then i got message that i must dev post soon, anyways les goo, i would like to know and hear more suggestion on anything about my project."}, {"post_id": 66661, "ts": "2026-09-12T14:55:37Z", "hours": 8.1722, "text": "Worked on Backend and front end both, i cant decide which theme to choose, that blue one or white one, Anyways, backend for hydration route is all set i might not need to tweak it anymore or i must say much. front end, im honestly enjoying all of this, i learnt a lot…"}, {"post_id": 65883, "ts": "2026-09-11T10:07:28Z", "hours": 3.1342, "text": "Worked on the back-end, css html too. i took few courses from html to get started with it, next im refining my page to make it look more like my figma design and also im re-building backend py code. Till, i receive my stickers, ordered from a store, imma work on on making front end better and re doing my py files for a formal structure."}, {"post_id": 64210, "ts": "2026-09-08T13:21:21Z", "hours": 3.7906, "text": "Honestly for now im done with the design all thing sive made myself everything took lotta time to get to this point and it is only design, i will tweak more like get home page and more tacker with more features soon, maybe add badges and its tab, There is still a lot to do. (sorry for poor quality video i still cant figure out how to use obs screen rec.) SO, IM DONE FOR NOW WITH DESIGNING, I am starting at backend code using flutter i have shared the files to test my backend and it is going good fo rnow next we adding pages and its logic. It is all new im learning midway. I would like if you can suggest me any idea for tracker although i might add a medicine tracker and brush at night tracker because i believe there are many people who do not brush at night too, correct me and share your review, thankss."}, {"post_id": 62356, "ts": "2026-09-05T18:00:09Z", "hours": 7.4225, "text": "Today, I have made more buttons and started at both hydration and sleep tracker page. From last time, I have been more consistent with so many things. Next, I am adding graphs to the system, so finally start at code. And would probably post a preview to the design. For those who don’t know, im building nfc tracker system for day to day life and for now i am only integrating 2 trackers for now."}, {"post_id": 61705, "ts": "2026-09-04T19:02:13Z", "hours": 8.2783, "text": "OK, it was my first time using figma, started my design (ui) for my app: Aegis. There a lot more to go…"}]...
|
Title: AEGIS by @aron_roger | Stardance
Devlogs:
Title: AEGIS by @aron_roger | Stardance
Devlogs:
OK, it was my first time using figma, started my design (ui) for my app: Aegis. There a lot more to go…
Today, I have made more buttons and started at both hydration and sleep tracker page. From last time, I have been more consistent with so many things. Next, I am adding graphs to the system, so finally start at code. And would probably post a preview to the design. For those who don’t know, im building nfc tracker system for day to day life and for now i am only integrating 2 trackers for now.
Honestly for now im done with the design all thing sive made myself everything took lotta time to get to this point and it is only design, i will tweak more like get home page and more tacker with more features soon, maybe add badges and its tab, There is still a lot to do. (sorry for poor quality video i still cant figure out how to use obs screen rec.) SO, IM DONE FOR NOW WITH DESIGNING, I am starting at backend code using flutter i have shared the files to test my backend and it is going good fo rnow next we adding pages and its logic. It is all new im learning midway. I would like if you can suggest me any idea for tracker although i might add a medicine tracker and brush at night tracker because i believe there are many people who do not brush at night too, correct me and share your review, thankss.
Worked on the back-end, css html too. i took few courses from html to get started with it, next im refining my page to make it look more like my figma design and also im re-building backend py code. Till, i receive my stickers, ordered from a store, imma work on on making front end better and re doing my py files for a formal structure.
Worked on Backend and front end both, i cant decide which theme to choose, that blue one or white one, Anyways, backend for hydration route is all set i might not need to tweak it anymore or i must say much. front end, im honestly enjoying all of this, i learnt a lot…
It was supposed to be a mobile app but it looks cool anyways, YEPP i worked on backend, again and yet got to this new screen with new cardsss. NOW user can adjust the amount logs, there is bug i found while testing but then i got message that i must dev post soon, anyways les goo, i would like to know and hear more suggestion on anything about my project.
HYDRATION TRACKER TLDR; deployed it on pythonanywhere removed variable input created tables for history I’ve re- the whole hydration.html, due to the reasons my javascript wasn’t performing well with variable input. so now i backed off from it and start to complete the basics. Deployed my project on pythonanywhere so now i can officially use the sticker when i go outside too, please acknowledy this my first time making a dedicated project and i have learned a lot of stuff, yet i try to keep on improving ##Future plans… making graphsss (tuff) ig, i always liked visual representation. sleep.html but diff cards mihi med tracker (custom medication) Will work on better dev posts.
FINALLY, I THINK MY HYDRATION PAGE IS DONE. Changes; First of all I have graphss, like it is working the one day graph is supposed to be a cumulative graph and its working well. fixed few bugs i was facing when i was testing it, i still cannot test 1w and 1 month graph due to limited logs, It was a long way, honestly, i have put my design i made on figma in the later image, and the first one is what Im at rn. If you scroll through my other dev logs you might stumble upon my whole design phase. However, I am glad with what I got to, it is just as expected, I am ship this as a WIP project, please I really put my heart at it, learning and idealizing, I really appreciate your rating and help, Thanks for reading it this farr, really thank you. I will add more details, when i will ship this.
IRONY So, I have been flagged, to be using ai styled design, which is sad truly because, I myself had came up with the layout, in figma, and then later i tweaked the design in dark theme, because i probably my eyes hurt working with bright screen lol. light theme I was hoping to use this design, later, for customizing theme option in settings. Apparently, I am switching back to it, after some tweaks, I will be able to push it on github Clarification Also, I want to tell that I wanted to make an app out of it, and all i did rn is just made it on a web, so i got a long way to go, I was am soon using flutter for my application and deployment. I believe i wont be flagged next because yeah, It is my design, i wonder if it is that good or that much slop.
YO - I’m back I have posted my app to what I designed and where I am rn, first picture is my figma design, second is my where I am… I’ve been wanting to add those animated giphy, let me know how you guys do it. I tweaked my route kinda completed it, I’m kinda happy with this, some of the things are repetitive but so far here is what i did: re-made my date selector bar changed the background for sleep tracker theme sleep button toggle, it was kinda hard to learn DOM manipulation, so I let ai do it (will learn it) set-up routes in the backend, kinda fun to tweak it and used ai to help me clear my mess Honestly, I think must showcase my result properly, it is not a web but an app, soon converting it to a whole app, as im finished with logic routes. NFC is working, soon uploading it on Github. You can send me your reviews as you like my app to be, I would be happy to view them and react to them.
#YOPP! I tried re-designing my home page and here is hat Ive come up with I used this pale-yellow green. I don’t know if i would change it or keep it. Any-ways here is what Ive been up to and what I did I have read the reasons that came through with the shipment results, and few reviewers claimed that they can’t understand they way it works, which for what i would like to apologize for I should’ve made an instruction screen, or smth more prominent of the usage of my system. I am glad they have pointed it out! So, I have tried making a Home-screen and a simple instruction screen. It was fun and quick process, although few designing got me time tinkering. Here is a overview to what I have done, I used lapse to record my Figma designing hours and then, later tried implementing it inside my code. although there have been so many inconsistencies that I had to use ai to help me, but Im glas with what im at. Then, also I have changed date selector bar which was again fun, because this time there was less friction than before, I’m kinda disappointed that I couldn’t manipulate JS on my own. Aside naturally, everything worked well, now I would like to complete it soon, because my other responsibilities have been hiking. BTW, I am tweaking myself I am kinda super glad with my hydration and sleep routes they are peaking, I would like to highlight them at next dev post, keep getting posted, I am sure you guys would like it
This might be my last dev-log I hate to admit but my study have been over-whelming. I am in 12th grade and catching up with my studies + preparing for a screening test olympiads. It is like juggling them but can’t do anything, I must eliminate something to keep up with everything else. Not gonna lie, it has been so much fun and learning during my time in Star-dance. I would miss this. I wanted to complete aegis-project but I still seem to have a long way to go especially learning dart or xml to host my app. Actually there might a bit more longer way because i haven’t really picked up on java-script either. I am kinda sad because I can not put in my everything, but I am happy with whatever I have learnt, plus all the new people I have met and then also able to tell more people about it. For this dev-log I’d like to showcase my whole app and designs Ive been working on. I have tried learning a lil bit of schema, but unable to give my whole time towards it also, I have also sent my code to ai to help me too. Things I have done instruction route is done for now re-newed the db for new schema (which i would not use after this decision) tweaked some design for my all routes and html which I have attached ss to it.
Ships:
AEGIS General intro I made a NFC tracker application, even though it is on the web rn, I have deployed it to pythonanywhere for use, currently. Story-Time: I might be a strange guy but I like to track my habits and count everything, and I surely have done tracking across both digitally and manually on my journal. That is when I knew about NFC stickers where a person showcased how he is using it to track his stuff, and i thought it to be so cool if i can do it too, so I began searching… later, here I am. Challenges I tried my best to make this as best i can, ngl I kinda tripped, and hit so many walls, at some point I was about to give up, but nah, I was more determined to complete it. I watched few HTML videos and CSS workaround, as i learned them through this project too, I learned a lot of stuff, I do not regret it, And the java-script was so hard to learn with my studies and in this short amount of time, that i must day i used AI to get me through it. Happy? Yeah I am so happy, with all I could do I wish i could do more, but as ever I’m not giving up. I am so happy about it, also when i discussed it with my cousin and he was like he wanted to track his water intake, it was hard for him. And i instantly knew, I can do it and I might can help him too. NOTE: I uses a NFC sticker on the objects, for example; water bottle, where the user can scan it whenever he can log his intake, and I have shared the link to where the person can use it, I am sorry not everyone can get a sticker, but I can make sure if they do have it it is most best UX for them. Otherwise, I have added an approach to to manually log the intake, Since, it is suppose to be an app and i haven’t yet made it an app, so i deployed it on pythonanywhere you can try out manual logging into my db. but as soon as the project is completed i will produce it such way the users have their local db to store their intake which is when a mobile app comes in. This a WIP PROJECT and I have so many things in mind to add, as I progress, lets hope I can do it, I believe i can do more pages faster as I have whole workflow in my head. Thank you for reading it this farrrr, arigato gozaimasu.
A NFC tag tracker app, it is on the web right now, for designing and prototyping purpose, although I have written much greater detail in my previous ship, this is just a contiuation to my last ship. So, from the previous feedback, I have fixed few thing worked more on the representation and then also added a instruction page to the routes. I want to say I am happy with where I have reached as said in my previous dev-log, I have decided to get this project a halt, due to other responsibilities and priorities. I wanted to do more than that, but I am glad with whatever I learned along the way, it was all fun. As of now it is still not a native application rather a web hosted testing prototype, you can use the graphs and toggle option to change option, and yeah for now i haven’t yet added different user option, although I started with it. I might be signing off after this, would try to comeback but till then, may everyone do well in anything they do, I would still like to receive feedback, and yeah Ik I have sm things in mind to do and add, but yet again sadly it is kinda hard for me as of now....
|
1793152311.8720741
|
1793238711.8720741
|
|
57805
|
Macro pad from scratch by @Abis-Aman | Stardance
|
Abis-Aman
|
1
|
0.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-12T14:06:59Z", "hours": 0.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "So i made a macropad fully from scartch like from switch to case the only think that is not custom is the esp82 and the reason that it is not builded in ki cad or somthing like that is dues me not havimg a pc at first i was stuck on the switch design then i looked online and got some i deas and moddified it to be more simple the second problem was after the upload the esp wont connect to modem but with some thing i fixed it like not fixing it i found that the problem was parental control on wifi so qith some little talk which tuke me 3 days i finally soaped my mother to allow the macropad the main problem of mine is me not having that much support form my family and if u gusys wanna know more read my read me file qjich is not also that great 😁😁", "repo": "https://github.com/AbisAman-Dev/Macro-pad-from-scratch", "demo": ""}]...
|
[{"post_id": 64337, "ts": "202 [{"post_id": 64337, "ts": "2026-09-08T17:13:46Z", "hours": 0.2833, "text": "**Dev log 16: ** so guys iam happy to announce that i habe findished my macropad from scratch project and afyer this post i will ship it. And thtnks for all for supporting me from the fist devlog i realy appreciate that"}, {"post_id": 64262, "ts": "2026-09-08T15:10:41Z", "hours": 0.4, "text": "Dev log 15 : So iam happy to announce to you guys that the building of macropad is finished even though not fully covere on top the top cover wont fit as it will remove the movement of switches now i need to make github page and read me.and one more thing do you guys know like what ishould add in my github repo for this project"}, {"post_id": 64246, "ts": "2026-09-08T14:40:40Z", "hours": 0.5, "text": "**Dev log 14: iam still building the case and it looked kind of sick"}, {"post_id": 64224, "ts": "2026-09-08T14:04:55Z", "hours": 0.3375, "text": "Dev log 13: so this is just me trying to build the case😁😁"}, {"post_id": 64184, "ts": "2026-09-08T12:33:47Z", "hours": 0.4483, "text": "So after many cutting and wiring the part of connection and electronics is over now only the frame build is left"}, {"post_id": 63516, "ts": "2026-09-07T12:47:47Z", "hours": 0.3, "text": "S now the base is done the only part left is the cover or to finish the case and the coding on esp"}, {"post_id": 63048, "ts": "2026-09-06T16:54:31Z", "hours": 0.3167, "text": "Dev log 10 : so i finished the first four switcjes and due to mma calling me for food iam stoppig here"}, {"post_id": 63032, "ts": "2026-09-06T16:31:55Z", "hours": 0.5833, "text": "Dev log-9 : so i started doig the base o the micro pad and it realy workd as i expected"}, {"post_id": 63001, "ts": "2026-09-06T15:54:07Z", "hours": 0.6167, "text": "Dev log -8 : so to clarify the reason why iam doing dev log very quickly or with little gap is that the phone can be taken at any time ad iam scared that the time would not sync so that why"}, {"post_id": 62954, "ts": "2026-09-06T14:51:16Z", "hours": 0.4, "text": "Dev log -7 started building the swithes full with function in the post space i dont know why but cant click enter"}, {"post_id": 62903, "ts": "2026-09-06T13:11:06Z", "hours": 0.6, "text": "Dev log-6 Done the electrinical and mechanical parts of a switch and it really worked iam really happy 😁"}, {"post_id": 62880, "ts": "2026-09-06T12:31:36Z", "hours": 0.45, "text": "Dev log-5 Finished all the switches Only frame"}, {"post_id": 62856, "ts": "2026-09-06T11:57:02Z", "hours": 0.4, "text": "Dev log-4 2 new switche frames"}, {"post_id": 62739, "ts": "2026-09-06T07:51:12Z", "hours": 0.3864, "text": "Dev log-3 Just made the switch deaign good"}, {"post_id": 62164, "ts": "2026-09-05T12:54:09Z", "hours": 0.6008, "text": "Dev log -2 So there a big problem and iam very sad about that the thing is i started recording 2 and a half hours ago but the 2 hours hadnt been shot i dont know why buy when i checked after 2 hours the thing was still zero min yeah in that time i had deawn a diagram of the switch and designed it the right set is the one first one i built in the 2 hoirs which had not been shot and the left set is the one that i made after it it took 34mintunes and the above devlog in that the time i clicked was miscricked to another project named my awsome macropad due to its same kind of name now that thing has a four minute vs code which i had done with codespace setup time so that a thing too and if anyof u gays have any suggestions on simplifying the switch model give a comment i reads it every time"}, {"post_id": 60839, "ts": "2026-09-03T13:47:59Z", "hours": 0.5897, "text": "Dev log - 1 So I started designing the macro pad on paper it real became a good better than I expected"}]...
|
Title: Macro pad from scratch by @Abis-Aman | Star Title: Macro pad from scratch by @Abis-Aman | Stardance
Devlogs:
Dev log - 1 So I started designing the macro pad on paper it real became a good better than I expected
Dev log -2 So there a big problem and iam very sad about that the thing is i started recording 2 and a half hours ago but the 2 hours hadnt been shot i dont know why buy when i checked after 2 hours the thing was still zero min yeah in that time i had deawn a diagram of the switch and designed it the right set is the one first one i built in the 2 hoirs which had not been shot and the left set is the one that i made after it it took 34mintunes and the above devlog in that the time i clicked was miscricked to another project named my awsome macropad due to its same kind of name now that thing has a four minute vs code which i had done with codespace setup time so that a thing too and if anyof u gays have any suggestions on simplifying the switch model give a comment i reads it every time
Dev log-3 Just made the switch deaign good
Dev log-4 2 new switche frames
Dev log-5 Finished all the switches Only frame
Dev log-6 Done the electrinical and mechanical parts of a switch and it really worked iam really happy 😁
Dev log -7 started building the swithes full with function in the post space i dont know why but cant click enter
Dev log -8 : so to clarify the reason why iam doing dev log very quickly or with little gap is that the phone can be taken at any time ad iam scared that the time would not sync so that why
Dev log-9 : so i started doig the base o the micro pad and it realy workd as i expected
Dev log 10 : so i finished the first four switcjes and due to mma calling me for food iam stoppig here
S now the base is done the only part left is the cover or to finish the case and the coding on esp
So after many cutting and wiring the part of connection and electronics is over now only the frame build is left
Dev log 13: so this is just me trying to build the case😁😁
**Dev log 14: iam still building the case and it looked kind of sick
Dev log 15 : So iam happy to announce to you guys that the building of macropad is finished even though not fully covere on top the top cover wont fit as it will remove the movement of switches now i need to make github page and read me.and one more thing do you guys know like what ishould add in my github repo for this project
**Dev log 16: ** so guys iam happy to announce that i habe findished my macropad from scratch project and afyer this post i will ship it. And thtnks for all for supporting me from the fist devlog i realy appreciate that
Ships:
So i made a macropad fully from scartch like from switch to case the only think that is not custom is the esp82 and the reason that it is not builded in ki cad or somthing like that is dues me not havimg a pc at first i was stuck on the switch design then i looked online and got some i deas and moddified it to be more simple the second problem was after the upload the esp wont connect to modem but with some thing i fixed it like not fixing it i found that the problem was parental control on wifi so qith some little talk which tuke me 3 days i finally soaped my mother to allow the macropad the main problem of mine is me not having that much support form my family and if u gusys wanna know more read my read me file qjich is not also that great 😁😁...
|
1793152313.0815208
|
1793238713.0815208
|
|
8603
|
My awesome macropad! by @abdulrehan0317 | Stardanc My awesome macropad! by @abdulrehan0317 | Stardance...
|
abdulrehan0317
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @abdulrehan0317 | S Title: My awesome macropad! by @abdulrehan0317 | Stardance...
|
1792633913.1919963
|
1793238713.1919963
|
|
15478
|
Untitled project by @Neime | Stardance
|
Neime
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled project by @Neime | Stardance
|
1792633914.0478172
|
1793238714.0478172
|
|
57811
|
PersonalSite by @Pirajin | Stardance
|
Pirajin
|
1
|
2.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-04T16:45:42Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Hey guys, it was my first time building a website… And seeing that my first website is mine it feels amazing… Actually i saw some videos on making your own website from scratch and got it working in the first time and i was so happy and edited somethings in between… So check my website… And an important part to mention, since I used Github to deploy this to the public i made an fake version of the website fully on html which I didn’t document, because it should not be counted in the original website… I’m sorry friends pls see the screenshot, it’s the original website… The difference is just the profile phot and some mis-allignments in the fake one, every others are just the same… So pls try it and Rate my Project… Your rating means a lot!…", "repo": "https://github.com/pirajin28/Personal-Website", "demo": "https://pirajin28.github.io/Personal-Website/INDEX!.html"}]...
|
[{"post_id": 76195, "ts": "202 [{"post_id": 76195, "ts": "2026-10-02T17:10:29Z", "hours": 0.6225, "text": "Finally completed my Personal Site… Thanks to ChatGPT, it helped me learn how to build website from scratch…. Sorry i couldn’t document me learning it…"}, {"post_id": 73155, "ts": "2026-09-24T14:32:18Z", "hours": 0.3697, "text": "Today i completed the css code also. It is the official v1. And I will be creating the v2 soon. Stay tuned."}, {"post_id": 60982, "ts": "2026-09-03T17:43:44Z", "hours": 0.7942, "text": "#Devlog 1 - This is the first time creating a website. I’m currently working on making my personal website which is completely about me… Today I worked for an hour around this, used HTML to create it, got some errors but still managed to solve them and created a prototype, PROTOTYPE 1… Stay tuned to know how I’m going to develop it further!"}]...
|
Title: PersonalSite by @Pirajin | Stardance
Devlo Title: PersonalSite by @Pirajin | Stardance
Devlogs:
#Devlog 1 - This is the first time creating a website. I’m currently working on making my personal website which is completely about me… Today I worked for an hour around this, used HTML to create it, got some errors but still managed to solve them and created a prototype, PROTOTYPE 1… Stay tuned to know how I’m going to develop it further!
Today i completed the css code also. It is the official v1. And I will be creating the v2 soon. Stay tuned.
Finally completed my Personal Site… Thanks to ChatGPT, it helped me learn how to build website from scratch…. Sorry i couldn’t document me learning it…
Ships:
Hey guys, it was my first time building a website… And seeing that my first website is mine it feels amazing… Actually i saw some videos on making your own website from scratch and got it working in the first time and i was so happy and edited somethings in between… So check my website… And an important part to mention, since I used Github to deploy this to the public i made an fake version of the website fully on html which I didn’t document, because it should not be counted in the original website… I’m sorry friends pls see the screenshot, it’s the original website… The difference is just the profile phot and some mis-allignments in the fake one, every others are just the same… So pls try it and Rate my Project… Your rating means a lot!…...
|
1793152314.2847373
|
1793238714.2847373
|
|
35138
|
Runes Programming Language by @raulgooo | Stardanc Runes Programming Language by @raulgooo | Stardance...
|
raulgooo
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Runes Programming Language by @raulgooo | S Title: Runes Programming Language by @raulgooo | Stardance...
|
1792633914.8614602
|
1793238714.8614602
|
|
57816
|
Into the Woods by @mink | Stardance
|
mink
|
1
|
3.34
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-30T12:28:00Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "A platformer game.", "repo": "https://github.com/one-mink/into_the_woods", "demo": "https://one-mink.itch.io/into-the-woods"}]...
|
[{"post_id": 82607, "ts": "202 [{"post_id": 82607, "ts": "2026-10-25T12:23:09Z", "hours": 0.3397, "text": "i added cpu particles to the mushrooms and the trader"}, {"post_id": 64979, "ts": "2026-09-09T18:58:38Z", "hours": 1.0325, "text": "I added CPU particles to the rocket to make it look more cool. They appear one the rocket has started"}, {"post_id": 63588, "ts": "2026-09-07T14:46:15Z", "hours": 0.5536, "text": "Added smother movement, also put the ui on the Canvas Layer, Reajusted the hitboxes and fixed a bug (Before that the Count of hearts and fuel was saved so after a game over screen they didn’t get reseted."}, {"post_id": 62796, "ts": "2026-09-06T09:53:38Z", "hours": 0.9797, "text": "I added a font to make the game look more nice. Also added labels for the fuel tank, fuel and mushrooms as well as for the hearts. I also changed the ability from pausing a dog with a stick to make it disappear with one."}, {"post_id": 60843, "ts": "2026-09-03T13:55:01Z", "hours": 0.7578, "text": "I continued working on a game I started in Milkyway. I adjusted some of the platforms cause you got stuck in some places. I also added a start and game over screen. Then I also fixed the bug, that prevented the rocket from starting. There was also another bug in the trader(that trades mushrooms into fuel) that i fixed here."}]...
|
Title: Into the Woods by @mink | Stardance
Devlog Title: Into the Woods by @mink | Stardance
Devlogs:
I continued working on a game I started in Milkyway. I adjusted some of the platforms cause you got stuck in some places. I also added a start and game over screen. Then I also fixed the bug, that prevented the rocket from starting. There was also another bug in the trader(that trades mushrooms into fuel) that i fixed here.
I added a font to make the game look more nice. Also added labels for the fuel tank, fuel and mushrooms as well as for the hearts. I also changed the ability from pausing a dog with a stick to make it disappear with one.
Added smother movement, also put the ui on the Canvas Layer, Reajusted the hitboxes and fixed a bug (Before that the Count of hearts and fuel was saved so after a game over screen they didn’t get reseted.
I added CPU particles to the rocket to make it look more cool. They appear one the rocket has started
i added cpu particles to the mushrooms and the trader
Ships:
A platformer game....
|
1793152315.482807
|
1793238715.482807
|
|
24093
|
My very own WebOS by @Arnav_S | Stardance
|
Arnav_S
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My very own WebOS by @Arnav_S | Stardance
|
1792633915.6989646
|
1793238715.6989646
|
|
1925
|
My awesome macropad! by @sakshimangtani | Stardanc My awesome macropad! by @sakshimangtani | Stardance...
|
sakshimangtani
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @sakshimangtani | S Title: My awesome macropad! by @sakshimangtani | Stardance...
|
1792633916.5668795
|
1793238716.5668795
|
|
57820
|
What's Fresh? by @nokira | Stardance
|
nokira
|
1
|
10.0
|
129
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-21T13:29:07Z", "hours": 10.0, "multiplier": 12.43, "payout": 129, "blessing": "neutral", "text": "Having to decide what to eat it’s always hard, that’s why What’s Fresh? exixsts! Plan your weekly meals ahead of time and stop wasting moments of your life. Just select all the meals for the week or day! Want to select what you are going to eat today? Just select your meals in the home page. Want to plan the whole week? Just select the weekly planner on the menu and choose meals for each day! You can search for various meals and use the filters to include only what you’re feeling like eating so don’t feel stressed about knowing what you want to eat :) All of the selected meals are saved locally and each day the daily planner will sync with the meals planned for the week. Overall, I would say that the project was kind of complicated to make. It wasn’t about the code, but more about finding time to make it. I planned on making this right before school started thinking I could make something polished and include all of the features I thought of, but instead, I got submerged with school work so unfortunately, I won’t be able to polish everything.", "repo": "https://github.com/n0kira/MealPlanner", "demo": "https://n0kira.github.io/MealPlanner/"}]...
|
[{"post_id": 71749, "ts": "202 [{"post_id": 71749, "ts": "2026-09-21T13:24:28Z", "hours": 0.9989, "text": "Devlog #7 Done? Hey everyone!! Yesterday I managed to finish the last details of the website. Unfortunately I realized that implementing all the features I planned at the beginning would take much more time compared to what I have with all the School work I have to do. So more polishing on the research for meals and the grocery list aren’t in the app. It’s sad but I really don’t have much time this week and the next one so I can’t make it before the end of the month… But anyways, I am still happy of what I made, so today I am shipping :) Thanks everyone for the support!!"}, {"post_id": 69238, "ts": "2026-09-16T17:15:23Z", "hours": 2.7472, "text": "Devlog #6 Saving Heyyy!! After a Week I finally managed to work for some more time on this project. In the previous days I didn’t post any devlogs but I did work on it for really short amount of times, and with today I managed to implement the saving and synchronized the daily planner with the weekly one. So now if you fill out the week, each day you will see the selected dishes on the “Today” page. I hope in the upcoming days I’ll get some more time like today so I can work more on this!! Thank you guys for reading :) Have a great day"}, {"post_id": 64772, "ts": "2026-09-09T12:57:04Z", "hours": 0.5828, "text": "Devlog #5 Slow progression Hey guys! Unfortunately, I’ve been really busy with school since it started, so I can’t work as much as before. Today all I could do is being able to select the meals, and I also fixed the filters not showing up. Right now, I am mostly focusing on the JavaScript rather than the CSS, but I will work on it too once I finish with the important parts. Byeee thanks for reading!"}, {"post_id": 63583, "ts": "2026-09-07T14:38:07Z", "hours": 0.9917, "text": "Devlog #4 Nothing works Hi guys! Sooo today I tried adding the filters for the search, but it doesn’t really work. I don’t know why, but all the filters do not show. I will look into this tomorrow since today I don’t have any time for it… Hopefully I will get it working quickly so I can start working some more on the styling. That’s everything for today, thanks for reading!! Byee"}, {"post_id": 62870, "ts": "2026-09-06T12:19:34Z", "hours": 0.8247, "text": "Devlog #3 API is working Hey guys! Today I worked a bit more with the API and I think I now fully understand how it works. Now when clicking Lunch and Dinner, the results will have many different dishes ranging from Seafood to Chicken meals. Ignore the style for now because that’s just to test everything. Also, I am planning to add a filter where you can select categories manually so you can filter meals based on your preferences and if you can’t find anything appealing in the starting page, you can always use the search bar, which now isn’t really working but I’ll do it sooner or later :) Thank you, guys, as always for reading Have a great day!!"}, {"post_id": 62136, "ts": "2026-09-05T12:04:38Z", "hours": 1.5342, "text": "Devlog #2 Work in progress Hello everyone! Today I explored TheMealDB which I will use to fetch all meals. Right now, I started experimenting with it, so what you see will be gone in the next devlogs. So right now, I just have it working on the Breakfast button, because it’s the easiest one since TheMealDB has a category breakfast and I can simply request it like that. For Lunch and Dinner there are no dedicated categories, and I will implement a menu where you can choose different kind of meals, like Pasta, Chicken, Seafood and so on, and will fetch the meals based on the choices. That’s everything for today. In the upcoming days I will be slower in posting devlogs and writing code because school is starting… so I won’t have as much free time as I did until now. Bye!! Thanks for reading"}, {"post_id": 60876, "ts": "2026-09-03T14:59:48Z", "hours": 2.6878, "text": "Devlog #1 What’s Fresh? Hii guys! So today I randomly woke up thinking about something to complete the Frictionless mission, and so I thought about doing a Meal Planner application. You basically can: Plan what you’re going to eat today, you can do this in the morning, this way you won’t have to worry about it in the morning Plan your whole week! You can select meals for each day of the week. So if you select noodles for lunch on Monday, if you check the app on Monday morning, you will already see on the “Today’s Meals” page what you had planned before. I think that could be useful for some people, or at least me, because I never plan my meals and end up last minute having to decide Also, one feature I think I’ll add, is to take all the ingredients needed for the meals you chose and generate a grocery list, so you won’t have to manually check each single one and waste time doing it yourself. I attached a picture of what I did now, I’m not too sure about the colors, I love the green and cream (if that’s cream) color but let me know about it! I am willing to change the palette. Bye guys! Have a great day :)"}]...
|
Title: What's Fresh? by @nokira | Stardance
D Title: What's Fresh? by @nokira | Stardance
Devlogs:
Devlog #1 What’s Fresh? Hii guys! So today I randomly woke up thinking about something to complete the Frictionless mission, and so I thought about doing a Meal Planner application. You basically can: Plan what you’re going to eat today, you can do this in the morning, this way you won’t have to worry about it in the morning Plan your whole week! You can select meals for each day of the week. So if you select noodles for lunch on Monday, if you check the app on Monday morning, you will already see on the “Today’s Meals” page what you had planned before. I think that could be useful for some people, or at least me, because I never plan my meals and end up last minute having to decide Also, one feature I think I’ll add, is to take all the ingredients needed for the meals you chose and generate a grocery list, so you won’t have to manually check each single one and waste time doing it yourself. I attached a picture of what I did now, I’m not too sure about the colors, I love the green and cream (if that’s cream) color but let me know about it! I am willing to change the palette. Bye guys! Have a great day :)
Devlog #2 Work in progress Hello everyone! Today I explored TheMealDB which I will use to fetch all meals. Right now, I started experimenting with it, so what you see will be gone in the next devlogs. So right now, I just have it working on the Breakfast button, because it’s the easiest one since TheMealDB has a category breakfast and I can simply request it like that. For Lunch and Dinner there are no dedicated categories, and I will implement a menu where you can choose different kind of meals, like Pasta, Chicken, Seafood and so on, and will fetch the meals based on the choices. That’s everything for today. In the upcoming days I will be slower in posting devlogs and writing code because school is starting… so I won’t have as much free time as I did until now. Bye!! Thanks for reading
Devlog #3 API is working Hey guys! Today I worked a bit more with the API and I think I now fully understand how it works. Now when clicking Lunch and Dinner, the results will have many different dishes ranging from Seafood to Chicken meals. Ignore the style for now because that’s just to test everything. Also, I am planning to add a filter where you can select categories manually so you can filter meals based on your preferences and if you can’t find anything appealing in the starting page, you can always use the search bar, which now isn’t really working but I’ll do it sooner or later :) Thank you, guys, as always for reading Have a great day!!
Devlog #4 Nothing works Hi guys! Sooo today I tried adding the filters for the search, but it doesn’t really work. I don’t know why, but all the filters do not show. I will look into this tomorrow since today I don’t have any time for it… Hopefully I will get it working quickly so I can start working some more on the styling. That’s everything for today, thanks for reading!! Byee
Devlog #5 Slow progression Hey guys! Unfortunately, I’ve been really busy with school since it started, so I can’t work as much as before. Today all I could do is being able to select the meals, and I also fixed the filters not showing up. Right now, I am mostly focusing on the JavaScript rather than the CSS, but I will work on it too once I finish with the important parts. Byeee thanks for reading!
Devlog #6 Saving Heyyy!! After a Week I finally managed to work for some more time on this project. In the previous days I didn’t post any devlogs but I did work on it for really short amount of times, and with today I managed to implement the saving and synchronized the daily planner with the weekly one. So now if you fill out the week, each day you will see the selected dishes on the “Today” page. I hope in the upcoming days I’ll get some more time like today so I can work more on this!! Thank you guys for reading :) Have a great day
Devlog #7 Done? Hey everyone!! Yesterday I managed to finish the last details of the website. Unfortunately I realized that implementing all the features I planned at the beginning would take much more time compared to what I have with all the School work I have to do. So more polishing on the research for meals and the grocery list aren’t in the app. It’s sad but I really don’t have much time this week and the next one so I can’t make it before the end of the month… But anyways, I am still happy of what I made, so today I am shipping :) Thanks everyone for the support!!
Ships:
Having to decide what to eat it’s always hard, that’s why What’s Fresh? exixsts! Plan your weekly meals ahead of time and stop wasting moments of your life. Just select all the meals for the week or day! Want to select what you are going to eat today? Just select your meals in the home page. Want to plan the whole week? Just select the weekly planner on the menu and choose meals for each day! You can search for various meals and use the filters to include only what you’re feeling like eating so don’t feel stressed about knowing what you want to eat :) All of the selected meals are saved locally and each day the daily planner will sync with the meals planned for the week. Overall, I would say that the project was kind of complicated to make. It wasn’t about the code, but more about finding time to make it. I planned on making this right before school started thinking I could make something polished and include all of the features I thought of, but instead, I got submerged with school work so unfortunately, I won’t be able to polish everything....
|
1793152316.642307
|
1793238716.642307
|
|
23864
|
My very own WebOS by @estieblue | Stardance
|
estieblue
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My very own WebOS by @estieblue | Stardance
|
1792633917.4364161
|
1793238717.4364161
|
|
57835
|
GEngine OS by @govindrkumar | Stardance
|
govindrkumar
|
1
|
13.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-13T11:59:34Z", "hours": 13.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "GEngine OS A webOS simulating an OS in browser. It has been created under stardance WebOS 1 mission . Tech stack used: HTML CSS Javascript Overview Features supports multiple window has start menu and a taskbar supports dragging of window Apps My Projects contains my repos Music can play audio files Sticky Notes write your notes Look Inspired by Windows 10, Uwuntu, Ubuntu….. My journey Learnt Javascript (list, array, arrow function, how to make a window draggable) Learnt z-index and grid display in CSS first site without Flask or Django. Future I will go for web os2 mission after this. I am trying to position this web os as replacament for my personal portfolio site . I will also create a 2D game engine in this after learning Canvas in future properly. I will learn CSS animations after this ship. Contribution Contribution to this repo are welcome through PR!! License This is listed under BSD 3-Clause License . One Last thing Thanks for reading!! Created by Govind….", "repo": "https://github.com/govindrkumar/GEngine", "demo": "https://gengineos.vercel.app/"}]...
|
[{"post_id": 67316, "ts": "202 [{"post_id": 67316, "ts": "2026-09-13T11:57:18Z", "hours": 0.3258, "text": "Devlog-11; Wrote README.md"}, {"post_id": 67296, "ts": "2026-09-13T11:29:48Z", "hours": 1.7989, "text": "Devlog-10; Hi. Today, I finished adding the playlist system to music app. Now, all the keys work. Then, I moved to My project app where I listed my notable repos. Here’s how it looks."}, {"post_id": 66515, "ts": "2026-09-12T11:05:52Z", "hours": 1.2536, "text": "Devlog-9; I have added property to get bigger when songs are added in playlist in my music app."}, {"post_id": 66361, "ts": "2026-09-12T04:50:10Z", "hours": 1.8717, "text": "Devlog-8; Hey Guys! Today, I worked on adding play, pause, increase speed in my music app in GEngine OS. It was tedious work adding each part manually into file and checking if it functions or not. I have added gif image change when song is played, stopped or normal. I will upload video of it’s working tomorrow or day after tomorrow after playlist system starts functioning properly. Currently, I am tired now."}, {"post_id": 65929, "ts": "2026-09-11T12:18:16Z", "hours": 0.8056, "text": "Devlog - 7 working on adding play, pause and forward button."}, {"post_id": 65755, "ts": "2026-09-11T03:20:18Z", "hours": 1.1836, "text": "Devlog-6; Refactored my code, created usable function."}, {"post_id": 63403, "ts": "2026-09-07T07:03:10Z", "hours": 0.6556, "text": "Devlog-5; Today, I added multiple copy function in javascript and started working on settings div."}, {"post_id": 61842, "ts": "2026-09-04T23:26:33Z", "hours": 1.2825, "text": "#Devlog-4; I add property of draggability and close function in my web os."}, {"post_id": 61268, "ts": "2026-09-04T03:47:28Z", "hours": 0.7081, "text": "Devlog-3; So, I created start menu behavior in my GEngine OS."}, {"post_id": 61151, "ts": "2026-09-03T22:27:42Z", "hours": 2.1094, "text": "Devlog-2; Today was fun, chose my OS default wallpaper, designed taskbar and partial start menu."}, {"post_id": 60902, "ts": "2026-09-03T15:40:04Z", "hours": 0.6883, "text": "Devlog-1; I have no idea about JS. I am going to start learning JS by making a game engine from scratch. But, for that I will first create an OS."}]...
|
Title: GEngine OS by @govindrkumar | Stardance
De Title: GEngine OS by @govindrkumar | Stardance
Devlogs:
Devlog-1; I have no idea about JS. I am going to start learning JS by making a game engine from scratch. But, for that I will first create an OS.
Devlog-2; Today was fun, chose my OS default wallpaper, designed taskbar and partial start menu.
Devlog-3; So, I created start menu behavior in my GEngine OS.
#Devlog-4; I add property of draggability and close function in my web os.
Devlog-5; Today, I added multiple copy function in javascript and started working on settings div.
Devlog-6; Refactored my code, created usable function.
Devlog - 7 working on adding play, pause and forward button.
Devlog-8; Hey Guys! Today, I worked on adding play, pause, increase speed in my music app in GEngine OS. It was tedious work adding each part manually into file and checking if it functions or not. I have added gif image change when song is played, stopped or normal. I will upload video of it’s working tomorrow or day after tomorrow after playlist system starts functioning properly. Currently, I am tired now.
Devlog-9; I have added property to get bigger when songs are added in playlist in my music app.
Devlog-10; Hi. Today, I finished adding the playlist system to music app. Now, all the keys work. Then, I moved to My project app where I listed my notable repos. Here’s how it looks.
Devlog-11; Wrote README.md
Ships:
GEngine OS A webOS simulating an OS in browser. It has been created under stardance WebOS 1 mission . Tech stack used: HTML CSS Javascript Overview Features supports multiple window has start menu and a taskbar supports dragging of window Apps My Projects contains my repos Music can play audio files Sticky Notes write your notes Look Inspired by Windows 10, Uwuntu, Ubuntu….. My journey Learnt Javascript (list, array, arrow function, how to make a window draggable) Learnt z-index and grid display in CSS first site without Flask or Django. Future I will go for web os2 mission after this. I am trying to position this web os as replacament for my personal portfolio site . I will also create a 2D game engine in this after learning Canvas in future properly. I will learn CSS animations after this ship. Contribution Contribution to this repo are welcome through PR!! License This is listed under BSD 3-Clause License . One Last thing Thanks for reading!! Created by Govind…....
|
1793152317.8755798
|
1793238717.8755798
|
|
7487
|
My awesome macropad! by @dpk_mocha13 | Stardance
|
dpk_mocha13
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @dpk_mocha13 | Star Title: My awesome macropad! by @dpk_mocha13 | Stardance...
|
1792633918.2804012
|
1793238718.2804012
|
|
38932
|
trout by @nosrep | Stardance
|
nosrep
|
1
|
85.0
|
1696
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-13T06:51:47Z", "hours": 85.0, "multiplier": 16.67, "payout": 1696, "blessing": "neutral", "text": "welcome to trout v2! the goal of this period was to upgrade trout v1 to finally become the strongest chess engine written in haskell (it’s a cool title, ok). i believe it is done, and trout now beats the previous #1, barbarossa. writing a chess engine in haskell is hard and annoying and probably a not good use of my time, but i am stubborn and not very bright so here we are. writing a chess engine is also very annoying in general, involving thousands of hours of cpu time to test changes. everyone say thank you to my poor i7 10700k together with the +300elo (!!!) strength improvement over v1, i also corrected the engine’s time management (no more timing out in chess GUIs) and cleaned up the web interface. to play the engine, you have three options: the demo link: this has the web interface for trout. it’s the original engine compiled down to WASM with a nice ui on top. lichess bot: you can find the lichess bot link at the bottom of the demo website, @TroutBot . it’s running on an oracle free tier server and can only play two games simultaneously; if challenging it hangs, it’s probably playing 2 already. locally: if you want troutbot at peak performance, you can download a chess GUI like En Croissant or Arena, and configure the trout binary (on github releases) in the GUI. trout speaks the standard UCI protocol.", "repo": "https://github.com/Osrepnay/trout", "demo": "https://osrepnay.github.io/trout-web"}]...
|
[{"post_id": 67147, "ts": "202 [{"post_id": 67147, "ts": "2026-09-13T06:34:52Z", "hours": 1.16, "text": "I did some more frontend work! i made the chessground rank/file responsive: for some reason, the default ones are positioned by pixel offsets and break pretty quickly on smaller screens. some light css max fixes this recolored everything: stock chessground theme is kinda lame made the time slider exponential: I wanted to give a larger time range (previous is 100ms-1000ms), but everything past 1s on the high end makes it really unwieldy to set the time on the low end, where people usually play. i made it exponential, i can expand the top end (3000ms now) without the slider feeling weird. it’s easier to show than explain"}, {"post_id": 65064, "ts": "2026-09-09T22:19:08Z", "hours": 4.8239, "text": "managed to update the website to the new version. It was much easier than I expected, considering the amount of changes I’ve made. new version is better (besides just being stronger) in that I factored the iterative deepening code out, which means the website can have sensible time settings now instead of the stupid “max time per depth” thing it had before. I also implemented IIR (internal iterative reductions). I’ve tried it like 10 times before, but this specific version worked for some reason. +28 elo! engine is now safely better than barbarossa."}, {"post_id": 64248, "ts": "2026-09-08T14:43:59Z", "hours": 0.6486, "text": "2.0 release has been tagged! i set up a dockerfile to make static linux binaries and created a windows github action to make the windows binaries. I also finished the test against the last version of the engine:"}, {"post_id": 63549, "ts": "2026-09-07T13:53:00Z", "hours": 4.9844, "text": "it is done….. i think trout is the strongest haskell engine now (i made the passed pawn bonus tunable per-rank, which added around 20 elo. re-tested some other search stuff but they all kinda sucked) i think i’m going to work on polishing the frontend now, tag a 2.0 release soon."}, {"post_id": 62696, "ts": "2026-09-06T05:49:18Z", "hours": 8.5936, "text": "i’ve been doing some tuner work, it’s not great the old tuner was pretty bad. very janky, repeated code, very hard to read, and sloooowwww…. i optimized it by precomputing the factors for each position so it’s just a bunch of multiplications to get the score. upside: order of magnitude speed improvement. downside: 20+ gb memory…. other problem is that the new tuner’s results are not great. they aren’t horribly bad like some other tests, but the gains aren’t as big as i was expecting. this might be a data quality issue? i might write proper datagen code at some point instead of just relying on the output of SPRT tests. I did get a nice 7 elo from removing floating point ops in eval, so that’s nice i guess. i can smell the goal already. Soon (i would attach a picture of the 20gb but i’m kinda running a sprt right now… maybe next time)"}, {"post_id": 60920, "ts": "2026-09-03T16:06:58Z", "hours": 9.0614, "text": "big gap! some stuff came up and i don’t fully remember what i’ve done since the last devlog. git log tells me i did some minor logic fixes and added SEE pruning in pvs (32 elo), which prunes nodes based on their static exchange evaluation. i do remember that the current version of the engine can beat barbarossa at LTC now. STC it still loses (i.e. my engine scales better… glass half full), but I am now working on eval tuning to hopefully bump the elo up some more. i am now working on this through ssh. negative: lag. positive: there is almost nothing running on my computer aside from the language server. should make testing easier and more predictable"}, {"post_id": 43577, "ts": "2026-08-08T22:09:51Z", "hours": 8.8139, "text": "i’m now within 100 elo of my target, but it’s still not looking great. it seems i have hit another wall. there’s this copypasta around chess programming circles with a rough order of search features to implement, and i’ve tried 3 in a row, none doing much. since last time, i’ve just added two things that have gained elo: history decay tweak (10 elo): after searching a position, decay history by 50% instead of 80%, helps retain memory from previous searches check extensions (23 elo): extend a search by 1 more move if in check. it’s very simple. i’ve since tried IIR (internal iterative reductions), SEE pruning in PVS (more moveloop pruning), and continuation history (like the history heuristic, but More™️). only continuation history has kinda done something, but only when comparing against a version that’s just as slow; when comparing against the original, it’s much closer because for some reason continuation history slows down the search by almost 10% (??????). The main slow-down-er seems to be indexing the continuation history array, which is absolutely baffling to me. i’ve even tried to start reading the GHC Core again, until i remembered why it was so painful last time."}, {"post_id": 41607, "ts": "2026-08-05T22:20:00Z", "hours": 8.6608, "text": "a lot of changes in this batch, but not all of them were for strength. here’s a quick runthrough of the elo-affecting changes: add improving heuristic to rfp (prune more nodes while improving) add staticEval >= beta guard to nmp (restrict the usage of null move pruning to moves that already seem good from static eval) futility pruning (very similar to reverse futility pruning - removes quiet moves when static eval is pretty far below alpha) tempo bonus (side to move gets a bonus to eval for having tempo) add quiescence search results to transposition table (i had this in the old version but i guess i forgot to port it over until now) soft time bounds in search (instead of searching for as long as possible and nuking the search thread mid-search, stop iterative deepening if it looks like the next node will take too long) to fix this, i moved the timing-out logic inside the search function, which is what most engines do. I didn’t do this earlier because 1. it’s marginally harder and 2. it would require making the search functions IO instead of ST. ST is escapable, so it’s more pure, so this was kinda a bummer to do, but i didn’t see any way to get around this. here’s a graph i made while i was looking at aspiration windows more. it shows the average centipawn change between successive depths of search. the current aspiration window implementation assumes that depth and avg cp change is inversely related, but it doesn’t look like this is true. (what is the hump doing??) I tried a couple of aspiration window implementations that don’t make this assumption but didn’t get anything huge. I’ll probably replace it at some point."}, {"post_id": 39895, "ts": "2026-08-03T05:39:33Z", "hours": 5.7494, "text": "the engine is finally in the strongest state it’s ever been! (i think) for those who have not been obsessively following this project, the search part of the engine has gone through two rewrites now. i kept hitting walls where i really shouldn’t have; improvements that should have been huge gains did a lot less than expected. i did the rewrites in an attempt to find a potential bug that would kill future attempts at improvements, but i never really found anything significant. i never really got the engine to it’s pre-rewrites strength until now. read it and weep (~17 elo gain) -------------------------------------------------- Results of trout-exe-max vs trout-exe-asp-tweak (8+0.08, NULL, 16.000000MB, UHO_Lichess_4852_v1.epd): Elo: -16.96 +/- 14.18, nElo: -22.54 +/- 18.80 LOS: 0.94 %, DrawRatio: 33.99 %, PairsRatio: 0.82 Games: 1312, Wins: 380, Losses: 444, Draws: 488, Points: 624.0 (47.56 %) Ptnml(0-2): [63, 175, 223, 153, 42], WL/DD Ratio: 1.79 LLR: -2.98 (-101.3%) (-2.94, 2.94) [0.00, 10.00] -------------------------------------------------- it’s still not super great because elo improvements are coming slooowww and we’re still only 17 elo up with many more features than before. it’s still nice, though. implemented since last devlog: “improving” heuristic (13 elo): a position is said to be “improving” if the static evaluation now is higher than the one from a move ago. we can use this to tweak some parameters in the search, like when to cut off for LMP, which is what i did. need more testing for the other features. lmr limit (16 elo): my LMR implementation was slightly bugged and would reduce too many moves; normally the first couple are spared, but i had every move except the first reduced. negative captures below quiet moves (13 elo): for some reason, i had captures that were deemed negative by SEE (bad captures, basically - trading a queen for a pawn would be one) sorted above all quiet moves. i moved them to the bottom of move sorting. redo aspiration windows (36 elo): i redid the implementation for aspiration windows slightly. it should be smarter about bounds now. that makes around 100 elo for aspiration windows cumulatively now, which is kinda crazy here’s a picture of htop when i was running the engines against each othe for elo testing. i thought it was kinda funny"}, {"post_id": 38604, "ts": "2026-08-01T02:40:06Z", "hours": 8.2208, "text": "oh no, 8 hours i need to devlog more holy moly from last devlog, i kinda found a solution to the fail-soft problem? Most engine’s LMR implementations will re-search twice if the previous search went over alpha (lower bound). The first search has reduced depth AND a null-window around alpha (search window of 1 centipawn; searches faster, but can only tell the direction of the true search result); if this is over alpha, it’ll re-search with full depth; if this is again over alpha, it’ll re-search with full depth and full bounds. My engine was skipping the middle step and jumping from reduced depth + null window -> full depth + full bounds. Apparently this is an accepted method and it was working fine compared to the other version, EXCEPT once I switched to fail-soft on beta. in other news, I added: aspiration windows (75 elo): the initial search is normally unbounded, but aspiration windows try to clamp the search around a “guess” based on the previous depth of iterative deepening, and widen if it fails high or low. it did almost nothing before, and randomly became really good. don’t ask me why. razoring (22 elo): prunes a node if quiescence search says it’s too far below alpha. I already had it in a previous version and brought it over to the search rewrite. pretty simple, smallish elo boost. late move pruning (39 elo): prunes the latter part of move list; moves are sorted by how good they’re predicted to be, so latter moves are usually pretty garbage fixes (23 elo): small logic changes to LMR and LMP. don’t know how they didn’t lose more elo, the LMR bug was kinda bad. separate PV tracking: the PV (principal variation, the best moves for each player as calculated by the engine) was previously tracked by the transposition table, but that meant i didn’t have a lot of flexibility with the replacement strategy for the table, lest it wipe an important PV entry. tracking it separately lets me fiddle with the replacement strategy more, although I haven’t actually found one better than what I have now here’s a graph generated from a google sheet with 100k rows (!?). it’s a histogram of every time a move was marked as “currently the best”, indexed by entry. ideally, it’d be all 0, meaning the best move was searched first every time, meaning there was basically no wasted effort."}, {"post_id": 37391, "ts": "2026-07-30T02:23:34Z", "hours": 6.5078, "text": "6.5 hours? oh man i was right, nmp only gained like 30 elo, gained much much more before. i tried to hunt down anything weird but i had to leave it at that. i also implemented pruning in quiescence search, so the engine only searches moves that have a positive static exchange evaluation (essentially, the result of all trades on a particular square). i also accidentally found out my engine was doing fail-hard on beta cutoffs instead of fail-soft! in a fail-soft framework, the search is allowed to return outside of the bounds set by the alpha and beta parameters (it’s hard to explain succinctly here and i don’t want to keep doing it, search up alpha-beta search if you’re interested). thus, alpha and beta are soft bounds. this means each search returns more information about the move score. i successfully did fail-soft on the alpha (lower bound) side, but not on the beta side due to what i can only assume is a coding mistake. the problem is, when switching to fail-soft on beta, the engine lost like 30 elo! i bisected the change to the LMR (late move reductions) patch, but still have no idea why LMR doesn’t play nice with fail-soft beta. i’m kinda at the end of my rope here, i might just have to eat the elo loss…"}, {"post_id": 36088, "ts": "2026-07-27T23:22:04Z", "hours": 5.5464, "text": "I finally got RFP to gain! but it might not be as good as it seems… ive been struggling to get rfp, a pretty basic improvement, to actually do anything, and redid everything search step-by-step to make sure i didn’t do anything wrong. so far, i’ve added back SEE move ordering, butterfly heuristic, PVS, transposition table move ordering, and RFP. however, i don’t think this actually fixes my problem; the code is largely the same aside from some parameter changes, so my theory is that rfp is only working now because i added everything back in a different order, and now i might struggle with adding back different features that aren’t gaining anymore. i’m currently testing null move pruning (based on the null move observation: doing something is basically always better than doing nothing), and it’s not doing as much as it used to… disturbing"}, {"post_id": 35484, "ts": "2026-07-26T23:08:41Z", "hours": 1.4153, "text": "ive nuked it…. i kept fighting rfp and talking with other people about this. apparently, rfp is one of the easiest gainers (something that gains elo/strength), and usually gains a lot, but again, nothing. i ran an overnight test of like 5000 games and the rfp version manages to LOSE 8 elo, where other people have gained 80. i’m gonna try to restart search again, but basically fully. i don’t know if this will actually do anything, but i don’t see many other choices…"}, {"post_id": 34984, "ts": "2026-07-26T03:58:38Z", "hours": 6.8525, "text": "i’ve reentered the nightmare when i last left off this project in ~september, I basically hit a wall with optimizations. I had a crapload of pruning and whatnot, but the elo of the engine didn’t really reflect it. I then did a search rewrite but got stuck on RFP (reverse futility pruning), which is supposed to gain a lot of strength but did basically nothing for me. brief (??) aside: reverse futility pruning, in simple terms, checks if the static evaluation (evaluation without searching moves) is above beta (if a move scores above beta, it’s “too good,” and the opponent won’t allow that position to happen in the first place) by some margin. if it is, it’ll return without searching any moves, because it’s not likely that the player can lose that much material/positional advantage in whatever depth is left to search. anyway, i’m still stuck on this. I’ve re-reimplemented half the search to recheck its correctness, because correctness issues can sometimes stuff new optimizations, but it seems to be all good. RFP still doesn’t do jack. i don’t really know where to go from here. I could just ignore it, but the fact that RFP doesn’t do anything (for reference, another engine dev i talked to got like 80 elo out of RFP, which is insane) is a troubling sign and might mean something else is wrong."}, {"post_id": 34363, "ts": "2026-07-25T00:30:18Z", "hours": 3.7367, "text": "hello! trout again. i’m gonna try to get this to #1 haskell engine, but it’s been such a pain… after summer of making I did some more work on this, but hit a wall where all my changes either did nothing or gained like 10elo (which is not enough for the hundreds i need). I tried rewriting part of search but hit a wall again with the same problem, on features that should have made improvements! i’ve been fighting with the search some more trying to get reverse futility pruning to do something meaningful. in someone else’s engine, it gained i think 80+ elo in total (!!!), which is bonkers compared to the 20 or something i get on a good day. it’s not a good day, so RFP actually manages to lose elo here. i might have to rewrite search again. i don’t know how much of this is just wrong. (here’s the commented out old search)"}]...
|
Title: trout by @nosrep | Stardance
Devlogs:
hell Title: trout by @nosrep | Stardance
Devlogs:
hello! trout again. i’m gonna try to get this to #1 haskell engine, but it’s been such a pain… after summer of making I did some more work on this, but hit a wall where all my changes either did nothing or gained like 10elo (which is not enough for the hundreds i need). I tried rewriting part of search but hit a wall again with the same problem, on features that should have made improvements! i’ve been fighting with the search some more trying to get reverse futility pruning to do something meaningful. in someone else’s engine, it gained i think 80+ elo in total (!!!), which is bonkers compared to the 20 or something i get on a good day. it’s not a good day, so RFP actually manages to lose elo here. i might have to rewrite search again. i don’t know how much of this is just wrong. (here’s the commented out old search)
i’ve reentered the nightmare when i last left off this project in ~september, I basically hit a wall with optimizations. I had a crapload of pruning and whatnot, but the elo of the engine didn’t really reflect it. I then did a search rewrite but got stuck on RFP (reverse futility pruning), which is supposed to gain a lot of strength but did basically nothing for me. brief (??) aside: reverse futility pruning, in simple terms, checks if the static evaluation (evaluation without searching moves) is above beta (if a move scores above beta, it’s “too good,” and the opponent won’t allow that position to happen in the first place) by some margin. if it is, it’ll return without searching any moves, because it’s not likely that the player can lose that much material/positional advantage in whatever depth is left to search. anyway, i’m still stuck on this. I’ve re-reimplemented half the search to recheck its correctness, because correctness issues can sometimes stuff new optimizations, but it seems to be all good. RFP still doesn’t do jack. i don’t really know where to go from here. I could just ignore it, but the fact that RFP doesn’t do anything (for reference, another engine dev i talked to got like 80 elo out of RFP, which is insane) is a troubling sign and might mean something else is wrong.
ive nuked it…. i kept fighting rfp and talking with other people about this. apparently, rfp is one of the easiest gainers (something that gains elo/strength), and usually gains a lot, but again, nothing. i ran an overnight test of like 5000 games and the rfp version manages to LOSE 8 elo, where other people have gained 80. i’m gonna try to restart search again, but basically fully. i don’t know if this will actually do anything, but i don’t see many other choices…
I finally got RFP to gain! but it might not be as good as it seems… ive been struggling to get rfp, a pretty basic improvement, to actually do anything, and redid everything search step-by-step to make sure i didn’t do anything wrong. so far, i’ve added back SEE move ordering, butterfly heuristic, PVS, transposition table move ordering, and RFP. however, i don’t think this actually fixes my problem; the code is largely the same aside from some parameter changes, so my theory is that rfp is only working now because i added everything back in a different order, and now i might struggle with adding back different features that aren’t gaining anymore. i’m currently testing null move pruning (based on the null move observation: doing something is basically always better than doing nothing), and it’s not doing as much as it used to… disturbing
6.5 hours? oh man i was right, nmp only gained like 30 elo, gained much much more before. i tried to hunt down anything weird but i had to leave it at that. i also implemented pruning in quiescence search, so the engine only searches moves that have a positive static exchange evaluation (essentially, the result of all trades on a particular square). i also accidentally found out my engine was doing fail-hard on beta cutoffs instead of fail-soft! in a fail-soft framework, the search is allowed to return outside of the bounds set by the alpha and beta parameters (it’s hard to explain succinctly here and i don’t want to keep doing it, search up alpha-beta search if you’re interested). thus, alpha and beta are soft bounds. this means each search returns more information about the move score. i successfully did fail-soft on the alpha (lower bound) side, but not on the beta side due to what i can only assume is a coding mistake. the problem is, when switching to fail-soft on beta, the engine lost like 30 elo! i bisected the change to the LMR (late move reductions) patch, but still have no idea why LMR doesn’t play nice with fail-soft beta. i’m kinda at the end of my rope here, i might just have to eat the elo loss…
oh no, 8 hours i need to devlog more holy moly from last devlog, i kinda found a solution to the fail-soft problem? Most engine’s LMR implementations will re-search twice if the previous search went over alpha (lower bound). The first search has reduced depth AND a null-window around alpha (search window of 1 centipawn; searches faster, but can only tell the direction of the true search result); if this is over alpha, it’ll re-search with full depth; if this is again over alpha, it’ll re-search with full depth and full bounds. My engine was skipping the middle step and jumping from reduced depth + null window -> full depth + full bounds. Apparently this is an accepted method and it was working fine compared to the other version, EXCEPT once I switched to fail-soft on beta. in other news, I added: aspiration windows (75 elo): the initial search is normally unbounded, but aspiration windows try to clamp the search around a “guess” based on the previous depth of iterative deepening, and widen if it fails high or low. it did almost nothing before, and randomly became really good. don’t ask me why. razoring (22 elo): prunes a node if quiescence search says it’s too far below alpha. I already had it in a previous version and brought it over to the search rewrite. pretty simple, smallish elo boost. late move pruning (39 elo): prunes the latter part of move list; moves are sorted by how good they’re predicted to be, so latter moves are usually pretty garbage fixes (23 elo): small logic changes to LMR and LMP. don’t know how they didn’t lose more elo, the LMR bug was kinda bad. separate PV tracking: the PV (principal variation, the best moves for each player as calculated by the engine) was previously tracked by the transposition table, but that meant i didn’t have a lot of flexibility with the replacement strategy for the table, lest it wipe an important PV entry. tracking it separately lets me fiddle with the replacement strategy more, although I haven’t actually found one better than what I have now here’s a graph generated from a google sheet with 100k rows (!?). it’s a histogram of every time a move was marked as “currently the best”, indexed by entry. ideally, it’d be all 0, meaning the best move was searched first every time, meaning there was basically no wasted effort.
the engine is finally in the strongest state it’s ever been! (i think) for those who have not been obsessively following this project, the search part of the engine has gone through two rewrites now. i kept hitting walls where i really shouldn’t have; improvements that should have been huge gains did a lot less than expected. i did the rewrites in an attempt to find a potential bug that would kill future attempts at improvements, but i never really found anything significant. i never really got the engine to it’s pre-rewrites strength until now. read it and weep (~17 elo gain) -------------------------------------------------- Results of trout-exe-max vs trout-exe-asp-tweak (8+0.08, NULL, 16.000000MB, UHO_Lichess_4852_v1.epd): Elo: -16.96 +/- 14.18, nElo: -22.54 +/- 18.80 LOS: 0.94 %, DrawRatio: 33.99 %, PairsRatio: 0.82 Games: 1312, Wins: 380, Losses: 444, Draws: 488, Points: 624.0 (47.56 %) Ptnml(0-2): [63, 175, 223, 153, 42], WL/DD Ratio: 1.79 LLR: -2.98 (-101.3%) (-2.94, 2.94) [0.00, 10.00] -------------------------------------------------- it’s still not super great because elo improvements are coming slooowww and we’re still only 17 elo up with many more features than before. it’s still nice, though. implemented since last devlog: “improving” heuristic (13 elo): a position is said to be “improving” if the static evaluation now is higher than the one from a move ago. we can use this to tweak some parameters in the search, like when to cut off for LMP, which is what i did. need more testing for the other features. lmr limit (16 elo): my LMR implementation was slightly bugged and would reduce too many moves; normally the first couple are spared, but i had every move except the first reduced. negative captures below quiet moves (13 elo): for some reason, i had captures that were deemed negative by SEE (bad captures, basically - trading a queen for a pawn would be one) sorted above all quiet moves. i moved them to the bottom of move sorting. redo aspiration windows (36 elo): i redid the implementation for aspiration windows slightly. it should be smarter about bounds now. that makes around 100 elo for aspiration windows cumulatively now, which is kinda crazy here’s a picture of htop when i was running the engines against each othe for elo testing. i thought it was kinda funny
a lot of changes in this batch, but not all of them were for strength. here’s a quick runthrough of the elo-affecting changes: add improving heuristic to rfp (prune more nodes while improving) add staticEval >= beta guard to nmp (restrict the usage of null move pruning to moves that already seem good from static eval) futility pruning (very similar to reverse futility pruning - removes quiet moves when static eval is pretty far below alpha) tempo bonus (side to move gets a bonus to eval for having tempo) add quiescence search results to transposition table (i had this in the old version but i guess i forgot to port it over until now) soft time bounds in search (instead of searching for as long as possible and nuking the search thread mid-search, stop iterative deepening if it looks like the next node will take too long) to fix this, i moved the timing-out logic inside the search function, which is what most engines do. I didn’t do this earlier because 1. it’s marginally harder and 2. it would require making the search functions IO instead of ST. ST is escapable, so it’s more pure, so this was kinda a bummer to do, but i didn’t see any way to get around this. here’s a graph i made while i was looking at aspiration windows more. it shows the average centipawn change between successive depths of search. the current aspiration window implementation assumes that depth and avg cp change is inversely related, but it doesn’t look like this is true. (what is the hump doing??) I tried a couple of aspiration window implementations that don’t make this assumption but didn’t get anything huge. I’ll probably replace it at some point.
i’m now within 100 elo of my target, but it’s still not looking great. it seems i have hit another wall. there’s this copypasta around chess programming circles with a rough order of search features to implement, and i’ve tried 3 in a row, none doing much. since last time, i’ve just added two things that have gained elo: history decay tweak (10 elo): after searching a position, decay history by 50% instead of 80%, helps retain memory from previous searches check extensions (23 elo): extend a search by 1 more move if in check. it’s very simple. i’ve since tried IIR (internal iterative reductions), SEE pruning in PVS (more moveloop pruning), and continuation history (like the history heuristic, but More™️). only continuation history has kinda done something, but only when comparing against a version that’s just as slow; when comparing against the original, it’s much closer because for some reason continuation history slows down the search by almost 10% (??????). The main slow-down-er seems to be indexing the continuation history array, which is absolutely baffling to me. i’ve even tried to start reading the GHC Core again, until i remembered why it was so painful last time.
big gap! some stuff came up and i don’t fully remember what i’ve done since the last devlog. git log tells me i did some minor logic fixes and added SEE pruning in pvs (32 elo), which prunes nodes based on their static exchange evaluation. i do remember that the current version of the engine can beat barbarossa at LTC now. STC it still loses (i.e. my engine scales better… glass half full), but I am now working on eval tuning to hopefully bump the elo up some more. i am now working on this through ssh. negative: lag. positive: there is almost nothing running on my computer aside from the language server. should make testing easier and more predictable
i’ve been doing some tuner work, it’s not great the old tuner was pretty bad. very janky, repeated code, very hard to read, and sloooowwww…. i optimized it by precomputing the factors for each position so it’s just a bunch of multiplications to get the score. upside: order of magnitude speed improvement. downside: 20+ gb memory…. other problem is that the new tuner’s results are not great. they aren’t horribly bad like some other tests, but the gains aren’t as big as i was expecting. this might be a data quality issue? i might write proper datagen code at some point instead of just relying on the output of SPRT tests. I did get a nice 7 elo from removing floating point ops in eval, so that’s nice i guess. i can smell the goal already. Soon (i would attach a picture of the 20gb but i’m kinda running a sprt right now… maybe next time)
it is done….. i think trout is the strongest haskell engine now (i made the passed pawn bonus tunable per-rank, which added around 20 elo. re-tested some other search stuff but they all kinda sucked) i think i’m going to work on polishing the frontend now, tag a 2.0 release soon.
2.0 release has been tagged! i set up a dockerfile to make static linux binaries and created a windows github action to make the windows binaries. I also finished the test against the last version of the engine:
managed to update the website to the new version. It was much easier than I expected, considering the amount of changes I’ve made. new version is better (besides just being stronger) in that I factored the iterative deepening code out, which means the website can have sensible time settings now instead of the stupid “max time per depth” thing it had before. I also implemented IIR (internal iterative reductions). I’ve tried it like 10 times before, but this specific version worked for some reason. +28 elo! engine is now safely better than barbarossa.
I did some more frontend work! i made the chessground rank/file responsive: for some reason, the default ones are positioned by pixel offsets and break pretty quickly on smaller screens. some light css max fixes this recolored everything: stock chessground theme is kinda lame made the time slider exponential: I wanted to give a larger time range (previous is 100ms-1000ms), but everything past 1s on the high end makes it really unwieldy to set the time on the low end, where people usually play. i made it exponential, i can expand the top end (3000ms now) without the slider feeling weird. it’s easier to show than explain
Ships:
welcome to trout v2! the goal of this period was to upgrade trout v1 to finally become the strongest chess engine written in haskell (it’s a cool title, ok). i believe it is done, and trout now beats the previous #1, barbarossa. writing a chess engine in haskell is hard and annoying and probably a not good use of my time, but i am stubborn and not very bright so here we are. writing a chess engine is also very annoying in general, involving thousands of hours of cpu time to test changes. everyone say thank you to my poor i7 10700k together with the +300elo (!!!) strength improvement over v1, i also corrected the engine’s time management (no more timing out in chess GUIs) and cleaned up the web interface. to play the engine, you have three options: the demo link: this has the web interface for trout. it’s the original engine compiled down to WASM with a nice ui on top. lichess bot: you can find the lichess bot link at the bottom of the demo website, @TroutBot . it’s running on an oracle free tier server and can only play two games simultaneously; if challenging it hangs, it’s probably playing 2 already. locally: if you want troutbot at peak performance, you can download a chess GUI like En Croissant or Arena, and configure the trout binary (on github releases) in the GUI. trout speaks the standard UCI protocol....
|
1793152319.0991848
|
1793238719.0991848
|
|
33806
|
AeroTrack-Prime by @tirthas970 | Stardance
|
tirthas970
|
0
|
17.59
|
0
|
[]
|
[{"post_id": 59770, "ts": "202 [{"post_id": 59770, "ts": "2026-09-01T18:20:15Z", "hours": 8.1911, "text": "Devlog 6: Before I used UMAP to reduce dimensions, but when I was unpickling it from joblib into my normal .py scripts, it started to crash my app and scripts because UMAP is not compatible with python 3.13.2 for some reason. I did not want to downgrade my python, so I switched to PCA, which is another dimension reducer mechanism. PCA is fast, linear, and it preserves global variance. After, I start working on integrating my GUI with it. As you know, the plan is to get a current NEO asteroid and input it through the model to see what group it is, so I created that specific script to do that. Based on the means of the cluster groups, I figured out their characteristics, which was needed in order to tell the user what the asteroid group means. I also created a class that plots the new point into the existing PLT plot, which will be shown in the streamlit app. After all this, I thought I was done, but I realized I made a very big mistake. I didn’t analyze my dataset too much, until I started to work on a script that gets the top 5 most similar asteroids. I noticed the 5 asteroids were all the same. When I looked at my dataset, I saw that I had a bunch of duplicate asteroid names, but with different approach dates, so in reality, I only had about 20 unique asteroids. Thus, to mitigate this, I found a new dataset that has over 300k entries, and 30k+ unique asteroids. I made sure I did everything correct when training the unsupervised model. Finally, I once again, integrated the model to my GUI. Now everything looks nice and clean."}, {"post_id": 44697, "ts": "2026-08-10T17:13:01Z", "hours": 2.9436, "text": "#Develog #5….its been a while since my last Devlog. To fix my machine learning model, I used UMAP, which reduces dimensions (features) of my data, which is put it through a K-Means model. K-Means is an unsupervised ML model, meaning it comes up with patterns itself. In this project, it is used to find the different groups of NEOs. After, I began on implementing the model to the recent NEOs. Essentially, when a user clicks on an asteroid in the table, all the relevant data of that NEO will be put into the UMAP, and then predicted by my K-Means."}, {"post_id": 32975, "ts": "2026-07-22T14:17:28Z", "hours": 1.9197, "text": "Devlog #4 -> Working on a machine learning model for website. The model is trying to characterize and group historical NEOs based on their features. It will be used to find which NEOs are closest to the current NEO. Thus far, the model has not being doing good, as it can’t group the asteroids in the desired way."}, {"post_id": 30399, "ts": "2026-07-17T21:54:25Z", "hours": 1.0719, "text": "Devlog 3: I had to debug the issue with .txt file, as it wasn’t updating after I clicked an asteroid name. I ended up reverting to a previous commit."}, {"post_id": 29779, "ts": "2026-07-16T21:35:43Z", "hours": 1.2239, "text": "Develog #2: Working on fixing GUI and makign code more efficient."}, {"post_id": 28344, "ts": "2026-07-14T15:21:10Z", "hours": 2.2364, "text": "Working on fixing gui"}]...
|
Title: AeroTrack-Prime by @tirthas970 | Stardance
Title: AeroTrack-Prime by @tirthas970 | Stardance
Devlogs:
Working on fixing gui
Develog #2: Working on fixing GUI and makign code more efficient.
Devlog 3: I had to debug the issue with .txt file, as it wasn’t updating after I clicked an asteroid name. I ended up reverting to a previous commit.
Devlog #4 -> Working on a machine learning model for website. The model is trying to characterize and group historical NEOs based on their features. It will be used to find which NEOs are closest to the current NEO. Thus far, the model has not being doing good, as it can’t group the asteroids in the desired way.
#Develog #5….its been a while since my last Devlog. To fix my machine learning model, I used UMAP, which reduces dimensions (features) of my data, which is put it through a K-Means model. K-Means is an unsupervised ML model, meaning it comes up with patterns itself. In this project, it is used to find the different groups of NEOs. After, I began on implementing the model to the recent NEOs. Essentially, when a user clicks on an asteroid in the table, all the relevant data of that NEO will be put into the UMAP, and then predicted by my K-Means.
Devlog 6: Before I used UMAP to reduce dimensions, but when I was unpickling it from joblib into my normal .py scripts, it started to crash my app and scripts because UMAP is not compatible with python 3.13.2 for some reason. I did not want to downgrade my python, so I switched to PCA, which is another dimension reducer mechanism. PCA is fast, linear, and it preserves global variance. After, I start working on integrating my GUI with it. As you know, the plan is to get a current NEO asteroid and input it through the model to see what group it is, so I created that specific script to do that. Based on the means of the cluster groups, I figured out their characteristics, which was needed in order to tell the user what the asteroid group means. I also created a class that plots the new point into the existing PLT plot, which will be shown in the streamlit app. After all this, I thought I was done, but I realized I made a very big mistake. I didn’t analyze my dataset too much, until I started to work on a script that gets the top 5 most similar asteroids. I noticed the 5 asteroids were all the same. When I looked at my dataset, I saw that I had a bunch of duplicate asteroid names, but with different approach dates, so in reality, I only had about 20 unique asteroids. Thus, to mitigate this, I found a new dataset that has over 300k entries, and 30k+ unique asteroids. I made sure I did everything correct when training the unsupervised model. Finally, I once again, integrated the model to my GUI. Now everything looks nice and clean....
|
1792633919.1476402
|
1793238719.1476402
|
|
57889
|
CGPA calculator by @vinayakbhargav | Stardance
|
vinayakbhargav
|
1
|
3.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-12T17:17:06Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "CGPA Calculator A simple and easy-to-use CGPA calculator made for students to calculate their CGPA using subject credits, grade points, and marks. About the Project This project helps students calculate their CGPA without doing the calculations manually. The calculator takes the required details for each subject and calculates the final CGPA based on the entered values. Features Enter subject credits Enter grade points Enter marks Convert marks into grade points Calculate CGPA Simple and clean interface Easy to use for students Works directly in the browser", "repo": "https://github.com/vinayakbhargav834-dotcom/CGPA-calculator-new", "demo": "https://vinayakbhargav834-dotcom.github.io/CGPA-calculator-new/"}]...
|
[{"post_id": 66388, "ts": "202 [{"post_id": 66388, "ts": "2026-09-12T06:11:03Z", "hours": 1.3447, "text": "70% work complete app.js is ready almost.."}, {"post_id": 62377, "ts": "2026-09-05T18:21:49Z", "hours": 0.5953, "text": "working on css …"}, {"post_id": 61982, "ts": "2026-09-05T05:47:51Z", "hours": 0.5714, "text": "starts a new project, the College CGPA calculator…"}, {"post_id": 60952, "ts": "2026-09-03T17:11:08Z", "hours": 0.3619, "text": "Today I worked on the basic structure of my CGPA calculator. I created the main layout with fields for credits, grade points, and marks for five subjects. I also added Calculate and Reset buttons and sections to display the CGPA and percentage."}]...
|
Title: CGPA calculator by @vinayakbhargav | Starda Title: CGPA calculator by @vinayakbhargav | Stardance
Devlogs:
Today I worked on the basic structure of my CGPA calculator. I created the main layout with fields for credits, grade points, and marks for five subjects. I also added Calculate and Reset buttons and sections to display the CGPA and percentage.
starts a new project, the College CGPA calculator…
working on css …
70% work complete app.js is ready almost..
Ships:
CGPA Calculator A simple and easy-to-use CGPA calculator made for students to calculate their CGPA using subject credits, grade points, and marks. About the Project This project helps students calculate their CGPA without doing the calculations manually. The calculator takes the required details for each subject and calculates the final CGPA based on the entered values. Features Enter subject credits Enter grade points Enter marks Convert marks into grade points Calculate CGPA Simple and clean interface Easy to use for students Works directly in the browser...
|
1793152320.3353708
|
1793238720.3353708
|
|
20487
|
Frictionless by @Seyon | Stardance
|
Seyon
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Frictionless by @Seyon | Stardance
|
1792633920.5970085
|
1793238720.5970085
|
|
57890
|
Entering dimension by @Irongolem | Stardance
|
Irongolem
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-20T07:26:47Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "hey guys so i made this website based on a puzzle ,i mean this website has a puzzle in it self ,visitors have to find a 1.show which is quite popular (hint: it is a conspiracy drama),2. a game which is very creative ,3. a comic book (hint: it is written by belgian writer ) this is my first project and i was unfamiliar with the terms and applications but gradually got adapted i took a little help from ai to understand some terms ,,,so thats it", "repo": "https://github.com/Irongolem222/Entering-dimension", "demo": "https://irongolem222.github.io/Entering-dimension/"}]...
|
[{"post_id": 61440, "ts": "202 [{"post_id": 61440, "ts": "2026-09-04T11:06:42Z", "hours": 1.0622, "text": "I created a website that interesting puzzle it is actually very easy to solve in which we have to guess 1 show ,1 game ,1 comic book in order to do that we can get the hints that are present on the site inn form of text or image … Best of luck"}]...
|
Title: Entering dimension by @Irongolem | Stardanc Title: Entering dimension by @Irongolem | Stardance
Devlogs:
I created a website that interesting puzzle it is actually very easy to solve in which we have to guess 1 show ,1 game ,1 comic book in order to do that we can get the hints that are present on the site inn form of text or image … Best of luck
Ships:
hey guys so i made this website based on a puzzle ,i mean this website has a puzzle in it self ,visitors have to find a 1.show which is quite popular (hint: it is a conspiracy drama),2. a game which is very creative ,3. a comic book (hint: it is written by belgian writer ) this is my first project and i was unfamiliar with the terms and applications but gradually got adapted i took a little help from ai to understand some terms ,,,so thats it...
|
1793152321.2441914
|
1793238721.2441914
|
|
9012
|
AI Knowledge Reminder by @AAziz | Stardance
|
AAziz
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: AI Knowledge Reminder by @AAziz | Stardance
|
1792633921.44142
|
1793238721.44142
|
|
14230
|
My very own WebOS by @Chenjv | Stardance
|
Chenjv
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My very own WebOS by @Chenjv | Stardance
|
1792633922.2732065
|
1793238722.2732065
|
|
6723
|
My first slack bot! by @toshanir | Stardance
|
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @toshanir | Stardanc Title: My first slack bot! by @toshanir | Stardance...
|
1792633923.101444
|
1793238723.101444
|
|
12893
|
Untitled project by @xenapa8745 | Stardance
|
xenapa8745
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled project by @xenapa8745 | Stardance
|
1792633923.9494107
|
1793238723.9494107
|
|
36007
|
virtual scale by @anchith | Stardance
|
anchith
|
1
|
19.0
|
166
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-21T10:25:25Z", "hours": 19.0, "multiplier": 8.61, "payout": 166, "blessing": "neutral", "text": "virtual-scale I made a simple Java tool for visualizing real world measurements on your screen. In the project, you can draw lines and view their real world measurements in various units. You can also import images, and then define a known measurement to accurately measure other parts of the image. The project has a ScaleLibrary tool in the backend, that has all the conversion and measurement tools. Creating this was an interesting but also challenging experience and I got to learn about displays, DPI, and more. I made the entire project in Java, with no external dependencies or libraries.", "repo": "https://github.com/koino2/virtual-scale", "demo": "https://github.com/koino2/virtual-scale/releases/tag/release"}]...
|
[{"post_id": 71694, "ts": "202 [{"post_id": 71694, "ts": "2026-09-21T10:15:36Z", "hours": 0.8969, "text": "shipping time! I did some final last minute changes to polish everything up, like fixing a grid bug, making a unit parser thing for measurements, and a bunch more. Then I built it into a jar and now I’m going to ship!"}, {"post_id": 71616, "ts": "2026-09-21T05:17:08Z", "hours": 7.4208, "text": "GUIs and other stuff The main thing that I did in these 7 hours was making a graphical interface for the app. I first designed the UI in the Netbeans Form Editor because it’s really easy to make it in there, then I exported all the code generated by that and then spent a lot of time wiring everything up and making the GUI stuff actually do something. It has a bunch of new features and settings like: Snapping Line colour Units Zoom Image stuff which took very long to implement because it needed a lot of backend stuff I also briefly overwrote a bunch of code and accidentally deleted the source folder but I managed to retrieve everything from the recycle bin I then made another GUI for the initialization screen - where you choose the calibration method (manual or reported) in a similar way. Did a lot of backend work as well, like changing how the image system calibrates stuff. Also I made a nice readme and I’m going to ship soon!"}, {"post_id": 69122, "ts": "2026-09-16T12:53:35Z", "hours": 2.4922, "text": "more improvements I added a file selection screen to choose which image to view. There is also a nice grid background now which took way too long woa you can put emojis now? I also made a bunch of other small QoL improvements too, and this is how it looks now! (not much of a visual difference compared to before )"}, {"post_id": 66074, "ts": "2026-09-11T17:17:54Z", "hours": 4.9775, "text": "Image measurement! I implemented another system where you can import an image, then draw a line and say how long that line is. Then the whole image stuff will be scaled proportional to that and then you can measure it and stuff! I also added a bunch of other small things like improving the scale library backend, adding camera controls, etc. It’s kind of barebones rn and this took way too long anyway, I’m going to add some menus/interfaces to tie everything together and some other QoL next ig. Here’s a picture of a maze where I selected the big horizontal line and defined it as 170mm, and there’s some measurements on it."}, {"post_id": 60158, "ts": "2026-09-02T10:50:28Z", "hours": 1.9089, "text": "Measure stuff I implemented some basic drawing tools with swing and now you can click and draw lines with real measurements displayed. Also there are some snapping features and other QoL stuff."}, {"post_id": 55594, "ts": "2026-08-27T15:28:11Z", "hours": 1.6364, "text": "virtual-scale I’m making a virtual scale! When modelling or designing stuff, it’s very easy to lose a sense of how big a measurement actually is. I constantly find myself grabbing a ruler just to visualize a distance. So I’m making a little virtual ruler that displays real-world measurements directly on your screen. It uses your screen’s dots-per-inch count (basically how many pixels are in an inch of the screen) to show accurate distances. Today, I worked on the actual scale library/backend of the app and worked on the scale calibration, unit conversion and scale systems."}]...
|
Title: virtual scale by @anchith | Stardance
Devl Title: virtual scale by @anchith | Stardance
Devlogs:
virtual-scale I’m making a virtual scale! When modelling or designing stuff, it’s very easy to lose a sense of how big a measurement actually is. I constantly find myself grabbing a ruler just to visualize a distance. So I’m making a little virtual ruler that displays real-world measurements directly on your screen. It uses your screen’s dots-per-inch count (basically how many pixels are in an inch of the screen) to show accurate distances. Today, I worked on the actual scale library/backend of the app and worked on the scale calibration, unit conversion and scale systems.
Measure stuff I implemented some basic drawing tools with swing and now you can click and draw lines with real measurements displayed. Also there are some snapping features and other QoL stuff.
Image measurement! I implemented another system where you can import an image, then draw a line and say how long that line is. Then the whole image stuff will be scaled proportional to that and then you can measure it and stuff! I also added a bunch of other small things like improving the scale library backend, adding camera controls, etc. It’s kind of barebones rn and this took way too long anyway, I’m going to add some menus/interfaces to tie everything together and some other QoL next ig. Here’s a picture of a maze where I selected the big horizontal line and defined it as 170mm, and there’s some measurements on it.
more improvements I added a file selection screen to choose which image to view. There is also a nice grid background now which took way too long woa you can put emojis now? I also made a bunch of other small QoL improvements too, and this is how it looks now! (not much of a visual difference compared to before )
GUIs and other stuff The main thing that I did in these 7 hours was making a graphical interface for the app. I first designed the UI in the Netbeans Form Editor because it’s really easy to make it in there, then I exported all the code generated by that and then spent a lot of time wiring everything up and making the GUI stuff actually do something. It has a bunch of new features and settings like: Snapping Line colour Units Zoom Image stuff which took very long to implement because it needed a lot of backend stuff I also briefly overwrote a bunch of code and accidentally deleted the source folder but I managed to retrieve everything from the recycle bin I then made another GUI for the initialization screen - where you choose the calibration method (manual or reported) in a similar way. Did a lot of backend work as well, like changing how the image system calibrates stuff. Also I made a nice readme and I’m going to ship soon!
shipping time! I did some final last minute changes to polish everything up, like fixing a grid bug, making a unit parser thing for measurements, and a bunch more. Then I built it into a jar and now I’m going to ship!
Ships:
virtual-scale I made a simple Java tool for visualizing real world measurements on your screen. In the project, you can draw lines and view their real world measurements in various units. You can also import images, and then define a known measurement to accurately measure other parts of the image. The project has a ScaleLibrary tool in the backend, that has all the conversion and measurement tools. Creating this was an interesting but also challenging experience and I got to learn about displays, DPI, and more. I made the entire project in Java, with no external dependencies or libraries....
|
1793152324.3111742
|
1793238724.3111742
|
|
22614
|
My awesome macropad! by @gamerflexy15 | Stardance
|
gamerflexy15
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @gamerflexy15 | Sta Title: My awesome macropad! by @gamerflexy15 | Stardance...
|
1792633924.7896883
|
1793238724.7896883
|
|
20495
|
Hangman by @thanEay | Stardance
|
thanEay
|
1
|
17.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-20T20:49:03Z", "hours": 17.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Ready to ship my project! Try it at https://hangman.epin.to This is my hangman project. I put a lot of time into this project, written in Python. While it may look simple, there is a lot of nuance and thought put into it. For example, you can guess single letters, guess entire words, choose a random word to guess, or enter one yourself for a friend to guess. I have been learning Python for a few months and decided that a project like this had just enough complexity that I would learn but not enough that I would give up. Although this project has been completed for months, I procrastinated shipping it until now. I hope that you like it!", "repo": "https://github.com/thanEay/hackclub-hangman", "demo": "https://hangman.epin.to"}]...
|
[{"post_id": 16461, "ts": "202 [{"post_id": 16461, "ts": "2026-06-26T19:59:09Z", "hours": 2.4122, "text": "After much work, it is time to ship my project! Updated demo at hangman.epin.to . This project has taught me a lot about making working projects in Python. I only started learning Python at the beginning of this year, and this is the largest coding project that I have completed so far. It may not seem like a lot, but I put many hours into this code. Much of that time was fun, spent coding the main flow of the code. But eventually, the last few hours of this project went into debugging, trying to catch edge cases, and improved user messaging. So what have I worked on since my last devlog? Mostly implementing a way to disable the counter to play just for fun with infinite guesses. It is accessed by putting an exclamation mark before the mode input (like !m for manual or !r for random). Because no counter is going up, no hangman is displayed. I also changed some player messaging to make things clearer. When a correct letter is guessed, the 1-based location(s) in the word is printed rather than the 0-based indexes that Python uses for its lists. Finally, ‘!’ by itself is rejected as a guess. If it is input, the user will get a message saying that ‘!’ alone is not an acceptable input."}, {"post_id": 15443, "ts": "2026-06-25T03:07:41Z", "hours": 4.1822, "text": "Live demo hosted on Nest at hangman.epin.to . I made lots of progress, as you can probably tell with the amount of time it took. I added functionality for guessing entire words, which took about half of my four logged hours. Also, when the word is guessed correctly, the sprite changes to the man falling off of the gallows and saying ‘thanks’. To guess entire words, you put an exclamation mark at the beginning of your answer. Otherwise, only single letters are accepted. For example, to guess ‘stardance’ all at once rather than one letter at a time, you would enter ‘!stardance’. If a word guess is incorrect, the counter for tries left goes down one, just like it would for guessing an incorrect letter. I also updated some of the user prompts to make them more clear, as well as printing out all already guessed answers (letters and words) after any letter input (correct or incorrect) or incorrect word guesses so that the player can better guess correct words/letters. The reason that this project, despite its apparent simplicity is taking so long is the little features. For example, I added different messages based on different conditions (Have letters and/or words been guessed? If only one has, change the already guessed printed message to match.) TODO: Add the ability to turn off the counter so that the game can be played without a guess limit."}, {"post_id": 13768, "ts": "2026-06-22T15:52:50Z", "hours": 2.8817, "text": "Sprites added. Sprites are saved as a list of multi-line strings in ascii_sprites.py. As the name implies, the sprites are completely ascii and printable to the terminal. Additionally, now if the word has spaces, the printed characters will contain a space in the given spot. For example, ‘hack club’ will be ____ ____ instead of nine unbroken underscores. Letters that have been guessed already are printed out when an incorrect answer is chosen. I might change it to always tell you regardless of an incorrect answer to make it easier to guess. TODO: I need to add the ability to guess an entire word. I would also like to add a sprite change if the player guesses correctly. Maybe the guy would be released from the gallows or something."}, {"post_id": 11730, "ts": "2026-06-19T03:14:35Z", "hours": 1.6522, "text": "Working prototype completed! At this point, all text-related functionality is present. You can enter characters that show up more than once in a word, and it won’t throw errors. I spent the better part of a half hour trying to find out why most times I would enter a letter, it would say that there were none of that letter in the word. This was clearly a bug, as it happened even when entering a letter for a manually chosen word (showing that I wasn’t just an abysmal letter guesser). It turned out that the lack of two characters caused my problem. In my check_letter() function, it creates different letter location lists depending on whether there is one or more instances of that letter in the word. The code is like this. def check_letter(word: str, letter: str) -> list: if isinstance(letter, str) and len(letter) == 1: locations = [] if word.count(letter) == 1: locations = [word.find(letter)] elif word.count(letter) > 1: # BUG found here! elif was an if statement for index, character in enumerate(word): if character == letter: locations.append(index) else: locations = [-1] return locations # If letter is not in the word, will result in index of -1 The comment that starts with ‘BUG’ shows where the problem originated from. Any word with a single instance of a letter returned [-1] because if word.count(letter) > 1 would always override an intended single element list. Now, I need to add hangman sprites that will progress as you choose correct or incorrect answers, probably using ASCII characters."}, {"post_id": 11272, "ts": "2026-06-18T13:07:08Z", "hours": 2.6856, "text": "Last day of school, and even more coding! I have a mostly working prototype that can be seen below. There is no hangman sprite yet, but most of the functionality is here. Main.py has been expanded greatly. Now you can choose the game mode and enter characters. It also displays blank, unknown characters as ‘_’ and shows known characters as their letters, printing again after every input. A major bug that remains is that if a word has two identical letters (like ‘a’ in Stardance), only one can be input and uncovered. This is due to code that was meant to prevent people from doing the same wrong answer twice, but it also prevents entering the same right answer twice. This is the culprit code. In the looping code (counter does not go up in the current version, it is mostly a placeholder): while counter < 10: user_input = input(\"Enter another letter: \") if user_input.strip().lower() in already_guessed: print(\"You already guessed that letter.\") continue # Goes to next loop In the ask_for_letter() function, only a single instance of a letter is uncovered, even if the letter appears more than once. index = check_letter(word, letter) if index != -1: already_guessed.append(letter) message = f\"{letter} is in the word at index {index}.\" uncovered_indicies.append(index) return index, message check_letter() only returns a single index, which then only uncovers a single letter in the word. I need to fix this by giving the functions the ability to take and return multiple indexes. The image below shows an example of the current code. The word is ‘cryptic’, but the last ‘c’ cannot be selected. Assuming the word doesn’t have two of the same letter, when the word is guessed the following message is printed: You guessed the word: {secret_word}. Congratulations! 🎉"}, {"post_id": 10869, "ts": "2026-06-17T20:30:12Z", "hours": 1.5619, "text": "It is the second to last day of school, and that means a lot of free time to code! I worked on more functions that I will use, and I added docstrings for everything. I have an ask_for_letter() function that will do the heavy lifting for the hangman logic to keep a clean main.py. So far in main.py, I have logic to choose the word. I will expand main.py, but most of the logic will be kept in functions."}, {"post_id": 10414, "ts": "2026-06-17T03:21:09Z", "hours": 1.2764, "text": "I got a great start to this project. I wrote some functions that I will need to call in main.py, specifically one to ask the user for manual or random word choice, one to check the location of a letter in a word, and to choose a random word. I am trying to follow some best practices for Python, like functions in a separate file, docstrings, return type annotations, and descriptive errors. Next, I will finish up some of the major functions and start on main.py."}]...
|
Title: Hangman by @thanEay | Stardance
Devlogs:
I Title: Hangman by @thanEay | Stardance
Devlogs:
I got a great start to this project. I wrote some functions that I will need to call in main.py, specifically one to ask the user for manual or random word choice, one to check the location of a letter in a word, and to choose a random word. I am trying to follow some best practices for Python, like functions in a separate file, docstrings, return type annotations, and descriptive errors. Next, I will finish up some of the major functions and start on main.py.
It is the second to last day of school, and that means a lot of free time to code! I worked on more functions that I will use, and I added docstrings for everything. I have an ask_for_letter() function that will do the heavy lifting for the hangman logic to keep a clean main.py. So far in main.py, I have logic to choose the word. I will expand main.py, but most of the logic will be kept in functions.
Last day of school, and even more coding! I have a mostly working prototype that can be seen below. There is no hangman sprite yet, but most of the functionality is here. Main.py has been expanded greatly. Now you can choose the game mode and enter characters. It also displays blank, unknown characters as ‘_’ and shows known characters as their letters, printing again after every input. A major bug that remains is that if a word has two identical letters (like ‘a’ in Stardance), only one can be input and uncovered. This is due to code that was meant to prevent people from doing the same wrong answer twice, but it also prevents entering the same right answer twice. This is the culprit code. In the looping code (counter does not go up in the current version, it is mostly a placeholder): while counter < 10: user_input = input("Enter another letter: ") if user_input.strip().lower() in already_guessed: print("You already guessed that letter.") continue # Goes to next loop In the ask_for_letter() function, only a single instance of a letter is uncovered, even if the letter appears more than once. index = check_letter(word, letter) if index != -1: already_guessed.append(letter) message = f"{letter} is in the word at index {index}." uncovered_indicies.append(index) return index, message check_letter() only returns a single index, which then only uncovers a single letter in the word. I need to fix this by giving the functions the ability to take and return multiple indexes. The image below shows an example of the current code. The word is ‘cryptic’, but the last ‘c’ cannot be selected. Assuming the word doesn’t have two of the same letter, when the word is guessed the following message is printed: You guessed the word: {secret_word}. Congratulations! 🎉
Working prototype completed! At this point, all text-related functionality is present. You can enter characters that show up more than once in a word, and it won’t throw errors. I spent the better part of a half hour trying to find out why most times I would enter a letter, it would say that there were none of that letter in the word. This was clearly a bug, as it happened even when entering a letter for a manually chosen word (showing that I wasn’t just an abysmal letter guesser). It turned out that the lack of two characters caused my problem. In my check_letter() function, it creates different letter location lists depending on whether there is one or more instances of that letter in the word. The code is like this. def check_letter(word: str, letter: str) -> list: if isinstance(letter, str) and len(letter) == 1: locations = [] if word.count(letter) == 1: locations = [word.find(letter)] elif word.count(letter) > 1: # BUG found here! elif was an if statement for index, character in enumerate(word): if character == letter: locations.append(index) else: locations = [-1] return locations # If letter is not in the word, will result in index of -1 The comment that starts with ‘BUG’ shows where the problem originated from. Any word with a single instance of a letter returned [-1] because if word.count(letter) > 1 would always override an intended single element list. Now, I need to add hangman sprites that will progress as you choose correct or incorrect answers, probably using ASCII characters.
Sprites added. Sprites are saved as a list of multi-line strings in ascii_sprites.py. As the name implies, the sprites are completely ascii and printable to the terminal. Additionally, now if the word has spaces, the printed characters will contain a space in the given spot. For example, ‘hack club’ will be ____ ____ instead of nine unbroken underscores. Letters that have been guessed already are printed out when an incorrect answer is chosen. I might change it to always tell you regardless of an incorrect answer to make it easier to guess. TODO: I need to add the ability to guess an entire word. I would also like to add a sprite change if the player guesses correctly. Maybe the guy would be released from the gallows or something.
Live demo hosted on Nest at hangman.epin.to . I made lots of progress, as you can probably tell with the amount of time it took. I added functionality for guessing entire words, which took about half of my four logged hours. Also, when the word is guessed correctly, the sprite changes to the man falling off of the gallows and saying ‘thanks’. To guess entire words, you put an exclamation mark at the beginning of your answer. Otherwise, only single letters are accepted. For example, to guess ‘stardance’ all at once rather than one letter at a time, you would enter ‘!stardance’. If a word guess is incorrect, the counter for tries left goes down one, just like it would for guessing an incorrect letter. I also updated some of the user prompts to make them more clear, as well as printing out all already guessed answers (letters and words) after any letter input (correct or incorrect) or incorrect word guesses so that the player can better guess correct words/letters. The reason that this project, despite its apparent simplicity is taking so long is the little features. For example, I added different messages based on different conditions (Have letters and/or words been guessed? If only one has, change the already guessed printed message to match.) TODO: Add the ability to turn off the counter so that the game can be played without a guess limit.
After much work, it is time to ship my project! Updated demo at hangman.epin.to . This project has taught me a lot about making working projects in Python. I only started learning Python at the beginning of this year, and this is the largest coding project that I have completed so far. It may not seem like a lot, but I put many hours into this code. Much of that time was fun, spent coding the main flow of the code. But eventually, the last few hours of this project went into debugging, trying to catch edge cases, and improved user messaging. So what have I worked on since my last devlog? Mostly implementing a way to disable the counter to play just for fun with infinite guesses. It is accessed by putting an exclamation mark before the mode input (like !m for manual or !r for random). Because no counter is going up, no hangman is displayed. I also changed some player messaging to make things clearer. When a correct letter is guessed, the 1-based location(s) in the word is printed rather than the 0-based indexes that Python uses for its lists. Finally, ‘!’ by itself is rejected as a guess. If it is input, the user will get a message saying that ‘!’ alone is not an acceptable input.
Ships:
Ready to ship my project! Try it at https://hangman.epin.to This is my hangman project. I put a lot of time into this project, written in Python. While it may look simple, there is a lot of nuance and thought put into it. For example, you can guess single letters, guess entire words, choose a random word to guess, or enter one yourself for a friend to guess. I have been learning Python for a few months and decided that a project like this had just enough complexity that I would learn but not enough that I would give up. Although this project has been completed for months, I procrastinated shipping it until now. I hope that you like it!...
|
1793152325.4764805
|
1793238725.4764805
|
|
8379
|
Untitled project by @kavix | Stardance
|
kavix
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled project by @kavix | Stardance
|
1792633925.620757
|
1793238725.620757
|
|
23607
|
My first slack bot! by @kensindarov | Stardance
|
kensindarov
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @kensindarov | Stard Title: My first slack bot! by @kensindarov | Stardance...
|
1792633926.4592519
|
1793238726.4592519
|
|
30832
|
Drone Sim V2 by @NamanS | Stardance
|
NamanS
|
1
|
6.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-11T22:26:48Z", "hours": 6.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "What did you make? I built a quadrotor simulator in MATLAB. The drone starts at the origin and flies through four gates, and the simulator checks whether it actually passed through each one. It’s a 12-state model: position, velocity, roll/pitch/yaw, and spin rates, with torque-driven attitude control instead of a point that can push in any direction. The flight path is made of cubic polynomials between waypoints, and each leg’s timing comes from the distance between gates and a target speed of 2 m/s. I also built an interactive 3D viewer with play/pause, a timeline slider, and several camera angles, including a chase camera (which is my favourite). Gates turn yellow if the drone passes through them and red if it misses. What was challenging? This was my first time working with vectors, matrices, and MATLAB entirely, so a lot of it was learning as I went. The hardest bug was in the attitude controller. The drone would spiral in a tightening orbit around a waypoint, and adding more damping made it worse. The real problem was that the attitude loop wasn’t reacting fast enough to keep up with the position loop. I also had a mix-up where my error vector and spin-rate vector were stacked in different orders, so the controller was fixing the wrong axis. What are you proud of? I built it up in stages and tested each piece by hand before moving on, from a 1D hover to full torque-driven rotation. Other than that I’m just proud of getting a finished project. What should people know to test it? You can watch the flight on the demo site: https://nam2302.github.io/Drone-Simulation-2/ To run it yourself, you need MATLAB with UAV Toolbox. Download the repo, open it in MATLAB, and run main.m. It simulates the flight, prints a gate pass report, and opens the interactive viewer. Try editing the waypoints at the top of main.m, or change the gains (Kp, Kd, Kr, Kw) and see how the flight changes. The inertia values are placeholders, and the gains are hand-tuned, so some waypoint layouts may miss gates.", "repo": "https://github.com/Nam2302/Drone-Simulation-2", "demo": "https://nam2302.github.io/Drone-Simulation-2/"}]...
|
[{"post_id": 51838, "ts": "202 [{"post_id": 51838, "ts": "2026-08-21T18:15:51Z", "hours": 1.2639, "text": "Devlog #5 I moved from fixed-duration legs to distance-based dynamic timing, replacing the flat 5-second-per-leg assumption from Devlog #4 with per-leg durations computed from waypoint spacing and a target cruise speed. I added a speed constant (2 m/s) and used it to compute t_segment as an array instead of a scalar. Each leg’s duration is now distance / speed between its start and end waypoints, so longer legs take proportionally longer instead of every leg getting the same fixed window. I also updated the interior-waypoint velocity estimate to divide by the sum of the adjacent leg durations (t_segment(i-1) + t_segment(i)) instead of 2 * t_segment, since that shortcut only made sense when every leg was the same length. I dropped mass to 0.5 kg to better match a real small-quadrotor class, and lowered Kp/Kd as a starting point since neither the old gains nor the old fixed timing apply anymore. Bugs I didn’t hit any major bugs during this section. Where it stands now Leg duration now reflects actual waypoint spacing instead of an arbitrary constant, which should reduce the unnatural sameness of a drone crawling across a short hop and sprinting across a long one in the same 5 seconds. Next up Re-tune Kp/Kd/Kr/Kw against the new mass and dynamic timing before drawing conclusions from the plots. I will also look into MATLAB’s UAV Toolbox with a built-in quadrotor animation/scene viewer that can consume my state trajectory directly."}, {"post_id": 50450, "ts": "2026-08-19T16:46:28Z", "hours": 2.0558, "text": "Devlog #4 I moved from simple point-to-point waypoint chasing to smooth polynomial trajectory generation between waypoints, replacing the threshold-based switching from Devlog #3 with time-based tracking of a continuously moving target. New machinery I built cubicTrajectory.m, which solves a 4x4 system of equations for the coefficients of a cubic polynomial connecting a start point to an end point over a fixed duration, with velocity constrained to zero at both ends of each leg. I also built evalCubic.m, which evaluates that polynomial’s position and velocity at any given time. I tested both standalone before touching the main dynamics. I stored all the coefficients in one array, coeffs_all, indexed by [coefficient, axis, leg], and built a loop that chains legs together so each leg starts exactly where the previous one ended. Bugs The very first version of the leg/local-time lookup accidentally dropped global time from the local-time calculation entirely, leaving the “current time within this leg” frozen at a constant for the whole leg instead of counting up. This meant the drone’s target wasn’t moving during a leg at all, it only jumped once per leg, which produced a single sharp overshoot spike instead of a tracked path. The simulation’s total time span hadn’t been updated to match the total trajectory duration, cutting the run short by a full leg. Where it stands now With both fixed, the drone tracks a moving position and velocity target through all four waypoints instead of chasing a static point. Spin rate and attitude plots show a clean repeating pattern, a spike at each leg transition that damps out before the next one, rather than instability or runaway spiraling. Next up Because every leg currently forces velocity to zero at both ends, the drone still fully stops at every intermediate waypoint before accelerating into the next leg, which is what’s producing the repeating spikes rather than a truly smooth flight. Next is allowing interior waypoints to have nonzero passthrough velocity (estimated from neighboring waypoints), plus adding acceleration feedforward into the force calculation so the controller anticipates the trajectory instead of only reacting to error. After that, the plan is still to move toward true minimum-snap trajectories."}, {"post_id": 36824, "ts": "2026-07-29T03:57:38Z", "hours": 1.2503, "text": "Devlog #3 I replaced the attitude lag from Devlog #2 with real rotational dynamics such as torque, inertia, and actual angular acceleration. Previously, I was assuming that attitude eventually catches up. New states and new physics The state vector went from 9 to 12: added p, q, r, the drone’s spin rate around its own x, y, and z axes. These are the rotational equivalent of vx, vy, vz, just measuring how fast orientation is changing instead of how fast position is changing. I added an inertia matrix, a diagonal 3x3 of made-up placeholder numbers representing how hard it is to spin the drone around each axis, similar to mass. The output is torque instead of thrust, and it feeds into torque divided by inertia to produce angular acceleration. Bugs The desired-attitude error vector and the spin-rate vector were stacked in different orders (theta/phi/psi vs. p/q/r, which is roll/pitch/yaw), so the controller was correcting the wrong axis against the wrong spin rate. The drone would approach a waypoint and then spiral into a slowly tightening orbit around it instead of settling, and in one attempt, diverged outward entirely. It reproduced the same spiral with a single fixed target and no waypoint switching at all. I found that the actual fix wasn’t more damping. Increasing the damping gain alone made it worse, not better. The real issue was that the attitude loop needed to react faster overall to keep pace with how aggressively the position loop was demanding tilt changes. Increasing the correction gain substantially fixed it for now. Where it stands now With gains rebalanced, the drone flies a full waypoint sequence with real torque-driven attitude dynamics. Spin rates spike on each maneuver and cleanly damp back to zero. One nice side effect of finally having real dynamics is that the path through a waypoint now visibly curves rather than shooting straight there, because aggressive tilting to accelerate sideways steals from the vertical thrust component. Next up Everything from here is trajectory generation such as replacing simple point-to-point waypoint chasing with differential-flatness-based polynomial paths. The journey has been difficult so far, especially as this is my first time interacting with vectors and matrices (3b1b’s linear algebra series is the only thing helping me out). Nevertheless, I am persevered to get a finished project."}, {"post_id": 36225, "ts": "2026-07-28T05:05:44Z", "hours": 0.8258, "text": "Devlog #2 I added real orientation states (φ, θ, ψ) and made thrust act along a single body axis instead of the free-vector cheat I’d been using. This is the point where the sim actually starts being a quadrotor. Building the rotation matrix Before touching the dynamics at all, I built a rotation matrix that converts “straight up, from the drone’s own perspective” into “which way that is, in world coordinates.” A quadrotor only ever pushes along its own up-direction, so the only way it moves sideways is by tilting, which redirects that one push. I built the matrix as three separate small rotations (yaw, roll, pitch) multiplied together, one for each axis, in a fixed order. I tested it with a small function, bodyZAxis(phi, theta, psi), against three hand-checks: Level (phi=theta=psi=0) → straight up, unchanged. Small roll → a small tilt in y, x untouched. Small pitch → a small tilt in x, y untouched. All three passed, which confirmed the rotation math was doing what it was supposed to before wiring it into anything else. Wiring it into droneDynamics The state vector went from 6 to 9: position, velocity, and now phi/theta/psi. The control loop has split into: Outer loop (same PID idea as before) computes a desired force vector, F_des, from position/velocity error plus a gravity feedforward term. That desired force gets converted into a desired tilt angle, using a small-angle approximation (the sideways component of a tilted thrust vector is roughly thrust * angle, solved backwards for angle given how much sideways force we want). Clamped to ±0.5 rad so a big position error can’t force a nonsensical tilt. The actual attitude states lag toward that desired tilt with a simple first-order lag (same idea as the motor lag in my old Python project, just applied to orientation instead of thrust). Actual thrust direction is computed from the real (possibly still-lagging) attitude, not the desired one. Bugs, in the order I found them Sign error on the gravity feedforward in F_des, which had gravity pulling the “cancel gravity” term the wrong way. Sign error on the final acceleration line, where I used the wrong sign on gravity there too, which sent the drone climbing to hundreds of meters instead of hovering. A big position error was asking for tilts of multiple radians (past 90°), which is physically meaningless and was part of what caused the runaway climb. Fixed with the clamp mentioned above. Where it stands now With the signs fixed and the tilt clamped, the drone tracks through the same waypoint list as before, but now via real (if simplified) attitude dynamics. I can see roll and pitch spike up during each leg of the trip and settle back down as it arrives at a waypoint, instead of the instant, direction-agnostic thrust from the old model. Next up This 9-state model is still leaning on a simplified attitude lag instead of real rotational physics, with no torques, no moment of inertia, no angular velocity states. The next real step is adding those (a 12-state model), replacing the lag with actual torque-driven rotation. After that, there is differential flatness and real trajectory generation, which is the actual point of this whole project"}, {"post_id": 31494, "ts": "2026-07-19T22:15:02Z", "hours": 1.0189, "text": "Devlog #1 I’ve built a drone sim before, such as a Python project with Plotly animations, PD control, motor lag, drag, the works. It looked good, but it had a problem where the “drone” was really just a point that could apply force in any direction, instantly. Real quadrotors can’t do that, because they only push one way (straight up from their own frame) and have to physically rotate to redirect that push. I’m now pushing myself to build a research-style quadrotor simulator in MATLAB. The plan: Start with a 9-state model: position, velocity, and orientation (roll/pitch/yaw). Verify a hover with a basic PID controller first. Later, move to trajectory planning using differential flatness (generating smooth polynomial paths and computing the forces needed to fly them) Eventually stress-test trajectories by speeding them up / slowing them down and watching what that does to the required forces. In this devlog, I covered: Milestone 1: 1D hover Before touching 3D, I built the simplest possible version, a single point that can only move up and down, controlled by: thrust = mass gravity + Kp error - Kd*velocity Using MATLAB’s ode45 to integrate [z; vz] forward in time. I learned what an ODE solver does. Milestone 2: 3D Next step: extend to a full 3D position [x,y,z,vx,vy,vz], but still letting the controller output force in any direction. This is the same “free vector” simplification my old Python sim used, kept on purpose this time as an isolated stepping stone. The goal was to prove the PID math generalizes to 3D before adding the complexity of real attitude dynamics on top. In my first test, the drone was pointed at a single fixed target. It gave a perfectly straight line, and it took me a second to realize that wasn’t a bug: since x, y, and z all use identical gains and start at rest, they move in lockstep, always in the same ratio to the target. Milestone 3: chasing waypoints I added a list of waypoints instead of one static target, with the controller switching to the next point once it gets within a 0.5 m of the current one. This needed a persistent variable inside the dynamics function to track which waypoint index it’s on, since ode45 calls that function many times per step and nothing about waypoint progress lives in the physical state vector itself. This gave path that actually bends at each waypoint instead of a straight shot. The corners are sharp however, instead of being smooth. Next up I’m going to be adding adding real orientation states (φ, θ, ψ) and constraining thrust to act along a single body axis, the way an actual quadrotor works. That’s the point where this stops being a point-mass simulation and starts being a quadrotor simulation."}]...
|
Title: Drone Sim V2 by @NamanS | Stardance
Devlog Title: Drone Sim V2 by @NamanS | Stardance
Devlogs:
Devlog #1 I’ve built a drone sim before, such as a Python project with Plotly animations, PD control, motor lag, drag, the works. It looked good, but it had a problem where the “drone” was really just a point that could apply force in any direction, instantly. Real quadrotors can’t do that, because they only push one way (straight up from their own frame) and have to physically rotate to redirect that push. I’m now pushing myself to build a research-style quadrotor simulator in MATLAB. The plan: Start with a 9-state model: position, velocity, and orientation (roll/pitch/yaw). Verify a hover with a basic PID controller first. Later, move to trajectory planning using differential flatness (generating smooth polynomial paths and computing the forces needed to fly them) Eventually stress-test trajectories by speeding them up / slowing them down and watching what that does to the required forces. In this devlog, I covered: Milestone 1: 1D hover Before touching 3D, I built the simplest possible version, a single point that can only move up and down, controlled by: thrust = mass gravity + Kp error - Kd*velocity Using MATLAB’s ode45 to integrate [z; vz] forward in time. I learned what an ODE solver does. Milestone 2: 3D Next step: extend to a full 3D position [x,y,z,vx,vy,vz], but still letting the controller output force in any direction. This is the same “free vector” simplification my old Python sim used, kept on purpose this time as an isolated stepping stone. The goal was to prove the PID math generalizes to 3D before adding the complexity of real attitude dynamics on top. In my first test, the drone was pointed at a single fixed target. It gave a perfectly straight line, and it took me a second to realize that wasn’t a bug: since x, y, and z all use identical gains and start at rest, they move in lockstep, always in the same ratio to the target. Milestone 3: chasing waypoints I added a list of waypoints instead of one static target, with the controller switching to the next point once it gets within a 0.5 m of the current one. This needed a persistent variable inside the dynamics function to track which waypoint index it’s on, since ode45 calls that function many times per step and nothing about waypoint progress lives in the physical state vector itself. This gave path that actually bends at each waypoint instead of a straight shot. The corners are sharp however, instead of being smooth. Next up I’m going to be adding adding real orientation states (φ, θ, ψ) and constraining thrust to act along a single body axis, the way an actual quadrotor works. That’s the point where this stops being a point-mass simulation and starts being a quadrotor simulation.
Devlog #2 I added real orientation states (φ, θ, ψ) and made thrust act along a single body axis instead of the free-vector cheat I’d been using. This is the point where the sim actually starts being a quadrotor. Building the rotation matrix Before touching the dynamics at all, I built a rotation matrix that converts “straight up, from the drone’s own perspective” into “which way that is, in world coordinates.” A quadrotor only ever pushes along its own up-direction, so the only way it moves sideways is by tilting, which redirects that one push. I built the matrix as three separate small rotations (yaw, roll, pitch) multiplied together, one for each axis, in a fixed order. I tested it with a small function, bodyZAxis(phi, theta, psi), against three hand-checks: Level (phi=theta=psi=0) → straight up, unchanged. Small roll → a small tilt in y, x untouched. Small pitch → a small tilt in x, y untouched. All three passed, which confirmed the rotation math was doing what it was supposed to before wiring it into anything else. Wiring it into droneDynamics The state vector went from 6 to 9: position, velocity, and now phi/theta/psi. The control loop has split into: Outer loop (same PID idea as before) computes a desired force vector, F_des, from position/velocity error plus a gravity feedforward term. That desired force gets converted into a desired tilt angle, using a small-angle approximation (the sideways component of a tilted thrust vector is roughly thrust * angle, solved backwards for angle given how much sideways force we want). Clamped to ±0.5 rad so a big position error can’t force a nonsensical tilt. The actual attitude states lag toward that desired tilt with a simple first-order lag (same idea as the motor lag in my old Python project, just applied to orientation instead of thrust). Actual thrust direction is computed from the real (possibly still-lagging) attitude, not the desired one. Bugs, in the order I found them Sign error on the gravity feedforward in F_des, which had gravity pulling the “cancel gravity” term the wrong way. Sign error on the final acceleration line, where I used the wrong sign on gravity there too, which sent the drone climbing to hundreds of meters instead of hovering. A big position error was asking for tilts of multiple radians (past 90°), which is physically meaningless and was part of what caused the runaway climb. Fixed with the clamp mentioned above. Where it stands now With the signs fixed and the tilt clamped, the drone tracks through the same waypoint list as before, but now via real (if simplified) attitude dynamics. I can see roll and pitch spike up during each leg of the trip and settle back down as it arrives at a waypoint, instead of the instant, direction-agnostic thrust from the old model. Next up This 9-state model is still leaning on a simplified attitude lag instead of real rotational physics, with no torques, no moment of inertia, no angular velocity states. The next real step is adding those (a 12-state model), replacing the lag with actual torque-driven rotation. After that, there is differential flatness and real trajectory generation, which is the actual point of this whole project
Devlog #3 I replaced the attitude lag from Devlog #2 with real rotational dynamics such as torque, inertia, and actual angular acceleration. Previously, I was assuming that attitude eventually catches up. New states and new physics The state vector went from 9 to 12: added p, q, r, the drone’s spin rate around its own x, y, and z axes. These are the rotational equivalent of vx, vy, vz, just measuring how fast orientation is changing instead of how fast position is changing. I added an inertia matrix, a diagonal 3x3 of made-up placeholder numbers representing how hard it is to spin the drone around each axis, similar to mass. The output is torque instead of thrust, and it feeds into torque divided by inertia to produce angular acceleration. Bugs The desired-attitude error vector and the spin-rate vector were stacked in different orders (theta/phi/psi vs. p/q/r, which is roll/pitch/yaw), so the controller was correcting the wrong axis against the wrong spin rate. The drone would approach a waypoint and then spiral into a slowly tightening orbit around it instead of settling, and in one attempt, diverged outward entirely. It reproduced the same spiral with a single fixed target and no waypoint switching at all. I found that the actual fix wasn’t more damping. Increasing the damping gain alone made it worse, not better. The real issue was that the attitude loop needed to react faster overall to keep pace with how aggressively the position loop was demanding tilt changes. Increasing the correction gain substantially fixed it for now. Where it stands now With gains rebalanced, the drone flies a full waypoint sequence with real torque-driven attitude dynamics. Spin rates spike on each maneuver and cleanly damp back to zero. One nice side effect of finally having real dynamics is that the path through a waypoint now visibly curves rather than shooting straight there, because aggressive tilting to accelerate sideways steals from the vertical thrust component. Next up Everything from here is trajectory generation such as replacing simple point-to-point waypoint chasing with differential-flatness-based polynomial paths. The journey has been difficult so far, especially as this is my first time interacting with vectors and matrices (3b1b’s linear algebra series is the only thing helping me out). Nevertheless, I am persevered to get a finished project.
Devlog #4 I moved from simple point-to-point waypoint chasing to smooth polynomial trajectory generation between waypoints, replacing the threshold-based switching from Devlog #3 with time-based tracking of a continuously moving target. New machinery I built cubicTrajectory.m, which solves a 4x4 system of equations for the coefficients of a cubic polynomial connecting a start point to an end point over a fixed duration, with velocity constrained to zero at both ends of each leg. I also built evalCubic.m, which evaluates that polynomial’s position and velocity at any given time. I tested both standalone before touching the main dynamics. I stored all the coefficients in one array, coeffs_all, indexed by [coefficient, axis, leg], and built a loop that chains legs together so each leg starts exactly where the previous one ended. Bugs The very first version of the leg/local-time lookup accidentally dropped global time from the local-time calculation entirely, leaving the “current time within this leg” frozen at a constant for the whole leg instead of counting up. This meant the drone’s target wasn’t moving during a leg at all, it only jumped once per leg, which produced a single sharp overshoot spike instead of a tracked path. The simulation’s total time span hadn’t been updated to match the total trajectory duration, cutting the run short by a full leg. Where it stands now With both fixed, the drone tracks a moving position and velocity target through all four waypoints instead of chasing a static point. Spin rate and attitude plots show a clean repeating pattern, a spike at each leg transition that damps out before the next one, rather than instability or runaway spiraling. Next up Because every leg currently forces velocity to zero at both ends, the drone still fully stops at every intermediate waypoint before accelerating into the next leg, which is what’s producing the repeating spikes rather than a truly smooth flight. Next is allowing interior waypoints to have nonzero passthrough velocity (estimated from neighboring waypoints), plus adding acceleration feedforward into the force calculation so the controller anticipates the trajectory instead of only reacting to error. After that, the plan is still to move toward true minimum-snap trajectories.
Devlog #5 I moved from fixed-duration legs to distance-based dynamic timing, replacing the flat 5-second-per-leg assumption from Devlog #4 with per-leg durations computed from waypoint spacing and a target cruise speed. I added a speed constant (2 m/s) and used it to compute t_segment as an array instead of a scalar. Each leg’s duration is now distance / speed between its start and end waypoints, so longer legs take proportionally longer instead of every leg getting the same fixed window. I also updated the interior-waypoint velocity estimate to divide by the sum of the adjacent leg durations (t_segment(i-1) + t_segment(i)) instead of 2 * t_segment, since that shortcut only made sense when every leg was the same length. I dropped mass to 0.5 kg to better match a real small-quadrotor class, and lowered Kp/Kd as a starting point since neither the old gains nor the old fixed timing apply anymore. Bugs I didn’t hit any major bugs during this section. Where it stands now Leg duration now reflects actual waypoint spacing instead of an arbitrary constant, which should reduce the unnatural sameness of a drone crawling across a short hop and sprinting across a long one in the same 5 seconds. Next up Re-tune Kp/Kd/Kr/Kw against the new mass and dynamic timing before drawing conclusions from the plots. I will also look into MATLAB’s UAV Toolbox with a built-in quadrotor animation/scene viewer that can consume my state trajectory directly.
Ships:
What did you make? I built a quadrotor simulator in MATLAB. The drone starts at the origin and flies through four gates, and the simulator checks whether it actually passed through each one. It’s a 12-state model: position, velocity, roll/pitch/yaw, and spin rates, with torque-driven attitude control instead of a point that can push in any direction. The flight path is made of cubic polynomials between waypoints, and each leg’s timing comes from the distance between gates and a target speed of 2 m/s. I also built an interactive 3D viewer with play/pause, a timeline slider, and several camera angles, including a chase camera (which is my favourite). Gates turn yellow if the drone passes through them and red if it misses. What was challenging? This was my first time working with vectors, matrices, and MATLAB entirely, so a lot of it was learning as I went. The hardest bug was in the attitude controller. The drone would spiral in a tightening orbit around a waypoint, and adding more damping made it worse. The real problem was that the attitude loop wasn’t reacting fast enough to keep up with the position loop. I also had a mix-up where my error vector and spin-rate vector were stacked in different orders, so the controller was fixing the wrong axis. What are you proud of? I built it up in stages and tested each piece by hand before moving on, from a 1D hover to full torque-driven rotation. Other than that I’m just proud of getting a finished project. What should people know to test it? You can watch the flight on the demo site: https://nam2302.github.io/Drone-Simulation-2/ To run it yourself, you need MATLAB with UAV Toolbox. Download the repo, open it in MATLAB, and run main.m. It simulates the flight, prints a gate pass report, and opens the interactive viewer. Try editing the waypoints at the top of main.m, or change the gains (Kp, Kd, Kr, Kw) and see how the flight changes. The inertia values are placeholders, and the gains are hand-tuned, so some waypoint layouts may miss gates....
|
1793152326.6703515
|
1793238726.6703515
|
|
24976
|
Phantom by @Rodrigo_Todescatto2010 | Stardance
|
Rodrigo_Todescatto2010
|
0
|
3.21
|
0
|
[]
|
[{"post_id": 47255, "ts": "202 [{"post_id": 47255, "ts": "2026-08-15T01:55:24Z", "hours": 1.1367, "text": "Quick update: decided to roll back to D3D11 as it’s simpler to use and way more straightforward…"}, {"post_id": 14804, "ts": "2026-06-24T01:28:48Z", "hours": 2.0733, "text": "Hello world! This is how Phantom looks like for now… Just a Window with D3D12 being initialized with the DSV and RTV being cleared…"}]...
|
Title: Phantom by @Rodrigo_Todescatto2010 | Starda Title: Phantom by @Rodrigo_Todescatto2010 | Stardance
Devlogs:
Hello world! This is how Phantom looks like for now… Just a Window with D3D12 being initialized with the DSV and RTV being cleared…
Quick update: decided to roll back to D3D11 as it’s simpler to use and way more straightforward…...
|
1792633927.317251
|
1793238727.317251
|
|
30697
|
WorkParcel by @arpitaanuna | Stardance
|
arpitaanuna
|
1
|
10.0
|
180
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-10T14:53:46Z", "hours": 10.0, "multiplier": 18.0, "payout": 180, "blessing": "neutral", "text": "Shipping WorkParcel! After spending a lot of time designing, coding, testing and fixing things, I am finally shipping WorkParcel! WorkParcel is a Windows productivity app that helps you save everything connected to a particular project or task in one place. Whenever I work on something, I usually have multiple apps, files, folders and useful browser links open. After closing everything, finding and reopening the same setup again becomes really annoying. That is the problem I wanted WorkParcel to solve. With WorkParcel, you can create a parcel, select the apps and windows you are using, add files and folders, save useful web links, and keep everything connected to that work together. When you return later, you can open the parcel and choose which saved items you want to launch again. How it works Create a parcel and give it a name. Select the currently open apps and windows connected to your work. Add any files, folders or web links you need. Save the parcel without moving or copying your actual files. Use Pack Away to request a normal close for the supported windows you selected. Use Open Parcel whenever you want to reopen your saved setup. Creating a parcel does not immediately close everything. Packing Away is a separate action, so the user always controls when the selected setup should be closed. Other features I added WorkParcel also has a to-do list system. Tasks can be connected to a particular parcel, making it easier to remember what needs to be done when returning to that work. The Today page brings these tasks together in one place. Parcels can now be archived when they are no longer actively needed. They remain safely stored in the Archive and can be restored later. Individual items can also be edited or removed from a parcel. Removing a file or folder only removes its saved WorkParcel record—the actual item on the computer is never deleted. If a saved file or folder gets moved, WorkParcel can show that it is unavailable and allow the user to relink it to its new location. Other details in readme. Browser links Web links can be added by pasting one HTTP or HTTPS URL per line. WorkParcel saves these links and opens them in the default Windows browser. If a complete browser window is selected as an open app, Pack Away may close that entire selected window. WorkParcel does not claim to restore browser history, tab groups, page contents or exact window positions. Built with -C# .NET 10 WinUI 3 Windows App SDK SQLite Win32 APIs WorkParcel is now available as a public beta for Windows 10 and Windows 11!! This project went through several different ideas and UI changes, but I eventually kept its main purpose simple: Save the work. Pack it away. Open it when you return. WorkParcel v0.2.0 Beta 3 is officially shipped! And i hope everyone willll loveeeee itt!! cuz i love it tooo and am def gonna use this alot :D", "repo": "https://github.com/arpitaa31/WorkParcel", "demo": "https://github.com/arpitaa31/WorkParcel/releases/tag/v0.2.0-beta.3"}]...
|
[{"post_id": 65394, "ts": "202 [{"post_id": 65394, "ts": "2026-09-10T14:41:57Z", "hours": 2.7092, "text": "Final Devlog - WorkParcel is done! and i am using it now! After spending a lot of time designing, building, testing and fixing WorkParcel, the main version of the app is finally ready! WorkParcel started from a simple problem I kept noticing. Whenever I worked on a project, I had multiple apps, files, folders and useful links open. If I closed everything and returned later, I had to manually find and reopen the whole setup again. That is exactly what WorkParcel is made for. A user can now create a parcel for a task and add the apps, open windows, files, folders and web links connected to it. Creating the parcel keeps the current setup open. Later, the user can use Pack Away to close selected supported application windows and Open Parcel to reopen the saved items. I also added a to-do list feature. Tasks can now be connected to a particular parcel, so the user can remember what needs to be done when returning to that project. These tasks are also available through the Today page, making it easier to see and manage important work. Parcel archiving is working now as well. Item management has also been completed and fixed. Users can remove a particular app, file, folder or link from a parcel, and it disappears from the interface immediately. This only removes the saved WorkParcel record—the original file or folder on the computer is never deleted. Files and folders can also be checked for availability and relinked if their location changes. Web links are saved as normal URLs and open in the default Windows browser. The app does not require any Chrome or Edge extension and does not claim to capture or close individual browser tabs. All parcel information is stored locally using SQLite, so the saved setup remains available after closing and reopening WorkParcel. I also added archive and restore, search, local backups, light and dark themes, and a downloadable Windows installer. WorkParcel is basically a place where you can pack away the digital setup connected to a task and return to it later without searching for everything again. Like, as soon as i completed makin this, I have started usin it! like the besttttt thing i have ever madee."}, {"post_id": 55748, "ts": "2026-08-27T18:42:14Z", "hours": 3.0675, "text": "Devlog 3 — WorkParcel Is Properly Working! After completing the UI, I finally worked on making the main WorkParcel system actually functional. Users can now create a parcel and easily select everything connected to their work setup. WorkParcel can show the apps and windows currently open on the computer, and the user can choose only the particular ones they want to save. Files can be selected using the Windows file picker, and multiple files can be added at once. Complete folders can also be selected, along with useful links, applications and notes. Everything is organised into separate categories with checkboxes, so users remain in control of exactly what gets included. Before packing the parcel, WorkParcel shows a review of the complete selection too!!!!! Once confirmed, all the selected items are packed together and saved locally. The parcel remains available even after WorkParcel or the computer is restarted. When the user returns, they can open the parcel, review everything saved inside it and choose which items they want to reopen. Files open through their regular applications, folders open in File Explorer, links open in the default browser and supported apps can launch again. The Pack Away option also lets users update the parcel whenever their setup changes. New items can be added, old ones can be removed, and the latest version of the workspace can be saved for the next time. Removing something from WorkParcel never deletes the original file or folder from the computer. So WorkParcel has now moved beyond being only a UI prototype—the main system properly works. Apps, files, folders, links and notes can all be selected easily, packed into one parcel and reopened whenever that complete setup is needed again. Now, cuz finally it works, i just need to do some testing and also like I am thinking to add another feature like a exact window layout restoration, so that i can open the whole setup as it is! like if my vs code was on the left side and chrome tab on the right, it would open the same way! Now i just need to figure out how i will make that happen…. lets see!!"}, {"post_id": 53888, "ts": "2026-08-24T16:18:11Z", "hours": 1.4825, "text": "Devlog 2 — WorkParcel UI Complete! Hii! So i am a bit sick, so couldn’t work much today, but I completed working on the UI of WorkParcel and gave it a clean, dark look instead of making it feel like another productivity app. I also organised the whole app properly and added different tabs to the navbar — Parcels, Today, Archive and Settings. The overview of the app The main Parcels page makes it easy to view saved setups, search through them and choose whether to open or pack them away (so that its easy to navigate thru). I also designed the Create New Parcel popup , parcel details screen and the Capture Current Setup flow, where users will be able to select specific apps, windows, browser tabs, files, folders, links and notes they want to save inside a parcel. The Today page has a simple to-do list, while Archive keeps older parcels separate from the main workspace. Mainly completed the visual design and navigation . Next, I’ll connect everything to real local storage so parcels and to-do items stay saved even after restarting the app. Also, I wanna make a few more changes in the UI to make it look a bit more well structured. Soo, stay tuned! :)"}, {"post_id": 52963, "ts": "2026-08-23T10:45:39Z", "hours": 2.7164, "text": "Devlog 1 — Starting WorkParcel I spent some time brainstorming a new project idea and thought about an issue that I, and probably a lot of other devs, face regularly. While workin on a project, we usually have a bunch of specific files, folders, browser tabs, notes, VS Code windows and other apps open. Once we close everything and return later, we have to manually find and reopen the entire setup again. That’s where the idea for WorkParcel came from. What it lets you do WorkParcel will let users create a “parcel” for a task and add everything connected to it. Later, they’ll be able to click Open Parcel and quickly reopen that complete workspace. For the first part, I set up the GitHub repo, connected it to VS Code and initialised the project using C#, .NET 10 and WinUI 3. There isn’t much to visually show yet, but the complete foundation is ready now. Next, I’ll start designing the actual WorkParcel UI. I am so excited to complete making this project, cuz I’d def would want to use this, as it will def be very helpful."}]...
|
Title: WorkParcel by @arpitaanuna | Stardance
Dev Title: WorkParcel by @arpitaanuna | Stardance
Devlogs:
Devlog 1 — Starting WorkParcel I spent some time brainstorming a new project idea and thought about an issue that I, and probably a lot of other devs, face regularly. While workin on a project, we usually have a bunch of specific files, folders, browser tabs, notes, VS Code windows and other apps open. Once we close everything and return later, we have to manually find and reopen the entire setup again. That’s where the idea for WorkParcel came from. What it lets you do WorkParcel will let users create a “parcel” for a task and add everything connected to it. Later, they’ll be able to click Open Parcel and quickly reopen that complete workspace. For the first part, I set up the GitHub repo, connected it to VS Code and initialised the project using C#, .NET 10 and WinUI 3. There isn’t much to visually show yet, but the complete foundation is ready now. Next, I’ll start designing the actual WorkParcel UI. I am so excited to complete making this project, cuz I’d def would want to use this, as it will def be very helpful.
Devlog 2 — WorkParcel UI Complete! Hii! So i am a bit sick, so couldn’t work much today, but I completed working on the UI of WorkParcel and gave it a clean, dark look instead of making it feel like another productivity app. I also organised the whole app properly and added different tabs to the navbar — Parcels, Today, Archive and Settings. The overview of the app The main Parcels page makes it easy to view saved setups, search through them and choose whether to open or pack them away (so that its easy to navigate thru). I also designed the Create New Parcel popup , parcel details screen and the Capture Current Setup flow, where users will be able to select specific apps, windows, browser tabs, files, folders, links and notes they want to save inside a parcel. The Today page has a simple to-do list, while Archive keeps older parcels separate from the main workspace. Mainly completed the visual design and navigation . Next, I’ll connect everything to real local storage so parcels and to-do items stay saved even after restarting the app. Also, I wanna make a few more changes in the UI to make it look a bit more well structured. Soo, stay tuned! :)
Devlog 3 — WorkParcel Is Properly Working! After completing the UI, I finally worked on making the main WorkParcel system actually functional. Users can now create a parcel and easily select everything connected to their work setup. WorkParcel can show the apps and windows currently open on the computer, and the user can choose only the particular ones they want to save. Files can be selected using the Windows file picker, and multiple files can be added at once. Complete folders can also be selected, along with useful links, applications and notes. Everything is organised into separate categories with checkboxes, so users remain in control of exactly what gets included. Before packing the parcel, WorkParcel shows a review of the complete selection too!!!!! Once confirmed, all the selected items are packed together and saved locally. The parcel remains available even after WorkParcel or the computer is restarted. When the user returns, they can open the parcel, review everything saved inside it and choose which items they want to reopen. Files open through their regular applications, folders open in File Explorer, links open in the default browser and supported apps can launch again. The Pack Away option also lets users update the parcel whenever their setup changes. New items can be added, old ones can be removed, and the latest version of the workspace can be saved for the next time. Removing something from WorkParcel never deletes the original file or folder from the computer. So WorkParcel has now moved beyond being only a UI prototype—the main system properly works. Apps, files, folders, links and notes can all be selected easily, packed into one parcel and reopened whenever that complete setup is needed again. Now, cuz finally it works, i just need to do some testing and also like I am thinking to add another feature like a exact window layout restoration, so that i can open the whole setup as it is! like if my vs code was on the left side and chrome tab on the right, it would open the same way! Now i just need to figure out how i will make that happen…. lets see!!
Final Devlog - WorkParcel is done! and i am using it now! After spending a lot of time designing, building, testing and fixing WorkParcel, the main version of the app is finally ready! WorkParcel started from a simple problem I kept noticing. Whenever I worked on a project, I had multiple apps, files, folders and useful links open. If I closed everything and returned later, I had to manually find and reopen the whole setup again. That is exactly what WorkParcel is made for. A user can now create a parcel for a task and add the apps, open windows, files, folders and web links connected to it. Creating the parcel keeps the current setup open. Later, the user can use Pack Away to close selected supported application windows and Open Parcel to reopen the saved items. I also added a to-do list feature. Tasks can now be connected to a particular parcel, so the user can remember what needs to be done when returning to that project. These tasks are also available through the Today page, making it easier to see and manage important work. Parcel archiving is working now as well. Item management has also been completed and fixed. Users can remove a particular app, file, folder or link from a parcel, and it disappears from the interface immediately. This only removes the saved WorkParcel record—the original file or folder on the computer is never deleted. Files and folders can also be checked for availability and relinked if their location changes. Web links are saved as normal URLs and open in the default Windows browser. The app does not require any Chrome or Edge extension and does not claim to capture or close individual browser tabs. All parcel information is stored locally using SQLite, so the saved setup remains available after closing and reopening WorkParcel. I also added archive and restore, search, local backups, light and dark themes, and a downloadable Windows installer. WorkParcel is basically a place where you can pack away the digital setup connected to a task and return to it later without searching for everything again. Like, as soon as i completed makin this, I have started usin it! like the besttttt thing i have ever madee.
Ships:
Shipping WorkParcel! After spending a lot of time designing, coding, testing and fixing things, I am finally shipping WorkParcel! WorkParcel is a Windows productivity app that helps you save everything connected to a particular project or task in one place. Whenever I work on something, I usually have multiple apps, files, folders and useful browser links open. After closing everything, finding and reopening the same setup again becomes really annoying. That is the problem I wanted WorkParcel to solve. With WorkParcel, you can create a parcel, select the apps and windows you are using, add files and folders, save useful web links, and keep everything connected to that work together. When you return later, you can open the parcel and choose which saved items you want to launch again. How it works Create a parcel and give it a name. Select the currently open apps and windows connected to your work. Add any files, folders or web links you need. Save the parcel without moving or copying your actual files. Use Pack Away to request a normal close for the supported windows you selected. Use Open Parcel whenever you want to reopen your saved setup. Creating a parcel does not immediately close everything. Packing Away is a separate action, so the user always controls when the selected setup should be closed. Other features I added WorkParcel also has a to-do list system. Tasks can be connected to a particular parcel, making it easier to remember what needs to be done when returning to that work. The Today page brings these tasks together in one place. Parcels can now be archived when they are no longer actively needed. They remain safely stored in the Archive and can be restored later. Individual items can also be edited or removed from a parcel. Removing a file or folder only removes its saved WorkParcel record—the actual item on the computer is never deleted. If a saved file or folder gets moved, WorkParcel can show that it is unavailable and allow the user to relink it to its new location. Other details in readme. Browser links Web links can be added by pasting one HTTP or HTTPS URL per line. WorkParcel saves these links and opens them in the default Windows browser. If a complete browser window is selected as an open app, Pack Away may close that entire selected window. WorkParcel does not claim to restore browser history, tab groups, page contents or exact window positions. Built with -C# .NET 10 WinUI 3 Windows App SDK SQLite Win32 APIs WorkParcel is now available as a public beta for Windows 10 and Windows 11!! This project went through several different ideas and UI changes, but I eventually kept its main purpose simple: Save the work. Pack it away. Open it when you return. WorkParcel v0.2.0 Beta 3 is officially shipped! And i hope everyone willll loveeeee itt!! cuz i love it tooo and am def gonna use this alot :D...
|
1793152327.8392794
|
1793238727.8392794
|
|
30714
|
My own site! by @mayaarooo | Stardance
|
mayaarooo
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My own site! by @mayaarooo | Stardance
|
1792633928.1727924
|
1793238728.1727924
|
|
57915
|
Hot Potato Catch by @NJstechnigames | Stardance
|
NJstechnigames
|
1
|
7.73
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-20T19:14:43Z", "hours": 6.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I shall declare this project Finished! Also the password to the devmode is “RaspberryPi1234” (dont use this to cheat)", "repo": "https://github.com/njstechnigames-afk/Hot-Potato-Catch-v1", "demo": "https://njs-technigames.itch.io/the-hot-potato-catch-game"}]...
|
[{"post_id": 72545, "ts": "202 [{"post_id": 72545, "ts": "2026-09-23T05:36:02Z", "hours": 1.0194, "text": "NEW UPDATE: I have redone the textures for the buttons for mobile. As well as that, I’ve added a pause system."}, {"post_id": 71871, "ts": "2026-09-21T17:55:01Z", "hours": 0.7075, "text": "NEW UPDATE!!! the game can now be played on a mobile phone by enabling the mobile phone mode in the settings menu :)"}, {"post_id": 71401, "ts": "2026-09-20T19:12:00Z", "hours": 1.7492, "text": "Added a few new features like a dev mode, (Although i will reveal the password after i ship it :))"}, {"post_id": 69768, "ts": "2026-09-17T19:10:31Z", "hours": 1.165, "text": "finally finished the minigames. time for the lose screen."}, {"post_id": 69710, "ts": "2026-09-17T16:54:24Z", "hours": 2.4069, "text": "i am currently working on the first minigame mechanics."}, {"post_id": 61062, "ts": "2026-09-03T19:38:05Z", "hours": 0.2703, "text": "Created menu screen. And github crashed so the respiratory isn’t linked :("}]...
|
Title: Hot Potato Catch by @NJstechnigames | Stard Title: Hot Potato Catch by @NJstechnigames | Stardance
Devlogs:
Created menu screen. And github crashed so the respiratory isn’t linked :(
i am currently working on the first minigame mechanics.
finally finished the minigames. time for the lose screen.
Added a few new features like a dev mode, (Although i will reveal the password after i ship it :))
NEW UPDATE!!! the game can now be played on a mobile phone by enabling the mobile phone mode in the settings menu :)
NEW UPDATE: I have redone the textures for the buttons for mobile. As well as that, I’ve added a pause system.
Ships:
I shall declare this project Finished! Also the password to the devmode is “RaspberryPi1234” (dont use this to cheat)...
|
1793152329.0065606
|
1793238729.0065606
|
|
13549
|
My awesome macropad! by @Cct12 | Stardance
|
Cct12
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @Cct12 | Stardance
|
1792633929.023622
|
1793238729.023622
|
|
28194
|
60v 100ah Custom Battery Pack (rechargeable) by @P 60v 100ah Custom Battery Pack (rechargeable) by @Preston | Stardance...
|
Preston
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: 60v 100ah Custom Battery Pack (rechargeable Title: 60v 100ah Custom Battery Pack (rechargeable) by @Preston | Stardance...
|
1792633929.8817449
|
1793238729.8817449
|
|
57936
|
My-site by @Dimeji | Stardance
|
Dimeji
|
1
|
4.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-14T18:25:57Z", "hours": 4.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "A personal website about me. Giving a preview of my past projects and a link to my github repository. Also contains a contact me page.", "repo": "https://github.com/Dimeji0/My-website", "demo": "https://dimeji0.github.io/My-website/"}]...
|
[{"post_id": 68193, "ts": "202 [{"post_id": 68193, "ts": "2026-09-14T18:00:15Z", "hours": 0.2586, "text": "Finally deployed the website had a bit of an issue cuz it was in a folder and I had to bring it out to the main branch. Simply copied the files though so its all the same inside the website data folder"}, {"post_id": 67680, "ts": "2026-09-13T20:54:34Z", "hours": 0.7825, "text": "So i added a contact me page, used a bum email obviously. The rest of the websites text uses the same white font colour for the most part, but not sure it suits it the best would love suggestions on what to change it to."}, {"post_id": 66854, "ts": "2026-09-12T19:39:56Z", "hours": 1.9181, "text": "Ok so I created the basic layout, and using a screenshot of my earlier code edited and blurred. I know I need to change the colour of the text to make it more clear, and I think I wanna add a contact me page at the bottom or something."}, {"post_id": 65033, "ts": "2026-09-09T20:47:07Z", "hours": 1.4419, "text": "I’ve got something very rough right now. Gone through the guide so I know the basics I’m gonna probably add a few more sections and a few bells and whistles probably"}]...
|
Title: My-site by @Dimeji | Stardance
Devlogs:
I’ Title: My-site by @Dimeji | Stardance
Devlogs:
I’ve got something very rough right now. Gone through the guide so I know the basics I’m gonna probably add a few more sections and a few bells and whistles probably
Ok so I created the basic layout, and using a screenshot of my earlier code edited and blurred. I know I need to change the colour of the text to make it more clear, and I think I wanna add a contact me page at the bottom or something.
So i added a contact me page, used a bum email obviously. The rest of the websites text uses the same white font colour for the most part, but not sure it suits it the best would love suggestions on what to change it to.
Finally deployed the website had a bit of an issue cuz it was in a folder and I had to bring it out to the main branch. Simply copied the files though so its all the same inside the website data folder
Ships:
A personal website about me. Giving a preview of my past projects and a link to my github repository. Also contains a contact me page....
|
1793152330.1792476
|
1793238730.1792476
|
|
39683
|
My first slack bot! by @Joel_Alex | Stardance
|
Joel_Alex
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @Joel_Alex | Stardan Title: My first slack bot! by @Joel_Alex | Stardance...
|
1792633931.1929417
|
1793238731.1929417
|
|
29083
|
The Infinite Book by @domst13 | Stardance
|
domst13
|
1
|
18.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-27T21:13:16Z", "hours": 18.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made the infinite book, an e-reader that’s housed inside of an old hollowed out fake book. It has basic e-reader functions, such as loading books from a micro SD card and being able to scroll through them. I had a lot of challenges throughout this project, seeing as it was my first C++ project and maybe biting off a little more than I could chew. I was able to overcome them, however, and now it’s complete. In actuality, I think my total time spent was probably 21-22 hours, because I didn’t lapse a lot of the physical build/assembly process. This was a really fun project, and I learned so many things about hardware as well as C++.", "repo": "https://github.com/dominicstange13/The-Infinite-Book", "demo": ""}]...
|
[{"post_id": 74635, "ts": "202 [{"post_id": 74635, "ts": "2026-09-27T20:28:29Z", "hours": 2.0444, "text": "It’s finished! I’m back guys, I know it’s been like 2 months and I apologize, I really procrastinated on finishing this project. So… where do I begin? I finished wiring the components. For the buttons I designed and printed a panel to house them all. The voltage divider circuit that outputs the battery voltage also got moved inside of the button panel, before the whole thing was sealed off with hot glue. Using a dremel, I hollowed out little pockets of the fake book to make the screen fit and to add a hole to charge. Everything fits snugly inside of the case. The battery is behind the screen, the microcontroller is propped up on a custom 3d printed piece so the FPC cable of the screen isn’t getting bent violently. The microcontroller, buttons, and battery are all held in by velcro, while the screen is held in simply by a tight fit and the micro SD card reader is attached by mere wires so it can move freely and be easily accessed. All this together means that the entire electronic system can be ripped out, which is super helpful in case of future changes. On the software side of things, I didn’t have much to add. The screen now hibernates after five minutes of inactivity to preserve battery life. The book storage system isn’t exactly where I want it to be, but I can’t really work on it because my micro SD card reader died :(. This also means I can’t load books onto it yet, but once I can it will be 100% operational! That’s really all there is to say, see you guys at the ship!"}, {"post_id": 24139, "ts": "2026-07-07T14:43:22Z", "hours": 5.9025, "text": "Guys I have some unfortunate news. I worked for a super long time yesterday but it just isn’t going to be done in time. It’s so close to completion but I’m leaving today the infinite book simply won’t be ready in time. Sorry guys. I’ll be back in three n a half weeks and ill finish the project then. this is some bad news but its okay. the project will eventually get finished."}, {"post_id": 23333, "ts": "2026-07-06T06:59:30Z", "hours": 3.7914, "text": "Hey guys sorry for it being a couple days since the last devlog, I kinda forgot yesterday so this one is a combination of yesterday and today. So yesterday I didn’t do much except I wired the SD card reader with a breadboard and got that started. I had to battle with it a lot for it to work as intended and that battle is far from over as I am still working on the file loading system. Today I worked on fixing up my code for a while and finally got the SD card reader to what I would call a reasonable point, then I fixed an issue I was having with the opening of files off of the card. I’m still not completely sure what the fix was that made it start working all of a sudden, but my two main theories are that A) I was opening the file too early before the card reader could fully initialize or B) The breadboard wiring was just too unreliable to give a steady connection. Either way I started opening the file when it was actually needed instead of on startup and replaced the chunky breadboard wiring with soldered wires. One of the two things fixed the issue for what seems like permanently. I just hope I won’t have to revisit that part of the project later because I’m on a serious time crunch right now (this thing has to be done by Tuesday or else I am absolutely fried because I’m going on a 3 and a half week trip and my parents won’t let me bring my phone for some reason meaning if I don’t get my infinite book working in time it’s over for me). Finally I also got both navigation buttons working as well as the reading light and light switch. All of those things are currently breadboard wired instead of soldered but that’ll get fixed when the code is looking a bit more solid. In terms of inputs I’ll still need a main power switch to keep the battery from draining as well as a home/select button. Theoretically after all that is working I can assemble and decorate this thing and the project will be done but unfortunately that’s easier said than done especially if I only have tomorrow to work but let’s all just pray for the best. See you guys tomorrow, hopefully for the last devlog of this project!"}, {"post_id": 21948, "ts": "2026-07-04T04:39:54Z", "hours": 2.4461, "text": "Today I’m gonna be honest I wasn’t able to get much done since the whole time I was basically just fixing stuff I was able to actually figure out a way to do partial resets which is friggin aura I’m starting work on the SD card reader so yeah see you tomorrow"}, {"post_id": 21336, "ts": "2026-07-03T06:59:22Z", "hours": 1.8586, "text": "Today I fixed the LiPo battery readings by using a LiPo flow chart to match the curved depletion of LiPo batteries. When I finished I checked with a multimeter and the predicted voltages were basically spot-on, matching the multimeter exactly once I added a calibration step to the math to account for the difference. I also found out some bad news, which is that my e-paper display is incompatible with partial refreshes (updating the pixels of the display in the part you are changing specifically rather than the entire display) in the library I am using, and I have not been able to find a replacement library so I am assuming it is just entirely not possible. This does suck but I think the project will be okay and I will still be able to make a good final product. That’s about all for today, I was gonna work more but unfortunately I was busy, my goals for tomorrow are going to be working on making more UI besides the battery, dealing with the no partial refresh issue, and (hopefully) acquiring an SD card and starting to figure out how I’m gonna load text onto the screen. See you guys tomorrow!"}, {"post_id": 20571, "ts": "2026-07-02T05:57:18Z", "hours": 1.0972, "text": "Today I created a system that can detect the battery percentage of the battery, then found out LiPo batteries deplete on a curve so I’m gonna have to rework it so it is actually accurate 😭 On a better note I learned more about the Arduino IDE and was extremely happy when my voltage divider circuit actually worked (I know it’s simple but still I was proud) Tomorrow I aim to fix the battery issue and hopefully find an SD card so I can start making the text display system work See you guys tomorrow! P.S. I didn’t have time to get a picture of the current contraption so here’s a picture of me soldering on pin header from my Lapse recording"}, {"post_id": 19734, "ts": "2026-07-01T03:55:14Z", "hours": 0.5772, "text": "I began coding but I couldn’t progress any further without soldering which my parents won’t let me do until tomorrow (for some reason?) so yeah that’s all for today"}]...
|
Title: The Infinite Book by @domst13 | Stardance
Title: The Infinite Book by @domst13 | Stardance
Devlogs:
I began coding but I couldn’t progress any further without soldering which my parents won’t let me do until tomorrow (for some reason?) so yeah that’s all for today
Today I created a system that can detect the battery percentage of the battery, then found out LiPo batteries deplete on a curve so I’m gonna have to rework it so it is actually accurate 😭 On a better note I learned more about the Arduino IDE and was extremely happy when my voltage divider circuit actually worked (I know it’s simple but still I was proud) Tomorrow I aim to fix the battery issue and hopefully find an SD card so I can start making the text display system work See you guys tomorrow! P.S. I didn’t have time to get a picture of the current contraption so here’s a picture of me soldering on pin header from my Lapse recording
Today I fixed the LiPo battery readings by using a LiPo flow chart to match the curved depletion of LiPo batteries. When I finished I checked with a multimeter and the predicted voltages were basically spot-on, matching the multimeter exactly once I added a calibration step to the math to account for the difference. I also found out some bad news, which is that my e-paper display is incompatible with partial refreshes (updating the pixels of the display in the part you are changing specifically rather than the entire display) in the library I am using, and I have not been able to find a replacement library so I am assuming it is just entirely not possible. This does suck but I think the project will be okay and I will still be able to make a good final product. That’s about all for today, I was gonna work more but unfortunately I was busy, my goals for tomorrow are going to be working on making more UI besides the battery, dealing with the no partial refresh issue, and (hopefully) acquiring an SD card and starting to figure out how I’m gonna load text onto the screen. See you guys tomorrow!
Today I’m gonna be honest I wasn’t able to get much done since the whole time I was basically just fixing stuff I was able to actually figure out a way to do partial resets which is friggin aura I’m starting work on the SD card reader so yeah see you tomorrow
Hey guys sorry for it being a couple days since the last devlog, I kinda forgot yesterday so this one is a combination of yesterday and today. So yesterday I didn’t do much except I wired the SD card reader with a breadboard and got that started. I had to battle with it a lot for it to work as intended and that battle is far from over as I am still working on the file loading system. Today I worked on fixing up my code for a while and finally got the SD card reader to what I would call a reasonable point, then I fixed an issue I was having with the opening of files off of the card. I’m still not completely sure what the fix was that made it start working all of a sudden, but my two main theories are that A) I was opening the file too early before the card reader could fully initialize or B) The breadboard wiring was just too unreliable to give a steady connection. Either way I started opening the file when it was actually needed instead of on startup and replaced the chunky breadboard wiring with soldered wires. One of the two things fixed the issue for what seems like permanently. I just hope I won’t have to revisit that part of the project later because I’m on a serious time crunch right now (this thing has to be done by Tuesday or else I am absolutely fried because I’m going on a 3 and a half week trip and my parents won’t let me bring my phone for some reason meaning if I don’t get my infinite book working in time it’s over for me). Finally I also got both navigation buttons working as well as the reading light and light switch. All of those things are currently breadboard wired instead of soldered but that’ll get fixed when the code is looking a bit more solid. In terms of inputs I’ll still need a main power switch to keep the battery from draining as well as a home/select button. Theoretically after all that is working I can assemble and decorate this thing and the project will be done but unfortunately that’s easier said than done especially if I only have tomorrow to work but let’s all just pray for the best. See you guys tomorrow, hopefully for the last devlog of this project!
Guys I have some unfortunate news. I worked for a super long time yesterday but it just isn’t going to be done in time. It’s so close to completion but I’m leaving today the infinite book simply won’t be ready in time. Sorry guys. I’ll be back in three n a half weeks and ill finish the project then. this is some bad news but its okay. the project will eventually get finished.
It’s finished! I’m back guys, I know it’s been like 2 months and I apologize, I really procrastinated on finishing this project. So… where do I begin? I finished wiring the components. For the buttons I designed and printed a panel to house them all. The voltage divider circuit that outputs the battery voltage also got moved inside of the button panel, before the whole thing was sealed off with hot glue. Using a dremel, I hollowed out little pockets of the fake book to make the screen fit and to add a hole to charge. Everything fits snugly inside of the case. The battery is behind the screen, the microcontroller is propped up on a custom 3d printed piece so the FPC cable of the screen isn’t getting bent violently. The microcontroller, buttons, and battery are all held in by velcro, while the screen is held in simply by a tight fit and the micro SD card reader is attached by mere wires so it can move freely and be easily accessed. All this together means that the entire electronic system can be ripped out, which is super helpful in case of future changes. On the software side of things, I didn’t have much to add. The screen now hibernates after five minutes of inactivity to preserve battery life. The book storage system isn’t exactly where I want it to be, but I can’t really work on it because my micro SD card reader died :(. This also means I can’t load books onto it yet, but once I can it will be 100% operational! That’s really all there is to say, see you guys at the ship!
Ships:
I made the infinite book, an e-reader that’s housed inside of an old hollowed out fake book. It has basic e-reader functions, such as loading books from a micro SD card and being able to scroll through them. I had a lot of challenges throughout this project, seeing as it was my first C++ project and maybe biting off a little more than I could chew. I was able to overcome them, however, and now it’s complete. In actuality, I think my total time spent was probably 21-22 hours, because I didn’t lapse a lot of the physical build/assembly process. This was a really fun project, and I learned so many things about hardware as well as C++....
|
1793152331.3456414
|
1793238731.3456414
|
|
1059
|
Paradigm by @Dante | Stardance
|
Dante
|
0
|
1.79
|
0
|
[]
|
[{"post_id": 6161, "ts": "2026 [{"post_id": 6161, "ts": "2026-06-10T11:21:59Z", "hours": 0.5728, "text": "Worked on walking animation for player model."}, {"post_id": 4861, "ts": "2026-06-08T12:07:25Z", "hours": 0.7519, "text": "Worked on basic character movement. Next up, going to be working on animations for the character model."}, {"post_id": 3537, "ts": "2026-06-06T14:59:35Z", "hours": 0.4653, "text": "Worked on character modeling. I applied a glowing wireframe to a prexisting character model I created quite a while ago."}]...
|
Title: Paradigm by @Dante | Stardance
Devlogs:
Wo Title: Paradigm by @Dante | Stardance
Devlogs:
Worked on character modeling. I applied a glowing wireframe to a prexisting character model I created quite a while ago.
Worked on basic character movement. Next up, going to be working on animations for the character model.
Worked on walking animation for player model....
|
1792633932.0541742
|
1793238732.0541742
|
|
57952
|
CodeWare by @tyleruploads | Stardance
|
tyleruploads
|
1
|
51.0
|
1013
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-06T21:03:58Z", "hours": 51.0, "multiplier": 16.45, "payout": 1013, "blessing": "neutral", "text": "I created CodeWare, a WarioWare-style video game where you have to complete various minigames, written in Godot. I originally had it under the WarioWare game mission, but I eventually decided I should detach it from it due to the sheer complexity of this game, which is way above the beginner mission. In the game, players are put through what is currently 12 minigames. Each minigame has a strict timer limit, whether it be losing a life or progressing to the next minigame once it strikes 0. In case you are confused, the way they win a life at the end is if the purpose of the minigame is to survive a certain amount of time against computer-generated obstacles, like arrows or orbs (essentially meteors). The very interesting thing about this game is the two endings: the ending you get when you complete all the minigames with lives to spare, and the one when you lose all of your five lives. These endings, which I will not explain in detail (so it is not spoiled for you!), highlight the eternity of automatically generated code files. The opening scene of the game is the Tyleruploads Mountain Range, which shows many mountains connected via bridges. The suspension for those bridges is the game’s logo turned into a bunch of small links. Metaphysically, the game’s goal is to cross these bridges. Many parts of this project were extremely challenging for me. For one, I had never set foot in Godot at all before embarking on this project. I was also a complete newcomer to any sort of game development. I encountered many errors caused by my being just introduced to GDScript and game development, such as not knowing that scripts continue after changing the scene, the absence of a deferred call causing the game to go completely grey, losing a lot of work in video editing software while making the gameplay trailer video, and many more small and large things. In every ship message for prior Stardance projects, I have said something like “Wow! Before I started, I really didn’t think I could do something this complex. I really just transformed my coding abilities.” But this time, I am not going to repeat that basic fib without any supporting arguments. My previous Stardance projects were nowhere near this length. So, I would like to make a new claim now. That claim is that while I have not become a completely new developer or graphic designer or anything, I have dipped into a new path of development that I will have the choice to either continue to pursue or to reap the benefits of the mindset associated with it as I enter high school. For these reasons, along with the fact that I was able to sit down and write quality code for one project for 51 hours, I am very proud of myself. My viewpoint of “sit down and make a decent project and leave it” has been greatly diminished outside of specific contexts.", "repo": "https://github.com/tyleruploads/code-ware", "demo": "https://tyleruploads.itch.io/codeware"}]...
|
[{"post_id": 77174, "ts": "202 [{"post_id": 77174, "ts": "2026-10-05T22:22:21Z", "hours": 1.2811, "text": "This marks v1.0.0! This is my FINAL devlog for CodeWare (at least the first ship)! It has really been a great project that has significantly pushed what I think about my development capabilities. But I will explain that more in the ship message! The main change made over the time of this devlog was a complete revamp of the README! Here is a summary of the changes made to it: The following shields have been added: Play on GitHub Pages, Made with Godot, GitHub Release (version number), and GitHub Commit Activity The hero image near the top of the README, depicting the title screen, has been replaced with a gameplay video for the game, with a hero of minigame 6 (Unintelligent Arrows) The minigames section has been moved to near the bottom of the README to make the start of the README a better hook. And the minigame descriptions and hero images inside the section have been put inside a spoiler notice, so the game can not be easily spoiled for players. And the hero images in the minigame section have been converted from Markdown tags to HTML tags in order to enforce a specific width."}, {"post_id": 76860, "ts": "2026-10-04T21:10:06Z", "hours": 2.3425, "text": "This will be one of my very last devlogs before I ship CodeWare! I just created the gameplay trailer, which is a huge accomplishment! This is my first time making any sort of video for anything I make in the computer world, and I think it actually turned out very well! The video shows potential players what the game will look like and gives a glimpse of its unexpected win-and-lose endings. I also put the video on the game’s Itch.io page, which will be made public very soon. You can view the video on YouTube here: CodeWare - Official Gameplay Video"}, {"post_id": 75987, "ts": "2026-10-01T21:19:32Z", "hours": 0.7008, "text": "I just created the twelfth mingame of CodeWare, “Catch the Falling Orbs!” In it, you have 45 seconds to catch 35 falling orbs by moving left and right with your keyboard."}, {"post_id": 75387, "ts": "2026-09-29T22:05:18Z", "hours": 1.7511, "text": "In the Newspaper department at my summer sleepaway camp this year, they always said, “If the number is less than 11, spell it out.” CodeWare has officially surpassed this guideline in the number of its minigames. Minigame 11 of CodeWare is titled “Type the Strings,” and players must type 15 five-character strings provided to them in less than one minute. The string is generated from a pool of characters with lookalikes (i.e., Z and 2, S and 5, O and 0, I and l, etc.) removed to ensure it is completely fair for the user. This was definitely one of the easier minigames to code, but it wasn’t the easiest thing ever. I still ran into some issues, like the vertical alignment of a RichTextLabel being a bit too low when dynamically updating its content in GDScript to show a custom notice to the user (I fixed it by changing it to a normal Label, after troubleshooting for way too long)."}, {"post_id": 74691, "ts": "2026-09-28T00:28:50Z", "hours": 3.545, "text": "I just did a lot of asset updating and linting! The part I think would be most interesting to you is obviously the asset updates. I changed the assets in Minigame 1, 3, 4, and 9! I also updated the gallery, accessible in the extras menu, to include new assets I’ve forgotten to put in there for a while now. I’ll just show you how minigame one looks now; no need for a detailed explanation of everything. Now, I have to address the boring part, which took most of the three and a half hours. That would be linting! It’s pretty self-explanatory: I went through and made the scenes and scripts adhere to style guidelines."}, {"post_id": 74561, "ts": "2026-09-27T17:10:27Z", "hours": 2.3617, "text": "I just made the tenth minigame for CodeWare! It is named “RGB Skills.” In the minigame, there are two colors: one generated automatically by the code, and one controlled by manual RGB Sliders. It validates the user’s guess using the GDScript method Vector3.distance_to() . The method uses the 3D Pythagorean theorem to calculate the Euclidean Distance between the RGB values, as if they were plotted in a 3D space. This works because the red value represents the x-axis, the green value represents the y-axis, and the blue value represents the z-axis on a 3D graph. This was very interesting for me to discover, since I only learned the 2D Pythagorean theorem last year (in seventh grade). The game also starts the sliders at the furthest possible points from the target color, which makes the minigame harder. If the player clicks the submit button without making any changes, they will not pass. And yes, I know they could easily invert the colors to find the right one. The only thing is, they probably didn’t read this devlog. So, they’ll have no clue of the fact the sliders were placed at the inversion of the target color."}, {"post_id": 74200, "ts": "2026-09-26T22:13:25Z", "hours": 2.3222, "text": "I just made the ninth minigame for CodeWare, “The Maze!” In the minigame, the user needs to get to the center of the maze in less than 18 seconds! They move a mini tyleruploads texture with arrow keys and WASD to eventually get to the bigger one in the middle! I had a lot of trouble with physics here, hence the 2 hours! And, I’ve never made any sort of maze before, so this is a first!"}, {"post_id": 74111, "ts": "2026-09-26T18:21:01Z", "hours": 1.9775, "text": "I just made version v0.14.0 of CodeWare! In this version, I added the eighth minigame, “Choose the Boxes!” The user has 30 seconds to choose 20 boxes by clicking on the one matching the color of the center box. I also went through and removed unnecessary log statements and unused variables."}, {"post_id": 72912, "ts": "2026-09-24T00:48:33Z", "hours": 2.9286, "text": "I just released version v0.13.0 of CodeWare! In this version, I have completely changed the sound environment of the game! I will explain it with two basic pseudocode (or Python) logic statements! prev_sound = sound in v0.12.0 curr_sound = sound in v0.13.0 print(prev_sound, curr_sound) # False, True What I’m trying to illustrate here is that there was absolutely no sound before, and now there is! There is a background ticking noise playing (forever) through an autoload and sound effects corresponding to in-minigame events. Feel free to test it at https://tyleruploads.itch.io/codeware?secret=CDZUB2MTxYCmNQ70VRagItDLSTg ! Send any feedback in the comments!"}, {"post_id": 71345, "ts": "2026-09-20T17:48:01Z", "hours": 0.7083, "text": "I just made two new assets for CodeWare! They are the players in minigames 4 and 6. Here is a photo of one of them."}, {"post_id": 70807, "ts": "2026-09-19T19:51:11Z", "hours": 0.8956, "text": "After receiving feedback from the Hack Club community, I have made these changes to CodeWare. The icon has been updated to increase contrast and to look better at small resolutions Minigame 6, “Unintelligent Arrows,” has been balanced to be easier for users to complete WASD Movement has been added to all games Support for held jumps has been added to the first minigame, “Orb Collection Platformer” An ambiguity in the README about the objective has been corrected"}, {"post_id": 70237, "ts": "2026-09-18T19:29:20Z", "hours": 0.94, "text": "I just balanced minigame 6, “Unintelligent Arrows,” after feedback from Hack Club members. I made users have more time to react before getting hit by the arrows. I have not released this update yet; once I apply some other suggestions from the community, I will release it as v0.11.0."}, {"post_id": 69877, "ts": "2026-09-17T23:54:31Z", "hours": 2.5408, "text": "I just created the sixth minigame, “Unintelligent Arrows,” in CodeWare! In the minigame, users have to dodge countless arrows that are described as unintelligent purely based on their inability to change paths once shot. If you weren’t already guessing, I am planning on making an intelligent-arrow-themed minigame in the future, possibly inspired by 1948 in some ways. This game is actually getting nice and long, way longer than I thought it would be at the start. When I shared it with people a while ago, it was very short. Now, it’s decently long! Once I add a lot more minigames, I will consider making them go in random order and giving them difficulty tags to determine when they should be shown."}, {"post_id": 69387, "ts": "2026-09-16T23:12:21Z", "hours": 1.0319, "text": "I just completely refactored, everything! I made many new directories in order to organize the entire repository much better! This took an hour because of the debugging and other related changes to the code associated with a complete structural refactor. It definitely was not a calm, easy hour."}, {"post_id": 69337, "ts": "2026-09-16T20:42:37Z", "hours": 2.45, "text": "I just added two minigames to CodeWare! The first minigame I just added, minigame 4, titled “Dodge the Flying Balls,” has users dodge flying balls (referred to as meteors in the code) for 45 seconds. Each hit takes away 10% of the user’s health. It can actually be pretty hard. A good strategy to stay alive is moving from side to side and never stopping, because there are really fast ones that come before you can even react. The second minigame I just added, minigame 5, titled “Click Very Fast,” has the user click on a big circular button in the middle 100 times in less than 20 seconds. I have tested it many times, and it is just the right time (at least for now). You can play the game at https://tyleruploads.github.io/code-ware/"}, {"post_id": 68302, "ts": "2026-09-14T21:48:29Z", "hours": 0.3142, "text": "This is a short one! I just integrated it with the Itch.io Butler API, so it will automatically update its Itch.io game whenever I make a new release! Currently, it is a draft on Itch.io. You can view the draft at https://tyleruploads.itch.io/codeware?secret=CDZUB2MTxYCmNQ70VRagItDLSTg . Sometime before I ship, I will make the Itch.io page public, which may bring in some players."}, {"post_id": 67752, "ts": "2026-09-14T00:02:19Z", "hours": 0.4536, "text": "I just put CodeWare on GitHub pages! You can view it at https://tyleruploads.github.io/code-ware/ ! I also upped the time for a minigame after a web playtest determined the amount of time given was not enough to complete the task at hand."}, {"post_id": 66971, "ts": "2026-09-12T23:32:31Z", "hours": 1.4353, "text": "I just added the third minigame to CodeWare! It is titled “Hit the Circles.” In the minigame, you start with a balance of -15, and each circle you hit, you get +1 balance! It is kindove like Whack-a-Mole (don’t sue me Mattel.) This marks version 0.6.0 of the game!"}, {"post_id": 66187, "ts": "2026-09-11T21:03:31Z", "hours": 1.0183, "text": "I just made some nice changes to CodeWare! I added pause, unpause, and reset functionality. This was in the README as coming soon for a while. I relocated script locations and removed ambiguity from a script named ‘self_timer.gd’ by renaming it ‘minigame_1_timer.gd,’ which makes it not look wrong when next to ‘minigame_2_timer.gd.’ And, I added the version number to the title menu!"}, {"post_id": 65647, "ts": "2026-09-10T22:37:05Z", "hours": 8.2886, "text": "Wow! 8 hours is a lot of time! Here’s what I did! Create all new assets. I made a new icon and background for the title screen and both minigames. The icon features an infinity symbol cut in half but connected with the parts in between them in a bit of a 3D-like arrangement, symbolizing two sides of eternity connected by small paths. The first minigame background and the title scene background contain a mountain range, a sunset, and one or multiple bridges. The second minigame background is two eyes in many perfectly aligned rectangles. Make death scene. Previously, I only had a win screen in the game (a very anticlimactic one at best, in a purposeful way). Now, I added a death scene too! The death scene links with the idea of the two sides of eternity (or infinity) connected by a small path because the user is showed specific text by automatic vertical scrolling, then they click a button to get thrown right back to the first minigame, as if nothing happened. They can do this as many times as they want; the bridges between the two halves of eternity represented by infinity are very strong, the same bridges connecting the mountains. Replace unused settings button with extras. The main menu used to contain a button labeled “Settings,” which would take the user to a blank scene with no way to get back. It has now been replaced with an “Extras” button, which contains an Asset Gallery that allows users to look at the beautiful game assets and obviously, a credits section. Universal back buttons. Now, users can always get back to some point in the game (including the title screen), even if they are in the infinite end scene."}, {"post_id": 63976, "ts": "2026-09-08T02:12:04Z", "hours": 2.1261, "text": "I JUST MADE THE END SCENE! It is very complex. But, I can’t spoil it! Here’s the code. It’s your choice to go line by line and spoil it for yourself."}, {"post_id": 63904, "ts": "2026-09-07T22:50:03Z", "hours": 0.75, "text": "Well, that was very silly. I spent 45 minutes adding automatic cross-compilation via GitHub actions! The main issue was: macOS! I now officially hate macOS. I essentially spent 12 commits trying to fix macOS, and 1 commit removing macOS. The commits mentioning Windows or Linux? They were never the issue. It was only macOS. Heres my commit history for this devlog: Add basic src/export_presets.cfg 1 file changed, 431 insertions(+) Make publishing workflow to compile 1 file changed, 66 insertions(+) Fix Linux export in export_presets.cfg to work with workflow 1 file changed, 2 insertions(+), 2 deletions(-) Set project directory in workflow 1 file changed, 4 insertions(+), 4 deletions(-) Remove export_path for windows in export_presents.cfg to fix CI/CD 1 file changed, 1 insertion(+), 1 deletion(-) Hopefully fixes CI/CD 1 file changed, 6 insertions(+), 9 deletions(-) Make macOS only support x86_64 to fix CI/CD issue 1 file changed, 2 insertions(+), 2 deletions(-) Add bundle identifier for macOS (why does it have to be such a pain?) 1 file changed, 2 insertions(+), 2 deletions(-) The mac strikes back: import ETC2 ASTC compession for macOS 1 file changed, 1 insertion(+) Add initial project import step to CI/CD 1 file changed, 4 insertions(+) Cd into src before initializing godot 2 files changed, 2 insertions(+), 1 deletion(-) Remove cding into src and add export_templates_path 1 file changed, 5 insertions(+), 1 deletion(-) The mac struck back yet again: emancipated 1 file changed, 1 insertion(+), 4 deletions(-) I rebased it to “Add support for every OS; remove support for macOS (it struck back, like starwars)”"}, {"post_id": 63853, "ts": "2026-09-07T20:42:56Z", "hours": 2.5025, "text": "This is going to be my second to last devlog before I ship, assuming everything goes well! In these two and a half hours, I did SO MANY THINGS! The most obvious change has to be how I added the second minigame, the clicker! In the minigame, you have 12 seconds to collect 18 tyleruploads circles! Each circle is randomly placed on the screen, which makes it so you can’t just memorize it! I also added a license to the project. It contains five sections for different types of content. And, I updated the SECURITY.md so it is completed. Another nice thing I added is action and description messages before each minigame. It tells the player what to do, so they aren’t losing any time when it starts! I also fixed the text it shows you when you win, before it takes you to the win screen I am going to make soon. I also revamped the README! It is way better now! Check out the README on GitHub if you want! I also set up and configured GitHub Discussions!"}, {"post_id": 62147, "ts": "2026-09-05T12:25:32Z", "hours": 0.2619, "text": "I just did some play testing, added some comments, and made a basic README! Nothing much!"}, {"post_id": 61866, "ts": "2026-09-05T00:12:04Z", "hours": 6.3597, "text": "I just created the basic blueprint for my very own WarioWare style video game, CodeWare! In CodeWare, you are playing as GitHub, and for the first minigame, you are trying to capture 7 of me (that’s just a nice image I had available—I might consider changing it later). The time constraints are actually pretty balanced, you’ll generally finish right in the nick of time. There is still a lot more remaining. The reason there was so much time in this devlog is because of error correction. This is my first time using Godot—everything’s not meant to be correct the first time around. A lot of the error correction was silly stuff like scaling, timer pixelation, text getting cropped off (without me knowing), and etc. You jump on those little box thingeys to get to the mini-mes in order to collect. In order to get to the one near the big wall barrier, you need to make a big jump from one near it (NOT TO THE RIGHT!!). And, once you go to get the last ones on the very right, there’s no coming out! Hopefully, you got the other ones first!"}]...
|
Title: CodeWare by @tyleruploads | Stardance
Devl Title: CodeWare by @tyleruploads | Stardance
Devlogs:
I just created the basic blueprint for my very own WarioWare style video game, CodeWare! In CodeWare, you are playing as GitHub, and for the first minigame, you are trying to capture 7 of me (that’s just a nice image I had available—I might consider changing it later). The time constraints are actually pretty balanced, you’ll generally finish right in the nick of time. There is still a lot more remaining. The reason there was so much time in this devlog is because of error correction. This is my first time using Godot—everything’s not meant to be correct the first time around. A lot of the error correction was silly stuff like scaling, timer pixelation, text getting cropped off (without me knowing), and etc. You jump on those little box thingeys to get to the mini-mes in order to collect. In order to get to the one near the big wall barrier, you need to make a big jump from one near it (NOT TO THE RIGHT!!). And, once you go to get the last ones on the very right, there’s no coming out! Hopefully, you got the other ones first!
I just did some play testing, added some comments, and made a basic README! Nothing much!
This is going to be my second to last devlog before I ship, assuming everything goes well! In these two and a half hours, I did SO MANY THINGS! The most obvious change has to be how I added the second minigame, the clicker! In the minigame, you have 12 seconds to collect 18 tyleruploads circles! Each circle is randomly placed on the screen, which makes it so you can’t just memorize it! I also added a license to the project. It contains five sections for different types of content. And, I updated the SECURITY.md so it is completed. Another nice thing I added is action and description messages before each minigame. It tells the player what to do, so they aren’t losing any time when it starts! I also fixed the text it shows you when you win, before it takes you to the win screen I am going to make soon. I also revamped the README! It is way better now! Check out the README on GitHub if you want! I also set up and configured GitHub Discussions!
Well, that was very silly. I spent 45 minutes adding automatic cross-compilation via GitHub actions! The main issue was: macOS! I now officially hate macOS. I essentially spent 12 commits trying to fix macOS, and 1 commit removing macOS. The commits mentioning Windows or Linux? They were never the issue. It was only macOS. Heres my commit history for this devlog: Add basic src/export_presets.cfg 1 file changed, 431 insertions(+) Make publishing workflow to compile 1 file changed, 66 insertions(+) Fix Linux export in export_presets.cfg to work with workflow 1 file changed, 2 insertions(+), 2 deletions(-) Set project directory in workflow 1 file changed, 4 insertions(+), 4 deletions(-) Remove export_path for windows in export_presents.cfg to fix CI/CD 1 file changed, 1 insertion(+), 1 deletion(-) Hopefully fixes CI/CD 1 file changed, 6 insertions(+), 9 deletions(-) Make macOS only support x86_64 to fix CI/CD issue 1 file changed, 2 insertions(+), 2 deletions(-) Add bundle identifier for macOS (why does it have to be such a pain?) 1 file changed, 2 insertions(+), 2 deletions(-) The mac strikes back: import ETC2 ASTC compession for macOS 1 file changed, 1 insertion(+) Add initial project import step to CI/CD 1 file changed, 4 insertions(+) Cd into src before initializing godot 2 files changed, 2 insertions(+), 1 deletion(-) Remove cding into src and add export_templates_path 1 file changed, 5 insertions(+), 1 deletion(-) The mac struck back yet again: emancipated 1 file changed, 1 insertion(+), 4 deletions(-) I rebased it to “Add support for every OS; remove support for macOS (it struck back, like starwars)”
I JUST MADE THE END SCENE! It is very complex. But, I can’t spoil it! Here’s the code. It’s your choice to go line by line and spoil it for yourself.
Wow! 8 hours is a lot of time! Here’s what I did! Create all new assets. I made a new icon and background for the title screen and both minigames. The icon features an infinity symbol cut in half but connected with the parts in between them in a bit of a 3D-like arrangement, symbolizing two sides of eternity connected by small paths. The first minigame background and the title scene background contain a mountain range, a sunset, and one or multiple bridges. The second minigame background is two eyes in many perfectly aligned rectangles. Make death scene. Previously, I only had a win screen in the game (a very anticlimactic one at best, in a purposeful way). Now, I added a death scene too! The death scene links with the idea of the two sides of eternity (or infinity) connected by a small path because the user is showed specific text by automatic vertical scrolling, then they click a button to get thrown right back to the first minigame, as if nothing happened. They can do this as many times as they want; the bridges between the two halves of eternity represented by infinity are very strong, the same bridges connecting the mountains. Replace unused settings button with extras. The main menu used to contain a button labeled “Settings,” which would take the user to a blank scene with no way to get back. It has now been replaced with an “Extras” button, which contains an Asset Gallery that allows users to look at the beautiful game assets and obviously, a credits section. Universal back buttons. Now, users can always get back to some point in the game (including the title screen), even if they are in the infinite end scene.
I just made some nice changes to CodeWare! I added pause, unpause, and reset functionality. This was in the README as coming soon for a while. I relocated script locations and removed ambiguity from a script named ‘self_timer.gd’ by renaming it ‘minigame_1_timer.gd,’ which makes it not look wrong when next to ‘minigame_2_timer.gd.’ And, I added the version number to the title menu!
I just added the third minigame to CodeWare! It is titled “Hit the Circles.” In the minigame, you start with a balance of -15, and each circle you hit, you get +1 balance! It is kindove like Whack-a-Mole (don’t sue me Mattel.) This marks version 0.6.0 of the game!
I just put CodeWare on GitHub pages! You can view it at https://tyleruploads.github.io/code-ware/ ! I also upped the time for a minigame after a web playtest determined the amount of time given was not enough to complete the task at hand.
This is a short one! I just integrated it with the Itch.io Butler API, so it will automatically update its Itch.io game whenever I make a new release! Currently, it is a draft on Itch.io. You can view the draft at https://tyleruploads.itch.io/codeware?secret=CDZUB2MTxYCmNQ70VRagItDLSTg . Sometime before I ship, I will make the Itch.io page public, which may bring in some players.
I just added two minigames to CodeWare! The first minigame I just added, minigame 4, titled “Dodge the Flying Balls,” has users dodge flying balls (referred to as meteors in the code) for 45 seconds. Each hit takes away 10% of the user’s health. It can actually be pretty hard. A good strategy to stay alive is moving from side to side and never stopping, because there are really fast ones that come before you can even react. The second minigame I just added, minigame 5, titled “Click Very Fast,” has the user click on a big circular button in the middle 100 times in less than 20 seconds. I have tested it many times, and it is just the right time (at least for now). You can play the game at https://tyleruploads.github.io/code-ware/
I just completely refactored, everything! I made many new directories in order to organize the entire repository much better! This took an hour because of the debugging and other related changes to the code associated with a complete structural refactor. It definitely was not a calm, easy hour.
I just created the sixth minigame, “Unintelligent Arrows,” in CodeWare! In the minigame, users have to dodge countless arrows that are described as unintelligent purely based on their inability to change paths once shot. If you weren’t already guessing, I am planning on making an intelligent-arrow-themed minigame in the future, possibly inspired by 1948 in some ways. This game is actually getting nice and long, way longer than I thought it would be at the start. When I shared it with people a while ago, it was very short. Now, it’s decently long! Once I add a lot more minigames, I will consider making them go in random order and giving them difficulty tags to determine when they should be shown.
I just balanced minigame 6, “Unintelligent Arrows,” after feedback from Hack Club members. I made users have more time to react before getting hit by the arrows. I have not released this update yet; once I apply some other suggestions from the community, I will release it as v0.11.0.
After receiving feedback from the Hack Club community, I have made these changes to CodeWare. The icon has been updated to increase contrast and to look better at small resolutions Minigame 6, “Unintelligent Arrows,” has been balanced to be easier for users to complete WASD Movement has been added to all games Support for held jumps has been added to the first minigame, “Orb Collection Platformer” An ambiguity in the README about the objective has been corrected
I just made two new assets for CodeWare! They are the players in minigames 4 and 6. Here is a photo of one of them.
I just released version v0.13.0 of CodeWare! In this version, I have completely changed the sound environment of the game! I will explain it with two basic pseudocode (or Python) logic statements! prev_sound = sound in v0.12.0 curr_sound = sound in v0.13.0 print(prev_sound, curr_sound) # False, True What I’m trying to illustrate here is that there was absolutely no sound before, and now there is! There is a background ticking noise playing (forever) through an autoload and sound effects corresponding to in-minigame events. Feel free to test it at https://tyleruploads.itch.io/codeware?secret=CDZUB2MTxYCmNQ70VRagItDLSTg ! Send any feedback in the comments!
I just made version v0.14.0 of CodeWare! In this version, I added the eighth minigame, “Choose the Boxes!” The user has 30 seconds to choose 20 boxes by clicking on the one matching the color of the center box. I also went through and removed unnecessary log statements and unused variables.
I just made the ninth minigame for CodeWare, “The Maze!” In the minigame, the user needs to get to the center of the maze in less than 18 seconds! They move a mini tyleruploads texture with arrow keys and WASD to eventually get to the bigger one in the middle! I had a lot of trouble with physics here, hence the 2 hours! And, I’ve never made any sort of maze before, so this is a first!
I just made the tenth minigame for CodeWare! It is named “RGB Skills.” In the minigame, there are two colors: one generated automatically by the code, and one controlled by manual RGB Sliders. It validates the user’s guess using the GDScript method Vector3.distance_to() . The method uses the 3D Pythagorean theorem to calculate the Euclidean Distance between the RGB values, as if they were plotted in a 3D space. This works because the red value represents the x-axis, the green value represents the y-axis, and the blue value represents the z-axis on a 3D graph. This was very interesting for me to discover, since I only learned the 2D Pythagorean theorem last year (in seventh grade). The game also starts the sliders at the furthest possible points from the target color, which makes the minigame harder. If the player clicks the submit button without making any changes, they will not pass. And yes, I know they could easily invert the colors to find the right one. The only thing is, they probably didn’t read this devlog. So, they’ll have no clue of the fact the sliders were placed at the inversion of the target color.
I just did a lot of asset updating and linting! The part I think would be most interesting to you is obviously the asset updates. I changed the assets in Minigame 1, 3, 4, and 9! I also updated the gallery, accessible in the extras menu, to include new assets I’ve forgotten to put in there for a while now. I’ll just show you how minigame one looks now; no need for a detailed explanation of everything. Now, I have to address the boring part, which took most of the three and a half hours. That would be linting! It’s pretty self-explanatory: I went through and made the scenes and scripts adhere to style guidelines.
In the Newspaper department at my summer sleepaway camp this year, they always said, “If the number is less than 11, spell it out.” CodeWare has officially surpassed this guideline in the number of its minigames. Minigame 11 of CodeWare is titled “Type the Strings,” and players must type 15 five-character strings provided to them in less than one minute. The string is generated from a pool of characters with lookalikes (i.e., Z and 2, S and 5, O and 0, I and l, etc.) removed to ensure it is completely fair for the user. This was definitely one of the easier minigames to code, but it wasn’t the easiest thing ever. I still ran into some issues, like the vertical alignment of a RichTextLabel being a bit too low when dynamically updating its content in GDScript to show a custom notice to the user (I fixed it by changing it to a normal Label, after troubleshooting for way too long).
I just created the twelfth mingame of CodeWare, “Catch the Falling Orbs!” In it, you have 45 seconds to catch 35 falling orbs by moving left and right with your keyboard.
This will be one of my very last devlogs before I ship CodeWare! I just created the gameplay trailer, which is a huge accomplishment! This is my first time making any sort of video for anything I make in the computer world, and I think it actually turned out very well! The video shows potential players what the game will look like and gives a glimpse of its unexpected win-and-lose endings. I also put the video on the game’s Itch.io page, which will be made public very soon. You can view the video on YouTube here: CodeWare - Official Gameplay Video
This marks v1.0.0! This is my FINAL devlog for CodeWare (at least the first ship)! It has really been a great project that has significantly pushed what I think about my development capabilities. But I will explain that more in the ship message! The main change made over the time of this devlog was a complete revamp of the README! Here is a summary of the changes made to it: The following shields have been added: Play on GitHub Pages, Made with Godot, GitHub Release (version number), and GitHub Commit Activity The hero image near the top of the README, depicting the title screen, has been replaced with a gameplay video for the game, with a hero of minigame 6 (Unintelligent Arrows) The minigames section has been moved to near the bottom of the README to make the start of the README a better hook. And the minigame descriptions and hero images inside the section have been put inside a spoiler notice, so the game can not be easily spoiled for players. And the hero images in the minigame section have been converted from Markdown tags to HTML tags in order to enforce a specific width.
Ships:
I created CodeWare, a WarioWare-style video game where you have to complete various minigames, written in Godot. I originally had it under the WarioWare game mission, but I eventually decided I should detach it from it due to the sheer complexity of this game, which is way above the beginner mission. In the game, players are put through what is currently 12 minigames. Each minigame has a strict timer limit, whether it be losing a life or progressing to the next minigame once it strikes 0. In case you are confused, the way they win a life at the end is if the purpose of the minigame is to survive a certain amount of time against computer-generated obstacles, like arrows or orbs (essentially meteors). The very interesting thing about this game is the two endings: the ending you get when you complete all the minigames with lives to spare, and the one when you lose all of your five lives. These endings, which I will not explain in detail (so it is not spoiled for you!), highlight the eternity of automatically generated code files. The opening scene of the game is the Tyleruploads Mountain Range, which shows many mountains connected via bridges. The suspension for those bridges is the game’s logo turned into a bunch of small links. Metaphysically, the game’s goal is to cross these bridges. Many parts of this project were extremely challenging for me. For one, I had never set foot in Godot at all before embarking on this project. I was also a complete newcomer to any sort of game development. I encountered many errors caused by my being just introduced to GDScript and game development, such as not knowing that scripts continue after changing the scene, the absence of a deferred call causing the game to go completely grey, losing a lot of work in video editing software while making the gameplay trailer video, and many more small and large things. In every ship message for prior Stardance projects, I have said something like “Wow! Before I started, I really didn’t think I could do something this complex. I really just transformed my coding abilities.” But this time, I am not going to repeat that basic fib without any supporting arguments. My previous Stardance projects were nowhere near this length. So, I would like to make a new claim now. That claim is that while I have not become a completely new developer or graphic designer or anything, I have dipped into a new path of development that I will have the choice to either continue to pursue or to reap the benefits of the mindset associated with it as I enter high school. For these reasons, along with the fact that I was able to sit down and write quality code for one project for 51 hours, I am very proud of myself. My viewpoint of “sit down and make a decent project and leave it” has been greatly diminished outside of specific contexts....
|
1793152332.5505183
|
1793238732.5505183
|
|
20356
|
My awesome macropad! by @Shafiqa | Stardance
|
Shafiqa
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @Shafiqa | Stardanc Title: My awesome macropad! by @Shafiqa | Stardance...
|
1792633932.9195187
|
1793238732.9195187
|
|
735
|
Morse Code Card by @saltichash | Stardance
|
saltichash
|
0
|
0.59
|
0
|
[]
|
[{"post_id": 6592, "ts": "2026 [{"post_id": 6592, "ts": "2026-06-11T02:12:05Z", "hours": 0.5883, "text": "I started working on the base schematic for my recreation of the nux Morse Code Card Pro 🥳"}]...
|
Title: Morse Code Card by @saltichash | Stardance
Title: Morse Code Card by @saltichash | Stardance
Devlogs:
I started working on the base schematic for my recreation of the nux Morse Code Card Pro 🥳...
|
1792633933.758321
|
1793238733.758321
|
|
57999
|
Guaraná Horizon by @vexith | Stardance
|
vexith
|
1
|
31.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-30T11:52:46Z", "hours": 31.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "i made a plane simulation game inspired by star fox. it has support for windows and linux", "repo": "https://github.com/Vexith/Guarana-Horizon", "demo": "https://github.com/Vexith/Guarana-Horizon/releases"}]...
|
[{"post_id": 75533, "ts": "202 [{"post_id": 75533, "ts": "2026-09-30T11:51:10Z", "hours": 4.8189, "text": "devlog #7 => added bots and tweaked physics physics of the airplane tweaked due to a bug that kept the plane rising up. added bot AI started to implement the weapons system currently i plan to add multiplayer support and sound"}, {"post_id": 73599, "ts": "2026-09-25T13:22:36Z", "hours": 4.4992, "text": "devlog #6 -> rewritten camera system and 3d model rendering new rewritten camera system without the mouse, based on chase camera method using currently this 3d model . all credits to designer soup added obj mesh rendering of the plane added rendering different plane colors currently i plan to add enemys, projectiles and multiplayer support"}, {"post_id": 72245, "ts": "2026-09-22T14:59:23Z", "hours": 9.6628, "text": "devlog #5 => better physics engine and new rendering method on this devlog, i added better physics more focused in gameplay (still not perfect but better than before) added flat shading with directional light added new physics engine added restriction to not go above floor currently, i plan to add enemys, projectiles for the plane, 3D model of the plane, be able to switch the plane."}, {"post_id": 69176, "ts": "2026-09-16T15:16:32Z", "hours": 5.4231, "text": "devlog #4 => rendering the plane and controlling it in this devlog, i finally got the plane rendering properly and responding clearly the controls without getting the velocity infinite. added green lines on the ground to make it like 3D currently, it has the simple static camera following the plane, but in the future it will be variable, to give the sense of the plane moving and not only the background. i added input ramping for the keyboard controls to give fluidity to the plane (previously it look like that the plane was moving too fast). i switched from the Euler angles to quaternions, because in the euler angles, when pitch reaches +/- 90 degrees yaw and roll become the same degree of freedom and the representation breaks. currently, i plan to add enemys, projectiles for the plane and multiplayer support, maybe custom planes."}, {"post_id": 68056, "ts": "2026-09-14T13:16:38Z", "hours": 2.085, "text": "devlog #3 => rendering now the game has a basic SDL3 window and renderer, i replaced the old keyboard input (get async keystate) with SDL3 events, connecting pitch, yaw, roll and throttle controls. its still just a triangle with controls for now, but finally it’s taking shape now ( https://imgur.com/a/D3RhBLy )"}, {"post_id": 67060, "ts": "2026-09-13T03:20:08Z", "hours": 1.6633, "text": "devlog #2 => from simulation to flight from this devlog, i started turning the flight simulation into something actually controllable, i added a separate input system for pitch, yaw, roll and throttle, keeping the controls independent from the aircraft physics. its still running in the console for now, but the aircraft can finally respond to player input. for the next devlog, i want to implement rendering and camera ( https://imgur.com/a/xCKDbTZ ) for gif"}, {"post_id": 64487, "ts": "2026-09-08T22:22:37Z", "hours": 3.1472, "text": "devlog #1 - starting GuaranaHorizon i’ve started working on Guarana Horizon, a multiplayer flight game inspired by star fox. im making it from scratch in C, without using a game engine. right now im mainly focused on getting the aircraft physics working before moving on to graphics and gameplay. in the beginning, the physics engine kept becoming unstable and eventually getting the values to extraordinay values out of reality but now the aircraft can now accelerate, generate lift, climb and experience drag and gravity without the simulation spitting nonsense. now it only runs tests programs to check if the physics is alright. next i want to add actual flight controls (WASD) and then start working on rendering (probably SDL2)."}]...
|
Title: Guaraná Horizon by @vexith | Stardance
Dev Title: Guaraná Horizon by @vexith | Stardance
Devlogs:
devlog #1 - starting GuaranaHorizon i’ve started working on Guarana Horizon, a multiplayer flight game inspired by star fox. im making it from scratch in C, without using a game engine. right now im mainly focused on getting the aircraft physics working before moving on to graphics and gameplay. in the beginning, the physics engine kept becoming unstable and eventually getting the values to extraordinay values out of reality but now the aircraft can now accelerate, generate lift, climb and experience drag and gravity without the simulation spitting nonsense. now it only runs tests programs to check if the physics is alright. next i want to add actual flight controls (WASD) and then start working on rendering (probably SDL2).
devlog #2 => from simulation to flight from this devlog, i started turning the flight simulation into something actually controllable, i added a separate input system for pitch, yaw, roll and throttle, keeping the controls independent from the aircraft physics. its still running in the console for now, but the aircraft can finally respond to player input. for the next devlog, i want to implement rendering and camera ( https://imgur.com/a/xCKDbTZ ) for gif
devlog #3 => rendering now the game has a basic SDL3 window and renderer, i replaced the old keyboard input (get async keystate) with SDL3 events, connecting pitch, yaw, roll and throttle controls. its still just a triangle with controls for now, but finally it’s taking shape now ( https://imgur.com/a/D3RhBLy )
devlog #4 => rendering the plane and controlling it in this devlog, i finally got the plane rendering properly and responding clearly the controls without getting the velocity infinite. added green lines on the ground to make it like 3D currently, it has the simple static camera following the plane, but in the future it will be variable, to give the sense of the plane moving and not only the background. i added input ramping for the keyboard controls to give fluidity to the plane (previously it look like that the plane was moving too fast). i switched from the Euler angles to quaternions, because in the euler angles, when pitch reaches +/- 90 degrees yaw and roll become the same degree of freedom and the representation breaks. currently, i plan to add enemys, projectiles for the plane and multiplayer support, maybe custom planes.
devlog #5 => better physics engine and new rendering method on this devlog, i added better physics more focused in gameplay (still not perfect but better than before) added flat shading with directional light added new physics engine added restriction to not go above floor currently, i plan to add enemys, projectiles for the plane, 3D model of the plane, be able to switch the plane.
devlog #6 -> rewritten camera system and 3d model rendering new rewritten camera system without the mouse, based on chase camera method using currently this 3d model . all credits to designer soup added obj mesh rendering of the plane added rendering different plane colors currently i plan to add enemys, projectiles and multiplayer support
devlog #7 => added bots and tweaked physics physics of the airplane tweaked due to a bug that kept the plane rising up. added bot AI started to implement the weapons system currently i plan to add multiplayer support and sound
Ships:
i made a plane simulation game inspired by star fox. it has support for windows and linux...
|
1793152333.8721719
|
1793238733.8721719
|
|
36116
|
i²c motor driver by @loibo2 | Stardance
|
loibo2
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: i²c motor driver by @loibo2 | Stardance
|
1792633934.6087956
|
1793238734.6087956
|
|
52974
|
B.T.T! Defense by @Overlodegamer | Stardance
|
Overlodegamer
|
1
|
4.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-23T22:35:31Z", "hours": 4.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I am making a computer vison AI tracking desk turret! hope you like it, this phase is just the AI and computer vison code but I plan on making the hardware soon after submitting for funding!", "repo": "https://github.com/Brocadile7/B.D.T", "demo": "https://github.com/Brocadile7/B.D.T/releases/latest"}]...
|
[{"post_id": 72432, "ts": "202 [{"post_id": 72432, "ts": "2026-09-22T22:50:46Z", "hours": 2.1758, "text": "Computer vision turret prototype that tracks people in real time using YOLOv8. Chest‑aiming, sticky tracking, and red‑hat filtering included (so you can put on a red cap and not be shot!). Just the body tracking right now but i plan on making the full turret soon!"}, {"post_id": 68895, "ts": "2026-09-15T23:55:56Z", "hours": 1.9931, "text": "I’m working on making a body tracking defense turret! (Still coding so no images of it yet!)"}]...
|
Title: B.T.T! Defense by @Overlodegamer | Stardanc Title: B.T.T! Defense by @Overlodegamer | Stardance
Devlogs:
I’m working on making a body tracking defense turret! (Still coding so no images of it yet!)
Computer vision turret prototype that tracks people in real time using YOLOv8. Chest‑aiming, sticky tracking, and red‑hat filtering included (so you can put on a red cap and not be shot!). Just the body tracking right now but i plan on making the full turret soon!
Ships:
I am making a computer vison AI tracking desk turret! hope you like it, this phase is just the AI and computer vison code but I plan on making the hardware soon after submitting for funding!...
|
1793152335.0789645
|
1793238735.0789645
|