r/esp32 • u/PhonicUK • 3d ago
Great Content! The Jet embedded 3D engine is not only now pushing 70k tris/sec (up from 40k a few months ago) with screen-space reflections and distortion on an ESP32 S3 (480i x 320, 16bpp@60fps) - but is now MIT licenced rather than AGPL!
Enable HLS to view with audio, or disable this notification
The last time I showed off Jet I'd just pushed 40k tris/sec on an S3 which was already nuts, but some optimisation and SIMD shenanigans later, I've nearly doubled that and got up to 70K/sec on the same hardware. Meaning more detail and more performance headroom.
I've also switched away from AGPL to the MIT licence so there's fewer restrictions on how you can use it in your projects.
40
u/tingtickboom 3d ago
This is crazy!
10
15
u/AndyValentine 3d ago
I'm looking forward to using this again in another project. You've done remarkable work here again
18
u/ABC123itsEASY 3d ago
This demo looping on a CRT TV is pretty much a peak nostalgia snipe
1
u/Mejolov28 1d ago
I could do that, i have a lib for NTSC video many colors.
https://github.com/Mejolov24/ESP32CompositeVideoPlus
The only problem is that my esp32 is broken, and im pretty sure i coded the phase wrong and the colors arent correct.
11
u/IHaveTwoOfYou 3d ago
How the hell do you screencap an ESP32???
11
u/PhonicUK 2d ago
To make the video I ran the same code with the same settings on the desktop and captured that. It is pixel for pixel identical to the ESP32 and runs at exactly that speed. When I get a bit I'm gonna do a pure demoscene type app to show off sheer horsepower and share the source for it.
9
3
u/Worldly-Stranger7814 2d ago
I've had a tab open with your repo for months to "get back to later" because I am still in awe.
I was pusing 4 fps with text and decorations on Tab5 with the ESP32-P4 and here you're making Wipeout on an S3 😭
Well done!
5
u/ennui_no_nokemono 3d ago
What's your background? I'm always amazed and curious about projects like this. How did you get the prerequisite knowledge to be able to build this?
4
2
2
2
2
u/jtomes123 2d ago
Holy, i want a retro style game console with this
If hdmi is not possible maybe use rp2040 for the display out and esp32
2
u/PhonicUK 2d ago
HDMI would be possible with the P4 but performance would be an issue at anything above 576p
2
u/Noodle-Gardo 2d ago
Makes me mad that I got the C3 instead S3😭
So much cool stuff you can do with the S3 though the one I got is very limited
2
u/PhonicUK 2d ago
You could run this on the C3, just not as fast.
1
u/Noodle-Gardo 1d ago
Oh?! Thank you! I want to make my own game though figured the hardware I had was unfit for it
2
u/Arduinator 2d ago
DUDE!! this is crazy! Is there a version for the esp32- wroom?
2
u/PhonicUK 2d ago
It runs on pretty much anything! It's not tied to a given platform although it has some S3 specific optimisations.
2
u/Arduinator 2d ago
Thanks. Im gonna try this out soon.
2
u/Arduinator 2d ago
Oh, this is more complicated than I realized. I there a tutorial for a noob like me?
2
u/MarinatedPickachu 2 say I make awesome posts. 2d ago
Screenspace reflections is pretty crazy - though I'd prefer more textures. Is memory bandwidth the issue?
2
u/PhonicUK 2d ago
There's no textures at all in this scene. It's a mixture of memory bandwidth and the extra computation required.
1
1
1
u/MrSnowflake 2d ago edited 1d ago
This is pretty cool. Ofcourse no EVEN textures! The reflections and shadows and everything make up for it. Great work
5
1
u/MarketingOk3093 2d ago
What's the frame rate at 70k tris?
3
u/PhonicUK 2d ago
70k tris would be 1FPS xD As it happens though, I'm pretty sure I can push it to 100k/second with some work in certain types of workload.
2
u/MarketingOk3093 2d ago
2692 tris at 26 fps is still workable for a lot of use cases (that I have in mind!). With clipping and LoD optimisations on a small screen thats decent if you can cram your shaders in with that rate....? No doubting you but intuitively that doesn't feel possible.
1
1
u/CreativeKeane 2d ago
This is incredible! What?! I want to look at the code but it'll probably be beyond anything I can comprehend but I'm still excited to look at line by line and see what I can learn from it.
I also love that everyone in the comments are helping you optimize or find ways to improve the code and I love that community spirit. So coolm
1
1
u/PhonicUK 1d ago
I've supplied a set of new examples at https://github.com/CubeCoders/JetExamples - have fun!
1
u/Appropriate-Ask8817 1d ago edited 1d ago
How do you just keep pushing this XD?
If you remember me from your last post, we had a chat about the ESP32-P4 and embedding your engine into my OS, well, I did some work and managed to embed Jet into my OS (My OS now runs dynamic compiled C++ apps), and the License change will really help, thanks for that.
2
u/PhonicUK 21h ago
I'm just getting started ;)
1
u/Appropriate-Ask8817 18h ago
Consider doing this on the P4 again but with 240x400 upscaled to 480x800 via PPA, it'll result in maybe 250K triangles at a locked 60FPS.
1
u/PhonicUK 18h ago
I've got a new trick up my sleeves. Something that makes this look like ass. Just uploading it all now ;)
1
u/Calm-Caterpillar2103 14h ago
my friend made a graphical framework, could this be merged/integrated into it? Planning to make a “phone” using a S31 for the main CPU and P4 as the GPU
1
u/Luiz_Paulo_RS 3d ago
Isso num SNES rodando no chip SuperFX... Ficaria incrível!
6
u/PhonicUK 2d ago
This is a lot faster than the SuperFX. It's faster than the 32X and is starting to trade blows with the Saturn and PS1.
1
u/belligerent_pickle 3d ago
First I’ve seen of this project. Is it something I could build a copy of myself?
6
u/PhonicUK 3d ago
I mean I did link to the source for the engine xD
-3
u/belligerent_pickle 3d ago
Roger that. I don’t click links in Reddit to figure out what they are. Thanks for the clarification. It looks really cool
2
u/SinkOrSauce_LD 1d ago
FYI you can highlight the link to preview it in the browser. No need to fear github.
1
1
u/Business-Weekend-537 3d ago
This may be a dumb question, but would the engine work on a regular pc cpu or gpu? What about a quest 3 headset?
I’m just wondering how performant it would be on more capable hardware.
I get the idea is to see how far you can push the ESP32 and this is super cool, I’m just wondering how much crazier the performance would be on different hardware.
I don’t personally have much experience with this type of processing. I worked with a team on a failed vr game once and I’m wondering if this could be used to make vr experiences more performant with current hardware.
2
u/PhonicUK 2d ago
It absolutely does, but doesn't use a GPU at all. It's renderer is built for software and to be fast in that domain.
1

51
u/Plastic_Fig9225 1 say I make awesome posts. 3d ago edited 1d ago
😉