|
32611
|
smth tab by @Christianlikes67_Bobbpheus | Stardanc smth tab by @Christianlikes67_Bobbpheus | Stardance...
|
Christianlikes67_Bobbpheus
|
2
|
4.0
|
1
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-07T15:43:20Z", "hours": 1.0, "multiplier": 1.13, "payout": 1, "blessing": "neutral", "text": "I made a basic website weak css and not that much special things but it has a clock and some buttons that send you to different websites so not that much but i originally had made another projects but then i lost most of it and needed to rework it all", "repo": "https://github.com/Christianlikes67/smth-tab", "demo": "https://christianlikes67.github.io/smth-tab/"}, {"ship_num": 2, "ts": "2026-07-10T11:13:29Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "๐ฑ๐ AstroCat Explorer AstroCat Explorer is a fun and interactive web app that lets you explore NASAโs Astronomy Picture of the Day (APOD) with a unique space-cat theme. Instead of creating a standard NASA gallery, this project combines space exploration, animated visuals, and a playful personality to create a more engaging experience. โจ Features ๐ NASA Astronomy Picture of the Day API ๐
Search for a specific date ๐ฒ Random Mission button ๐ฑ Random Space Cat facts ๐ Mission counter โญ XP system with Space Cat ranks โ๏ธ Animated shooting stars ๐ช Floating planets ๐ Rocket cursor ๐ Glassmorphism UI ๐ฑ Responsive design ๐จ Custom space-themed interface โก Smooth animations and transitions ๐ ๏ธ Built With HTML5 CSS3 JavaScript (ES6) NASA APOD API You can get a free API key from: https://api.nasa.gov/ ๐ Project Structure AstroCat Explorer/ โ โโโ index.html โโโ style.css โโโ script.js โโโ README.md ๐ฎ Inspiration This project is inspired by: Space exploration Cats ๐ฑ Modern gaming-inspired UI NASAโs Astronomy Picture of the Day ๐ธ Main Features View NASAโs daily space image. Explore images from previous dates. Launch random space missions. Earn Space Cat XP as you explore. Unlock new Space Cat ranks. Enjoy animated cosmic effects. ๐ก Future Improvements โค๏ธ Favorite missions ๐ฅ Support NASA APOD videos ๐ Dark/Light mode ๐ Search by keywords ๐ More achievements ๐ Optional sound effects ๐จโ๐ป Author Made with โค๏ธ by Christianlikes67.", "repo": "https://github.com/Christianlikes67/smth-tab", "demo": "https://christianlikes67.github.io/smth-tab/"}]...
|
[{"post_id": 27618, "ts": "202 [{"post_id": 27618, "ts": "2026-07-13T11:19:46Z", "hours": 0.4914, "text": "basically changed evrything cuz i just felt like it"}, {"post_id": 26444, "ts": "2026-07-11T07:47:05Z", "hours": 0.4128, "text": "now i fixed the css and a lot of other things"}, {"post_id": 25865, "ts": "2026-07-10T10:56:12Z", "hours": 0.3553, "text": "this is gonna take a bit longer i have ran into a problem and im now tryna fix it"}, {"post_id": 25847, "ts": "2026-07-10T10:22:28Z", "hours": 0.6558, "text": "Almost done with CSS"}, {"post_id": 25498, "ts": "2026-07-09T20:11:08Z", "hours": 0.8886, "text": "I am pretty much done with the โMoving on to JavaScriptโ part in the guide so i only need to COOK with CSS now"}, {"post_id": 25469, "ts": "2026-07-09T19:09:01Z", "hours": 0.3744, "text": "just finished the โStarting with HTMLโ part in the guide and i also finished what i wanted to do and the time i used to make it is the logged time from this devlog and the one before with the meowl img."}, {"post_id": 25394, "ts": "2026-07-09T17:34:04Z", "hours": 0.7331, "text": "I am making a cool NASA inspired facts website with cats where there is a date picker and then it finds a text from nasa about that day i couldnt get a screenshot"}, {"post_id": 24785, "ts": "2026-07-08T16:10:25Z", "hours": 0.3531, "text": "just began coding"}]...
|
Title: smth tab by @Christianlikes67_Bobbpheus | S Title: smth tab by @Christianlikes67_Bobbpheus | Stardance
Devlogs:
just began coding
I am making a cool NASA inspired facts website with cats where there is a date picker and then it finds a text from nasa about that day i couldnt get a screenshot
just finished the โStarting with HTMLโ part in the guide and i also finished what i wanted to do and the time i used to make it is the logged time from this devlog and the one before with the meowl img.
I am pretty much done with the โMoving on to JavaScriptโ part in the guide so i only need to COOK with CSS now
Almost done with CSS
this is gonna take a bit longer i have ran into a problem and im now tryna fix it
now i fixed the css and a lot of other things
basically changed evrything cuz i just felt like it
Ships:
๐ฑ๐ AstroCat Explorer AstroCat Explorer is a fun and interactive web app that lets you explore NASAโs Astronomy Picture of the Day (APOD) with a unique space-cat theme. Instead of creating a standard NASA gallery, this project combines space exploration, animated visuals, and a playful personality to create a more engaging experience. โจ Features ๐ NASA Astronomy Picture of the Day API ๐
Search for a specific date ๐ฒ Random Mission button ๐ฑ Random Space Cat facts ๐ Mission counter โญ XP system with Space Cat ranks โ๏ธ Animated shooting stars ๐ช Floating planets ๐ Rocket cursor ๐ Glassmorphism UI ๐ฑ Responsive design ๐จ Custom space-themed interface โก Smooth animations and transitions ๐ ๏ธ Built With HTML5 CSS3 JavaScript (ES6) NASA APOD API You can get a free API key from: https://api.nasa.gov/ ๐ Project Structure AstroCat Explorer/ โ โโโ index.html โโโ style.css โโโ script.js โโโ README.md ๐ฎ Inspiration This project is inspired by: Space exploration Cats ๐ฑ Modern gaming-inspired UI NASAโs Astronomy Picture of the Day ๐ธ Main Features View NASAโs daily space image. Explore images from previous dates. Launch random space missions. Earn Space Cat XP as you explore. Unlock new Space Cat ranks. Enjoy animated cosmic effects. ๐ก Future Improvements โค๏ธ Favorite missions ๐ฅ Support NASA APOD videos ๐ Dark/Light mode ๐ Search by keywords ๐ More achievements ๐ Optional sound effects ๐จโ๐ป Author Made with โค๏ธ by Christianlikes67.
I made a basic website weak css and not that much special things but it has a clock and some buttons that send you to different websites so not that much but i originally had made another projects but then i lost most of it and needed to rework it all...
|
1792875199.4580007
|
1793739199.4580007
|
|
68565
|
smth by @krates | Stardance
|
krates
|
0
|
0.8
|
0
|
[]
|
[{"post_id": 77788, "ts": "202 [{"post_id": 77788, "ts": "2026-10-08T08:43:03Z", "hours": 0.8039, "text": "yea lowk did smthin, mhhmmh did smthin rrlly rlly important tk reall important"}]...
|
Title: smth by @krates | Stardance
Devlogs:
yea l Title: smth by @krates | Stardance
Devlogs:
yea lowk did smthin, mhhmmh did smthin rrlly rlly important tk reall important...
|
1793123396.1846693
|
1793728196.1846693
|
|
45516
|
smoother life by @Arianna | Stardance
|
Arianna
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: smoother life by @Arianna | Stardance
|
1792626703.7151604
|
1793231503.7151604
|
|
26541
|
smooth-spend-api by @Luksh | Stardance
|
Luksh
|
1
|
2.85
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-26T22:39:30Z", "hours": 0.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I created the backend API for Smooth Spend, an app designed to help manage personal finances smoothly. I deployed it officially on Hack Club Nest using Node.js and Express! The most challenging part was dealing with port forwarding and getting the reverse proxy settings right on Nest, as well as fixing PM2 setup errors so the server could run 24/7 in the background without crashing. Iโm super proud of successfully making the API public and seeing the live โIl server di Smooth Spend รจ online!โ message in my browser after a good debugging session. To test it, you can simply visit the live URL: https://smooth-spend-api.hackclub.app ๐", "repo": "https://github.com/D399def9/smooth-spend-api", "demo": "https://smooth-spend-api.hackclub.app/"}]...
|
[{"post_id": 25476, "ts": "202 [{"post_id": 25476, "ts": "2026-07-09T19:29:36Z", "hours": 1.2417, "text": "Started over from scratch today. Rebuilt my Node.js backend instead of relying on generated code so I can actually understand every part of it. Server is running again"}, {"post_id": 19502, "ts": "2026-06-30T20:34:36Z", "hours": 1.6106, "text": "Hi, at the moment Iโm working with JavaScript and doing some debugging while putting together the server. Iโm setting up the backend structure and testing how the different parts connect."}, {"post_id": 16558, "ts": "2026-06-26T22:35:15Z", "hours": 0.2972, "text": "Descrizione del progettoQuesto progetto รจ una piccola API backend in Node.js per la scansione OCR di scontrini."}]...
|
Title: smooth-spend-api by @Luksh | Stardance
Dev Title: smooth-spend-api by @Luksh | Stardance
Devlogs:
Descrizione del progettoQuesto progetto รจ una piccola API backend in Node.js per la scansione OCR di scontrini.
Hi, at the moment Iโm working with JavaScript and doing some debugging while putting together the server. Iโm setting up the backend structure and testing how the different parts connect.
Started over from scratch today. Rebuilt my Node.js backend instead of relying on generated code so I can actually understand every part of it. Server is running again
Ships:
I created the backend API for Smooth Spend, an app designed to help manage personal finances smoothly. I deployed it officially on Hack Club Nest using Node.js and Express! The most challenging part was dealing with port forwarding and getting the reverse proxy settings right on Nest, as well as fixing PM2 setup errors so the server could run 24/7 in the background without crashing. Iโm super proud of successfully making the API public and seeing the live โIl server di Smooth Spend รจ online!โ message in my browser after a good debugging session. To test it, you can simply visit the live URL: https://smooth-spend-api.hackclub.app ๐...
|
1793105509.4660335
|
1793191909.4660335
|
|
46525
|
smooth seas by @nathkirkgamer01 | Stardance
|
nathkirkgamer01
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: smooth seas by @nathkirkgamer01 | Stardance
|
1792669673.720846
|
1793274473.720846
|
|
67169
|
smoll Viocity by @HarvyLiu | Stardance
|
HarvyLiu
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: smoll Viocity by @HarvyLiu | Stardance
|
1793108854.425249
|
1793713654.425249
|
|
54468
|
smol keyboard by @chicke | Stardance
|
chicke
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: smol keyboard by @chicke | Stardance
|
1792792171.4184492
|
1793396971.4184492
|
|
69919
|
smol bot by @Zayyan | Stardance
|
Zayyan
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: smol bot by @Zayyan | Stardance
|
1792957833.5464945
|
1793562633.5464945
|
|
69786
|
smiski hackpad by @chlocolatess | Stardance
|
chlocolatess
|
0
|
0.87
|
0
|
[]
|
[{"post_id": 80094, "ts": "202 [{"post_id": 80094, "ts": "2026-10-16T06:29:26Z", "hours": 0.8689, "text": "my initial goal with this project was to create a cute hackpad that is smiski themed! with the hackpad tutorial, i was guided through on the schematics, pcb design, and the cad. although for NOW i am simply following the tutorial, i plan to add additional components and parts to this project!"}]...
|
Title: smiski hackpad by @chlocolatess | Stardance Title: smiski hackpad by @chlocolatess | Stardance
Devlogs:
my initial goal with this project was to create a cute hackpad that is smiski themed! with the hackpad tutorial, i was guided through on the schematics, pcb design, and the cad. although for NOW i am simply following the tutorial, i plan to add additional components and parts to this project!...
|
1792860456.6375413
|
1793465256.6375413
|
|
60264
|
smartysite by @smriti | Stardance
|
smriti
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: smartysite by @smriti | Stardance
|
1793033368.5536184
|
1793638168.5536184
|
|
17965
|
smartwatch by @jacobjuneau | Stardance
|
jacobjuneau
|
0
|
3.53
|
0
|
[]
|
[{"post_id": 8373, "ts": "2026 [{"post_id": 8373, "ts": "2026-06-13T22:32:10Z", "hours": 3.5278, "text": "Schematic decided on the nrf52840 for the main chip and just started adding things that i need."}]...
|
Title: smartwatch by @jacobjuneau | Stardance
Dev Title: smartwatch by @jacobjuneau | Stardance
Devlogs:
Schematic decided on the nrf52840 for the main chip and just started adding things that i need....
|
1792918128.8638148
|
1793782128.8638148
|
|
7074
|
smart_and_speedy by @scikit_star | Stardance
|
scikit_star
|
0
|
3.46
|
0
|
[]
|
[{"post_id": 3509, "ts": "2026 [{"post_id": 3509, "ts": "2026-06-06T14:12:02Z", "hours": 3.4589, "text": "Finished making the card piles and the logic, I love swift (would give up way faster if i used anyth else)"}]...
|
Title: smart_and_speedy by @scikit_star | Stardanc Title: smart_and_speedy by @scikit_star | Stardance
Devlogs:
Finished making the card piles and the logic, I love swift (would give up way faster if i used anyth else)...
|
1792759782.1815848
|
1793364582.1815848
|
|
38549
|
smartPlace by @JoshuaA | Stardance
|
JoshuaA
|
0
|
0.64
|
0
|
[]
|
[{"post_id": 35301, "ts": "202 [{"post_id": 35301, "ts": "2026-07-26T16:50:51Z", "hours": 0.6389, "text": "fixed lines in the code that stopped the site from working properly"}]...
|
Title: smartPlace by @JoshuaA | Stardance
Devlogs Title: smartPlace by @JoshuaA | Stardance
Devlogs:
fixed lines in the code that stopped the site from working properly...
|
1793159471.63108
|
1793764271.63108
|
|
49502
|
smart-reliability-predictor by @Matrix | Stardance
|
Matrix
|
2
|
70.0
|
1044
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-08T11:39:10Z", "hours": 9.0, "multiplier": 17.9, "payout": 159, "blessing": "neutral", "text": "I have made an smart reliability predictor analysis which dedects anomaly in the systems and flags it . I have made it using prob and stats concepts like z-score , poission formula , bayes etc . i wrapped this section in v1_v2 . And than i created another section V3 where i added an official NASA SMAP and MSL dataset . this was an tough job because i spended lots of days studying data , plotting it on graphs , trying to find patterns in the anomlies . Than i tried multuple models like linear regression and random forest but they just didnt perform well( i also added this models section where user can choose and see results) . Than i moved towards implementing an lstm (RNN) which also performed much bettrt than other models . Than i created an calibration system to choose threshold and persistance itself on training on the validation set and than test it on test set . And created a dashbaord for it and changed it a lots of time and finalize the theme of the dashbaord .", "repo": "https://github.com/Matrix-09x/Smart-Reliability-Predictor", "demo": "https://smart-reliability-predictor.vercel.app/"}, {"ship_num": 2, "ts": "2026-09-28T16:48:40Z", "hours": 61.0, "multiplier": 14.5, "payout": 885, "blessing": "neutral", "text": "I have made an smart reliability predictor analysis which dedects anomaly in the systems and flags it . I have made it using prob and stats concepts like z-score , poission formula , bayes etc . i wrapped this section in v1_v2 . And than i created another section V3 where i added an official NASA SMAP and MSL dataset . this was an tough job because i spended lots of days studying data , plotting it on graphs , trying to find patterns in the anomlies . Than i tried multuple models like linear regression and random forest but they just didnt perform well( i also added this models section where user can choose and see results) . Than i moved towards implementing an lstm (RNN) which also performed much bettrt than other models . Than i created an calibration system to choose threshold and persistance itself on training on the validation set and than test it on test set . And than created an dashboard for it", "repo": "https://github.com/Matrix-09x/Smart-Reliability-Predictor", "demo": "https://smart-reliability-predictor.vercel.app/"}]...
|
[{"post_id": 77806, "ts": "202 [{"post_id": 77806, "ts": "2026-10-08T11:35:57Z", "hours": 0.3933, "text": "Like i still have 9 hours left to ship as i logged 9 hours more for satisfying the changes required , so i was going to ship again but like i dont want to ship the project again with no change so instead i changed the theme from plain to this theme , like i played with color wheel for a bit and decide to implement this theme . As i read the ratings a lot of you said my project was exceptional the only thing needed work was the theme as it was plain so i changed it ."}, {"post_id": 76387, "ts": "2026-10-03T11:35:02Z", "hours": 3.7606, "text": "Rewrited and completely changed the frontend by hand ."}, {"post_id": 75891, "ts": "2026-10-01T14:51:56Z", "hours": 1.1089, "text": "Added more cool feature to the dashbaord . Just saw an reel and got an idea , so i implemented it right away ."}, {"post_id": 75587, "ts": "2026-09-30T14:20:19Z", "hours": 1.9786, "text": "i wroted the index.html the frontend part myself this time . I learned html , css and js according the requirement .Like i think html is basically nested boxes it was not that complicated and the documentation was also simple i understood it . Css was also good but js takes time . I think it was pretty similar to the streamlit experience liek the logic was same but this time i was writing it in different langugae i just needed the documenatiton for that . Than i deployed it again . I wanted to make the dashbaord looks like exactly like previous one so i treid to keep the theme same as i liked it ."}, {"post_id": 75268, "ts": "2026-09-29T16:27:32Z", "hours": 1.6183, "text": "I just got to know that we cant use streamlit for dashboard . So i switched to vercel . I wrote the code and everything was fine but in deployment process everytime some problem comes i am working and solving it from past 8 hours continuoulsly . hope it get accepted now . Also one thing to clarify if you open the url intially it will show api offlinne its not an problem or error in code . if you click the run analysis button api will be online and will show you the output so its not the problem . Bye"}, {"post_id": 74928, "ts": "2026-09-28T16:39:18Z", "hours": 0.9422, "text": "I have successfully deployed the app on streamlit . Although i faced many problems but i have finally done it . I also added an killer readme check it out . Thats it bye ."}, {"post_id": 74870, "ts": "2026-09-28T14:08:26Z", "hours": 2.5158, "text": "Final Devlog โ this is going to be my last devlog . I have finally compelted the project . I have pretrained the model and save it in models file and used added โpretrainโ mode and โinferenceโ mode for my funtions for different model . So basically i used the pretrain model for pretraining the models and save it in the models file and used inference mode in the app.py my dashboard where it take the outputs from the models folder directly so it doesnt need to train again . Only readme is left for my project than i will ship it . Bye"}, {"post_id": 74403, "ts": "2026-09-27T10:13:16Z", "hours": 4.7556, "text": "I have improved and completed the final dashboard for the project . I have added more things like line chart , analysis summary , limitations also improved many other things and polished it . Done same to v1/v2 section improved it more and added more things . I also worked on the thing and added css code for it , as plain white was not up to the mark so i choosed this color .Now deploying it is left . But there is one problem like as it will on free cloud service by streamlit , i think it cant run heavy models like lstm , so i think i am gonna pre train the models save the outputs and than deploy it ."}, {"post_id": 73551, "ts": "2026-09-25T11:42:30Z", "hours": 8.8828, "text": "My research with Nasa dataset has officialy ended today , i tried the things that i can possibly do till now and now the time is almost up and i need the remaining time to focus on different things . so my V3.2 of project the calibration layer has also ended , but i found out that the fixes threshold plus persistance is working better than the calibration layer as it produces more precision and recall compare to others , so i think i am gonna keep it . As the dataset is the official and real dataset from NASA so it was expected . By i learned a lot throught this journey , started with Probability and statistics concepts and ended up making an system with real NASA dataset and implementing lstm (RNN) , and other ml models ."}, {"post_id": 70660, "ts": "2026-09-19T15:22:10Z", "hours": 8.7031, "text": "so i mainly focused on two things from past week . I was adding the calibration layer , in which my system is gonna select the best combination of persistance(continuous anomalies) and threshold my itself . For that first i am generating its threshold combination on the validation dataset , where i myself has injected fake anomalies in it . Than i am gonna test those threshold on the testing dataset(currently in progress) . I also completed adding the linear regression and random forest model to the dahboard so the user can choose it and run the model to see the results for that i created 2 more funtions for linear regressiona and random forest and connected it ."}, {"post_id": 66529, "ts": "2026-09-12T11:29:36Z", "hours": 6.9347, "text": "I was studying the outputs produced by my system across various channels , and was plotting multiple graphs , comparing multiple parameters to understand it .And i found out what i need to do next to increase my model efficiency , i know i cant make it perfect because i am currently working on a real dataset by NASA , also i dont have enough time because of my exams . so my next plan is to add an intelligence layer . Like before i was hardcoding the the thresholds like 2std or 3std and the min_consecutive value logic . so i decided to let my system decide it what is best for it . like i am gonna first train my lstm model on validation set and than like compute threshold with the validation error and also the min_consecutive logic and find the best pair and than test it with the testing dataset . and in past hours i also tried to add the option for user to select the model himself to see the output and result , implemented the random forest one , linear regression is left i think i will do it after the lstm improvement .so stay tuned"}, {"post_id": 63000, "ts": "2026-09-06T15:53:39Z", "hours": 4.4397, "text": "Update โ Like i made an basic dashboard for my system .Like i separated it in 2 parts , first my previous stimulator based on my maths concept where i myselft created the random anomlies by inputing the no of request and prob of failures and than used z_Score or poission distirbution accorfing to which conditon it satisdy to conclude the results . Thats was V1 of my project , than added bayes concept like where my system pretend it doesnt know the cause , and it finf the p(cause|evidence) which is finding the prob of cause given evidence , that was v2 . now for v3 i created an different system where i added the nasa dataset and than run the models . So i put both of those to show my actual progress , and like user can play with both ones . now i think i will polish it more and than focus on improving the accuracy of lstm ."}, {"post_id": 61585, "ts": "2026-09-04T15:48:56Z", "hours": 1.8197, "text": "I implemented lstm , but its not that accurate , it works great and precision results are awesome , some channel precision were even 100 , but recall is mostly average i need to improve it like its 26 - 45 % . But heres the problem , my school exams are coming and i need to start prepare for that urgently and cherry on top i have this weekend where i can try to give more hours but next week schedule is gonna be tough but i will still try to code and debug and plan everything and solve the problem . so i have decided first to make a dashboard using streamlit in python . That will include V1+V2 and V3 section where user can choose input like channels from NASA dataset and see the results and found anomalies in the system .So i am working on that and postponding my schedule to improve lstm later , because if i try to improve lstm now i dont know how much time it can take and like time will left for making dashbaord so i need to do this first because we get voting on usability section also and i dont it to be cli ."}, {"post_id": 60760, "ts": "2026-09-03T10:53:43Z", "hours": 5.1192, "text": "Update โ i completed my analysis with linear regression and random forest model . I calculated the perdect tuning by changing window size to 10 and found out the best threshold for anomalies , my formula for threshold was x * std + mean , and chosing 0.5 as x gave us the best result and it makes as i realize because prediction errors during anomaly range arent that much bigger compare to errors in normal range . so thats why lowering down the x helped us . Also i created confusion matrix and get result for random forest and linear regression model, catching around 42 percent anomaly though only 12-13 % catched were actually correct . Tested the setup on multiple channels , some channels work perfectly and give some good results but some not and with no cleat pattern i end my case with lienar regression model and random forest here and moved towards implementing LSTM . Currently implemeting it and testing it and trying to improve the results . LSTM update will come in next devlog ."}, {"post_id": 57988, "ts": "2026-08-30T10:08:00Z", "hours": 4.3997, "text": "Update , like i finshed anlayzing the sensors . I plotted multiple sensors on graph and like for point i can observe pattern in the graph for changes like high spike in anomaly zone , but for contextual there was no similarity or pattern . even for point the spikes are not similar for every sensors . Some magintude and std is more compare to other . So i conclude that we cant make an rule based system for this dataset . I have to move towards implementing ml . So i used linear regression model first to train on first 10 input and than predict the 11th ouput , as i am doing time series analysis because my dataset is continuous data , so i have kept my window size 10 . so i am currently analyzing how many errors lie in our anoamly zone . If linear regression model didnt perfectly work i will try differnet model like random forest and if they also didnt work i have to move towards lstm ."}, {"post_id": 55099, "ts": "2026-08-26T15:38:14Z", "hours": 4.1028, "text": "I added real Nasa dataset to my system . Its NASA Anomaly Detection Dataset SMAP MSL . Its vast dataset have different sensors sendsing the telemary and giving the values i have been studying the data from the past 4 hours like across different channels to observe pattern . i currently found that channels of point like p-1 , e-11 have different pattern compared to contextual . like i calculated the changes in their consecutive values , and check the values under anomaly range provided inside the dataset . point sensors have very large amount of change inside their anomaly range and contextual have long runs of zero inside their anomaly range . I am still studying the data to conclude more information and patterns ."}, {"post_id": 52909, "ts": "2026-08-23T09:02:31Z", "hours": 2.0408, "text": "After building Bayes, I added a 3x3 confusion matrix to check its accuracy , it tracks how many predictions were correct versus which causes got mixed up with each other. Then I ran the simulation 10,000 times and saved the accuracy from each run into a list, and the average accuracy came out to about 98% . Next step is adding the NASA dataset to make it an real stimulation system ."}, {"post_id": 51877, "ts": "2026-08-21T19:19:37Z", "hours": 2.525, "text": "So after hours of work i successfully added Bayes logic , it was not an easy task because to find p(cause|evidence) i needed to find p(evidence|cause) and p(cause) and p(evidence) for each possible cause . And i was so confused because i used lots of loops to implement this , and after hours i finally did it . And now for every given evidence i have the most probable cause . The bayes is gonna be more useful in future when i will add real dataset from Nasa and ml concepts also ."}, {"post_id": 51140, "ts": "2026-08-20T17:11:34Z", "hours": 3.8539, "text": "Been learning probability and statistics for my ai engineer roadmap for the past month but it was all theory, no projects, so when i found stardance I figured this was a good chance to actually build something with it instead of just reading. The project stimulates a system getting a bunch of requests with some chance of failing, then uses stats to check if the number of failures is normal or if somethings actually wrong, using binomial and poisson to figure out how many failures weโd expect and comparing that to what we actually got. First version used a z-score for this but while testing with small numbers I noticed the results got weird, turned out z-scores donโt work well when the expected failure count is small because the math assumes a symmetric bell curve and at small numbers the real distribution is skewed, so I ended up building an exact fix using the actual poissonon formula instead of the approximation for those cases. After that I started working on figuring out not just that somethingโs wrong but why, so now every failure gets assigned a hidden cause like database overload, network issues or server overload along with evidence that actually matches it, like high db load for database issues and high latency for network stuff, but with enough overlap that itโs not too obvious or easy. Next up is bayes theorem, where the program only sees the evidence and has to figure out the probability of each cause itself, which is when it goes from just flagging that somethingโs off to actually explaining why."}]...
|
Title: smart-reliability-predictor by @Matrix | St Title: smart-reliability-predictor by @Matrix | Stardance
Devlogs:
Been learning probability and statistics for my ai engineer roadmap for the past month but it was all theory, no projects, so when i found stardance I figured this was a good chance to actually build something with it instead of just reading. The project stimulates a system getting a bunch of requests with some chance of failing, then uses stats to check if the number of failures is normal or if somethings actually wrong, using binomial and poisson to figure out how many failures weโd expect and comparing that to what we actually got. First version used a z-score for this but while testing with small numbers I noticed the results got weird, turned out z-scores donโt work well when the expected failure count is small because the math assumes a symmetric bell curve and at small numbers the real distribution is skewed, so I ended up building an exact fix using the actual poissonon formula instead of the approximation for those cases. After that I started working on figuring out not just that somethingโs wrong but why, so now every failure gets assigned a hidden cause like database overload, network issues or server overload along with evidence that actually matches it, like high db load for database issues and high latency for network stuff, but with enough overlap that itโs not too obvious or easy. Next up is bayes theorem, where the program only sees the evidence and has to figure out the probability of each cause itself, which is when it goes from just flagging that somethingโs off to actually explaining why.
So after hours of work i successfully added Bayes logic , it was not an easy task because to find p(cause|evidence) i needed to find p(evidence|cause) and p(cause) and p(evidence) for each possible cause . And i was so confused because i used lots of loops to implement this , and after hours i finally did it . And now for every given evidence i have the most probable cause . The bayes is gonna be more useful in future when i will add real dataset from Nasa and ml concepts also .
After building Bayes, I added a 3x3 confusion matrix to check its accuracy , it tracks how many predictions were correct versus which causes got mixed up with each other. Then I ran the simulation 10,000 times and saved the accuracy from each run into a list, and the average accuracy came out to about 98% . Next step is adding the NASA dataset to make it an real stimulation system .
I added real Nasa dataset to my system . Its NASA Anomaly Detection Dataset SMAP MSL . Its vast dataset have different sensors sendsing the telemary and giving the values i have been studying the data from the past 4 hours like across different channels to observe pattern . i currently found that channels of point like p-1 , e-11 have different pattern compared to contextual . like i calculated the changes in their consecutive values , and check the values under anomaly range provided inside the dataset . point sensors have very large amount of change inside their anomaly range and contextual have long runs of zero inside their anomaly range . I am still studying the data to conclude more information and patterns .
Update , like i finshed anlayzing the sensors . I plotted multiple sensors on graph and like for point i can observe pattern in the graph for changes like high spike in anomaly zone , but for contextual there was no similarity or pattern . even for point the spikes are not similar for every sensors . Some magintude and std is more compare to other . So i conclude that we cant make an rule based system for this dataset . I have to move towards implementing ml . So i used linear regression model first to train on first 10 input and than predict the 11th ouput , as i am doing time series analysis because my dataset is continuous data , so i have kept my window size 10 . so i am currently analyzing how many errors lie in our anoamly zone . If linear regression model didnt perfectly work i will try differnet model like random forest and if they also didnt work i have to move towards lstm .
Update โ i completed my analysis with linear regression and random forest model . I calculated the perdect tuning by changing window size to 10 and found out the best threshold for anomalies , my formula for threshold was x * std + mean , and chosing 0.5 as x gave us the best result and it makes as i realize because prediction errors during anomaly range arent that much bigger compare to errors in normal range . so thats why lowering down the x helped us . Also i created confusion matrix and get result for random forest and linear regression model, catching around 42 percent anomaly though only 12-13 % catched were actually correct . Tested the setup on multiple channels , some channels work perfectly and give some good results but some not and with no cleat pattern i end my case with lienar regression model and random forest here and moved towards implementing LSTM . Currently implemeting it and testing it and trying to improve the results . LSTM update will come in next devlog .
I implemented lstm , but its not that accurate , it works great and precision results are awesome , some channel precision were even 100 , but recall is mostly average i need to improve it like its 26 - 45 % . But heres the problem , my school exams are coming and i need to start prepare for that urgently and cherry on top i have this weekend where i can try to give more hours but next week schedule is gonna be tough but i will still try to code and debug and plan everything and solve the problem . so i have decided first to make a dashboard using streamlit in python . That will include V1+V2 and V3 section where user can choose input like channels from NASA dataset and see the results and found anomalies in the system .So i am working on that and postponding my schedule to improve lstm later , because if i try to improve lstm now i dont know how much time it can take and like time will left for making dashbaord so i need to do this first because we get voting on usability section also and i dont it to be cli .
Update โ Like i made an basic dashboard for my system .Like i separated it in 2 parts , first my previous stimulator based on my maths concept where i myselft created the random anomlies by inputing the no of request and prob of failures and than used z_Score or poission distirbution accorfing to which conditon it satisdy to conclude the results . Thats was V1 of my project , than added bayes concept like where my system pretend it doesnt know the cause , and it finf the p(cause|evidence) which is finding the prob of cause given evidence , that was v2 . now for v3 i created an different system where i added the nasa dataset and than run the models . So i put both of those to show my actual progress , and like user can play with both ones . now i think i will polish it more and than focus on improving the accuracy of lstm .
I was studying the outputs produced by my system across various channels , and was plotting multiple graphs , comparing multiple parameters to understand it .And i found out what i need to do next to increase my model efficiency , i know i cant make it perfect because i am currently working on a real dataset by NASA , also i dont have enough time because of my exams . so my next plan is to add an intelligence layer . Like before i was hardcoding the the thresholds like 2std or 3std and the min_consecutive value logic . so i decided to let my system decide it what is best for it . like i am gonna first train my lstm model on validation set and than like compute threshold with the validation error and also the min_consecutive logic and find the best pair and than test it with the testing dataset . and in past hours i also tried to add the option for user to select the model himself to see the output and result , implemented the random forest one , linear regression is left i think i will do it after the lstm improvement .so stay tuned
so i mainly focused on two things from past week . I was adding the calibration layer , in which my system is gonna select the best combination of persistance(continuous anomalies) and threshold my itself . For that first i am generating its threshold combination on the validation dataset , where i myself has injected fake anomalies in it . Than i am gonna test those threshold on the testing dataset(currently in progress) . I also completed adding the linear regression and random forest model to the dahboard so the user can choose it and run the model to see the results for that i created 2 more funtions for linear regressiona and random forest and connected it .
My research with Nasa dataset has officialy ended today , i tried the things that i can possibly do till now and now the time is almost up and i need the remaining time to focus on different things . so my V3.2 of project the calibration layer has also ended , but i found out that the fixes threshold plus persistance is working better than the calibration layer as it produces more precision and recall compare to others , so i think i am gonna keep it . As the dataset is the official and real dataset from NASA so it was expected . By i learned a lot throught this journey , started with Probability and statistics concepts and ended up making an system with real NASA dataset and implementing lstm (RNN) , and other ml models .
I have improved and completed the final dashboard for the project . I have added more things like line chart , analysis summary , limitations also improved many other things and polished it . Done same to v1/v2 section improved it more and added more things . I also worked on the thing and added css code for it , as plain white was not up to the mark so i choosed this color .Now deploying it is left . But there is one problem like as it will on free cloud service by streamlit , i think it cant run heavy models like lstm , so i think i am gonna pre train the models save the outputs and than deploy it .
Final Devlog โ this is going to be my last devlog . I have finally compelted the project . I have pretrained the model and save it in models file and used added โpretrainโ mode and โinferenceโ mode for my funtions for different model . So basically i used the pretrain model for pretraining the models and save it in the models file and used inference mode in the app.py my dashboard where it take the outputs from the models folder directly so it doesnt need to train again . Only readme is left for my project than i will ship it . Bye
I have successfully deployed the app on streamlit . Although i faced many problems but i have finally done it . I also added an killer readme check it out . Thats it bye .
I just got to know that we cant use streamlit for dashboard . So i switched to vercel . I wrote the code and everything was fine but in deployment process everytime some problem comes i am working and solving it from past 8 hours continuoulsly . hope it get accepted now . Also one thing to clarify if you open the url intially it will show api offlinne its not an problem or error in code . if you click the run analysis button api will be online and will show you the output so its not the problem . Bye
i wroted the index.html the frontend part myself this time . I learned html , css and js according the requirement .Like i think html is basically nested boxes it was not that complicated and the documentation was also simple i understood it . Css was also good but js takes time . I think it was pretty similar to the streamlit experience liek the logic was same but this time i was writing it in different langugae i just needed the documenatiton for that . Than i deployed it again . I wanted to make the dashbaord looks like exactly like previous one so i treid to keep the theme same as i liked it .
Added more cool feature to the dashbaord . Just saw an reel and got an idea , so i implemented it right away .
Rewrited and completely changed the frontend by hand .
Like i still have 9 hours left to ship as i logged 9 hours more for satisfying the changes required , so i was going to ship again but like i dont want to ship the project again with no change so instead i changed the theme from plain to this theme , like i played with color wheel for a bit and decide to implement this theme . As i read the ratings a lot of you said my project was exceptional the only thing needed work was the theme as it was plain so i changed it .
Ships:
I have made an smart reliability predictor analysis which dedects anomaly in the systems and flags it . I have made it using prob and stats concepts like z-score , poission formula , bayes etc . i wrapped this section in v1_v2 . And than i created another section V3 where i added an official NASA SMAP and MSL dataset . this was an tough job because i spended lots of days studying data , plotting it on graphs , trying to find patterns in the anomlies . Than i tried multuple models like linear regression and random forest but they just didnt perform well( i also added this models section where user can choose and see results) . Than i moved towards implementing an lstm (RNN) which also performed much bettrt than other models . Than i created an calibration system to choose threshold and persistance itself on training on the validation set and than test it on test set . And than created an dashboard for it
I have made an smart reliability predictor analysis which dedects anomaly in the systems and flags it . I have made it using prob and stats concepts like z-score , poission formula , bayes etc . i wrapped this section in v1_v2 . And than i created another section V3 where i added an official NASA SMAP and MSL dataset . this was an tough job because i spended lots of days studying data , plotting it on graphs , trying to find patterns in the anomlies . Than i tried multuple models like linear regression and random forest but they just didnt perform well( i also added this models section where user can choose and see results) . Than i moved towards implementing an lstm (RNN) which also performed much bettrt than other models . Than i created an calibration system to choose threshold and persistance itself on training on the validation set and than test it on test set . And created a dashbaord for it and changed it a lots of time and finalize the theme of the dashbaord ....
|
1793148701.9094021
|
1793235101.9094021
|
|
47477
|
smart-cache by @yonatamnyuval1 | Stardance
|
yonatamnyuval1
|
1
|
12.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-24T16:22:13Z", "hours": 12.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I built a smart caching library, to use in a larger product Iโm developing. Building it was very challenging since I had never really dealt with building cache mechanisms before, and I invested a lot of hours studying beyond just writing code. I think Iโm proud that I ended up building it myself instead of using an existing solution just because I was unsure if I could pull it off.", "repo": "https://github.com/yonatamnyuval1-stack/smart-cache", "demo": "https://github.com/yonatamnyuval1-stack/smart-cache/raw/main/releases/smart-cache-demo.exe"}]...
|
[{"post_id": 53880, "ts": "202 [{"post_id": 53880, "ts": "2026-08-24T16:11:30Z", "hours": 1.0517, "text": "Hi! I finished my smart-cache library. I spent the last hour mostly thoroughly reviewing my code and refining small details ahead of a version update on GitHub. The project is officially finalized and ready to ship."}, {"post_id": 50262, "ts": "2026-08-19T12:55:51Z", "hours": 3.0494, "text": "I completed the tests, tested edge cases, and pushed everything to GitHub, so I guess itโs time to ship the project. Iโll check my code one last time and will ship."}, {"post_id": 49490, "ts": "2026-08-18T11:06:38Z", "hours": 7.7294, "text": "Iโm working on smart cache library, here my first devlog! I built this library to give myself and other fans of the genre an option to get a smart cache without having to build it themselves."}]...
|
Title: smart-cache by @yonatamnyuval1 | Stardance
Title: smart-cache by @yonatamnyuval1 | Stardance
Devlogs:
Iโm working on smart cache library, here my first devlog! I built this library to give myself and other fans of the genre an option to get a smart cache without having to build it themselves.
I completed the tests, tested edge cases, and pushed everything to GitHub, so I guess itโs time to ship the project. Iโll check my code one last time and will ship.
Hi! I finished my smart-cache library. I spent the last hour mostly thoroughly reviewing my code and refining small details ahead of a version update on GitHub. The project is officially finalized and ready to ship.
Ships:
I built a smart caching library, to use in a larger product Iโm developing. Building it was very challenging since I had never really dealt with building cache mechanisms before, and I invested a lot of hours studying beyond just writing code. I think Iโm proud that I ended up building it myself instead of using an existing solution just because I was unsure if I could pull it off....
|
1793141785.3122883
|
1793228185.3122883
|
|
42189
|
smart wearable glove for blinds and deaf blinds by smart wearable glove for blinds and deaf blinds by @kartikeyk_net | Stardance...
|
kartikeyk_net
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: smart wearable glove for blinds and deaf bl Title: smart wearable glove for blinds and deaf blinds by @kartikeyk_net | Stardance...
|
1792500478.6491039
|
1793105278.6491039
|
|
34488
|
smart security door system by @disara | Stardance
|
disara
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: smart security door system by @disara | Sta Title: smart security door system by @disara | Stardance...
|
1792565660.3205218
|
1793170460.3205218
|
|
28383
|
smart prosthetic hand by @mahmoudnasr | Stardance
|
mahmoudnasr
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: smart prosthetic hand by @mahmoudnasr | Sta Title: smart prosthetic hand by @mahmoudnasr | Stardance...
|
1792558177.2070837
|
1793162977.2070837
|
|
27004
|
smart home system by @sebethaton | Stardance
|
sebethaton
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: smart home system by @sebethaton | Stardanc Title: smart home system by @sebethaton | Stardance...
|
1792659129.8646233
|
1793263929.8646233
|
|
66306
|
smart home system by @Farooq121 | Stardance
|
Farooq121
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-11T09:31:55Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "i made this for handicapped people", "repo": "https://github.com/u53982253-blip/esp32home", "demo": ""}]...
|
[{"post_id": 78677, "ts": "202 [{"post_id": 78677, "ts": "2026-10-11T08:43:07Z", "hours": 0.5231, "text": "i am working on a handicapped system for lrg handi capped people that when one on then rlya first on like that rset"}]...
|
Title: smart home system by @Farooq121 | Stardance Title: smart home system by @Farooq121 | Stardance
Devlogs:
i am working on a handicapped system for lrg handi capped people that when one on then rlya first on like that rset
Ships:
i made this for handicapped people...
|
1793062184.297246
|
1793148584.297246
|
|
42350
|
smart home by @wardaqasim5 | Stardance
|
wardaqasim5
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: smart home by @wardaqasim5 | Stardance
|
1792507796.5043702
|
1793112596.5043702
|
|
69884
|
smart hand gloves by @mohanmahajan0903 | Stardance
|
mohanmahajan0903
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: smart hand gloves by @mohanmahajan0903 | St Title: smart hand gloves by @mohanmahajan0903 | Stardance...
|
1792918135.5777678
|
1793522935.5777678
|
|
63307
|
smart garden/farm model. by @ocynno | Stardance
|
ocynno
|
0
|
5.97
|
0
|
[]
|
[{"post_id": 73017, "ts": "202 [{"post_id": 73017, "ts": "2026-09-24T07:09:35Z", "hours": 1.5453, "text": "finally built. every component works almost finished."}, {"post_id": 72469, "ts": "2026-09-23T01:06:15Z", "hours": 2.2481, "text": "finnaly tested the real components i bought a week ago. they work perfectly and the code works, also cut some sensors i deemed to be too much, made the features less so its more simple and streamlined"}, {"post_id": 71623, "ts": "2026-09-21T05:59:46Z", "hours": 2.1742, "text": "Coding it to access Blynk and wifi, tested on the board not yet attached to all sensors and outputs. made a dashboard first time doing anything, spent 2 hours troubleshooting, forgot to record a timelapse"}]...
|
Title: smart garden/farm model. by @ocynno | Stard Title: smart garden/farm model. by @ocynno | Stardance
Devlogs:
Coding it to access Blynk and wifi, tested on the board not yet attached to all sensors and outputs. made a dashboard first time doing anything, spent 2 hours troubleshooting, forgot to record a timelapse
finnaly tested the real components i bought a week ago. they work perfectly and the code works, also cut some sensors i deemed to be too much, made the features less so its more simple and streamlined
finally built. every component works almost finished....
|
1793051322.6518183
|
1793656122.6518183
|
|
26941
|
smart clock by @Gosiya | Stardance
|
Gosiya
|
1
|
5.1
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-11T09:42:10Z", "hours": 0.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a working clock based on arduino and DS1302 module. It can be called a demo version since I plan to work in further and as a demo version it of course was fairly simple though I stumbled upon wiring problem which was fixed by swapping faulty jumperwires", "repo": "https://github.com/kgiorgi/clock", "demo": "https://wokwi.com/projects/471087475156579329"}]...
|
[{"post_id": 39584, "ts": "202 [{"post_id": 39584, "ts": "2026-08-02T17:33:53Z", "hours": 5.0983, "text": "Finished the arduino version of my clock/alarm. added a lot of stuff at once such as the whole alarm mechanism and also memory system which allows the clock to โrememberโ last date youโve set after being powered off."}, {"post_id": 26477, "ts": "2026-07-11T09:19:31Z", "hours": 0.0, "text": "For now itโs just a simple arduino based clock but I plan to add features such as weather display, alarm system, and maybe make an app for it so you can set the clock remotely. of course I would need to swap the platform from arduino to esp32 but thatโs a problem for later"}]...
|
Title: smart clock by @Gosiya | Stardance
Devlogs Title: smart clock by @Gosiya | Stardance
Devlogs:
For now itโs just a simple arduino based clock but I plan to add features such as weather display, alarm system, and maybe make an app for it so you can set the clock remotely. of course I would need to swap the platform from arduino to esp32 but thatโs a problem for later
Finished the arduino version of my clock/alarm. added a lot of stuff at once such as the whole alarm mechanism and also memory system which allows the clock to โrememberโ last date youโve set after being powered off.
Ships:
I made a working clock based on arduino and DS1302 module. It can be called a demo version since I plan to work in further and as a demo version it of course was fairly simple though I stumbled upon wiring problem which was fixed by swapping faulty jumperwires...
|
1793087762.5713518
|
1793174162.5713518
|
|
17987
|
smart ambulance by @anshpatel9720 | Stardance
|
anshpatel9720
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: smart ambulance by @anshpatel9720 | Stardan Title: smart ambulance by @anshpatel9720 | Stardance...
|
1792569075.6963286
|
1793433075.6963286
|
|
47233
|
smallaspossiblewebsite by @EfeAydin | Stardance
|
EfeAydin
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: smallaspossiblewebsite by @EfeAydin | Stard Title: smallaspossiblewebsite by @EfeAydin | Stardance...
|
1792507682.9434645
|
1793112482.9434645
|
|
42239
|
small site by @nickthelinuxuser | Stardance
|
nickthelinuxuser
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-31T19:41:08Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a simple site for myself to show off who i am and promote my projects. Learning webGL was a bit challenging but i managed to pull through", "repo": "https://github.com/MonoliGames/monoligames.github.io", "demo": "https://monoligames.github.io/"}]...
|
[{"post_id": 38058, "ts": "202 [{"post_id": 38058, "ts": "2026-07-31T07:37:51Z", "hours": 0.5428, "text": "Built my first HTML/CSS/JS site! Used my knowledge of GLSL to make a mac-inspired UI for it"}]...
|
Title: small site by @nickthelinuxuser | Stardance Title: small site by @nickthelinuxuser | Stardance
Devlogs:
Built my first HTML/CSS/JS site! Used my knowledge of GLSL to make a mac-inspired UI for it
Ships:
I made a simple site for myself to show off who i am and promote my projects. Learning webGL was a bit challenging but i managed to pull through...
|
1793112443.7789204
|
1793198843.7789204
|
|
24422
|
small scale steam turbine by @theodor | Stardance
|
theodor
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: small scale steam turbine by @theodor | Sta Title: small scale steam turbine by @theodor | Stardance...
|
1792562095.3893256
|
1793166895.3893256
|
|
27770
|
small physics simulator by @halit | Stardance
|
halit
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: small physics simulator by @halit | Stardan Title: small physics simulator by @halit | Stardance...
|
1792676870.054019
|
1793540870.054019
|
|
65410
|
small parkour game by @AsilDorukAtik | Stardance
|
AsilDorukAtik
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: small parkour game by @AsilDorukAtik | Star Title: small parkour game by @AsilDorukAtik | Stardance...
|
1793087414.491874
|
1793692214.491874
|
|
1040
|
small overtures by @luftacen | Stardance
|
luftacen
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: small overtures by @luftacen | Stardance
|
1792633674.2686536
|
1793238474.2686536
|
|
62610
|
small new drone concept by @finnu050 | Stardance
|
finnu050
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: small new drone concept by @finnu050 | Star Title: small new drone concept by @finnu050 | Stardance...
|
1793047671.346549
|
1793652471.346549
|
|
70391
|
small laser security system by @sfzrashdi | Starda small laser security system by @sfzrashdi | Stardance...
|
sfzrashdi
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: small laser security system by @sfzrashdi | Title: small laser security system by @sfzrashdi | Stardance...
|
1793008393.7190454
|
1793613193.7190454
|
|
70469
|
small 3d printed monorail for rural intra-delivery small 3d printed monorail for rural intra-delivery by @rapier | Stardance...
|
rapier
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: small 3d printed monorail for rural intra-d Title: small 3d printed monorail for rural intra-delivery by @rapier | Stardance...
|
1793011655.0509768
|
1793616455.0509768
|
|
50572
|
slover by @skue | Stardance
|
skue
|
0
|
10.38
|
0
|
[]
|
[{"post_id": 60332, "ts": "202 [{"post_id": 60332, "ts": "2026-09-02T16:44:48Z", "hours": 1.4003, "text": "DEVLOG 6 - I added OpenAI detection to my AI watermark detector library ! So uhm I was tired with Videoseal, so I just decided to do the openai implementation instead. It was pretty simple, and I tried to do it without using the OpenAI sdk because i didnโt wanted to add yet another dependency. I also added a config to pass to the detector, and a way to ignore a detector."}, {"post_id": 59855, "ts": "2026-09-01T20:36:46Z", "hours": 4.3836, "text": "DEVLOG 5 - Itโs been a looong time, itโs so hardโฆ I tried to implement meta videoseal, and after countless of tries, I managed to export the detector to an ONNX model, that I could use in the library. The only problem is that I donโt know a lot about machine learning, so it doesnโt work at all. The JS script made to use the model just gives random results, often giving more score to non-ai images than to watermarked images. If anyone knows how to help with this, I would love a biiit of help. The Github repo is opened to issues and all the code is Open Source :). (Also I did the Jame Gam it was really fun :3)"}, {"post_id": 51285, "ts": "2026-08-20T20:33:49Z", "hours": 1.4819, "text": "Devlog 4 - Very tiny update :). I donโt have my main computer, so I canโt do heavy things, which is what I need to do right now. But I used Blob objects instead of paths so that the library is compatible with bot Node and web browsers. I also tried some things with the openai detector, but the public api needs an API key and the private one has a turnstile challenge to solve. If anyone has tips to solve that, I would be really happy to hear them ! I also experimented with pytorch export to ONNX, but I donโt have the right pc right now (not committed yet). So yeah very smoll update, thanks for reading till the end."}, {"post_id": 49963, "ts": "2026-08-18T23:20:10Z", "hours": 1.2847, "text": "DEVLOG 3 - I made a logo for my AI watermark detection tool ! Also, I fixed a bug that made C2PA flag human made c2pa content as ai content."}, {"post_id": 49535, "ts": "2026-08-18T12:36:21Z", "hours": 0.9353, "text": "Devlog 2 - I made the base implรฉmentation for image and video detection !When sending an image or a video, the system will pass the file against each available detector (for now, only SynthID), and return a ImageAnalysisResult object (or a VideoAnalysisResult) with every result, and some methods to easily manage the data.I also created a base README (on mobile, without hackatime), and a ROADMAP with what I plan to implement.Here is the list of detectors I will implement, but feel free to suggest some other watermarks to implement ! C2PA (done), OpenAI verificator (in progress), Stable signature, Meta Content Seal (Audiodeal, Videoseal, Textdeal, Imageseal), Elevenlabs synthid (not sure), Claude Watermark (when public). Thatโs it for now !"}, {"post_id": 49253, "ts": "2026-08-17T22:55:39Z", "hours": 0.8964, "text": "[FIRST DEVLOG] Building my first JS project, Slover ! Slover is a tool to unify every major AI watermarking detection tool (c2pa, openai verificator, synthid-text..) in an easy to use JS library. For now, there is a start of c2pa detector implementation, but I plan on adding a lot more of tools ! Also, I plan on making a browser extension, and a website to use it, but users will be free to integrate it wherever they want."}]...
|
Title: slover by @skue | Stardance
Devlogs:
[FIRS Title: slover by @skue | Stardance
Devlogs:
[FIRST DEVLOG] Building my first JS project, Slover ! Slover is a tool to unify every major AI watermarking detection tool (c2pa, openai verificator, synthid-text..) in an easy to use JS library. For now, there is a start of c2pa detector implementation, but I plan on adding a lot more of tools ! Also, I plan on making a browser extension, and a website to use it, but users will be free to integrate it wherever they want.
Devlog 2 - I made the base implรฉmentation for image and video detection !When sending an image or a video, the system will pass the file against each available detector (for now, only SynthID), and return a ImageAnalysisResult object (or a VideoAnalysisResult) with every result, and some methods to easily manage the data.I also created a base README (on mobile, without hackatime), and a ROADMAP with what I plan to implement.Here is the list of detectors I will implement, but feel free to suggest some other watermarks to implement ! C2PA (done), OpenAI verificator (in progress), Stable signature, Meta Content Seal (Audiodeal, Videoseal, Textdeal, Imageseal), Elevenlabs synthid (not sure), Claude Watermark (when public). Thatโs it for now !
DEVLOG 3 - I made a logo for my AI watermark detection tool ! Also, I fixed a bug that made C2PA flag human made c2pa content as ai content.
Devlog 4 - Very tiny update :). I donโt have my main computer, so I canโt do heavy things, which is what I need to do right now. But I used Blob objects instead of paths so that the library is compatible with bot Node and web browsers. I also tried some things with the openai detector, but the public api needs an API key and the private one has a turnstile challenge to solve. If anyone has tips to solve that, I would be really happy to hear them ! I also experimented with pytorch export to ONNX, but I donโt have the right pc right now (not committed yet). So yeah very smoll update, thanks for reading till the end.
DEVLOG 5 - Itโs been a looong time, itโs so hardโฆ I tried to implement meta videoseal, and after countless of tries, I managed to export the detector to an ONNX model, that I could use in the library. The only problem is that I donโt know a lot about machine learning, so it doesnโt work at all. The JS script made to use the model just gives random results, often giving more score to non-ai images than to watermarked images. If anyone knows how to help with this, I would love a biiit of help. The Github repo is opened to issues and all the code is Open Source :). (Also I did the Jame Gam it was really fun :3)
DEVLOG 6 - I added OpenAI detection to my AI watermark detector library ! So uhm I was tired with Videoseal, so I just decided to do the openai implementation instead. It was pretty simple, and I tried to do it without using the OpenAI sdk because i didnโt wanted to add yet another dependency. I also added a config to pass to the detector, and a way to ignore a detector....
|
1792634031.022318
|
1793238831.022318
|
|
20841
|
slot machine verification code by @lindae | Starda slot machine verification code by @lindae | Stardance...
|
lindae
|
0
|
0.45
|
0
|
[]
|
[{"post_id": 10616, "ts": "202 [{"post_id": 10616, "ts": "2026-06-17T13:39:46Z", "hours": 0.4511, "text": "I started to create my worstui program for a project with bad UI."}]...
|
Title: slot machine verification code by @lindae | Title: slot machine verification code by @lindae | Stardance
Devlogs:
I started to create my worstui program for a project with bad UI....
|
1792511393.3314805
|
1793116193.3314805
|
|
61210
|
slop-slack by @asamarth875 | Stardance
|
asamarth875
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: slop-slack by @asamarth875 | Stardance
|
1793040458.3874366
|
1793645258.3874366
|
|
6600
|
slnap-bot by @JSnap | Stardance
|
JSnap
|
1
|
2.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-25T19:51:23Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "successfully made the โslnap-botโ (mix of slack and snapโฆ get it? get it???) it can get a cat gif (/slnapbot-gifcat) it can get a cat pic(/slnapbot-catpic) and you can ping it (/slnapbot-ping) it uses catas (cat as a service) for the pics.", "repo": "https://github.com/JSnapXYZ/slnap-bot", "demo": "https://app.slack.com/client/E09V59WQY1E/C0AS9G1FLAV"}]...
|
[{"post_id": 73723, "ts": "202 [{"post_id": 73723, "ts": "2026-09-25T19:46:54Z", "hours": 1.7225, "text": "successfully made the โslnap-botโ (mix of slack and snapโฆ get it? get it???) it can get a cat gif (/slnapbot-gifcat) it can get a cat pic(/slnapbot-catpic) and you can ping it (/slnapbot-ping) it uses catas (cat as a service) for the pics."}]...
|
Title: slnap-bot by @JSnap | Stardance
Devlogs:
s Title: slnap-bot by @JSnap | Stardance
Devlogs:
successfully made the โslnap-botโ (mix of slack and snapโฆ get it? get it???) it can get a cat gif (/slnapbot-gifcat) it can get a cat pic(/slnapbot-catpic) and you can ping it (/slnapbot-ping) it uses catas (cat as a service) for the pics.
Ships:
successfully made the โslnap-botโ (mix of slack and snapโฆ get it? get it???) it can get a cat gif (/slnapbot-gifcat) it can get a cat pic(/slnapbot-catpic) and you can ping it (/slnapbot-ping) it uses catas (cat as a service) for the pics....
|
1793148933.6980047
|
1793235333.6980047
|
|
67950
|
slimePet by @yahoo77 | Stardance
|
yahoo77
|
1
|
8.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-24T19:45:30Z", "hours": 8.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "slimePet - LAST DEVLOG Well the biggest thing that I took away from this project is that game development is not for me hahah. Fixing bugs was the most challenging part to be honest. It was the most painful experience to make slime behave normally on my resolution and make sure it wouldnโt bug out at the borders of the screen. Everything you should know is in the README on GitHub if you want to check it out! My teacher already asked me if it isnโt annoying to code with a weird slime jumping on my screen lol", "repo": "https://github.com/Chillerek/SlimePet", "demo": "https://yahoo-77.itch.io/slimepet"}]...
|
[{"post_id": 77638, "ts": "202 [{"post_id": 77638, "ts": "2026-10-07T18:20:12Z", "hours": 1.5775, "text": "slimePet - 00 Before shipping i made some new things he gets angry when you hold him for too long you can pet him behavioral system fixed many errors ๐๐๐ Because of this project i know that game development is not for me hahah"}, {"post_id": 77382, "ts": "2026-10-06T18:47:32Z", "hours": 1.3997, "text": "slimePet - 03 Today I fixed errors with dragging the slime outside the screen and changing its appearance i think it handles all errors that user can do! (i donโt have any screenshots so i will just add some random stuff lol)"}, {"post_id": 77121, "ts": "2026-10-05T18:12:11Z", "hours": 2.4514, "text": "slimePet - 02 Made some skins that you can change by using your numbers Repaired some errors And moreโฆ"}, {"post_id": 76787, "ts": "2026-10-04T15:58:53Z", "hours": 3.0606, "text": "slimePet - 01 Iโve copied the code from guide and now iโm making my own pet itโs gonna to be a slime that will bounce on ur desktop bar :3 today iโve added Movement Bouncing off the edges Animations Dragging And animation of death when youโre clicking it with the scroll! Started designing the apperance menu too and afk animation code"}]...
|
Title: slimePet by @yahoo77 | Stardance
Devlogs:
Title: slimePet by @yahoo77 | Stardance
Devlogs:
slimePet - 01 Iโve copied the code from guide and now iโm making my own pet itโs gonna to be a slime that will bounce on ur desktop bar :3 today iโve added Movement Bouncing off the edges Animations Dragging And animation of death when youโre clicking it with the scroll! Started designing the apperance menu too and afk animation code
slimePet - 02 Made some skins that you can change by using your numbers Repaired some errors And moreโฆ
slimePet - 03 Today I fixed errors with dragging the slime outside the screen and changing its appearance i think it handles all errors that user can do! (i donโt have any screenshots so i will just add some random stuff lol)
slimePet - 00 Before shipping i made some new things he gets angry when you hold him for too long you can pet him behavioral system fixed many errors ๐๐๐ Because of this project i know that game development is not for me hahah
Ships:
slimePet - LAST DEVLOG Well the biggest thing that I took away from this project is that game development is not for me hahah. Fixing bugs was the most challenging part to be honest. It was the most painful experience to make slime behave normally on my resolution and make sure it wouldnโt bug out at the borders of the screen. Everything you should know is in the README on GitHub if you want to check it out! My teacher already asked me if it isnโt annoying to code with a weird slime jumping on my screen lol...
|
1793116244.4513059
|
1793202644.4513059
|
|
13888
|
slime webOs by @smileslime271 | Stardance
|
smileslime271
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: slime webOs by @smileslime271 | Stardance
|
1792662481.35854
|
1793267281.35854
|
|
50737
|
slider diner by @Theflyingelf | Stardance
|
Theflyingelf
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: slider diner by @Theflyingelf | Stardance
|
1792641172.1870158
|
1793245972.1870158
|
|
47358
|
slick-slack-bot by @ctrl_z_assem | Stardance
|
ctrl_z_assem
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: slick-slack-bot by @ctrl_z_assem | Stardanc Title: slick-slack-bot by @ctrl_z_assem | Stardance...
|
1792511594.7519772
|
1793116394.7519772
|
|
15386
|
sleepy runner by @uzunemir778 | Stardance
|
uzunemir778
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: sleepy runner by @uzunemir778 | Stardance
|
1792713069.4810622
|
1793317869.4810622
|
|
64005
|
sleeper rc car by @Bhavyadeep | Stardance
|
Bhavyadeep
|
0
|
4.09
|
0
|
[]
|
[{"post_id": 71812, "ts": "202 [{"post_id": 71812, "ts": "2026-09-21T16:20:17Z", "hours": 1.4778, "text": "Just completed the random rc car build!! the projectโs name was sleeper rc car cuz this thing has a upgraded motor and a 3s lipo powering it also it has a hobby grade servo too!!"}, {"post_id": 71769, "ts": "2026-09-21T14:26:06Z", "hours": 2.6167, "text": "hello everyone so this is a random weekend project that i did and this is basically a cheap rc car which i split in half and then made the whole thing hobby grade in one go one day. this was originally a hangout project with my friend but then we were not able to do much so i decided to do it as a fun weekend project in this Log i completed the whole of the hardware and in the next one i will be doing the cosmetics and refining it a bit"}]...
|
Title: sleeper rc car by @Bhavyadeep | Stardance
Title: sleeper rc car by @Bhavyadeep | Stardance
Devlogs:
hello everyone so this is a random weekend project that i did and this is basically a cheap rc car which i split in half and then made the whole thing hobby grade in one go one day. this was originally a hangout project with my friend but then we were not able to do much so i decided to do it as a fun weekend project in this Log i completed the whole of the hardware and in the next one i will be doing the cosmetics and refining it a bit
Just completed the random rc car build!! the projectโs name was sleeper rc car cuz this thing has a upgraded motor and a 3s lipo powering it also it has a hobby grade servo too!!...
|
1793058483.1489155
|
1793663283.1489155
|
|
66504
|
slayerOS by @tanzeemrockz | Stardance
|
tanzeemrockz
|
1
|
6.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-08T13:13:40Z", "hours": 6.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Well, after HOURS of learning and building, here it is: slayerOS is now officially live! So slayerOS is a web-based OS like environment and it has a โslayโ menu, a taskbar, a notes app that saves to localStorage, a calculator app that works , and an F1 hub app that shows you live formula 1 race results! thatโs almost it but i learnt a LOT on my way!", "repo": "https://github.com/tanzeemrockz/slayerOS/", "demo": "https://slayeros.cyberslayercorpz.dev/"}]...
|
[{"post_id": 77818, "ts": "202 [{"post_id": 77818, "ts": "2026-10-08T12:14:16Z", "hours": 0.6572, "text": "well, iโm workin on a bit of the f1 hub app and itโs a pain ngl but stay tuned!"}, {"post_id": 76065, "ts": "2026-10-02T07:29:10Z", "hours": 0.8264, "text": "okay guys i just added a new app (calculator) and MAN I HATE JAVASCRIPT itโs soo bad and itโs just messing with my mind atp. but, now thatโs all iโve done for the last hour (you might call it 49 mins but nah) okay thatโs all for the devlog looking forward to maybe add an f1 tracker in the next one. cya!"}, {"post_id": 75657, "ts": "2026-09-30T17:28:56Z", "hours": 0.3283, "text": "so, the last devlog was a bit funky, as i wrote the devlog and then went off to go code (but i forgot to click on post) so this post says 19 mins when it was definitely MORE than 45 mins. anyways, i just added functionality to the minimize button, added the apps to the taskbar, and now the start menu has smth (if not nothing it looks bad but i mean who cares) so looking forward to makin it better!"}, {"post_id": 75639, "ts": "2026-09-30T16:58:08Z", "hours": 0.9378, "text": "next up, i just wired up the notes app to localStorage (it failed to work due to a missing comma at first i basically gave up at that point lol) then now the maximize button is also working! looking forward to fixing the minimize button, make a start-menu perhaps (slay-menu lol) so stay tuned!"}, {"post_id": 75608, "ts": "2026-09-30T15:31:13Z", "hours": 0.3217, "text": "so i just made the close button and the desktop shortcut for the only app (notepad) work so now looking forward to make this better!"}, {"post_id": 75487, "ts": "2026-09-30T07:29:22Z", "hours": 0.9481, "text": "Well, just fixed a few things and made the window moving! well, that was quite hard and i accidentally made just the header move first then i had to debug a LOT and fixed it but, works like a charm!"}, {"post_id": 74850, "ts": "2026-09-28T13:16:02Z", "hours": 0.53, "text": "Just added a notes windows (looks draggable but itโs not lol) and fixed the time with some JavaScript, and looking forward!"}, {"post_id": 74841, "ts": "2026-09-28T12:40:49Z", "hours": 1.475, "text": "So, just got the shell ready, ultra-basic, has no functionality whatsoever, and I used a stock image as the bg-image lol!"}]...
|
Title: slayerOS by @tanzeemrockz | Stardance
Devl Title: slayerOS by @tanzeemrockz | Stardance
Devlogs:
So, just got the shell ready, ultra-basic, has no functionality whatsoever, and I used a stock image as the bg-image lol!
Just added a notes windows (looks draggable but itโs not lol) and fixed the time with some JavaScript, and looking forward!
Well, just fixed a few things and made the window moving! well, that was quite hard and i accidentally made just the header move first then i had to debug a LOT and fixed it but, works like a charm!
so i just made the close button and the desktop shortcut for the only app (notepad) work so now looking forward to make this better!
next up, i just wired up the notes app to localStorage (it failed to work due to a missing comma at first i basically gave up at that point lol) then now the maximize button is also working! looking forward to fixing the minimize button, make a start-menu perhaps (slay-menu lol) so stay tuned!
so, the last devlog was a bit funky, as i wrote the devlog and then went off to go code (but i forgot to click on post) so this post says 19 mins when it was definitely MORE than 45 mins. anyways, i just added functionality to the minimize button, added the apps to the taskbar, and now the start menu has smth (if not nothing it looks bad but i mean who cares) so looking forward to makin it better!
okay guys i just added a new app (calculator) and MAN I HATE JAVASCRIPT itโs soo bad and itโs just messing with my mind atp. but, now thatโs all iโve done for the last hour (you might call it 49 mins but nah) okay thatโs all for the devlog looking forward to maybe add an f1 tracker in the next one. cya!
well, iโm workin on a bit of the f1 hub app and itโs a pain ngl but stay tuned!
Ships:
Well, after HOURS of learning and building, here it is: slayerOS is now officially live! So slayerOS is a web-based OS like environment and it has a โslayโ menu, a taskbar, a notes app that saves to localStorage, a calculator app that works , and an F1 hub app that shows you live formula 1 race results! thatโs almost it but i learnt a LOT on my way!...
|
1793062197.9650726
|
1793148597.9650726
|
|
51226
|
slave hand SDG1 by @shadowmm | Stardance
|
shadowmm
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: slave hand SDG1 by @shadowmm | Stardance
|
1792662610.427312
|
1793267410.427312
|
|
30453
|
slate by @swedishsplidney | Stardance
|
swedishsplidney
|
0
|
150.35
|
0
|
[]
|
[{"post_id": 73395, "ts": "202 [{"post_id": 73395, "ts": "2026-09-25T01:57:08Z", "hours": 8.295, "text": "shadows this one is really cool, i feel like it really takes it from looking like its from 1995 to likeโฆ 2015 maybe? it doesnt look that good but i think its a massive improvement! right now, its a 4096x4096 shadowmap with an extent of 24 units, a random noise filter to reduce pixelation, and 3x3 pcf to make it look somewhat smooth it is currently orthographic light projection only, but I think iโll work on getting perspective lighting soon :) shadows did reqire implementing a whole new imageview, descriptor set, render pass, all that, but iโm getting used to it atp lol serialization is also completely broken right now, so I do need to fix thatโฆ"}, {"post_id": 67098, "ts": "2026-09-13T04:51:35Z", "hours": 7.6267, "text": "texture loading!!! absolute yipee moment this took like a lot of thinking to figure out how to implement for reasons that i think are obvious, but some of them are: how tf do you load an image what does the loaded image data mean how do you map the texture to the modelโs uv coords how does normal mapping work how does the shader know where on the image its reading and a lot more that i prolly forgot lol this whole thing basically meant a whole shader overhaul again (even though i alr did that last devlog but its whatever loll) you can now map albedo (color), normal (height/offset), orm (occlusion, roughness, metallic), and emmision (glowiness) emission only kind of works rn lol, but i will get to it soon also, you currently have to manually set filepaths to the textures you want in the .json sidecar for that model, i need to add filepicker stuff to the inspector but i will get to it ok the textures in the video below were manually baked, packed, etc at 4096*4096 in blender i think another feature i should work on soon is procedural material generating, because texture mapping will always have a resolution limit (even 4k textures look kinda bad when mapped to larger models) i also want to change how reflections work a little bit, or maybe add anti-aliasing because right now the reflections look deep fried (as you will see in the video below)"}, {"post_id": 65721, "ts": "2026-09-11T02:04:30Z", "hours": 7.1881, "text": "shader overhaul so i noticed that the pbr shader lowkey looked kinda ugly and my microfacet solver was buns af so i js spent a while fixing it up and basically ended up going down a rabbit hole of tonemapping and completely rewrote the whole thing i switched from some random generic tonemapping to khronos standard neutral pbr mapping, which i think looks wayyyyyy better, the colors actually feel accurate now i also spent a little while setting up the shader to support texture colors when i get that all working it is wayyy better now, especially metallic things i also started setting up for texture imports but right now its only albedo and it does NOT work in the slightest lmao i think i will hopefully have texture importing and mapping done by next devlog, but uhhhhhโฆ. no promises"}, {"post_id": 63897, "ts": "2026-09-07T22:41:08Z", "hours": 8.7083, "text": "physics aaaaaaaaaaaaaaaaa it works concerningly well and it actually makes me really happy to see it working i legit jumped for joy when i first saw stuff dropping due to gravity the actual underlying physics engine is jolt physics, but all the init and handling and all that is custom from me its all linked to the inspector and allat, so you can tweak values real time, such as body type, bounciness, friction, and mass its now a physics playground instead of just a glorified obj viewer scaling is very broken as far as colliders go, ill probably fix that soon you can start and stop the physics sim with f5"}, {"post_id": 62615, "ts": "2026-09-06T02:39:32Z", "hours": 5.9828, "text": "working scene serialization (saving) if you hit ctrl + s (or hit the gui button) then it creates a .slate file, containing all the data of every object in the scene this .slate file is human readable (and editable), written in a format very similar to toml heres an example .slate file: [ scene ] name = \"SlateScene\" version = \"1.0\" [[ entity ]] index = 0 name = \"\" mesh_path = \"models/test_obj.obj\" position = [ -0.310723 , 0.927019 , 1.47743 ] rotation = [ 0 , -0 , 0 ] scale = [ 1.9916 , 2.28848 , 3.38984 ] [ entity . material ] albedo = [ 0.183333 , 1 , 0 , 1 ] roughness = 0.5 metallic = 1 ior = 1.5 transmission = 0 [[ entity ]] index = 1 name = \"\" mesh_path = \"models/emerald_monkey.obj\" position = [ 1.29034 , 0 , -5.64025e-08 ] rotation = [ 8.61461 , 6.18611 , 2.71029 ] scale = [ 3.07852 , 3.38535 , 3.86504 ] [ entity . material ] albedo = [ 0.050432 , 0.800023 , 0.302281 , 1 ] roughness = 0 metallic = 0 ior = 2.418 transmission = 1 next, ill probably start working on physics"}, {"post_id": 61285, "ts": "2026-09-04T04:09:23Z", "hours": 8.2292, "text": "scene serialization okay so this is akward but it doesnt actually work yet, but in my defense serialization is really confusing to me since i generally donโt do a whole lot with file writing and loading, especially in a custom formatted and extensioned .slate file it basically just takes a bunch of data by looping through scene objects and records them, then it also has to do that backwards, then i also have to implement a command and gui system to trigger the logic and i also want the .slate to be easily readable, so i need to format the text in a way that makes sense (iโm taking inspiration from TOML) hopefully its done next devlog, but no promises lol"}, {"post_id": 59368, "ts": "2026-09-01T04:03:06Z", "hours": 8.3792, "text": "color picking! i noticed that setting color in the inspector with 3 rgb values was really annoying, so i made a whole new ui class ( ui_color_picker.hpp/cpp ), that can hook into any other ui it supports: S/B box + hue bar RGB input CMYK input (mildly broken) hex input (very broken) it actually works pretty well, there is some bug where an object can never be fully white but i think thats a command issue not color picker or inspector next, it might be time to work on physics"}, {"post_id": 58306, "ts": "2026-08-30T17:59:13Z", "hours": 8.5094, "text": "bugfixes and writing docs i spent a good 4 hours just going through some code, finding anything that might be wrong and fixing them. surprisingly, i didnt find that much, which means that iโm better at coding than i thought i found a few places where i just forgot to add something to a cleanup function, which could have led to a small memory leak over time, but nothing major some bugs i fixed: the background of any dropdown menu was rendering behind the viewport selecting stuff in the hierarchy wouldnt sync with the inspector properly i forgot to add screenPointToRay to my cleanup function some other things that i forgot i also added a few std::couts in some spots that needed them i also decided to start writing some docs because my brain was fried i basically just dug through my ~3000 lines of vulkan init and rendering code, and took notes throughout and tried explaining my confusing mental processes in a .md file this kinda made me realize that i do not have enough annotation in my code but thats a problem for future me :)"}, {"post_id": 56986, "ts": "2026-08-29T01:24:41Z", "hours": 8.5281, "text": "hierarchy panel and scrolling the hierarchy panel itself was actually not that hard, the hard part was coming up with a reliable system that can detect and list every object currently loaded in the scene without turning your pc into an explosive the other hard part was modifying the dockspace layout to be able to handle multiple different panels, because previously, it was just one window per dockspace panel, but now it can be as many as you want also, the scrolling system is new, it is its own class ui_scrollable_container , and it is basically doing what the dockspace used to do, but it also lets you scroll. so now, the dockspace just loads a scrollable container, and the scrollable container does all the arrangement and sizing logic. the hierarchy works exactly as you would expect it to, it lists current scene objects and then you can select them from it eventually, ill prolly add support for parenting, which should be pretty easy its kinda crazy to see my custom persistent ui system slowly turn into something useful as i add more features to it so far ive just been adding features when i need them, i havent just thought of features i might need and added all of them"}, {"post_id": 55367, "ts": "2026-08-27T04:34:36Z", "hours": 8.7392, "text": "inspector updates and dropdowns the inspector now has IOR and transmission values that you can change, ui updates, and dropdowns this took literally like 45 epochs because i was running into a materialgpu indexing issue where the inspector boxes would update the wrong values and my peanut brain didnt even think to check if i set the indices correctly dropdowns also took a good 3-4 hours, but it wasnt too bad, mostly just figuring out the correct logic in total, the dropdown class (ui_dropdown.cpp/hpp) is at 169 lines, and the inspector class (ui_inspector_panel.cpp/hpp) is at 470 lines next, i think ill either work on ui rounding or a file hierarchy viewer"}, {"post_id": 52171, "ts": "2026-08-22T08:13:19Z", "hours": 8.115, "text": "ui inspector the inspector is by no means done, but its a start! right now its just supposed to be purely functional, but i plan on making it look better in the future the input boxes are their own ui class, meaning i can have those input boxes everywhere making the ui system from scratch is very fun, but it at times i do regret not using qml or im gui, but overall, i dont regret making it from scratch too much the main issues with it right now is that the sensitivity values in the input boxes feel wrong, i think the position needs less sensitivity and the rotation needs more also, the color ones are a bit broken, theres a little bit of discrepancy between what the ui shows and what the actual .json material sidecar has written, so iโll have to figure out how to fix that i think at some point, i want to add support for dropdowns, so each row can be expanded into larger input boxes if needed, or so the entire transform or material section can be collapsed i also need to add input boxes for IOR and transmission, i jus forgot to do that lol, should be pretty easy tho"}, {"post_id": 49355, "ts": "2026-08-18T04:12:43Z", "hours": 5.6403, "text": "rotation gizmo, multi-object support you can now switch between the translation gizmo, and the rotation gizmo, and click between objects to change what one has the gizmo active the gizmo also stays locked to the selected meshesโ local axes, i might add switching between local and global axis orientation at some point, but for right now local only is good enough all of the gizmo mesh is generated from code, not as an obj, making it very efficient and fast and robust, but making the logic that generates vertices in the right position was very annoying lol next, ill probably work on an inspector panel where you can edit an objectโs location, rotation, scale, material data, etc or maybe saving the scene to file but now you can move and rotate any amount of objects to your heartโs content"}, {"post_id": 47420, "ts": "2026-08-15T10:46:06Z", "hours": 9.2511, "text": "translation gizmo this was like miserable to make lol it took me sooooooo long to get translation working, basically i had this samurai battle with a scaling issue for the longest time, i accidentally told my code that the viewport was smaller than it actually was and it just took forever to find that out this issue caused a really annoying issue where the actual location of the rendered gizmo was different than the clickable area there was also this other issue where the gizmo would move twice the speed of the mesh it was translating, but it was just a flaw with the mesh class, the gizmo was basically constantly recieving its own center as well as the meshesโ center which made it translate double but it works now, i think it works pretty well its all based off of the modular command system, so anything can call translatemeshcommand and it translate meshes next is prolly working on rotate and scale and stuff, all the other gizmos that we need the gizmos also meant a new .vert and .frag pair, and a whole new vulkan render pipeline lol"}, {"post_id": 43684, "ts": "2026-08-09T02:47:19Z", "hours": 9.0197, "text": "grid generation this took forever, and was much harder than i expected basically, i needed to create a whole new rendering pipeline and a whole new glsl shader pair, as well as coming up with logic so the triangle-focused renderer can actually render some super thin infinite lines the grid does generate dynamically around the camera view, so it is endless i think it does look pretty good tho next, ill prolly work on adding some move and rotation and maybe even scale tools"}, {"post_id": 37279, "ts": "2026-07-29T21:25:56Z", "hours": 9.8689, "text": "mesh importing and refraction ima start off by saying that this isnโt true refraction, since that requires path tracing, which is really computationally intensive instead, i went with screen space refraction offset approximation , which is a good, efficient refraction approximator that i still think looks pretty cool material data for refraction the value that determines the transparency of an object is called transmission , and the value for refraction is index of refraction (or IOR) the current filesystem for materials that i have is .mtl files, because thats the standard filetype for exporting materials with objs from programs like blender. however, .mtl is a filesystem from the 1990s that was originally created for phong systems, meaning it doesnt really contain transmission values so, i created a json sidecar system, that generates a better, more robust, human readable material file for every model. so now, when you import an obj/mtl pair: it checks for a json sidecar file if there is one already, just load from that and finish! if there isnโt one already, now read the .mtl, extract as much info as you can from that, and write it to a new json file multi pass rendering in order to correctly render transparent meshes, you need at least 2 render passes (render the opaque ones first, then the transparent ones) also, for the refraction to work, it needs an image of everything behind it, so in between the opaque and transparent pass, it quickly copies everything on the screen to an offscreen framebuffer how the refraction works 1. get the view vector (v): this oneโs simple, just evaluate the view direction from the fragment position to the camera position also, adjust the normal (n) if rendering backface 2. refraction vector (snellโs law): the refraction vector is actually easy too, glsl has a built in refract intrinsic so you just drive that with a clamped ior value 3. deviation mapping: to determine how much to bend the background scene texture, just calculate the deviation vector between the refracted ray and the view ray: vec3 rayDeviation = refractDir - (- V ); vec2 distortion = ( push . viewProjMatrix * vec4 ( rayDeviation , 0.0 )). xy * 0.05 * transmission ; 4. uv sampling + composite blending offset the screen coordinates, but in order to prevent the edges from exploding, it needs to be clamped also, sample the background buffer to blend lighting and make a fresnel rim other stuff i did: i also made a full custom persistent ui system (this took a while), and a command system, because hardcoding the ui to do stuff is bad so instead of the ui code directly running logic, clicking a button just sends a command to the command system this meant creating another render pass, meaning iโm up to 3 render passes per frame now the only command so far is file.import_mesh , which is also hooked into the ui (you can see in the video below)"}, {"post_id": 35648, "ts": "2026-07-27T07:01:43Z", "hours": 7.2731, "text": "pbr materials pbr math reflectance: this is the main equation that a cook-torrance pbr system, all the other equations lead back to this one at some point ๐ฟ๐โก(๐,๐๐) =๐ฟ๐โก(๐,๐๐) +โซฮฉ๐๐โก(๐,๐๐,๐๐)โข๐ฟ๐โก(๐,๐๐)โข(๐งโ
๐๐)โข๐โข๐๐ this equation essentially just determines what light does after hitting a surface with specific parameters we approximate the integral with two different light interactions: diffuse (โข๐๐ท): any light that penetrates the surface, scatters internally, and re-emerges specular (๐๐โข): light that reflects directly off the micro-surface in the code itself, the total outgoing radiance ($L_o$) is calculated with: vec3 Lo = ( kD * albedo / PI + specular ) * radiance * NdotL ; cook-torrance brdf: the specular component is calculated using the cook-torrance microfacet brdf: โข## ๐cook-torrance =๐ทโ
๐บโ
๐น / 4โข(๐โ
๐)โข(๐โ
๐)โข where ๐ทโข, ๐บ, and โข๐น represent: normal distribution (๐ท): the NDF statistical distribution calculates how many microfacets are aligned with the halfway vector ($โข๐=๐+๐ / abs(๐+๐โข)) ๐ทGGXโก(๐,๐,๐ผ) = ๐ผ^2 / ๐โข((๐โ
๐)2โข(๐ผ2โ1)+1)2โข ```glsl float DistributionGGX(vec3 N, vec3 H, float roughness) { float a = roughness * roughness; float a2 = a * a; float NdotH = max(dot(N, H), 0.0); float NdotH2 = NdotH * NdotH; float num = a2; float denom = (NdotH2 * (a2 - 1.0) + 1.0); denom = PI * denom * denom; return num / max(denom, 0.000001); } ``` geometry (๐บ): smiths schlick-ggx microfacets can cast shadows and obscure light from the camera too, so the geometry function calculates the self shading factor using smiths method: ๐บโก(๐,๐,๐,๐) =๐บ1โก(๐,๐,๐) โ
๐บ1โก(๐,๐,๐) where ๐โข maps roughness for direct lighting using โข๐ = (roughness+1)^2 / 8: ```glsl float GeometrySchlickGGX(float NdotV, float roughness) { float r = (roughness + 1.0); float k = (r * r) / 8.0; float num = NdotV; float denom = NdotV * (1.0 - k) + k; return num / denom; } float GeometrySmith(vec3 N, vec3 V, vec3 L, float roughness) { float NdotV = max(dot(N, V), 0.0); float NdotL = max(dot(N, L), 0.0); float ggx2 = GeometrySchlickGGX(NdotV, roughness); float ggx1 = GeometrySchlickGGX(NdotL, roughness); return ggx1 * ggx2; } ``` fresnel equation (๐นโก): fresnel-schlick approximation the fresnel factor calculates the percentage of light reflected versus absorbed based on the viewing angle (โข๐): ๐นโก(๐,๐น0) =๐น0 +(1โ๐น0)โข(1โcosโก๐)^5 nonmetals reflect around 4% of light (๐น0 =0.04), while metals (conductors) use their tinted base albedo color as ๐น0: ```glsl vec3 fresnelSchlick(float cosTheta, vec3 F0) { return F0 + (1.0 - F0) * pow(clamp(1.0 - cosTheta, 0.0, 1.0), 5.0); } // lower, inside main(): vec3 F0 = mix(vec3(0.04), albedo, metallic); vec3 F = fresnelSchlick(max(dot(H, V), 0.0), F0); ``` other stuff: a surface cant reflect more light than it recieves, so a simple equation is used to make sure this doesnt happen: โข## ๐ค๐ =(1โ๐ค๐) โ
(1โmetallic) right now, all the material data is pulled from a .mtl file i also added bindless ssbo storage so it doesnt explode when you have a lot of models next, i might keep working on the custom persistent ui system"}, {"post_id": 32732, "ts": "2026-07-22T02:20:30Z", "hours": 8.3064, "text": "custom obj file loading all of the obj loading is done using tinyobjloader , which is a popular header file that im using to get the raw vertex coords of any .obj file however, all tinyobj does is pass the raw vertex data to my code (technically it can do some basic triangulation, but thats not its main purpose so its not perfect) this means that any model with n-gons (complex polygons) will not work and will look super weird technically you can tell blender to explicitly triangulate a file when you export it, but i think that it should be able to take any obj that you can throw at it without needing external setup so i also added a popular header file called earcut , which at a basic level, just cuts any complex polygons into 3-vertex triangles (which my index pass and renderer accepts). this now means that it can load any custom obj file i want to add auto color loading (from the obj data) or texture loading next, or maybe work on the ui or add ambient occlusion"}, {"post_id": 25108, "ts": "2026-07-09T03:12:17Z", "hours": 6.5614, "text": "entered the 3rd dimension wasd movement made a whole separate Camera class (look at me keepin things organized ) this means that now the vulkan_renderer class has model, projection, view, and transform matrices: the model matrix tracks the transformations the view matrix essentially tracks where the camera is the projection matrix sets a perspective frustum in order to make things actually have perspective and not just be flat the lerping is also based on deltaTime, which means smooth movement no matter ur fps the mouse tracking is locked via SDL_SetWindowRelativeMouseMode , and can be unlocked with the escape key vertices and index buffers right now, the vertices are being set manually in my codeโฆ however, importing obj (and maybe gltf and stl) files is next on the feature list, iโm planning on using tinyobj all the geometry is indexed, which basically means that instead of wasting a ton of memory repeating data for 36 raw vertices, you can just define the 8 corner vertices, then use an index buffer pass to tell the gpu how to connect those 8 vertices into 12 triangles window resizing this was easy, basically just had to tell it to make new image views and framebuffers based on the current aspect ratio (w/h) when the size of the window changes so now, its a spinning cube in a resizeable window that you can move around with wasd"}, {"post_id": 22507, "ts": "2026-07-05T00:42:28Z", "hours": 6.1236, "text": "the window opens (!!) so, why did it take me 6 hours to get a window to open? it kinda just comes down to the fact that vulkan is vulkan on other apis such as opengl, the graphics driver just does stuff for you. you can say sumn like โopen a window and make it pinkโ and it just does the memory, thread syncing, and goofy platform stuff for you vulkan on the other hand, wants none of that. if you dont specifically ask for something, it wont happen. this does make it significantly harder (and much easier to create a gpu-ending vram overflow) to code with, but it does have the benifit of being much more powerful, having no overhead, and 100% control. its not gonna do anything that you dont tell it to so what do you have to do to open a beautiful grey window with vulkan? os bridge (sdl3): instead of writing a whole abstraction for wayland/x11, win32 and metal, you just have to tell sdl3 that youโre making a vulkan window, and it does some magic stuff vulkan instance ( VkInstance ): this is how you get into the vulkan sdk. you kinda just have to tell vulkan everything it needs to know and ask sdl what extensions you need window surface ( VkSurfaceKHR ): vulkan is kinda dumb and doesnt know what a window actually is, so this is where sdl tells vulkan where it can actually write pixels pick a physical device: scan the current hardware, loop through every available device, and then just pick the best one (eventually ill probably add a way to select a custom one) logical device ( VkDevice ): the physical device is the actual doohickey in your computer that runs stuff, the logical device is the softwareโs interface to it. swapchain ( VkSwapchainKHR ): vulkan canโt actually write images directly to the screen (and that would look bad anyway), so you make a swapchain. my code does double buffering (basically vsync), which means that the screen displays image a, while the gpu is rendering image b. render pass and framebuffers: basically just telling vulkan what to do (in this case, clear the screen, then draw the color). the framebuffer just binds the swapchain image views to the render pass synchronization and command subsystem: believe it or not, your gpuโs clock speed is usually around (or more than) half of your cpuโs clock speed, so you have to make sure that your code waits for the gpu is ready before running the next c++ line. if you donโt, your gpu ram and cache will overflow. overall, this took a total of 764 lines of code just to get a grey window the nice part is that the progress that iโll make is exponential, since the very beginning stuff takes the longest i also made a logo (the current project page banner)"}]...
|
Title: slate by @swedishsplidney | Stardance
Devl Title: slate by @swedishsplidney | Stardance
Devlogs:
the window opens (!!) so, why did it take me 6 hours to get a window to open? it kinda just comes down to the fact that vulkan is vulkan on other apis such as opengl, the graphics driver just does stuff for you. you can say sumn like โopen a window and make it pinkโ and it just does the memory, thread syncing, and goofy platform stuff for you vulkan on the other hand, wants none of that. if you dont specifically ask for something, it wont happen. this does make it significantly harder (and much easier to create a gpu-ending vram overflow) to code with, but it does have the benifit of being much more powerful, having no overhead, and 100% control. its not gonna do anything that you dont tell it to so what do you have to do to open a beautiful grey window with vulkan? os bridge (sdl3): instead of writing a whole abstraction for wayland/x11, win32 and metal, you just have to tell sdl3 that youโre making a vulkan window, and it does some magic stuff vulkan instance ( VkInstance ): this is how you get into the vulkan sdk. you kinda just have to tell vulkan everything it needs to know and ask sdl what extensions you need window surface ( VkSurfaceKHR ): vulkan is kinda dumb and doesnt know what a window actually is, so this is where sdl tells vulkan where it can actually write pixels pick a physical device: scan the current hardware, loop through every available device, and then just pick the best one (eventually ill probably add a way to select a custom one) logical device ( VkDevice ): the physical device is the actual doohickey in your computer that runs stuff, the logical device is the softwareโs interface to it. swapchain ( VkSwapchainKHR ): vulkan canโt actually write images directly to the screen (and that would look bad anyway), so you make a swapchain. my code does double buffering (basically vsync), which means that the screen displays image a, while the gpu is rendering image b. render pass and framebuffers: basically just telling vulkan what to do (in this case, clear the screen, then draw the color). the framebuffer just binds the swapchain image views to the render pass synchronization and command subsystem: believe it or not, your gpuโs clock speed is usually around (or more than) half of your cpuโs clock speed, so you have to make sure that your code waits for the gpu is ready before running the next c++ line. if you donโt, your gpu ram and cache will overflow. overall, this took a total of 764 lines of code just to get a grey window the nice part is that the progress that iโll make is exponential, since the very beginning stuff takes the longest i also made a logo (the current project page banner)
entered the 3rd dimension wasd movement made a whole separate Camera class (look at me keepin things organized ) this means that now the vulkan_renderer class has model, projection, view, and transform matrices: the model matrix tracks the transformations the view matrix essentially tracks where the camera is the projection matrix sets a perspective frustum in order to make things actually have perspective and not just be flat the lerping is also based on deltaTime, which means smooth movement no matter ur fps the mouse tracking is locked via SDL_SetWindowRelativeMouseMode , and can be unlocked with the escape key vertices and index buffers right now, the vertices are being set manually in my codeโฆ however, importing obj (and maybe gltf and stl) files is next on the feature list, iโm planning on using tinyobj all the geometry is indexed, which basically means that instead of wasting a ton of memory repeating data for 36 raw vertices, you can just define the 8 corner vertices, then use an index buffer pass to tell the gpu how to connect those 8 vertices into 12 triangles window resizing this was easy, basically just had to tell it to make new image views and framebuffers based on the current aspect ratio (w/h) when the size of the window changes so now, its a spinning cube in a resizeable window that you can move around with wasd
custom obj file loading all of the obj loading is done using tinyobjloader , which is a popular header file that im using to get the raw vertex coords of any .obj file however, all tinyobj does is pass the raw vertex data to my code (technically it can do some basic triangulation, but thats not its main purpose so its not perfect) this means that any model with n-gons (complex polygons) will not work and will look super weird technically you can tell blender to explicitly triangulate a file when you export it, but i think that it should be able to take any obj that you can throw at it without needing external setup so i also added a popular header file called earcut , which at a basic level, just cuts any complex polygons into 3-vertex triangles (which my index pass and renderer accepts). this now means that it can load any custom obj file i want to add auto color loading (from the obj data) or texture loading next, or maybe work on the ui or add ambient occlusion
pbr materials pbr math reflectance: this is the main equation that a cook-torrance pbr system, all the other equations lead back to this one at some point ๐ฟ๐โก(๐,๐๐) =๐ฟ๐โก(๐,๐๐) +โซฮฉ๐๐โก(๐,๐๐,๐๐)โข๐ฟ๐โก(๐,๐๐)โข(๐งโ
๐๐)โข๐โข๐๐ this equation essentially just determines what light does after hitting a surface with specific parameters we approximate the integral with two different light interactions: diffuse (โข๐๐ท): any light that penetrates the surface, scatters internally, and re-emerges specular (๐๐โข): light that reflects directly off the micro-surface in the code itself, the total outgoing radiance ($L_o$) is calculated with: vec3 Lo = ( kD * albedo / PI + specular ) * radiance * NdotL ; cook-torrance brdf: the specular component is calculated using the cook-torrance microfacet brdf: โข## ๐cook-torrance =๐ทโ
๐บโ
๐น / 4โข(๐โ
๐)โข(๐โ
๐)โข where ๐ทโข, ๐บ, and โข๐น represent: normal distribution (๐ท): the NDF statistical distribution calculates how many microfacets are aligned with the halfway vector ($โข๐=๐+๐ / abs(๐+๐โข)) ๐ทGGXโก(๐,๐,๐ผ) = ๐ผ^2 / ๐โข((๐โ
๐)2โข(๐ผ2โ1)+1)2โข ```glsl float DistributionGGX(vec3 N, vec3 H, float roughness) { float a = roughness * roughness; float a2 = a * a; float NdotH = max(dot(N, H), 0.0); float NdotH2 = NdotH * NdotH; float num = a2; float denom = (NdotH2 * (a2 - 1.0) + 1.0); denom = PI * denom * denom; return num / max(denom, 0.000001); } ``` geometry (๐บ): smiths schlick-ggx microfacets can cast shadows and obscure light from the camera too, so the geometry function calculates the self shading factor using smiths method: ๐บโก(๐,๐,๐,๐) =๐บ1โก(๐,๐,๐) โ
๐บ1โก(๐,๐,๐) where ๐โข maps roughness for direct lighting using โข๐ = (roughness+1)^2 / 8: ```glsl float GeometrySchlickGGX(float NdotV, float roughness) { float r = (roughness + 1.0); float k = (r * r) / 8.0; float num = NdotV; float denom = NdotV * (1.0 - k) + k; return num / denom; } float GeometrySmith(vec3 N, vec3 V, vec3 L, float roughness) { float NdotV = max(dot(N, V), 0.0); float NdotL = max(dot(N, L), 0.0); float ggx2 = GeometrySchlickGGX(NdotV, roughness); float ggx1 = GeometrySchlickGGX(NdotL, roughness); return ggx1 * ggx2; } ``` fresnel equation (๐นโก): fresnel-schlick approximation the fresnel factor calculates the percentage of light reflected versus absorbed based on the viewing angle (โข๐): ๐นโก(๐,๐น0) =๐น0 +(1โ๐น0)โข(1โcosโก๐)^5 nonmetals reflect around 4% of light (๐น0 =0.04), while metals (conductors) use their tinted base albedo color as ๐น0: ```glsl vec3 fresnelSchlick(float cosTheta, vec3 F0) { return F0 + (1.0 - F0) * pow(clamp(1.0 - cosTheta, 0.0, 1.0), 5.0); } // lower, inside main(): vec3 F0 = mix(vec3(0.04), albedo, metallic); vec3 F = fresnelSchlick(max(dot(H, V), 0.0), F0); ``` other stuff: a surface cant reflect more light than it recieves, so a simple equation is used to make sure this doesnt happen: โข## ๐ค๐ =(1โ๐ค๐) โ
(1โmetallic) right now, all the material data is pulled from a .mtl file i also added bindless ssbo storage so it doesnt explode when you have a lot of models next, i might keep working on the custom persistent ui system
mesh importing and refraction ima start off by saying that this isnโt true refraction, since that requires path tracing, which is really computationally intensive instead, i went with screen space refraction offset approximation , which is a good, efficient refraction approximator that i still think looks pretty cool material data for refraction the value that determines the transparency of an object is called transmission , and the value for refraction is index of refraction (or IOR) the current filesystem for materials that i have is .mtl files, because thats the standard filetype for exporting materials with objs from programs like blender. however, .mtl is a filesystem from the 1990s that was originally created for phong systems, meaning it doesnt really contain transmission values so, i created a json sidecar system, that generates a better, more robust, human readable material file for every model. so now, when you import an obj/mtl pair: it checks for a json sidecar file if there is one already, just load from that and finish! if there isnโt one already, now read the .mtl, extract as much info as you can from that, and write it to a new json file multi pass rendering in order to correctly render transparent meshes, you need at least 2 render passes (render the opaque ones first, then the transparent ones) also, for the refraction to work, it needs an image of everything behind it, so in between the opaque and transparent pass, it quickly copies everything on the screen to an offscreen framebuffer how the refraction works 1. get the view vector (v): this oneโs simple, just evaluate the view direction from the fragment position to the camera position also, adjust the normal (n) if rendering backface 2. refraction vector (snellโs law): the refraction vector is actually easy too, glsl has a built in refract intrinsic so you just drive that with a clamped ior value 3. deviation mapping: to determine how much to bend the background scene texture, just calculate the deviation vector between the refracted ray and the view ray: vec3 rayDeviation = refractDir - (- V ); vec2 distortion = ( push . viewProjMatrix * vec4 ( rayDeviation , 0.0 )). xy * 0.05 * transmission ; 4. uv sampling + composite blending offset the screen coordinates, but in order to prevent the edges from exploding, it needs to be clamped also, sample the background buffer to blend lighting and make a fresnel rim other stuff i did: i also made a full custom persistent ui system (this took a while), and a command system, because hardcoding the ui to do stuff is bad so instead of the ui code directly running logic, clicking a button just sends a command to the command system this meant creating another render pass, meaning iโm up to 3 render passes per frame now the only command so far is file.import_mesh , which is also hooked into the ui (you can see in the video below)
grid generation this took forever, and was much harder than i expected basically, i needed to create a whole new rendering pipeline and a whole new glsl shader pair, as well as coming up with logic so the triangle-focused renderer can actually render some super thin infinite lines the grid does generate dynamically around the camera view, so it is endless i think it does look pretty good tho next, ill prolly work on adding some move and rotation and maybe even scale tools
translation gizmo this was like miserable to make lol it took me sooooooo long to get translation working, basically i had this samurai battle with a scaling issue for the longest time, i accidentally told my code that the viewport was smaller than it actually was and it just took forever to find that out this issue caused a really annoying issue where the actual location of the rendered gizmo was different than the clickable area there was also this other issue where the gizmo would move twice the speed of the mesh it was translating, but it was just a flaw with the mesh class, the gizmo was basically constantly recieving its own center as well as the meshesโ center which made it translate double but it works now, i think it works pretty well its all based off of the modular command system, so anything can call translatemeshcommand and it translate meshes next is prolly working on rotate and scale and stuff, all the other gizmos that we need the gizmos also meant a new .vert and .frag pair, and a whole new vulkan render pipeline lol
rotation gizmo, multi-object support you can now switch between the translation gizmo, and the rotation gizmo, and click between objects to change what one has the gizmo active the gizmo also stays locked to the selected meshesโ local axes, i might add switching between local and global axis orientation at some point, but for right now local only is good enough all of the gizmo mesh is generated from code, not as an obj, making it very efficient and fast and robust, but making the logic that generates vertices in the right position was very annoying lol next, ill probably work on an inspector panel where you can edit an objectโs location, rotation, scale, material data, etc or maybe saving the scene to file but now you can move and rotate any amount of objects to your heartโs content
ui inspector the inspector is by no means done, but its a start! right now its just supposed to be purely functional, but i plan on making it look better in the future the input boxes are their own ui class, meaning i can have those input boxes everywhere making the ui system from scratch is very fun, but it at times i do regret not using qml or im gui, but overall, i dont regret making it from scratch too much the main issues with it right now is that the sensitivity values in the input boxes feel wrong, i think the position needs less sensitivity and the rotation needs more also, the color ones are a bit broken, theres a little bit of discrepancy between what the ui shows and what the actual .json material sidecar has written, so iโll have to figure out how to fix that i think at some point, i want to add support for dropdowns, so each row can be expanded into larger input boxes if needed, or so the entire transform or material section can be collapsed i also need to add input boxes for IOR and transmission, i jus forgot to do that lol, should be pretty easy tho
inspector updates and dropdowns the inspector now has IOR and transmission values that you can change, ui updates, and dropdowns this took literally like 45 epochs because i was running into a materialgpu indexing issue where the inspector boxes would update the wrong values and my peanut brain didnt even think to check if i set the indices correctly dropdowns also took a good 3-4 hours, but it wasnt too bad, mostly just figuring out the correct logic in total, the dropdown class (ui_dropdown.cpp/hpp) is at 169 lines, and the inspector class (ui_inspector_panel.cpp/hpp) is at 470 lines next, i think ill either work on ui rounding or a file hierarchy viewer
hierarchy panel and scrolling the hierarchy panel itself was actually not that hard, the hard part was coming up with a reliable system that can detect and list every object currently loaded in the scene without turning your pc into an explosive the other hard part was modifying the dockspace layout to be able to handle multiple different panels, because previously, it was just one window per dockspace panel, but now it can be as many as you want also, the scrolling system is new, it is its own class ui_scrollable_container , and it is basically doing what the dockspace used to do, but it also lets you scroll. so now, the dockspace just loads a scrollable container, and the scrollable container does all the arrangement and sizing logic. the hierarchy works exactly as you would expect it to, it lists current scene objects and then you can select them from it eventually, ill prolly add support for parenting, which should be pretty easy its kinda crazy to see my custom persistent ui system slowly turn into something useful as i add more features to it so far ive just been adding features when i need them, i havent just thought of features i might need and added all of them
bugfixes and writing docs i spent a good 4 hours just going through some code, finding anything that might be wrong and fixing them. surprisingly, i didnt find that much, which means that iโm better at coding than i thought i found a few places where i just forgot to add something to a cleanup function, which could have led to a small memory leak over time, but nothing major some bugs i fixed: the background of any dropdown menu was rendering behind the viewport selecting stuff in the hierarchy wouldnt sync with the inspector properly i forgot to add screenPointToRay to my cleanup function some other things that i forgot i also added a few std::couts in some spots that needed them i also decided to start writing some docs because my brain was fried i basically just dug through my ~3000 lines of vulkan init and rendering code, and took notes throughout and tried explaining my confusing mental processes in a .md file this kinda made me realize that i do not have enough annotation in my code but thats a problem for future me :)
color picking! i noticed that setting color in the inspector with 3 rgb values was really annoying, so i made a whole new ui class ( ui_color_picker.hpp/cpp ), that can hook into any other ui it supports: S/B box + hue bar RGB input CMYK input (mildly broken) hex input (very broken) it actually works pretty well, there is some bug where an object can never be fully white but i think thats a command issue not color picker or inspector next, it might be time to work on physics
scene serialization okay so this is akward but it doesnt actually work yet, but in my defense serialization is really confusing to me since i generally donโt do a whole lot with file writing and loading, especially in a custom formatted and extensioned .slate file it basically just takes a bunch of data by looping through scene objects and records them, then it also has to do that backwards, then i also have to implement a command and gui system to trigger the logic and i also want the .slate to be easily readable, so i need to format the text in a way that makes sense (iโm taking inspiration from TOML) hopefully its done next devlog, but no promises lol
working scene serialization (saving) if you hit ctrl + s (or hit the gui button) then it creates a .slate file, containing all the data of every object in the scene this .slate file is human readable (and editable), written in a format very similar to toml heres an example .slate file: [ scene ] name = "SlateScene" version = "1.0" [[ entity ]] index = 0 name = "" mesh_path = "models/test_obj.obj" position = [ -0.310723 , 0.927019 , 1.47743 ] rotation = [ 0 , -0 , 0 ] scale = [ 1.9916 , 2.28848 , 3.38984 ] [ entity . material ] albedo = [ 0.183333 , 1 , 0 , 1 ] roughness = 0.5 metallic = 1 ior = 1.5 transmission = 0 [[ entity ]] index = 1 name = "" mesh_path = "models/emerald_monkey.obj" position = [ 1.29034 , 0 , -5.64025e-08 ] rotation = [ 8.61461 , 6.18611 , 2.71029 ] scale = [ 3.07852 , 3.38535 , 3.86504 ] [ entity . material ] albedo = [ 0.050432 , 0.800023 , 0.302281 , 1 ] roughness = 0 metallic = 0 ior = 2.418 transmission = 1 next, ill probably start working on physics
physics aaaaaaaaaaaaaaaaa it works concerningly well and it actually makes me really happy to see it working i legit jumped for joy when i first saw stuff dropping due to gravity the actual underlying physics engine is jolt physics, but all the init and handling and all that is custom from me its all linked to the inspector and allat, so you can tweak values real time, such as body type, bounciness, friction, and mass its now a physics playground instead of just a glorified obj viewer scaling is very broken as far as colliders go, ill probably fix that soon you can start and stop the physics sim with f5
shader overhaul so i noticed that the pbr shader lowkey looked kinda ugly and my microfacet solver was buns af so i js spent a while fixing it up and basically ended up going down a rabbit hole of tonemapping and completely rewrote the whole thing i switched from some random generic tonemapping to khronos standard neutral pbr mapping, which i think looks wayyyyyy better, the colors actually feel accurate now i also spent a little while setting up the shader to support texture colors when i get that all working it is wayyy better now, especially metallic things i also started setting up for texture imports but right now its only albedo and it does NOT work in the slightest lmao i think i will hopefully have texture importing and mapping done by next devlog, but uhhhhhโฆ. no promises
texture loading!!! absolute yipee moment this took like a lot of thinking to figure out how to implement for reasons that i think are obvious, but some of them are: how tf do you load an image what does the loaded image data mean how do you map the texture to the modelโs uv coords how does normal mapping work how does the shader know where on the image its reading and a lot more that i prolly forgot lol this whole thing basically meant a whole shader overhaul again (even though i alr did that last devlog but its whatever loll) you can now map albedo (color), normal (height/offset), orm (occlusion, roughness, metallic), and emmision (glowiness) emission only kind of works rn lol, but i will get to it soon also, you currently have to manually set filepaths to the textures you want in the .json sidecar for that model, i need to add filepicker stuff to the inspector but i will get to it ok the textures in the video below were manually baked, packed, etc at 4096*4096 in blender i think another feature i should work on soon is procedural material generating, because texture mapping will always have a resolution limit (even 4k textures look kinda bad when mapped to larger models) i also want to change how reflections work a little bit, or maybe add anti-aliasing because right now the reflections look deep fried (as you will see in the video below)
shadows this one is really cool, i feel like it really takes it from looking like its from 1995 to likeโฆ 2015 maybe? it doesnt look that good but i think its a massive improvement! right now, its a 4096x4096 shadowmap with an extent of 24 units, a random noise filter to reduce pixelation, and 3x3 pcf to make it look somewhat smooth it is currently orthographic light projection only, but I think iโll work on getting perspective lighting soon :) shadows did reqire implementing a whole new imageview, descriptor set, render pass, all that, but iโm getting used to it atp lol serialization is also completely broken right now, so I do need to fix thatโฆ...
|
1792774523.8995285
|
1793379323.8995285
|
|
46630
|
slate by @rizz | Stardance
|
rizz
|
0
|
0.62
|
0
|
[]
|
[{"post_id": 46883, "ts": "202 [{"post_id": 46883, "ts": "2026-08-14T13:00:50Z", "hours": 0.6167, "text": "devlog one: so idk what happened i recorded a timelapse but it didnโt record that screen idk how obv and yea i had selected the correct tab anyways i have designed the PCBโฆ.it is a 3 button pad that works on a esp32 super mini and i added some GPIO jumpers and thatโs all for now"}]...
|
Title: slate by @rizz | Stardance
Devlogs:
devlog Title: slate by @rizz | Stardance
Devlogs:
devlog one: so idk what happened i recorded a timelapse but it didnโt record that screen idk how obv and yea i had selected the correct tab anyways i have designed the PCBโฆ.it is a 3 button pad that works on a esp32 super mini and i added some GPIO jumpers and thatโs all for now...
|
1793141452.9295523
|
1793746252.9295523
|
|
52863
|
slashbotstem by @hamd | Stardance
|
hamd
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: slashbotstem by @hamd | Stardance
|
1792727520.1805098
|
1793332320.1805098
|
|
34769
|
slap people off the map by @leeyon | Stardance
|
leeyon
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: slap people off the map by @leeyon | Starda Title: slap people off the map by @leeyon | Stardance...
|
1792658886.51895
|
1793263686.51895
|