|
15651
|
Force feedback sim wheel by @Pasi | Stardance
|
Pasi
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Force feedback sim wheel by @Pasi | Stardan Title: Force feedback sim wheel by @Pasi | Stardance...
|
1793191883.8517373
|
1793796683.8517373
|
|
15652
|
ExoGenesis by @spacegeekmyraak | Stardance
|
spacegeekmyraak
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: ExoGenesis by @spacegeekmyraak | Stardance
|
1793544641.2694669
|
1794149441.2694669
|
|
15653
|
Fanboard by @MarioSuper999 | Stardance
|
MarioSuper999
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Fanboard by @MarioSuper999 | Stardance
|
1793389896.9649096
|
1793994696.9649096
|
|
15654
|
My very own WebOS by @lsheppard422 | Stardance
|
lsheppard422
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My very own WebOS by @lsheppard422 | Starda Title: My very own WebOS by @lsheppard422 | Stardance...
|
1793328964.3544598
|
1793933764.3544598
|
|
15655
|
Kowalski by @MarioSuper999 | Stardance
|
MarioSuper999
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Kowalski by @MarioSuper999 | Stardance
|
1793260077.4868526
|
1793864877.4868526
|
|
15656
|
My very own WebOS by @Anu | Stardance
|
Anu
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My very own WebOS by @Anu | Stardance
|
1793418543.40015
|
1794023343.40015
|
|
15657
|
Telemetry LMU by @Karlito | Stardance
|
Karlito
|
1
|
178.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-20T18:45:37Z", "hours": 178.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Telemetry LMU An application for both Windows and Linux to visualize the telemetry data from Le Mans Ultimate What it does: This application collects, stores, and visualizes data from a racing simulator called Le Mans Ultimate. The main goal: Allow users to analyze their driving and learn from their data through an easy-to-use interface. The requirements: Performance, nice and simple UI, expandability, minimal setup. Results: Main goal: Achieved. (I wouldn’t be shipping this app otherwise) Performance: On average the app uses 4% of CPU and 250Mb of RAM under full load. That is less RAM usage than running Spotify in the background. Nice and simple UI: This is personal preference, however in my opinion I think i succeeded. Expandability: The architecture of the app is very modular so this also isn’t a problem. Setup: On windows there is none (except installing the app), on linux there is one dependency (this is sadly unavoidable.) Some stats: 200+ hours of development time (including the time before Stardance) 250+ commits 6 000+ lines of Rust", "repo": "https://github.com/Karlito05/TelemetryLMU", "demo": "https://github.com/Karlito05/TelemetryLMU/releases/tag/v1.0.1"}]...
|
[{"post_id": 71364, "ts": "202 [{"post_id": 71364, "ts": "2026-09-20T18:08:56Z", "hours": 1.2894, "text": "Devlog 29 - The end So this is the last one, huh. Here is the full write up on this project as I promised. Chapter 1 - The beginnings This project started about 3 months ago. I started experimenting with just getting the data and plotting it. Just for fun as an exercise to learn rust. Then I realized that there actually isn’t a proper working telemetry tool that works on linux. So I did some research… and I decided that I am going to make the app in Dioxus. Chapter 2 - The Dioxus era This leads us to the shortest of eras. The Dioxus era. Nothing really happened here and quite frankly I don’t even remember it that much. There aren’t really any git commits because I didn’t have that setup yet. One thing i remember tho is that I couldn’t figure out how to draw the garphs, because Dioxus is based on web technologies but weirdly becuase you are writing HTLM like syntax but in rust. And that was the main reason I decided to switch to Tauri. Chapter 3 - The Tauri era At first Tauri was the best framework ever made for me. That is because I already kinda knew react, it was simple to understand and I could really lean into the split frontend and backend architecture. This sadly proved very inefficient for the graph view which needs to render thousands of points each frame. Since it was too much for the basic HTML canvas I have switched to using WebGL with numerous downsampling techniques. This was just a bandaid fix though. I have also ran into bunch of architectural issues with the whole split frontend and backend thing. Accessing the telemetry data proved to be very difficult and inefficient. I remember that I ran each of the graphs on a separate thread. This was so stupid. I don’t even remember how I could’ve come up with such a stupid idea :D. It just led to memory leaks and threads uncontrollably spinning up and not stopping. I am sure that all of that could’ve been easily avoided with simpler architecture but at that point I was at my lowest point of this project, so I didn’t even have the energy to do it. I also had the state of the frontend so fragmented which didn’t help. And the whole retained mode GUI thing just wasn’t well suited for this kind of app. And that is when I decided to do a complete rewrite in pure rust! Chapter 4 - The sweet EGUI I didn’t know it at the time, but this was the best idea on what to do with the project. I remember that I was very split between just shipping it half done and finishing it just because of how bad the development experience with Tauri was (sorry Tauri devs, it’s not a you thing, it’s a me thing). It took about 30h to fully rewrite the app with EGUI, which looking back at it isn’t too bad. It felt like ages though. It didn’t help that almost none of the work in this “chapter” did AI. Which at the end of the day is better! Although my style of writing EGUI code was let’s say original… I have just put everything into one file and that grew very fast :D. I had like 5 files that were about 800 lines each. That has since luckily changed. (I have adopted more of a React style file structure.) Anyway at the end of the rewrite I kinda started loving EGUI and that hasn’t stopped since. I continued to develop the Map page in EASY which was pretty easy. But then I needed the track limits data for the map page. This was a bit of a roadblock… First I have tried to extract the data directly from the game, however this was inaccurate and the track width was missing entirely. So then I tried to download an up to date image of the top down view of the track and extract the inside and outside line from it and match it to the in game data. This partially worked better, still not great tho. So there was only one option left. And that was to painfully drive each layout of each track by hand. This took almost 7h of just driving in circles. After that it was smooth and buggy sailing until the ship. Everyone who read this, have a beautiful day."}, {"post_id": 71172, "ts": "2026-09-20T12:02:04Z", "hours": 7.2817, "text": "Devlog 28 Today is gonna be a big day, because I will ship the project. There is a few things left to do tho. Mainly the readme and the demo video! In my last and next devlog I will also make a write up on the story of the whole project so far. Besides that I have yesterday refactored the whole codebase so now there aren’t just 5 monolithic files. I went for a more react like approach with the structure being divided into pages and components. Sadly there isn’t enough time until the ship to touch up on some old UI and UX problems in the edit view of the graphs, neither is there time to add more fields. This will be done in the near future! Overall I am very happy how the app turned out. But this is not the end of the development this is just the end of the stardance journey!"}, {"post_id": 70125, "ts": "2026-09-18T14:50:07Z", "hours": 4.7625, "text": "Devlog 27 For the past few hours I have been polishing the app up. The main you’ll probably see are the onboarding dialogs. A global one pops up when you first launch the app and then one for each page when you first enter them. Another change I have done is that I made the ghosts on the map page be based on time and not data point index."}, {"post_id": 68694, "ts": "2026-09-15T15:37:09Z", "hours": 9.5181, "text": "Devlog 26 Hiiiii For the past few hours I have been working on polishing the app and get it to a shippable state overall. There is still work left to do, but I am getting there. I have set up a simple packager, and a simple script to use it. It automatically compiles the release version of the app and packages it into a windows installer a Debian .deb package and a pacman package. I have also (after like 2 hours of struggeling with it) added an Icon for the app. So now it looks nice!There has been a lot of new bugfixes as well and the app has been tested by my friend so it should be somwhat usable, tho the setup UX should be improved upon. If you wish you can download the app from here: https://github.com/Karlito05/TelemetryLMU/releases/tag/v0.2.3 Well that is all I have for you all today, so have a nice one :)"}, {"post_id": 66482, "ts": "2026-09-12T10:09:34Z", "hours": 5.3067, "text": "Devlog 25 I know I have just made a devlog like yesterday but holy s*** the track references work so well. They are practically perfect . Besides the references I have also implemented the delta time between the 2 cars! That has really tied the page together. If I can say so myself, we are getting pretty close to the final ship . There is not much needed to implement. The obvious are bugfixes, and some simple onboarding. But really, that’s it! Everyone who is following or caring about this project can expect a ship in the next week or so. In my final devlog I will also do a writeup on this project as a whole, from the coarse beginnings in Dyoxys, trough Tauri, to the sweet home of EGUI. There will also be a trailer video and a demo for all the raters :D Anyway for now you can have this preview of the map page! Stay tuned!"}, {"post_id": 65936, "ts": "2026-09-11T12:33:33Z", "hours": 6.7664, "text": "Devlog 24 HI! All of the time on this devlog was basically just driving in circles. And I mean that. I have recorded all of the outsides and insides of all tracks in the game to get the data for the map page. It was very teidius and very boring. Like very very boring. There are 31 tracks in LMU (including each layout) and on every one of them I had to do an out lap, the ouside, another out lap and the inside. So 4laps for each. That is about 15min per layout. Yeah it was a long one. And the recordings aren’t perfect either! I will now have to somehow process them all to get them ready for the ship. You can watch the timelapses of this process here if you wish. https://lapse.hackclub.com/timelapse/OQcismBwxbBB https://lapse.hackclub.com/timelapse/le3Lta0RxcUA https://lapse.hackclub.com/timelapse/XRf98OimmUk9 Anyway. Have a nice day!"}, {"post_id": 63016, "ts": "2026-09-06T16:07:27Z", "hours": 7.12, "text": "Devlog 23 - More Refactoring Hi! In the past few days I have been making some core architectural changes to the project and I would like to explain them now. Telemetry Provider I have finally decided on how I am gonna handle telemetry in the long term. It’s a pretty simple concept but the implementation is pretty hard. I have one object (the TelemetryProvider struct) that is in charge of getting and managing the telemetry. Right now it logs data from all cars and stores the best, last and current laps. If you wish it can save only your laps or laps of everybody. Each lap is a json file about 500kB - 1MB in size and holds all the data that can be displayed in the app. Notably the position ( so you can load that lap directly into the map page ) and the data displayed by the graphs (so you can load it as a reference there as well.) Pointer to this struct is distributed to pages that need it so they can access it! The provider has a core logging loop that is running on another thread so the whole UI doesn’t have to redraw each time you log new data. (About 60 times a second.) State and Settings Providers Next, I have implemented a StateProvider and an SettingsProvider . These two are basically a drop in replacement of what was stored in the Sidebar and SettingsPage respectively. Difference between the two is that the StateProvider isn’t stored between app restarts. Similarly to how the TelemetryProvider works, each of the pages that need these values get a shared pointer (or an Arc in rust) and can access the values. What’s next Going further I will keep my focus on the map page. Finish it, and then start polishing the app for the final ship! Wish me luck and have a nice day!"}, {"post_id": 61727, "ts": "2026-09-04T19:26:10Z", "hours": 9.5394, "text": "Devlog 22 Hiiiiiiiiiiiii I have some huge news to tell you. I have just made the MOST complex addition yet. And I love it! I have completely overhauled the accessing and managing the telemetry! I have designed a thread safe way to have it run on a separate thread and be accessible from *every place in the app. One unified API for everything! I now store the current lap and the last lap for each of the cars. Tho this takes up a massive 140mb of just floats (in the worst case scenario) I believe its worth the RAM! (Let’s be real, we have saved over 400mb from the tauri implementation so we can now use some of that!) Next I will continue on further implementing these features around the tool. Anyway have a nice day people and bye bye. Some context to that meme: I have a type in my app that is literally Arc<Mutex<[([f64; TelemetryValueType::Max as usize], Option); 104]»"}, {"post_id": 60204, "ts": "2026-09-02T13:06:23Z", "hours": 9.4931, "text": "Devlog 21 For the past few days I have been working on a new feature. The map page. It is turning out great, however it has a lot of bugs. These will get fix over the next few days. I promise :) There have also been changes made to the lap logging system and some other systems as well. As you can see on the image you select 2 saved laps and can crosscompare the lines you drove. Obviously this is completly useless if you loaded 2 different track like I did here. This will get checked for and prohibited in the future. Next I will add the underlying lap overlay which I will somehow extract from the game or from somewhere else. I don’t really know yet. Well that is it for today. Have a great day and bye bye!"}, {"post_id": 57444, "ts": "2026-08-29T16:23:51Z", "hours": 8.955, "text": "Devlog 20 So I have been polishing up the current features a bit and they are far from done. I am starting to question if i will make it to shipping this app one day :D. Anyway I have fixed numerous bugs, added an settings page and implemnted although very crudly a lap logger. But there is still a lot work that needs to be done. I have also added persistancy so the app remembers your choices. I am almost ready to replace the main branch with the fully rusted version, but like I said more work has to be done to go trough with that! I have probably never shown how the Car info page turned out and IMO it did really well. (The empty space is for inputs. That will be implemented soon!)"}, {"post_id": 55542, "ts": "2026-08-27T13:46:52Z", "hours": 8.0039, "text": "Devlog 19 Hello hello! Today I have some exciting news. The rewrite is complete That’s right, after about 30 hours of porting this code from tauri into EGUI it is finally finished! So let’s take a look at some stats, shall we ? | | Tauri | EGUI | |----------------------|-------------|--------------- | | Dev time | 80h | 30h | | Lines of code written | 6k | 3k | | Enjoyability | suboptimal | above average | And some perofrmance stuff as well: | | Tauri | EGUI | |----------------------|-------------|--------------- | | Ram idle | ~700Mb | ~150Mb | | CPU % idle | ~5% | ~5% | | FPS under load | ~29fps | stable 60 | Some other perks also include that EGUI doesn’t need a browser installed on the system to work. Overall I think this was a very successful rewrite! I wouldn’t do it again tho Next I will refactor the code a bit, do a bit off the good ’ol cleanup and then get to work on the map feature."}, {"post_id": 54543, "ts": "2026-08-25T15:54:21Z", "hours": 4.4164, "text": "Devlog 18 - 100h on the project So it’s been a hundred hours huh ? I also can’t believe it! I have also just now finished* the graph view which will be newly called Telemetry (page) Now I will move onto making the car info page previously known as the championship view. I expect this to be very easy!"}, {"post_id": 53875, "ts": "2026-08-24T16:07:03Z", "hours": 6.4811, "text": "Devlog 17 Hello guys. Its me again :D I am continuing to rewrite the UI into egui. I have completed the Graph view’s UI and now I am moving onto implementing it. One thing I have noticed is just how much more “code efficient” egui is. I understand that I didn’t make the logic behind the code yet but even with that I made the same thing with 3k less lines of code. Here is how the layout edit mode is looking for now."}, {"post_id": 51324, "ts": "2026-08-20T22:11:51Z", "hours": 5.83, "text": "Devlog 16 Another 6 hours, another devlog… Hi people. For the last 2 days I took a bit of a break from the project. I have played Approximately up with the boys and it was so fun. Y’all should try the game. It has a free demo 😉 But we are not here to talk about games, are we… I am continuing the implementation of the frontend and its coming along nicely. I’ve just noticed one thing, making the UI itself in egui is kinda slow however the state is very easy. Whilst this not being completely ideal i can push trough that. Since the last devlog, I have finished the implementation of the sidebar, and started working on the telemetry page. I have the graphs sorted and now I am working on the top bar. It’s having a couple of issues at the moment but nothing hard to fix really. I am hopefully gonna continue tomorrow and have the page finished by the end of the week. Welp, I guess that’s it for today. Everybody have a beautiful day, and bye bye!"}, {"post_id": 48473, "ts": "2026-08-16T20:40:29Z", "hours": 6.3456, "text": "Devlog 15 For the last few days, I have been remaking the UI in EGUI and I am enjoying it so far. I’ve been working on the graphs in the graph view and also the sidebar. The sidebar is turning out very well and I am also pretty pleased with the graphs. I have only this for now, so enjoy :D"}, {"post_id": 46562, "ts": "2026-08-13T21:40:19Z", "hours": 2.9933, "text": "Devlog 14 I have done some research and decided that moving forward the app will use eGPU as the main GUI library. I have chosen this over the competitors due to a few reasons. The main being that its rendered natively and that its a intermediate mode library. This will make it very easy to work with the graphs and hopefully other stuff too. I am enjoying working with it so far. There are some concepts that I really like, like that everything that has state is just a simple struct that is initialized somewhere and you do most of the implementation. The widget system is also pretty cool. I was at first worried that I would hate it due to my experiences from TKInter that was forced on me in school :D but its pretty intuitive how they did it. Going further I will need to think about the architecture of the app a bit to not have it fall apart. Right now I am thinking that one thread will be the main “logger thread” which will gather data from the telemetry and then there will be the UI thread. I think that is what pretty much everyone is doing so it might work . With this approach i am worried that its gonna be a pain, but what isn’t these days… I don’t really have that much more to say so at least enjoy this screenshot of a pretty much not working app Fun fact: due to how the lib works there is a bug now that you have to move your cursor on the app for it to log data :DDD"}, {"post_id": 46009, "ts": "2026-08-12T21:29:42Z", "hours": 2.5956, "text": "Devlog 13 Okay so I might have found a solution for me not liking react and web technologies but still wanting to finish this project. And I don’t like it…. but it has to be done. But before I tell you what it is you have to understand my problems. The good React in combination with typescript is a very easy thing to understand. They are everywhere, the skill of knowing these is very valuable. They have a huge ecosystem because they are everywhere. And I am sure that I have forgotten many other cool and interesting features and perks but I picked them for mainly these 3. The Bad They are slow (in comparison to something like rust) They rely too heavily on browsers (I mean it’s basically their runtime) You have to be “hacky” to do some things. They are not suitable to develop desktop apps I mean in hindsight those are so obvious but until you are balls deep into some specific project you don’t really think about those. The main problem is that the performance is, for the lack of a better word, sh*t. And normally that isn’t a problem however when you are processing a memory object of about 300kb 60 times per second it adds up fast. Even on my pretty beefy PC (r7 9800x3d and n5070ti) it hardly gets 30 fps. I know this could probably be fixed with “more hacky workarounds” but I am tired of those. The solution I am going to REWRITE The project I have spent 70h on already in some rust native GUI framework such as ICED. I have not yet decided which one to chose and I will do that research tomorrow and report back Literally me RN ⬇️"}, {"post_id": 45715, "ts": "2026-08-12T11:49:22Z", "hours": 2.1014, "text": "Devlog 12 This will be more of like a quick update on the championships feature. So what has happened is that I have implemented the feature, and assumed that the data will be there for all players… which there isn’t. The other players show up and everything but the details like tire data, damage data and fuel data just isn’t there. So I am kinda stuck if I should just scrap the feature or recreate it into a personal data panel which would just not be fun I think. Also the damages data is very very limited, so I just don’t know what to do."}, {"post_id": 45217, "ts": "2026-08-11T15:31:51Z", "hours": 9.4839, "text": "Devlog 11 Hello guys. I have some good news and some bad news… Let’s start with the not so good news. After thinking about it, I have decided, that I don’t really enjoy working on this project. It’s not that the project it self is bad, it’s more about the tech stack I chose… Don’t get me wrong typescript and react are both phenomenal choices and great tools but, I guess the web is just not for me. I realized that I like the lower end of the spectrum better. So I have decided to cut this project short. The map view will not be included in the final ship for the time being and the profile stats also will not be there. On the bright side, I have started working on the championships page with that nearing its completion. Next I will start to work on the onboarding and settings pages."}, {"post_id": 23759, "ts": "2026-07-06T21:48:28Z", "hours": 10.0158, "text": "Devlog 10 - We are in the double digits 🎊 UI Redesign Progress I am slowly redesigning the app to look like the design I made. I started with the sidebar and then the top control panel. All that went well. The Graphs… 😅 But then I got to the Graphs . *Oh, the graphs… *I wanted to redo the backend for them because the multiple-thread approach was just straight up stupid. It was a pain to develop and would be a pain to maintain. So, in my infinite wisdom , I have gone for just a simple async function. That means that right now the frontend is requesting each data point instead of subscribing to a stream. After that, I needed to revise the frontend graph component itself. At first I just wanted to make a non-messy implementation of the old version. However, it turned out that the HTML <canvas> element is really slow. And I mean realllllllllly slow. So after I wasted like 2 hours trying to optimize the design with no success, I rage quit and went to watch a movie. WebGL to the Rescue But I don’t give up that easily. After the movie, I reimplemented the graph view with WebGL through Pixi.js , which wasn’t even that hard like I expected and overall had much better performance. Well… at least after I fixed one very stupid bug . The Bug That Ate 10 GB of RAM I had forgotten everything from the first GraphView.tsx implementation, so I was just mindlessly copying over the code and renaming the variables to what I thought they meant when I first made it. Then I got to the part which draws the lap (aka the big loop over all the points-up to 10,000 points at a time). There was an error on one of the variables. It was the length of some array. I just renamed it to the main array length because… *what other thing would it be, right? *Well…It was the length of the values array , which was always 1 or 2 .So I accidentally turned 1 × 10,000 iterations into 10,000^2 iterations . Somehow the app still wasn’t lagging that much. It just took like 10 GB of RAM . The Result Thankfully, the new WebGL + Pixi.js approach is way more efficient , so after fixing that bug the graph rendering performs much better. It still isn’t perfect on the UI side of things but I am getting there!"}, {"post_id": 22818, "ts": "2026-07-05T12:34:46Z", "hours": 6.9447, "text": "Devlog 9 - THE REDESIGN For the past few days I’ve been working on a new design for the app. I am not the best designer and to be real I didn’t enjoy it :D. Designing is just too illogical for me. There’s not really much more to say about this. Enjoy the design:"}, {"post_id": 20110, "ts": "2026-07-01T17:12:04Z", "hours": 9.2647, "text": "Devlog 8 Do you guys remember how I said that I will take a break ? Yeah… That didn’t happen. Instead I have made a plan for myself on how I am gonna continue in the tool’s development. Da plan The plan Is pretty simple: Design the app in Figma, then build it! I have also made a list of features that will be added. You can find the plan on Github. You can also suggest features if you’re interested! …oh and before making the plan I have implemented a pretty cool logging feature. Basically it records the currently selected driver and saves all his data to a file along with the lap time and date. It does this only for laps that the game considers valid (aka gives a lap time to.)"}, {"post_id": 17764, "ts": "2026-06-28T18:11:51Z", "hours": 6.7406, "text": "DevLog 7 This will be just a quick update on how things are looking right now, what’s happening, and the overall state of the project. Good news The rewrite is complete The sole UI library is now ShadCN. There have also been some minor bugfixes and ux improvements. The main being that the app is now working on lower resolutions. We’ve got a readme. It’s basic, but its there. Also I have added installation instructions and released the 1st alpha version. You can find it in the releases! Both windows and linux packages are there! Bad news I will take a break for the next few days. I will be working on a smaller project for android and I hope that by the time I return I will be full of energy and ideas! What’s next I will continue working on the graph view. Mainly saving and loading reference laps, and overall better UI and UX."}, {"post_id": 12606, "ts": "2026-06-20T16:24:29Z", "hours": 9.7894, "text": "DevLog 6 - Windows support and the first rewrite! Windows support There’s not really much to say about this. You just get a handle on the game’s memory. This was vibecoded but it’s below 100 lines of windows specific code, so I’m gonna allow it. (It was just the 2 function that handle updating the telemetry and the rest is the same.) Rewrite After adding windows support, and sending it to a friend to test, I have discovered a massive problem. The app just didn’t work on a lower resolution. Since I have a QHD monitor, I didn’t notice it. Also when I started writing the app, I did it in pure React without any UI libraries, then I started to use Antd and then MUI and it became a mess. So I have done some research and decided to rewrite the app using ShadcnUI. I did this because Shadcn has one massive advantage - the code that you use is in your codebase. This means that you can modify the components however you want. It is also one of the more popular ones out there. For icons, I will be using Tabular, because they have a lot of them, and I like their look."}, {"post_id": 10767, "ts": "2026-06-17T17:54:53Z", "hours": 4.4767, "text": "DevLog 5 - Introducing the Layouts feature! So for the past few days I was implementing a layouts feature for the Graphs view in my app. Features: Adding layouts Removing layouts Managing layouts change what graphs they display change the properties of those graphs aka their number of gridlines, color and type How many graphs there are and what sizes they have You can do all of that in the Edit Mode . This mode is accessible via the layout selection dropdown. In edit mode you have options to change the graphs as said, remove the layout you’re editing, to save it as a new one or to save it (basically override the last one). All of this is persistent between sessions. Note that the UI in the screenshots is probably gonna be changed in the future and is just a development placeholder :)"}, {"post_id": 8829, "ts": "2026-06-14T18:01:40Z", "hours": 5.2161, "text": "DevLog 4 Today I have started implementing the layouts feature. There’s not much to really say. The graphs can be vertically adjusted in size, their color and type can be changed and there is a whole new edit mode for that. And that’s what I did for 5h today… (I really hate frontend :D) The design of the whole thing is unfinished but hey, it works. Even though some features (mainly saving and loading layouts) are missing its turning out great. I will continue developing this feature for the time being."}, {"post_id": 8235, "ts": "2026-06-13T18:14:25Z", "hours": 4.1997, "text": "DevLog 3 This one will be more about the organization of the project. New folder structure I have split up the src directory into a few different subdirectories mainly pages directory which is further split up into directories for each page and a components directory for reusable components like the sidebar. Logging Furthermore I have implemented logging on the backend. (It’s also callable from the frontend but that’s not that convenient at least in case of debugging so I won’t be using it as much.) The top bar Next I have started implementing a top bar for the telemetry view . On there will be some important controls and information regarding that view. Just note that in the screenshot the game is not open therefore the driver dropdown isn’t populated with any text. This will probably change in the future. And the layout dropdown is there just for the looks for now ;)"}, {"post_id": 6907, "ts": "2026-06-11T16:08:05Z", "hours": 2.7908, "text": "DevLog 2 Today i have fixed a bug where threads would spawn infinitely. I’ve been at it for 3h… Yeah it was kinda pain. So I basically have this architecture, where my backend spawns a new thread for each graph ( to provide information more responsibly. ) However whenever the graph element unloaded, it didn’t unsubscribe from that thread. A simple fix, just unsubscribe it, right ? Yup basically. However my lack of expertise in this kind of stuff led me on a wild goose chase. After I realized that what I am doing is stupid, it was just a simple hook that the spawn function returned, when spawning the new thread. Well we all make mistakes :D"}, {"post_id": 6797, "ts": "2026-06-11T12:14:18Z", "hours": 0.4275, "text": "DevLog 1 — An Introduction to My Project Hi! I’m Karlito, and this is my first devlog. I’d like to use this devlog to introduce my project, explain its current state, and share my plans for the future. So, what actually is LMU Telemetry? The TL;DR is that it’s a telemetry tool for Le Mans Ultimate. However, many people don’t know what that means, so I’ll explain it here. What is Le Mans Ultimate? In short, Le Mans Ultimate is a racing simulator. Unlike traditional racing games, it doesn’t simply say “the car accelerates when you press W.” Instead, it simulates the engine, tires, driveshafts, brakes, track grip, and many other factors to provide a realistic driving experience. What is telemetry? Telemetry is a way for simulators to output simulation data, such as speed, position, engine temperature, and much more. At a lower level, it’s essentially a chunk of memory containing numbers that are constantly updated with current information. What LMU Telemetry actually does LMU Telemetry aims to visualize these data points in a way that’s easy to understand and can help users improve their driving. It does this in several ways. For example, one feature draws real-time graphs of various metrics such as speed or delta time compared to your best lap. The current state of development The app is currently little more than a glorified demo. It has some rough UI elements and only plots graphs for a hardcoded car (index 0). While this works in private lobbies, where you’re always the first car, the system fails in most other situations. In short, the app isn’t very useful yet, but it’s a start. Main goals Live telemetry view Real-time graphs Map view A view showing the track layout and the line you drove Sharing features Exporting laps and comparing them with laps driven by other users Requirements The app must be performant Running LMU can already be demanding on some systems, so the app shouldn’t use more resources than necessary Linux support A reactive and polished UI Future plans Windows support Depending on how difficult this turns out to be, it may be implemented sooner Strategy mode Useful for endurance and team events, allowing you to monitor the tire and fuel status of other drivers So, what now? Right now, I’ll focus on getting the app to its MVP state. This means refining the UI, fixing bugs, and, most importantly, making the app genuinely useful. Well, that was quite a long one, wasn’t it? Thank you for reading all the way to the end, and have a wonderful rest of your day!"}]...
|
Title: Telemetry LMU by @Karlito | Stardance
Devl Title: Telemetry LMU by @Karlito | Stardance
Devlogs:
DevLog 1 — An Introduction to My Project Hi! I’m Karlito, and this is my first devlog. I’d like to use this devlog to introduce my project, explain its current state, and share my plans for the future. So, what actually is LMU Telemetry? The TL;DR is that it’s a telemetry tool for Le Mans Ultimate. However, many people don’t know what that means, so I’ll explain it here. What is Le Mans Ultimate? In short, Le Mans Ultimate is a racing simulator. Unlike traditional racing games, it doesn’t simply say “the car accelerates when you press W.” Instead, it simulates the engine, tires, driveshafts, brakes, track grip, and many other factors to provide a realistic driving experience. What is telemetry? Telemetry is a way for simulators to output simulation data, such as speed, position, engine temperature, and much more. At a lower level, it’s essentially a chunk of memory containing numbers that are constantly updated with current information. What LMU Telemetry actually does LMU Telemetry aims to visualize these data points in a way that’s easy to understand and can help users improve their driving. It does this in several ways. For example, one feature draws real-time graphs of various metrics such as speed or delta time compared to your best lap. The current state of development The app is currently little more than a glorified demo. It has some rough UI elements and only plots graphs for a hardcoded car (index 0). While this works in private lobbies, where you’re always the first car, the system fails in most other situations. In short, the app isn’t very useful yet, but it’s a start. Main goals Live telemetry view Real-time graphs Map view A view showing the track layout and the line you drove Sharing features Exporting laps and comparing them with laps driven by other users Requirements The app must be performant Running LMU can already be demanding on some systems, so the app shouldn’t use more resources than necessary Linux support A reactive and polished UI Future plans Windows support Depending on how difficult this turns out to be, it may be implemented sooner Strategy mode Useful for endurance and team events, allowing you to monitor the tire and fuel status of other drivers So, what now? Right now, I’ll focus on getting the app to its MVP state. This means refining the UI, fixing bugs, and, most importantly, making the app genuinely useful. Well, that was quite a long one, wasn’t it? Thank you for reading all the way to the end, and have a wonderful rest of your day!
DevLog 2 Today i have fixed a bug where threads would spawn infinitely. I’ve been at it for 3h… Yeah it was kinda pain. So I basically have this architecture, where my backend spawns a new thread for each graph ( to provide information more responsibly. ) However whenever the graph element unloaded, it didn’t unsubscribe from that thread. A simple fix, just unsubscribe it, right ? Yup basically. However my lack of expertise in this kind of stuff led me on a wild goose chase. After I realized that what I am doing is stupid, it was just a simple hook that the spawn function returned, when spawning the new thread. Well we all make mistakes :D
DevLog 3 This one will be more about the organization of the project. New folder structure I have split up the src directory into a few different subdirectories mainly pages directory which is further split up into directories for each page and a components directory for reusable components like the sidebar. Logging Furthermore I have implemented logging on the backend. (It’s also callable from the frontend but that’s not that convenient at least in case of debugging so I won’t be using it as much.) The top bar Next I have started implementing a top bar for the telemetry view . On there will be some important controls and information regarding that view. Just note that in the screenshot the game is not open therefore the driver dropdown isn’t populated with any text. This will probably change in the future. And the layout dropdown is there just for the looks for now ;)
DevLog 4 Today I have started implementing the layouts feature. There’s not much to really say. The graphs can be vertically adjusted in size, their color and type can be changed and there is a whole new edit mode for that. And that’s what I did for 5h today… (I really hate frontend :D) The design of the whole thing is unfinished but hey, it works. Even though some features (mainly saving and loading layouts) are missing its turning out great. I will continue developing this feature for the time being.
DevLog 5 - Introducing the Layouts feature! So for the past few days I was implementing a layouts feature for the Graphs view in my app. Features: Adding layouts Removing layouts Managing layouts change what graphs they display change the properties of those graphs aka their number of gridlines, color and type How many graphs there are and what sizes they have You can do all of that in the Edit Mode . This mode is accessible via the layout selection dropdown. In edit mode you have options to change the graphs as said, remove the layout you’re editing, to save it as a new one or to save it (basically override the last one). All of this is persistent between sessions. Note that the UI in the screenshots is probably gonna be changed in the future and is just a development placeholder :)
DevLog 6 - Windows support and the first rewrite! Windows support There’s not really much to say about this. You just get a handle on the game’s memory. This was vibecoded but it’s below 100 lines of windows specific code, so I’m gonna allow it. (It was just the 2 function that handle updating the telemetry and the rest is the same.) Rewrite After adding windows support, and sending it to a friend to test, I have discovered a massive problem. The app just didn’t work on a lower resolution. Since I have a QHD monitor, I didn’t notice it. Also when I started writing the app, I did it in pure React without any UI libraries, then I started to use Antd and then MUI and it became a mess. So I have done some research and decided to rewrite the app using ShadcnUI. I did this because Shadcn has one massive advantage - the code that you use is in your codebase. This means that you can modify the components however you want. It is also one of the more popular ones out there. For icons, I will be using Tabular, because they have a lot of them, and I like their look.
DevLog 7 This will be just a quick update on how things are looking right now, what’s happening, and the overall state of the project. Good news The rewrite is complete The sole UI library is now ShadCN. There have also been some minor bugfixes and ux improvements. The main being that the app is now working on lower resolutions. We’ve got a readme. It’s basic, but its there. Also I have added installation instructions and released the 1st alpha version. You can find it in the releases! Both windows and linux packages are there! Bad news I will take a break for the next few days. I will be working on a smaller project for android and I hope that by the time I return I will be full of energy and ideas! What’s next I will continue working on the graph view. Mainly saving and loading reference laps, and overall better UI and UX.
Devlog 8 Do you guys remember how I said that I will take a break ? Yeah… That didn’t happen. Instead I have made a plan for myself on how I am gonna continue in the tool’s development. Da plan The plan Is pretty simple: Design the app in Figma, then build it! I have also made a list of features that will be added. You can find the plan on Github. You can also suggest features if you’re interested! …oh and before making the plan I have implemented a pretty cool logging feature. Basically it records the currently selected driver and saves all his data to a file along with the lap time and date. It does this only for laps that the game considers valid (aka gives a lap time to.)
Devlog 9 - THE REDESIGN For the past few days I’ve been working on a new design for the app. I am not the best designer and to be real I didn’t enjoy it :D. Designing is just too illogical for me. There’s not really much more to say about this. Enjoy the design:
Devlog 10 - We are in the double digits 🎊 UI Redesign Progress I am slowly redesigning the app to look like the design I made. I started with the sidebar and then the top control panel. All that went well. The Graphs… 😅 But then I got to the Graphs . *Oh, the graphs… *I wanted to redo the backend for them because the multiple-thread approach was just straight up stupid. It was a pain to develop and would be a pain to maintain. So, in my infinite wisdom , I have gone for just a simple async function. That means that right now the frontend is requesting each data point instead of subscribing to a stream. After that, I needed to revise the frontend graph component itself. At first I just wanted to make a non-messy implementation of the old version. However, it turned out that the HTML <canvas> element is really slow. And I mean realllllllllly slow. So after I wasted like 2 hours trying to optimize the design with no success, I rage quit and went to watch a movie. WebGL to the Rescue But I don’t give up that easily. After the movie, I reimplemented the graph view with WebGL through Pixi.js , which wasn’t even that hard like I expected and overall had much better performance. Well… at least after I fixed one very stupid bug . The Bug That Ate 10 GB of RAM I had forgotten everything from the first GraphView.tsx implementation, so I was just mindlessly copying over the code and renaming the variables to what I thought they meant when I first made it. Then I got to the part which draws the lap (aka the big loop over all the points-up to 10,000 points at a time). There was an error on one of the variables. It was the length of some array. I just renamed it to the main array length because… *what other thing would it be, right? *Well…It was the length of the values array , which was always 1 or 2 .So I accidentally turned 1 × 10,000 iterations into 10,000^2 iterations . Somehow the app still wasn’t lagging that much. It just took like 10 GB of RAM . The Result Thankfully, the new WebGL + Pixi.js approach is way more efficient , so after fixing that bug the graph rendering performs much better. It still isn’t perfect on the UI side of things but I am getting there!
Devlog 11 Hello guys. I have some good news and some bad news… Let’s start with the not so good news. After thinking about it, I have decided, that I don’t really enjoy working on this project. It’s not that the project it self is bad, it’s more about the tech stack I chose… Don’t get me wrong typescript and react are both phenomenal choices and great tools but, I guess the web is just not for me. I realized that I like the lower end of the spectrum better. So I have decided to cut this project short. The map view will not be included in the final ship for the time being and the profile stats also will not be there. On the bright side, I have started working on the championships page with that nearing its completion. Next I will start to work on the onboarding and settings pages.
Devlog 12 This will be more of like a quick update on the championships feature. So what has happened is that I have implemented the feature, and assumed that the data will be there for all players… which there isn’t. The other players show up and everything but the details like tire data, damage data and fuel data just isn’t there. So I am kinda stuck if I should just scrap the feature or recreate it into a personal data panel which would just not be fun I think. Also the damages data is very very limited, so I just don’t know what to do.
Devlog 13 Okay so I might have found a solution for me not liking react and web technologies but still wanting to finish this project. And I don’t like it…. but it has to be done. But before I tell you what it is you have to understand my problems. The good React in combination with typescript is a very easy thing to understand. They are everywhere, the skill of knowing these is very valuable. They have a huge ecosystem because they are everywhere. And I am sure that I have forgotten many other cool and interesting features and perks but I picked them for mainly these 3. The Bad They are slow (in comparison to something like rust) They rely too heavily on browsers (I mean it’s basically their runtime) You have to be “hacky” to do some things. They are not suitable to develop desktop apps I mean in hindsight those are so obvious but until you are balls deep into some specific project you don’t really think about those. The main problem is that the performance is, for the lack of a better word, sh*t. And normally that isn’t a problem however when you are processing a memory object of about 300kb 60 times per second it adds up fast. Even on my pretty beefy PC (r7 9800x3d and n5070ti) it hardly gets 30 fps. I know this could probably be fixed with “more hacky workarounds” but I am tired of those. The solution I am going to REWRITE The project I have spent 70h on already in some rust native GUI framework such as ICED. I have not yet decided which one to chose and I will do that research tomorrow and report back Literally me RN ⬇️
Devlog 14 I have done some research and decided that moving forward the app will use eGPU as the main GUI library. I have chosen this over the competitors due to a few reasons. The main being that its rendered natively and that its a intermediate mode library. This will make it very easy to work with the graphs and hopefully other stuff too. I am enjoying working with it so far. There are some concepts that I really like, like that everything that has state is just a simple struct that is initialized somewhere and you do most of the implementation. The widget system is also pretty cool. I was at first worried that I would hate it due to my experiences from TKInter that was forced on me in school :D but its pretty intuitive how they did it. Going further I will need to think about the architecture of the app a bit to not have it fall apart. Right now I am thinking that one thread will be the main “logger thread” which will gather data from the telemetry and then there will be the UI thread. I think that is what pretty much everyone is doing so it might work . With this approach i am worried that its gonna be a pain, but what isn’t these days… I don’t really have that much more to say so at least enjoy this screenshot of a pretty much not working app Fun fact: due to how the lib works there is a bug now that you have to move your cursor on the app for it to log data :DDD
Devlog 15 For the last few days, I have been remaking the UI in EGUI and I am enjoying it so far. I’ve been working on the graphs in the graph view and also the sidebar. The sidebar is turning out very well and I am also pretty pleased with the graphs. I have only this for now, so enjoy :D
Devlog 16 Another 6 hours, another devlog… Hi people. For the last 2 days I took a bit of a break from the project. I have played Approximately up with the boys and it was so fun. Y’all should try the game. It has a free demo 😉 But we are not here to talk about games, are we… I am continuing the implementation of the frontend and its coming along nicely. I’ve just noticed one thing, making the UI itself in egui is kinda slow however the state is very easy. Whilst this not being completely ideal i can push trough that. Since the last devlog, I have finished the implementation of the sidebar, and started working on the telemetry page. I have the graphs sorted and now I am working on the top bar. It’s having a couple of issues at the moment but nothing hard to fix really. I am hopefully gonna continue tomorrow and have the page finished by the end of the week. Welp, I guess that’s it for today. Everybody have a beautiful day, and bye bye!
Devlog 17 Hello guys. Its me again :D I am continuing to rewrite the UI into egui. I have completed the Graph view’s UI and now I am moving onto implementing it. One thing I have noticed is just how much more “code efficient” egui is. I understand that I didn’t make the logic behind the code yet but even with that I made the same thing with 3k less lines of code. Here is how the layout edit mode is looking for now.
Devlog 18 - 100h on the project So it’s been a hundred hours huh ? I also can’t believe it! I have also just now finished* the graph view which will be newly called Telemetry (page) Now I will move onto making the car info page previously known as the championship view. I expect this to be very easy!
Devlog 19 Hello hello! Today I have some exciting news. The rewrite is complete That’s right, after about 30 hours of porting this code from tauri into EGUI it is finally finished! So let’s take a look at some stats, shall we ? | | Tauri | EGUI | |----------------------|-------------|--------------- | | Dev time | 80h | 30h | | Lines of code written | 6k | 3k | | Enjoyability | suboptimal | above average | And some perofrmance stuff as well: | | Tauri | EGUI | |----------------------|-------------|--------------- | | Ram idle | ~700Mb | ~150Mb | | CPU % idle | ~5% | ~5% | | FPS under load | ~29fps | stable 60 | Some other perks also include that EGUI doesn’t need a browser installed on the system to work. Overall I think this was a very successful rewrite! I wouldn’t do it again tho Next I will refactor the code a bit, do a bit off the good ’ol cleanup and then get to work on the map feature.
Devlog 20 So I have been polishing up the current features a bit and they are far from done. I am starting to question if i will make it to shipping this app one day :D. Anyway I have fixed numerous bugs, added an settings page and implemnted although very crudly a lap logger. But there is still a lot work that needs to be done. I have also added persistancy so the app remembers your choices. I am almost ready to replace the main branch with the fully rusted version, but like I said more work has to be done to go trough with that! I have probably never shown how the Car info page turned out and IMO it did really well. (The empty space is for inputs. That will be implemented soon!)
Devlog 21 For the past few days I have been working on a new feature. The map page. It is turning out great, however it has a lot of bugs. These will get fix over the next few days. I promise :) There have also been changes made to the lap logging system and some other systems as well. As you can see on the image you select 2 saved laps and can crosscompare the lines you drove. Obviously this is completly useless if you loaded 2 different track like I did here. This will get checked for and prohibited in the future. Next I will add the underlying lap overlay which I will somehow extract from the game or from somewhere else. I don’t really know yet. Well that is it for today. Have a great day and bye bye!
Devlog 22 Hiiiiiiiiiiiii I have some huge news to tell you. I have just made the MOST complex addition yet. And I love it! I have completely overhauled the accessing and managing the telemetry! I have designed a thread safe way to have it run on a separate thread and be accessible from *every place in the app. One unified API for everything! I now store the current lap and the last lap for each of the cars. Tho this takes up a massive 140mb of just floats (in the worst case scenario) I believe its worth the RAM! (Let’s be real, we have saved over 400mb from the tauri implementation so we can now use some of that!) Next I will continue on further implementing these features around the tool. Anyway have a nice day people and bye bye. Some context to that meme: I have a type in my app that is literally Arc<Mutex<[([f64; TelemetryValueType::Max as usize], Option); 104]»
Devlog 23 - More Refactoring Hi! In the past few days I have been making some core architectural changes to the project and I would like to explain them now. Telemetry Provider I have finally decided on how I am gonna handle telemetry in the long term. It’s a pretty simple concept but the implementation is pretty hard. I have one object (the TelemetryProvider struct) that is in charge of getting and managing the telemetry. Right now it logs data from all cars and stores the best, last and current laps. If you wish it can save only your laps or laps of everybody. Each lap is a json file about 500kB - 1MB in size and holds all the data that can be displayed in the app. Notably the position ( so you can load that lap directly into the map page ) and the data displayed by the graphs (so you can load it as a reference there as well.) Pointer to this struct is distributed to pages that need it so they can access it! The provider has a core logging loop that is running on another thread so the whole UI doesn’t have to redraw each time you log new data. (About 60 times a second.) State and Settings Providers Next, I have implemented a StateProvider and an SettingsProvider . These two are basically a drop in replacement of what was stored in the Sidebar and SettingsPage respectively. Difference between the two is that the StateProvider isn’t stored between app restarts. Similarly to how the TelemetryProvider works, each of the pages that need these values get a shared pointer (or an Arc in rust) and can access the values. What’s next Going further I will keep my focus on the map page. Finish it, and then start polishing the app for the final ship! Wish me luck and have a nice day!
Devlog 24 HI! All of the time on this devlog was basically just driving in circles. And I mean that. I have recorded all of the outsides and insides of all tracks in the game to get the data for the map page. It was very teidius and very boring. Like very very boring. There are 31 tracks in LMU (including each layout) and on every one of them I had to do an out lap, the ouside, another out lap and the inside. So 4laps for each. That is about 15min per layout. Yeah it was a long one. And the recordings aren’t perfect either! I will now have to somehow process them all to get them ready for the ship. You can watch the timelapses of this process here if you wish. https://lapse.hackclub.com/timelapse/OQcismBwxbBB https://lapse.hackclub.com/timelapse/le3Lta0RxcUA https://lapse.hackclub.com/timelapse/XRf98OimmUk9 Anyway. Have a nice day!
Devlog 25 I know I have just made a devlog like yesterday but holy s*** the track references work so well. They are practically perfect . Besides the references I have also implemented the delta time between the 2 cars! That has really tied the page together. If I can say so myself, we are getting pretty close to the final ship . There is not much needed to implement. The obvious are bugfixes, and some simple onboarding. But really, that’s it! Everyone who is following or caring about this project can expect a ship in the next week or so. In my final devlog I will also do a writeup on this project as a whole, from the coarse beginnings in Dyoxys, trough Tauri, to the sweet home of EGUI. There will also be a trailer video and a demo for all the raters :D Anyway for now you can have this preview of the map page! Stay tuned!
Devlog 26 Hiiiii For the past few hours I have been working on polishing the app and get it to a shippable state overall. There is still work left to do, but I am getting there. I have set up a simple packager, and a simple script to use it. It automatically compiles the release version of the app and packages it into a windows installer a Debian .deb package and a pacman package. I have also (after like 2 hours of struggeling with it) added an Icon for the app. So now it looks nice!There has been a lot of new bugfixes as well and the app has been tested by my friend so it should be somwhat usable, tho the setup UX should be improved upon. If you wish you can download the app from here: https://github.com/Karlito05/TelemetryLMU/releases/tag/v0.2.3 Well that is all I have for you all today, so have a nice one :)
Devlog 27 For the past few hours I have been polishing the app up. The main you’ll probably see are the onboarding dialogs. A global one pops up when you first launch the app and then one for each page when you first enter them. Another change I have done is that I made the ghosts on the map page be based on time and not data point index.
Devlog 28 Today is gonna be a big day, because I will ship the project. There is a few things left to do tho. Mainly the readme and the demo video! In my last and next devlog I will also make a write up on the story of the whole project so far. Besides that I have yesterday refactored the whole codebase so now there aren’t just 5 monolithic files. I went for a more react like approach with the structure being divided into pages and components. Sadly there isn’t enough time until the ship to touch up on some old UI and UX problems in the edit view of the graphs, neither is there time to add more fields. This will be done in the near future! Overall I am very happy how the app turned out. But this is not the end of the development this is just the end of the stardance journey!
Devlog 29 - The end So this is the last one, huh. Here is the full write up on this project as I promised. Chapter 1 - The beginnings This project started about 3 months ago. I started experimenting with just getting the data and plotting it. Just for fun as an exercise to learn rust. Then I realized that there actually isn’t a proper working telemetry tool that works on linux. So I did some research… and I decided that I am going to make the app in Dioxus. Chapter 2 - The Dioxus era This leads us to the shortest of eras. The Dioxus era. Nothing really happened here and quite frankly I don’t even remember it that much. There aren’t really any git commits because I didn’t have that setup yet. One thing i remember tho is that I couldn’t figure out how to draw the garphs, because Dioxus is based on web technologies but weirdly becuase you are writing HTLM like syntax but in rust. And that was the main reason I decided to switch to Tauri. Chapter 3 - The Tauri era At first Tauri was the best framework ever made for me. That is because I already kinda knew react, it was simple to understand and I could really lean into the split frontend and backend architecture. This sadly proved very inefficient for the graph view which needs to render thousands of points each frame. Since it was too much for the basic HTML canvas I have switched to using WebGL with numerous downsampling techniques. This was just a bandaid fix though. I have also ran into bunch of architectural issues with the whole split frontend and backend thing. Accessing the telemetry data proved to be very difficult and inefficient. I remember that I ran each of the graphs on a separate thread. This was so stupid. I don’t even remember how I could’ve come up with such a stupid idea :D. It just led to memory leaks and threads uncontrollably spinning up and not stopping. I am sure that all of that could’ve been easily avoided with simpler architecture but at that point I was at my lowest point of this project, so I didn’t even have the energy to do it. I also had the state of the frontend so fragmented which didn’t help. And the whole retained mode GUI thing just wasn’t well suited for this kind of app. And that is when I decided to do a complete rewrite in pure rust! Chapter 4 - The sweet EGUI I didn’t know it at the time, but this was the best idea on what to do with the project. I remember that I was very split between just shipping it half done and finishing it just because of how bad the development experience with Tauri was (sorry Tauri devs, it’s not a you thing, it’s a me thing). It took about 30h to fully rewrite the app with EGUI, which looking back at it isn’t too bad. It felt like ages though. It didn’t help that almost none of the work in this “chapter” did AI. Which at the end of the day is better! Although my style of writing EGUI code was let’s say original… I have just put everything into one file and that grew very fast :D. I had like 5 files that were about 800 lines each. That has since luckily changed. (I have adopted more of a React style file structure.) Anyway at the end of the rewrite I kinda started loving EGUI and that hasn’t stopped since. I continued to develop the Map page in EASY which was pretty easy. But then I needed the track limits data for the map page. This was a bit of a roadblock… First I have tried to extract the data directly from the game, however this was inaccurate and the track width was missing entirely. So then I tried to download an up to date image of the top down view of the track and extract the inside and outside line from it and match it to the in game data. This partially worked better, still not great tho. So there was only one option left. And that was to painfully drive each layout of each track by hand. This took almost 7h of just driving in circles. After that it was smooth and buggy sailing until the ship. Everyone who read this, have a beautiful day.
Ships:
Telemetry LMU An application for both Windows and Linux to visualize the telemetry data from Le Mans Ultimate What it does: This application collects, stores, and visualizes data from a racing simulator called Le Mans Ultimate. The main goal: Allow users to analyze their driving and learn from their data through an easy-to-use interface. The requirements: Performance, nice and simple UI, expandability, minimal setup. Results: Main goal: Achieved. (I wouldn’t be shipping this app otherwise) Performance: On average the app uses 4% of CPU and 250Mb of RAM under full load. That is less RAM usage than running Spotify in the background. Nice and simple UI: This is personal preference, however in my opinion I think i succeeded. Expandability: The architecture of the app is very modular so this also isn’t a problem. Setup: On windows there is none (except installing the app), on linux there is one dependency (this is sadly unavoidable.) Some stats: 200+ hours of development time (including the time before Stardance) 250+ commits 6 000+ lines of Rust...
|
1793674595.8024294
|
1793760995.8024294
|
|
15658
|
AstroScout by @ashwikbathla2 | Stardance
|
ashwikbathla2
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: AstroScout by @ashwikbathla2 | Stardance
|
1793414867.8455913
|
1794019667.8455913
|
|
15659
|
My very own WebOS by @Celino_J | Stardance
|
Celino_J
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My very own WebOS by @Celino_J | Stardance
|
1793253358.3189952
|
1793858158.3189952
|
|
15660
|
My awesome macropad! by @saaj_kshirsagar | Stardan My awesome macropad! by @saaj_kshirsagar | Stardance...
|
saaj_kshirsagar
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @saaj_kshirsagar | Title: My awesome macropad! by @saaj_kshirsagar | Stardance...
|
1793155907.7288604
|
1793760707.7288604
|
|
15661
|
My very own WebOS by @TheCuriousGalaxy | Stardance
|
TheCuriousGalaxy
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My very own WebOS by @TheCuriousGalaxy | St Title: My very own WebOS by @TheCuriousGalaxy | Stardance...
|
1793325268.7589262
|
1793930068.7589262
|
|
15662
|
Untitled project by @Mohammed_Yusuff | Stardance
|
Mohammed_Yusuff
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled project by @Mohammed_Yusuff | Star Title: Untitled project by @Mohammed_Yusuff | Stardance...
|
1793494578.7809048
|
1794099378.7809048
|
|
15663
|
My very own WebOS by @ZekeTrout | Stardance
|
ZekeTrout
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My very own WebOS by @ZekeTrout | Stardance
|
1793242568.6424997
|
1793847368.6424997
|
|
15664
|
~ PURPLD'S WORLD ~ by @purpld | Stardance
|
purpld
|
0
|
10.68
|
0
|
[]
|
[{"post_id": 36751, "ts": "202 [{"post_id": 36751, "ts": "2026-07-29T00:42:29Z", "hours": 9.1239, "text": "NINTENDO 3DS! WAIT I STILL HAVEN’T MADE A DEVLOG FOR THIS??? okay so, i began working on this page MONTHS AGO but i stopped for a while, and eventually moved on to my other two projects that I’ve made here so far (FUNNY MIC and LARPARDY). I THOUGHT I MADE A DEVLOG ALREADY BUT APPARENTLY NOT SORRY LOL YIPPEE NEW STUFF! This is my next shrine page, for the Nintendo 3DS, which has been weirdly important to me, lol. The thing is, I decided that I wanted to make this like an actual 3DS, because I thought that would be fun! And you can visit different pages through the HOME Menu. There is a LOT of time logged here because just to get to this point, I have had to: Rip packaged HOME Menu assets from my personal 3DS Figure out how to actually get the textures and such out of those assets Turns out those textures don’t have colors. Rip the colors from the material files Couldn’t figure out how to get the models, so recreate the spinny animation in Blender I DON’T KNOW HOW TO USE BLENDER VERY WELL LOL Recreate the top screen background in DaVinci Resolve I already had ripped the HOME Menu audio a long time ago for other stuff, but now I had to make it loopable Fit those assets in a 3DS image with HTML and CSS (RAAAAHR) JavaScript pain ALL for this so far… but I think it’s worth it. It’s only the beginning! And I think having all of these sells it a lot better than it would otherwise."}, {"post_id": 6635, "ts": "2026-06-11T03:52:34Z", "hours": 1.5606, "text": "NEOCITIES LOG 1 hihi! i’ve been on Neocities for a while, but, y’know, i haven’t had a good place to log my development process before! so this seems fitting. i finally finished and published my Bluey page! it is LITERALLY a children’s show but despite that i became obsessed with it last year, and i think it’s actually really neat and really is worth the recognition. i started working on this shrine page mannyyy months ago and i’ve finally recently had the time to finish it to my liking! one of my favorite parts of my shrine pages is matching the styling ! i “borrowed” some CSS (mainly colors) from the actual bluey.tv website to help, but learning CSS while making this website has definitely been interesting lol the voice clip buttons also use a convenient nunjucks macro to save me some time (and it keeps consistency)! {% macro audio(url) %} <a href= \"#\" onclick= \"new Audio('{{ url | escape }}').play(); return false;\" aria-label= \"Play voice clip\" ><i class= \"nf nf-fa-play\" ></i ></a> {% endmacro %} this would probably be better with a dedicated script, but that seemed like a bit much for this task IMO so i did NOT do that lol in general i learned actually quite a lot about CSS from this, i cannot lie lol i’m quite happy with how this turned out in the end. whether or not you care about the show, i hope it’s worth a read! (psst, also, the time logged for this devlog is quite small because most of this page had been done before Stardance! i just finished some touchups today and merged it.)"}]...
|
Title: ~ PURPLD'S WORLD ~ by @purpld | Stardan Title: ~ PURPLD'S WORLD ~ by @purpld | Stardance
Devlogs:
NEOCITIES LOG 1 hihi! i’ve been on Neocities for a while, but, y’know, i haven’t had a good place to log my development process before! so this seems fitting. i finally finished and published my Bluey page! it is LITERALLY a children’s show but despite that i became obsessed with it last year, and i think it’s actually really neat and really is worth the recognition. i started working on this shrine page mannyyy months ago and i’ve finally recently had the time to finish it to my liking! one of my favorite parts of my shrine pages is matching the styling ! i “borrowed” some CSS (mainly colors) from the actual bluey.tv website to help, but learning CSS while making this website has definitely been interesting lol the voice clip buttons also use a convenient nunjucks macro to save me some time (and it keeps consistency)! {% macro audio(url) %} <a href= "#" onclick= "new Audio('{{ url | escape }}').play(); return false;" aria-label= "Play voice clip" ><i class= "nf nf-fa-play" ></i ></a> {% endmacro %} this would probably be better with a dedicated script, but that seemed like a bit much for this task IMO so i did NOT do that lol in general i learned actually quite a lot about CSS from this, i cannot lie lol i’m quite happy with how this turned out in the end. whether or not you care about the show, i hope it’s worth a read! (psst, also, the time logged for this devlog is quite small because most of this page had been done before Stardance! i just finished some touchups today and merged it.)
NINTENDO 3DS! WAIT I STILL HAVEN’T MADE A DEVLOG FOR THIS??? okay so, i began working on this page MONTHS AGO but i stopped for a while, and eventually moved on to my other two projects that I’ve made here so far (FUNNY MIC and LARPARDY). I THOUGHT I MADE A DEVLOG ALREADY BUT APPARENTLY NOT SORRY LOL YIPPEE NEW STUFF! This is my next shrine page, for the Nintendo 3DS, which has been weirdly important to me, lol. The thing is, I decided that I wanted to make this like an actual 3DS, because I thought that would be fun! And you can visit different pages through the HOME Menu. There is a LOT of time logged here because just to get to this point, I have had to: Rip packaged HOME Menu assets from my personal 3DS Figure out how to actually get the textures and such out of those assets Turns out those textures don’t have colors. Rip the colors from the material files Couldn’t figure out how to get the models, so recreate the spinny animation in Blender I DON’T KNOW HOW TO USE BLENDER VERY WELL LOL Recreate the top screen background in DaVinci Resolve I already had ripped the HOME Menu audio a long time ago for other stuff, but now I had to make it loopable Fit those assets in a 3DS image with HTML and CSS (RAAAAHR) JavaScript pain ALL for this so far… but I think it’s worth it. It’s only the beginning! And I think having all of these sells it a lot better than it would otherwise....
|
1793544778.707975
|
1794149578.707975
|
|
15665
|
Rowing Telemetry System by @zmalkani | Stardance
|
zmalkani
|
0
|
7.88
|
0
|
[]
|
[{"post_id": 60350, "ts": "202 [{"post_id": 60350, "ts": "2026-09-02T17:16:16Z", "hours": 5.3481, "text": "Improved the tx modules sample rate by a lot. Removed some excess tasks from it and it runs significantly faster now and the online viewer has far denser data. Also made new waterproof (not yet submersible or floatable) TX case with power button still. Super hyped."}, {"post_id": 7830, "ts": "2026-06-13T02:07:28Z", "hours": 1.0542, "text": "Began making my rowing telemetry system’s app Struggling for sure, relatively unsuccessful session with copilot on vs code just now. Tomorrow I am going to get back to it with a fresh mind and try to do it myself so I can understand it better. All roads seem to lead back to not using AI pretty consistently for me. Not a bad thing I suppose. Photo below is of the RX and TX units. The TX with the large antenna is fixed inside the boat, tracks acceleration and transmits it over LoRa with a unique device ID to the RX unit (white), which receives the data and will (soon) send it to the app via BLE and display the data live on the app so a coach can help their athletes improve their technique."}, {"post_id": 7600, "ts": "2026-06-12T18:25:28Z", "hours": 1.4794, "text": "More work on telem. system. Added device ID to the transmitting packets. Next step will be to start on the app i think."}]...
|
Title: Rowing Telemetry System by @zmalkani | Star Title: Rowing Telemetry System by @zmalkani | Stardance
Devlogs:
More work on telem. system. Added device ID to the transmitting packets. Next step will be to start on the app i think.
Began making my rowing telemetry system’s app Struggling for sure, relatively unsuccessful session with copilot on vs code just now. Tomorrow I am going to get back to it with a fresh mind and try to do it myself so I can understand it better. All roads seem to lead back to not using AI pretty consistently for me. Not a bad thing I suppose. Photo below is of the RX and TX units. The TX with the large antenna is fixed inside the boat, tracks acceleration and transmits it over LoRa with a unique device ID to the RX unit (white), which receives the data and will (soon) send it to the app via BLE and display the data live on the app so a coach can help their athletes improve their technique.
Improved the tx modules sample rate by a lot. Removed some excess tasks from it and it runs significantly faster now and the online viewer has far denser data. Also made new waterproof (not yet submersible or floatable) TX case with power button still. Super hyped....
|
1793325097.1342638
|
1793929897.1342638
|
|
15666
|
Untitled by @ZekeTrout | Stardance
|
ZekeTrout
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled by @ZekeTrout | Stardance
|
1793148941.4617703
|
1793753741.4617703
|
|
15667
|
Frictionless by @saaj_kshirsagar | Stardance
|
saaj_kshirsagar
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Frictionless by @saaj_kshirsagar | Stardanc Title: Frictionless by @saaj_kshirsagar | Stardance...
|
1793166435.7227523
|
1793771235.7227523
|
|
15668
|
My very own WebOS by @pranavprasanth | Stardance
|
pranavprasanth
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My very own WebOS by @pranavprasanth | Star Title: My very own WebOS by @pranavprasanth | Stardance...
|
1793480010.1372368
|
1794084810.1372368
|
|
15669
|
My first slack bot! by @ZekeTrout | Stardance
|
ZekeTrout
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @ZekeTrout | Stardan Title: My first slack bot! by @ZekeTrout | Stardance...
|
1793145193.7707448
|
1793749993.7707448
|
|
15670
|
My very own WebOS by @waleedfares | Stardance
|
waleedfares
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My very own WebOS by @waleedfares | Stardan Title: My very own WebOS by @waleedfares | Stardance...
|
1793465387.9307215
|
1794070187.9307215
|
|
15671
|
Frictionless by @krishivsagrawal | Stardance
|
krishivsagrawal
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Frictionless by @krishivsagrawal | Stardanc Title: Frictionless by @krishivsagrawal | Stardance...
|
1793494223.5663798
|
1794099023.5663798
|
|
15672
|
An assembly line for satellites by @ROBIN_ | Stard An assembly line for satellites by @ROBIN_ | Stardance...
|
ROBIN_
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: An assembly line for satellites by @ROBIN_ Title: An assembly line for satellites by @ROBIN_ | Stardance...
|
1793260317.190328
|
1793865117.190328
|
|
15673
|
My awesome macropad! by @Penguin6921 | Stardance
|
Penguin6921
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @Penguin6921 | Star Title: My awesome macropad! by @Penguin6921 | Stardance...
|
1793541241.6251383
|
1794146041.6251383
|
|
15674
|
My very own WebOS by @daiwik008 | Stardance
|
daiwik008
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My very own WebOS by @daiwik008 | Stardance
|
1793483830.0446515
|
1794088630.0446515
|
|
15675
|
"CyberDeck" Purse by @selena | Stardance
|
selena
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: "CyberDeck" Purse by @selena | Star Title: "CyberDeck" Purse by @selena | Stardance...
|
1793339593.2817898
|
1793944393.2817898
|
|
15676
|
My awesome macropad! by @asmirrr | Stardance
|
asmirrr
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @asmirrr | Stardanc Title: My awesome macropad! by @asmirrr | Stardance...
|
1793422549.760105
|
1794027349.760105
|
|
15677
|
Frictionless by @024a123 | Stardance
|
024a123
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Frictionless by @024a123 | Stardance
|
1793353654.7950616
|
1793958454.7950616
|
|
15678
|
Untitled project by @rwp | Stardance
|
rwp
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled project by @rwp | Stardance
|
1793231643.8325672
|
1793836443.8325672
|
|
15679
|
My very own WebOS by @jackd | Stardance
|
jackd
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My very own WebOS by @jackd | Stardance
|
1793350536.455898
|
1793955336.455898
|
|
15680
|
Idk what the name is yet by @Miidres | Stardance
|
Miidres
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Idk what the name is yet by @Miidres | Star Title: Idk what the name is yet by @Miidres | Stardance...
|
1793508913.40123
|
1794113713.40123
|
|
15681
|
My very own WebOS by @nadine | Stardance
|
nadine
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My very own WebOS by @nadine | Stardance
|
1793490462.430981
|
1794095262.430981
|
|
15682
|
AI revision for coders by @aryaksingh | Stardance
|
aryaksingh
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: AI revision for coders by @aryaksingh | Sta Title: AI revision for coders by @aryaksingh | Stardance...
|
1793541278.4307299
|
1794146078.4307299
|
|
15683
|
Frictionless by @ishasari22 | Stardance
|
ishasari22
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Frictionless by @ishasari22 | Stardance
|
1793217267.516473
|
1793822067.516473
|
|
15684
|
My awesome macropad! by @rafailchionakis | Stardan My awesome macropad! by @rafailchionakis | Stardance...
|
rafailchionakis
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @rafailchionakis | Title: My awesome macropad! by @rafailchionakis | Stardance...
|
1793436824.5706642
|
1794041624.5706642
|
|
15685
|
Virtual Pet by @eli | Stardance
|
eli
|
0
|
1.22
|
0
|
[]
|
[{"post_id": 6385, "ts": "2026 [{"post_id": 6385, "ts": "2026-06-10T18:58:20Z", "hours": 1.2231, "text": "A few months ago, some friends and I won FBLA State with out virtual pet project! Its was pretty cool but was super buggy and we used too much AI so we could not really fix the bugs… This summer we are attending nationals and need a much stronger submission to win! So we are doing a full rewrite 2 weeks before hand! Migrating from Python to TypeScript with Tauri + SvelteKit! This stack allows for speed and a lot more control over the UI! Today I started by setting up the project, making the global state, and working on some methods! Its a good start but I am either going to need to log a LOT more time or lock in a move faster. PS: Sorry for the super boring screenshot not much to look at yet :)"}]...
|
Title: Virtual Pet by @eli | Stardance
Devlogs:
A Title: Virtual Pet by @eli | Stardance
Devlogs:
A few months ago, some friends and I won FBLA State with out virtual pet project! Its was pretty cool but was super buggy and we used too much AI so we could not really fix the bugs… This summer we are attending nationals and need a much stronger submission to win! So we are doing a full rewrite 2 weeks before hand! Migrating from Python to TypeScript with Tauri + SvelteKit! This stack allows for speed and a lot more control over the UI! Today I started by setting up the project, making the global state, and working on some methods! Its a good start but I am either going to need to log a LOT more time or lock in a move faster. PS: Sorry for the super boring screenshot not much to look at yet :)...
|
1793202750.219337
|
1793807550.219337
|
|
15686
|
My very own WebOS by @ajaiveerdeol | Stardance
|
ajaiveerdeol
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My very own WebOS by @ajaiveerdeol | Starda Title: My very own WebOS by @ajaiveerdeol | Stardance...
|
1793472594.960915
|
1794077394.960915
|
|
15687
|
Frictionless by @Timmy | Stardance
|
Timmy
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Frictionless by @Timmy | Stardance
|
1793418805.1193101
|
1794023605.1193101
|
|
15688
|
My very own WebOS by @tanvi | Stardance
|
tanvi
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My very own WebOS by @tanvi | Stardance
|
1793382502.3853805
|
1793987302.3853805
|
|
15689
|
My awesome macropad! by @Dhyey | Stardance
|
Dhyey
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @Dhyey | Stardance
|
1793476446.5854092
|
1794081246.5854092
|
|
15690
|
My awesome macropad! by @marcelpb12 | Stardance
|
marcelpb12
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @marcelpb12 | Stard Title: My awesome macropad! by @marcelpb12 | Stardance...
|
1793454998.0534117
|
1794059798.0534117
|
|
15691
|
My action macropad! by @Akqwrdgamer_YT | Stardance
|
Akqwrdgamer_YT
|
0
|
14.27
|
0
|
[]
|
[{"post_id": 83148, "ts": "202 [{"post_id": 83148, "ts": "2026-10-27T01:50:59Z", "hours": 3.6833, "text": "i also made a voice changer app for it if wanted (it doesn’t work yet) {LINK: https://github.com/AkqwrdgamerYT/Local-Voice-Studio-V2}"}, {"post_id": 78916, "ts": "2026-10-12T01:13:36Z", "hours": 2.2536, "text": "final touches and making a cap for the dial"}, {"post_id": 78829, "ts": "2026-10-11T18:23:13Z", "hours": 1.0406, "text": "fixing cad tolerances it took 6 tries"}, {"post_id": 78799, "ts": "2026-10-11T17:09:51Z", "hours": 2.1297, "text": "testing cad tolerances, putting it into a assembly, and fixing hole sizes to fit a m4 14mm hex screw"}, {"post_id": 78761, "ts": "2026-10-11T14:58:21Z", "hours": 3.8814, "text": "The case is now done"}, {"post_id": 78223, "ts": "2026-10-10T00:45:42Z", "hours": 0.6497, "text": "The PCB is done now I’m working on making the case for it (BTW I was rec during this so I actually have 3-4 hours on it)"}, {"post_id": 78149, "ts": "2026-10-09T19:40:05Z", "hours": 0.6275, "text": "my macro pad"}]...
|
Title: My action macropad! by @Akqwrdgamer_YT | St Title: My action macropad! by @Akqwrdgamer_YT | Stardance
Devlogs:
my macro pad
The PCB is done now I’m working on making the case for it (BTW I was rec during this so I actually have 3-4 hours on it)
The case is now done
testing cad tolerances, putting it into a assembly, and fixing hole sizes to fit a m4 14mm hex screw
fixing cad tolerances it took 6 tries
final touches and making a cap for the dial
i also made a voice changer app for it if wanted (it doesn’t work yet) {LINK: https://github.com/AkqwrdgamerYT/Local-Voice-Studio-V2}...
|
1793508947.0429342
|
1794113747.0429342
|
|
15692
|
NULL
|
NULL
|
0
|
0.0
|
0
|
[]
|
[]
|
|
1792943680.6200352
|
1793807680.6200352
|
|
15693
|
LetBy by @fira | Stardance
|
fira
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: LetBy by @fira | Stardance
|
1793447582.3000603
|
1794052382.3000603
|
|
15694
|
My first slack bot! by @bilall | Stardance
|
bilall
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @bilall | Stardance
|
1792943275.349418
|
1793807275.349418
|
|
15695
|
ASCII Image Converter by @aehr_canter | Stardance
|
aehr_canter
|
0
|
2.54
|
0
|
[]
|
[{"post_id": 19913, "ts": "202 [{"post_id": 19913, "ts": "2026-07-01T10:55:19Z", "hours": 2.2142, "text": "I completed writing the general code. Attached a ASCII picture of yours truly ;)"}, {"post_id": 6394, "ts": "2026-06-10T19:14:44Z", "hours": 0.3225, "text": "Started working on my image converter. Its going alright but I need to learn a lot of ASCII conversions."}]...
|
Title: ASCII Image Converter by @aehr_canter | Sta Title: ASCII Image Converter by @aehr_canter | Stardance
Devlogs:
Started working on my image converter. Its going alright but I need to learn a lot of ASCII conversions.
I completed writing the general code. Attached a ASCII picture of yours truly ;)...
|
1793188535.9126642
|
1793793335.9126642
|
|
15696
|
My very own WebOS by @k2t0t | Stardance
|
k2t0t
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My very own WebOS by @k2t0t | Stardance
|
1793433047.9442341
|
1794037847.9442341
|
|
15697
|
RideHomie by @dhruvopu8787 | Stardance
|
dhruvopu8787
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: RideHomie by @dhruvopu8787 | Stardance
|
1793328972.8845906
|
1793933772.8845906
|
|
15698
|
Health/productivity desk assistant by @zmalkani | Health/productivity desk assistant by @zmalkani | Stardance...
|
zmalkani
|
1
|
2.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-12T16:18:21Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a hackpad that will be a desk assistant. To be a good student athlete, balancing schoolwork and practice/nutrition/etc is crucial. This device will have built-in distraction-free pomodoro study sessions, as well as food/water reminders to stay fuelled while focused in on schoolwork.", "repo": "https://github.com/zmalkani/health-productivity-desk-assistant", "demo": ""}]...
|
[{"post_id": 6493, "ts": "2026 [{"post_id": 6493, "ts": "2026-06-10T22:14:30Z", "hours": 2.2722, "text": "I finished my fusion model for the case, as well as my PCB design for my hackpad. Uses 3 switches, an encoder, and an OLED."}]...
|
Title: Health/productivity desk assistant by @zmal Title: Health/productivity desk assistant by @zmalkani | Stardance
Devlogs:
I finished my fusion model for the case, as well as my PCB design for my hackpad. Uses 3 switches, an encoder, and an OLED.
Ships:
I made a hackpad that will be a desk assistant. To be a good student athlete, balancing schoolwork and practice/nutrition/etc is crucial. This device will have built-in distraction-free pomodoro study sessions, as well as food/water reminders to stay fuelled while focused in on schoolwork....
|
1793717826.4659994
|
1793804226.4659994
|
|
15699
|
OpenAtlas by @Jack_ | Stardance
|
Jack_
|
1
|
23.0
|
434
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-15T07:17:32Z", "hours": 23.0, "multiplier": 19.03, "payout": 434, "blessing": "neutral", "text": "NOTE: This project is NOT available or usable on mobile. Please skip if you are on mobile. OpenAtlas is a personal knowledge management system I built from scratch. It is both a browser extension that lets you save any webpage you’re viewing with one click, and a full web dashboard where you can organize those saved pages into projects, edit them, and manage your account. It’s built with a Node/Express backend, SQLite for storage, a React frontend, and a vanilla JS browser extension, and the entire thing was built and deployed by me with no templates, frameworks, or otherwise used. The biggest challenges were spread across nearly every layer of the stack. Early on, learning how to build a genuinely secure authentication system was the hardest thing: making sure passwords were properly hashed and never stored or exposed in a vulnerable way. SQL and database design caused a surprising number of headaches later on, to the point where I had to rewrite large chunks of the server and database logic because requests weren’t reliably pushing to or pulling from the database. As the project grew past 40+ files, keeping the codebase organized became challenging, with so many imports and figuring out where things lived started to genuinely be difficuly. Deploying the project also lead to a host of problems: learning what actually has to legally exist in a Terms of Service and Privacy Policy, understanding CORS well enough to configure it correctly rather than just disabling protections, and more. Despite all that, I created this project. I would love for you to give me feedback.", "repo": "https://github.com/Jack-Jacobson/OpenAtlas", "demo": "https://openatlas.jackjacobson2011.com/about"}]...
|
[{"post_id": 28751, "ts": "202 [{"post_id": 28751, "ts": "2026-07-15T06:47:20Z", "hours": 1.965, "text": "OVERVIEW: Most of this time was spent adding detailed documentation. I added a table or api endpoints, detailed info on how to run locally, info on security and the tech stack, and put a lot of work in it. My readme is 300 lines long and I am very proud of it. I also made a file tree with info about it which is pretty cool. Also fixed all bugs I could find. NEXT STEPS: Ship! CHALLENGES: Readmes are hard to write. Making tables are really annoying and take forever."}, {"post_id": 28697, "ts": "2026-07-15T03:16:58Z", "hours": 2.1306, "text": "OVERVIEW: This is a major update with a lot of time working that wasn’t tracked. I have made a projects page for each project, involving editing the project, and viewing more details. Ive updated the UI a bit. Ive added a privacy policy and a TOS. And I redid the organization of the project to include pages (e.g openatlas.jackjacobson2011.com/privacy). I am preparing to launch the project soon, and have applied for the extension in the firefox add on store. I also have double checked security and have published the project on my website, where the frontend and backend now live. NEXT STEPS: Write readme Get on other extension stores CHALLENGES: Learning what legally has to be in a TOS and privacy policy Learning about CORS and its best practices Dealing with firefox"}, {"post_id": 27921, "ts": "2026-07-13T21:01:11Z", "hours": 1.3669, "text": "NOTE ABOUT INACTIVITY: I have had some stuff in my life that has kept me from working on this project. It has been 23 days, but this will get back on track. I cant wait to finish this and release it for everyone! OVERVIEW: Added a working inspector, a lot of bug fixes, and functioning projects. NEXT STEPS: AI Project pages Improved UI CHALLENGES: A lot of bugs I have limited cybersecurity knowledge so I had to do a lot of research to ensure my site is secure"}, {"post_id": 12712, "ts": "2026-06-20T19:21:39Z", "hours": 4.8539, "text": "OVERVIEW: Once again, I am very sorry for the long time between devlogs. This came with a suprising amount of bugs that took a suprising amount of time to fix. But, now the other two pages of OpenAtlas work! You can log out and delete your account, save to projects, sort by projects, and have everything secure and deletable at the click of a button. NEXT STEPS: Make projects page more detailed Make project AI-detectable (waiting on more nest resources for that) General UI improvments Add functionality to inspector CHALLENGES: The majority of problems came from SQL. Had to redo a lot of server and database code because it was having so many issues pulling and pushing to the database with my api. Organization is also starting to prove to be a massive problem as this project grows with 40+ files, its hard to keep track of what is where and imports and such"}, {"post_id": 11059, "ts": "2026-06-18T02:58:24Z", "hours": 1.5622, "text": "OVERVIEW: I have regained motivation, ig the backend just kinda bored me with all the problems and such. But also, made the extension actually good! The styling matches the website now, and you can now login to the extension. I also added so the resources are saved with your user in mind, so you can later recall only your resources, which is vital functionality. NEXT STEPS: Add more UI pages Add categorizing CHALLENGES: Using my API and modifying it to have the correct data has been really fun and interesting. Even further learning about SQL has also been fun."}, {"post_id": 10885, "ts": "2026-06-17T20:53:50Z", "hours": 6.2556, "text": "OVERVIEW: First of all, I apologize for the massive amount of time without a devlog. Recently I have felt a bit burnt out with this project and have been spending a lot of time with only a little bit to show for it. However, that being said, a true signup and sign in system has now been implemented! You can sign up with an account, the password is encrypted so I can’t see it, and it is securely stored in a database where you can now log in with those credentials at any time. I have the framework for preferences set up and more. Also, this stardance platform has had massive improvements these last week or two, so thanks everyone at HackClub for your great work! NEXT STEPS: storing user-specific entries, and connecting the extension to specific accounts Further UI pages Setting to delete your data from the database CHALLENGES: The majority of the reason for this taking so long has been learning how to securely do the system, the last thing i want is to release a project where I can see your password, or where the password itself is stored in a vulnerable way, or where personal info is stored. Learning the right way to do this has been amazing This has also required me to expand my sql skills, and learning how to interact with databases better than I have been"}, {"post_id": 8426, "ts": "2026-06-14T00:23:28Z", "hours": 2.4375, "text": "OVERVIEW: Began work on front end! Nothing is functional atm, and it doesn’t look great, but the framework is there. All of the projects and middle stuff are placeholders. It does look workable though. And also I actually figured out newlines?!?!?!?!?! Thanks random guy on slack NEXT STEPS: Improve looks Other pages Improve extension design CHALLENGES: - Variables in css, they should be helpful for later editing of design, and was very interesting to learn. For this devlog I decided to also highlight some challenges that have been persistent throughout the projects, those are below. Error messages. In an effort to improve the opensource-ness of my project, I have been working to include fallbacks and useful error messages. It is not only helpful for my own debugging, but for everyone else trying to use or replicate my project! Proper naming conventions for variables and functions are also part of this effort for me, in the past I just make everything camel case, but recently have been trying to do better with this."}, {"post_id": 7874, "ts": "2026-06-13T04:16:09Z", "hours": 1.0258, "text": "OVERVIEW: Linked server to a database! I am using sqlite to store all data, which was really fun to learn. Whenever the server receives a packet, it pushes it to the database, which updates in real time. Also set up framework to have get requests from the database, so data can be read. Also turns out I lied about being able to use devlogs correctly, my method for newlines in these devlogs just stopped working, its great. NEXT STEPS: Begin webui, I decided to use react after some research because it appears to be much more useful of a skill than just vanilla html, css, and js, which is what I used for webos. Improve extension design CHALLENGES: I learned a lot about databases which was really interesting, however I found it difficult to figure out how bits worked in the database as well as learning how sql requests work It was also difficult to be able to see the database, it isnt a necessity for the project but is really nice so you can actually see the state of the project data"}, {"post_id": 7796, "ts": "2026-06-13T00:39:16Z", "hours": 1.2139, "text": "OVERVIEW: This time was spent creating the basis for what OpenAtlas will become. I created a basic extension, imported it into firefox, and made it communicate with my server. I learned a lot about how extensions work. It should also be backwards compatible with Chrome. I can’t wait to learn about databases. Also, I finally figured out how to properly format devlogs, HackClub please make this easier, just make newlines be newlines, I am begging you! NEXT STEPS: Create and figure out how to use databases Start WebUI Improve extension design CHALLENGES: Learning how to use a manifest in my extension and how important they are Learning how javascript can interact with a browser through various commands Learning how servers work and can be interacted with"}]...
|
Title: OpenAtlas by @Jack_ | Stardance
Devlogs:
O Title: OpenAtlas by @Jack_ | Stardance
Devlogs:
OVERVIEW: This time was spent creating the basis for what OpenAtlas will become. I created a basic extension, imported it into firefox, and made it communicate with my server. I learned a lot about how extensions work. It should also be backwards compatible with Chrome. I can’t wait to learn about databases. Also, I finally figured out how to properly format devlogs, HackClub please make this easier, just make newlines be newlines, I am begging you! NEXT STEPS: Create and figure out how to use databases Start WebUI Improve extension design CHALLENGES: Learning how to use a manifest in my extension and how important they are Learning how javascript can interact with a browser through various commands Learning how servers work and can be interacted with
OVERVIEW: Linked server to a database! I am using sqlite to store all data, which was really fun to learn. Whenever the server receives a packet, it pushes it to the database, which updates in real time. Also set up framework to have get requests from the database, so data can be read. Also turns out I lied about being able to use devlogs correctly, my method for newlines in these devlogs just stopped working, its great. NEXT STEPS: Begin webui, I decided to use react after some research because it appears to be much more useful of a skill than just vanilla html, css, and js, which is what I used for webos. Improve extension design CHALLENGES: I learned a lot about databases which was really interesting, however I found it difficult to figure out how bits worked in the database as well as learning how sql requests work It was also difficult to be able to see the database, it isnt a necessity for the project but is really nice so you can actually see the state of the project data
OVERVIEW: Began work on front end! Nothing is functional atm, and it doesn’t look great, but the framework is there. All of the projects and middle stuff are placeholders. It does look workable though. And also I actually figured out newlines?!?!?!?!?! Thanks random guy on slack NEXT STEPS: Improve looks Other pages Improve extension design CHALLENGES: - Variables in css, they should be helpful for later editing of design, and was very interesting to learn. For this devlog I decided to also highlight some challenges that have been persistent throughout the projects, those are below. Error messages. In an effort to improve the opensource-ness of my project, I have been working to include fallbacks and useful error messages. It is not only helpful for my own debugging, but for everyone else trying to use or replicate my project! Proper naming conventions for variables and functions are also part of this effort for me, in the past I just make everything camel case, but recently have been trying to do better with this.
OVERVIEW: First of all, I apologize for the massive amount of time without a devlog. Recently I have felt a bit burnt out with this project and have been spending a lot of time with only a little bit to show for it. However, that being said, a true signup and sign in system has now been implemented! You can sign up with an account, the password is encrypted so I can’t see it, and it is securely stored in a database where you can now log in with those credentials at any time. I have the framework for preferences set up and more. Also, this stardance platform has had massive improvements these last week or two, so thanks everyone at HackClub for your great work! NEXT STEPS: storing user-specific entries, and connecting the extension to specific accounts Further UI pages Setting to delete your data from the database CHALLENGES: The majority of the reason for this taking so long has been learning how to securely do the system, the last thing i want is to release a project where I can see your password, or where the password itself is stored in a vulnerable way, or where personal info is stored. Learning the right way to do this has been amazing This has also required me to expand my sql skills, and learning how to interact with databases better than I have been
OVERVIEW: I have regained motivation, ig the backend just kinda bored me with all the problems and such. But also, made the extension actually good! The styling matches the website now, and you can now login to the extension. I also added so the resources are saved with your user in mind, so you can later recall only your resources, which is vital functionality. NEXT STEPS: Add more UI pages Add categorizing CHALLENGES: Using my API and modifying it to have the correct data has been really fun and interesting. Even further learning about SQL has also been fun.
OVERVIEW: Once again, I am very sorry for the long time between devlogs. This came with a suprising amount of bugs that took a suprising amount of time to fix. But, now the other two pages of OpenAtlas work! You can log out and delete your account, save to projects, sort by projects, and have everything secure and deletable at the click of a button. NEXT STEPS: Make projects page more detailed Make project AI-detectable (waiting on more nest resources for that) General UI improvments Add functionality to inspector CHALLENGES: The majority of problems came from SQL. Had to redo a lot of server and database code because it was having so many issues pulling and pushing to the database with my api. Organization is also starting to prove to be a massive problem as this project grows with 40+ files, its hard to keep track of what is where and imports and such
NOTE ABOUT INACTIVITY: I have had some stuff in my life that has kept me from working on this project. It has been 23 days, but this will get back on track. I cant wait to finish this and release it for everyone! OVERVIEW: Added a working inspector, a lot of bug fixes, and functioning projects. NEXT STEPS: AI Project pages Improved UI CHALLENGES: A lot of bugs I have limited cybersecurity knowledge so I had to do a lot of research to ensure my site is secure
OVERVIEW: This is a major update with a lot of time working that wasn’t tracked. I have made a projects page for each project, involving editing the project, and viewing more details. Ive updated the UI a bit. Ive added a privacy policy and a TOS. And I redid the organization of the project to include pages (e.g openatlas.jackjacobson2011.com/privacy). I am preparing to launch the project soon, and have applied for the extension in the firefox add on store. I also have double checked security and have published the project on my website, where the frontend and backend now live. NEXT STEPS: Write readme Get on other extension stores CHALLENGES: Learning what legally has to be in a TOS and privacy policy Learning about CORS and its best practices Dealing with firefox
OVERVIEW: Most of this time was spent adding detailed documentation. I added a table or api endpoints, detailed info on how to run locally, info on security and the tech stack, and put a lot of work in it. My readme is 300 lines long and I am very proud of it. I also made a file tree with info about it which is pretty cool. Also fixed all bugs I could find. NEXT STEPS: Ship! CHALLENGES: Readmes are hard to write. Making tables are really annoying and take forever.
Ships:
NOTE: This project is NOT available or usable on mobile. Please skip if you are on mobile. OpenAtlas is a personal knowledge management system I built from scratch. It is both a browser extension that lets you save any webpage you’re viewing with one click, and a full web dashboard where you can organize those saved pages into projects, edit them, and manage your account. It’s built with a Node/Express backend, SQLite for storage, a React frontend, and a vanilla JS browser extension, and the entire thing was built and deployed by me with no templates, frameworks, or otherwise used. The biggest challenges were spread across nearly every layer of the stack. Early on, learning how to build a genuinely secure authentication system was the hardest thing: making sure passwords were properly hashed and never stored or exposed in a vulnerable way. SQL and database design caused a surprising number of headaches later on, to the point where I had to rewrite large chunks of the server and database logic because requests weren’t reliably pushing to or pulling from the database. As the project grew past 40+ files, keeping the codebase organized became challenging, with so many imports and figuring out where things lived started to genuinely be difficuly. Deploying the project also lead to a host of problems: learning what actually has to legally exist in a Terms of Service and Privacy Policy, understanding CORS well enough to configure it correctly rather than just disabling protections, and more. Despite all that, I created this project. I would love for you to give me feedback....
|
1793688780.2783492
|
1793775180.2783492
|
|
15700
|
AMAZENG by @nael_sify | Stardance
|
nael_sify
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-10T23:27:54Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "i’ve made a maze generator but the twist is that i added alghorithms for maze solving that was the most challenging part of the project", "repo": "https://github.com/godofcode1/codingmazes", "demo": "https://godofcode1.itch.io/alghomazics"}]...
|
[{"post_id": 6467, "ts": "2026 [{"post_id": 6467, "ts": "2026-06-10T21:35:37Z", "hours": 0.9903, "text": "Devlog-01 soo i was working on maze generation and solving alghorithms,for them like BFS or DFS and two others they’re the most efficient out of all of them soo that’s what i did for the past here’s some of my results"}]...
|
Title: AMAZENG by @nael_sify | Stardance
Devlogs: Title: AMAZENG by @nael_sify | Stardance
Devlogs:
Devlog-01 soo i was working on maze generation and solving alghorithms,for them like BFS or DFS and two others they’re the most efficient out of all of them soo that’s what i did for the past here’s some of my results
Ships:
i’ve made a maze generator but the twist is that i added alghorithms for maze solving that was the most challenging part of the project...
|
1793667285.3826544
|
1793753685.3826544
|