Shipped this project!
I am lterally just shipping for the sticker lol. Have fun!
I am lterally just shipping for the sticker lol. Have fun!
I added some extra information to make it clearer about how to do certain things in the porgram like changing resolution and adding less scary error messages. I also fixed up the README by updating the demo video to show off some of the new features, which I forgot to do before.
Log in to leave a comment
Honestly, not much to day here hope you guys enjoy it!
I found an extra 100 minutes under the sofa cushions I forgot to add to my ship, so here it is, 2 months later. I also found a bug where the bombs were not triggering correctly because I used “==” instead of “=”; so I fixed that. Also, I fixed the file structure of my GitHub repo and also made sure the demo was up to date.
Log in to leave a comment
This ship was really fun, and now it has made the project truly usable. I solved a lot of the small issues with the program. The camera feature was fun to mess around with. I hope someone uses it in a Zoom meeting and sees if someone notices.
Happy voting!
I fixed a bug with colour correction, so now everything should be coloured as expected for the camera, and updated the readme to reflect the new changes to the program. Going to ship now, hope y’all enjoyed the brief return!
Log in to leave a comment
Thanks to some feedback from @zesty plutonium, I added some UX changes, such as taking the embedded audio from the video rather than having them split. I also added a change where now if you paste in the filepath with quotation marks (because when you click copy as path on windows it copies it with quotation marks), it will sanitise the input for you. I will probably be shipping soon as i need to get back to school stuff! Hope yall enjoy!
Log in to leave a comment
Cat but colour! (Open CV the goat.)
The next goal is adding a way of rendering other application windows live in the terminal.
Log in to leave a comment
Cat. (We got the live camera working)
Log in to leave a comment
We have fixed audio desync! Now, whenever the video is behind where it should be, it will skip frames until it is caught up! This was interesting to implement as my approach worked, but had some glaring issues, such as the video drifting due to tracking time relative to the previous frame. I fixed it by calculating from a fixed point (start of the video) rather than comparing to the previous frame.
Anyways, enjoy the fruits of my labour below!
My next plan is to potentially display things like camera video, which would be fun to mess around with or display other windows.
Until next time!
Log in to leave a comment
I want that RAM so we are coming back to this project for some more features. The first one is a proper plan to fix audio desync. I have come up with a method to be able to do so as you can see below. Now it is time to implement it.
Log in to leave a comment
Since my last ship I have improved the ASCII renderer massively and added colour rendering. This was a very fun project to do and I enjoyed spending the time going back to my code and making optimisations, now with a good enough computer you could use this to actually watch videos.
I tried some optimisations for a bit but almost none of them worked but I have been able to slighly improve the printing times by not resetting the colouring every frame and also not clearing the frame instead opting to overwrite it. This is my last devlog and most likely last release of this project as I have to lock in for school. Thank you to everyone who folllowed me in this journey!
Log in to leave a comment
I have optimised the rendering for colour frames where it is now somewhat usable (although a memory hog). Attached is a pre rendered video in colour in 268x68 resolution at 15 fps. As you can see it is kinda blurry but it is technically watchable.
WE HAVE COLOUR! Granted it is currently really slow so I have to run it at a really low resolution but we do have color. Now i need to optimise it so it is actually usable. No joke it genuinely transitions frames like a slideshow
Some frames from the video I rendered.
www.youtube.com/watch?v=HYlinsnqka0&t
I have been able to optimise the ASCII conversion to O(1) with frame conversion times of like 2 ms compared to the 30 before at the same resolution which we get to increase the resolution again! This video is rendered at 920 by 240 resolution whereas the old video was at 420 by 180 resoluton. I honetsly dont know what other optimisations I can do in python casue GPU stuff is out fo the window as I do not have an NVIDIA GPU so can’t do CUDA stuff.
The next goal is colours!
See you guys next time!
Log in to leave a comment
Any lag is due to compression to be able to upload this.
I have finally returned to this project after a 3 week hiatus. I plan on adding colour support and optimising the render speeds. From some rough timing the worst offender is the greyscale to ASCII conversion which takes upwards of 10x the time converting the frame to greyscale takes.
Log in to leave a comment
Also this logged time also included the time i spent getting it ready for ship like posting to pypi and that
This project is an iteration of the famous cellular automation game with a twist! I have added some extra features to make the lives of these cells a bit more fun. The most challlanging part of this project was the optimisation of checking the cells in each frame. I hope you have fun with the program!
You can now customise the weights of any random event! This is most likely the last feature before ship but it has been fun to make!
Log in to leave a comment
Events now span multiple seasons to prevent death from happening too fast. Added a mode seletc between the classic mode and the events mode.
Log in to leave a comment
For out next event we have BOMBS! Each time a cell tries to spawn on a bomb, it and all it’s immediate neighbours will die! Here is a screenshot of the moment before disaster.
Log in to leave a comment
I have now created 2 rare special events that affect the spawn/death condtions of the next generation to add some randomness to the deterministic game! Love and Famine.
Generations with the Love effect will be able to populate an empty cell with only 2 alive neighbours rather than 3.
Generations with the Famine effect will die with more than 2 neighbours and empty cells need 4 alive neighbours to populate.
Log in to leave a comment
You might notice the Bombs remaining. That is a a feature which will be implemented tommorow.
I have now added colours a bit more properly! Each square in the grid is assigned a colour (even if it is currently inactive) at grid generation. Whenever a cell is born it is represented as the colour of the square. A majority of squares are white however each other colour has a 2% chance of spawning.
Log in to leave a comment
I have given up on trying to optimise this shit. Instead I will get onto the special events of this version to make it more unique! First feature colour. It does not actually represent anything right now but it exists.
Log in to leave a comment
For reference most of this 2 hours was on failed optimisations
I have now made the fundamental functioning version of Conway’s Game of Life. I fixed a major bug with how each generation is processed so now it accutately reflects the game. The next stage is to redo the backend to make it more efficient (hopefully)!
Log in to leave a comment
I have now implemented the birth/death logic and have a way of reflecting the grid updates. However, you may be able to notice that I have not allowed the edges to be updated which is a bug I will fix next! Also say hello to Bongo Cat!
Log in to leave a comment
I have made a randomly generated inital grid (generation 0) right now. Next step is to do cell checking for the next generation.
Log in to leave a comment
This project is as the name suggests a Video Player in the terminal. It can play any downloaded video by converting each frame into an ASCII image and printing that frame. The player can both render videos live to remove wait times or prerender videos to be able to watch better quality videos at higher resolutions.
The project was my first dive into computer graphics and my first performance critical project and was a great experience to develop. I hope you try it out and enjoy using it!
Hello again! This is the final devlog before shipping. For this update I have done a lot but definitely not 12 hours worth of work. Anyways here is a full list of all the changes. The attatched video is live rendered.
I am quite content with where this project is and it is my first project that I am truly proud of. Thank you to whoever has followed this project!
<3
Log in to leave a comment
Sorry for the shit video quality had to compress so I could upload.
Now where did that 12 hours come from? Mostly failed attempts at performance enhancments and testing slight adjustments to the code where testing once can take like 2 miniutes. I also ended up heavily restructuring the code and did a fair amount of documentation in the code as I wanted it to be somewhat decent. One such attempt was to decode the video via the GPU which theoretically was just importing the gpu portion of decord and passing it as an argument. Unfortunately, CUDA does not come precompiled so for like 1 and a half hours I was attempting to compile it with my decord installation and failing so I just gave up on it.
That’s sick! I even tried it out myself.
I’m genuinely impressed. Something like that definitely is something I could try attempt make myself.
I have added a few improvements to the code such as
The main rendering opimisation needed is ASCIIfing the frames.
The main playback problem is the flickering which happens if the user does not scroll their terminal window up as well as at higher video resolutions.
I also need to add a low resolution mode as otherwise the edges don’t look as sharp.
I probably won’t be able to get too much more done but I will try to add some more usablility features so it is ready to ship and if I can find the time I will try add colour and/or a live rendering feature so you don’t have to wait for it to be pre rendered but no promises.
See you guys next time!
Also sorry for really bad video quality as I had to get it under 50 MB
Log in to leave a comment
dammmmmmmmmmmmmmmmmm
broo , its too cool
u can also add colors!!
bro talk me in discord pleaseeee
discord server link ->https://discord.gg/PC8NWDr2Mv
This is V0.1 of the program! It is functional but has a lot of bugs, optimisations and features to be made which should hopefully come out soon. This was quite fun to put together and I’m glad I found the time to make some version of this. As you can see the flickering is quite a big problem as it works by wiping the screen after each frame and pasting the new frame. Another big issue is the huge amount of time spent rendering the video at higher frame rates. From the video you can also see that things like speed are issues which is hopefully a quick fix!
See you guys next time!
Also I promise I am not trying to farm time with the fact that it took 4 hours to do this. I genuinely just suck balls at programming.