69 is an extremely funny number. I'm glad you agree. Try everything Brilliant has to offer-free-for a full 30 days, visit brilliant.org/AngeTheGreat/. The first 200 of you will get 20% off Brilliant’s annual premium subscription.
11:21 "If we slowly open the throttle, we can hear what this engine sounds like at a higher RPM" *Proceeds to simulate the sound of the Earth's End Times*
It's so interesting to get a deeper look at the inner workings of the simulator. Gives me a much greater appreciation for the project and how far its come already. Also, a 420 L V69 is the most internet engine I've ever seen haha well done, Ange.
Glad you like the video 🙏 The next video will be a return to more regular style content where I'll have more to show. Thanks for supporting the project!
Can you make something like Rendering - that will render sound into a file with much more physics cycles and not realtime. It will create something like “ground truth” to compare.
I was thinking that too, didn't know if it was possible or if it already worked like that, but I'd totally rather spend 40 minutes rendering my X49 engine at 20000 rpm and play it afterwards.
Your engine is knocking. You might want to check if there's engine bearing debris or metallic fragments on the oil, or if the oil is overall milky. Also, test your fuel pump's pressure and your 69 spark plugs.
The advantage of this engine is that it will run happily when you shut down one cylinder bank. So you can check and change spark plugs while it's running. Yep, that'll be noisy, but convenient. Next up on this channel: twin-spark version, for aircrafts. 138 spark plugs.
XPBD is what you need if you want more physically accurate results from PBD, for "infinitely stiff" materials you can simply use the regular PBD algorithm, restrict it to a single iteration, and then divide the timestep by the "iteration count" (now called substeps). Miles Macklin and Matthias Müller both have made articles and videos explaining their research papers on the subject. Edit: Since the fluid sim is the main bottleneck now, that should be the highest priority.
@@JoonasHaapala Yes, and regular PBD using a single iteration is a subset of XPBD, equal to setting the constraint compliance to 0, substeps is the same as making the timestep of the entire algorithm loop smaller.
Or instead of adjusting accuracy, scale time. Physics stay stable just shown at a fraction of real speed. Eg at 1000 rpm, maybe it takes a minute to simulate 500 rotations so you see only 30 seconds of simulated time over the course of a minute.
"It's a stormy day in Toronto" Surreal hearing that on the first summer-like day of the year in Toronto so far, this musta been recorded a little while ago.
I had a whole math course on linear solvers for partial differential equations sooooo: The reason that conjugate gradient (CG) does not work for some of the system of equations is because the matrix has to be symmetric positive definite (SPD, wiki is your friend) for CG to work. Some differential equations give a positive definite matrix but others don’t. This is a bummer because CG is really fast, especially for sparse matrice, way faster than SSOR which does not require positive definitiveness. So if you still want to have a iterative solver for the equations you would have to look in to “iterive methods for systems with a non symmetric positive definite matrix”. There are a lot of these solvers but they all have their problems and advantages. Since solving the matrix is no longer the main problem this information may not be needed but yeah. If you would want to have some good reference materials please ask!
I just had an idea. If you could give me (an example) of the matrix to solve (or I look in the source code) I could test different solvers on them. Since SciPy all have them pre-programmed would could quite easily test which one is fastest. You can then integrate it your seld in C++ if you would want to.
The wiki page on iterative methods summarizes the options good options quit well under Krylov Subspace Methods: Krylov subspace methods work by forming a basis of the sequence of successive matrix powers times the initial residual (the Krylov sequence). The approximations to the solution are then formed by minimizing the residual over the subspace formed. The prototypical method in this class is the conjugate gradient method (CG) which assumes that the system matrix A is symmetric positive-definite. For symmetric (and possibly indefinite) one works with the minimal residual method (MINRES). In the case of non-symmetric matrices, methods such as the generalized minimal residual method (GMRES) and the biconjugate gradient method (BiCG) have been derived.
there is extended positional based dynamics (XPBD) that improves on the accuracy but is still missing the forces as far as i know but it shouldn't be too hard to reverse calculate the forces from position and velocity changes
It's always cool to see the stuff you learn at uni actually getting used in real life. Or at least your own life, not some company at the other side of the world. Hopefully my exam of numerical mathematics goes somewhat well this summer...
Fascinating! The sound has so many layers to it as the engine goes up in rpm. It's also crazy to see the fuel consumption going up so fast on the right, this would not be cheap to run.
Talking about fluid simulations have you seen SpaceX's talk "GPUs to Mars: Full-Scale Simulation of SpaceX's Mars Rocket Engine" ? It has some cool tricks for spending compute power strategically where you actually need the precision. Instead of just the same amount of compute getting used everywhere in the simulation.
As an Automotive Technician of 10+ years and Mechanical Engineer, it legit sounded as if it was running lean on a good portion of those cylinders. This is extremely interesting man! Please keep the content coming and thank you for the content so far. I just stumbled upon your amazing content in the last day or two here.
Some aircraft piston engines would be an interesting application of this. Being able to run at variable barometric pressures, duel magneto running, single magneto failures or fouling, etc. Turbojet engines and high bypass jet engines would also be an interesting simulation.
This is really the most interesting videos I have seen on the internet. It is mind boggling that a single person can create such amazing software. What mountains have you climbed, what roads have you traversed to have gained this knowledge? Asking for us mere mortals.
I spent some time creating a hybrid rocket engine simulator. That was pain. Can't imagine doing something like this. I've got a lot of respect for you.
There's no way I would have understood anything without the conversation to Egyptian cubits. However I feel a little let down that you didn't convert to my primary measuring unit, plank lengths
Evaluating the matrices symbolically first could lead to massive gains, think FFT vs standard DFT. Also utilising double derivatives projected as the predictive value gives a good enough baseline, that it becomes possible to use 16bit frames for SIMD and still keeping good accuracy. Especially with reciprocating simulations where there is a self correction factor by the nature of the machine before the simulated. If you can get away with 16 Bit corrections on a 32bit data path you have an instant 2x speed increase.
Could be an interesting challenge to obtain one of those little simple RC airplane engines, which are relatively cheap and easy to run on a workbench, and see how close you can get in simulating its sound and behavior to the real thing. Or maybe a grass mower engine could be a convenient one to try, though a more complex engine to emulate.
For working with sparse matrices there is a header-only library called Eigen. It's rather fast, threaded, uses enhanced instruction set and setting up a sparse matrix is fairly straightforward. And it has a decent documentation.
Ange, this truly is Great. I've known a few brilliant devs, all of whom make me feel really dumb, but you have leveled up on them with this. Thank you for posting these.
I am a total noob and have no clue what most of those fancy words mean, but i downloaded the free version and all i can say is simply: I love You for creating this
09:30 ah yes, just a few of the many non-official measurement units of the United Nations of the Internet. Now we need to know what 22 feet equals to in unicorn horns, bananas, washing machines, giraffe necks, freedom eagle wingspans, capybaras and subway sandwiches.
When I seen the connecting rods bug out like that on 1:14 it made me wonder if there was a way to simulate a catastrophic failure of the engine, like spun bearings, bad rings, rod knock, and throwing rod. If there is that would pretty neat
I'd like to see some big Diesel engines simulated, like the EMD 16-710-G3C-T2, a 16 cylinder, turbocharged diesel engine with 710 cubic inches of displacement and a really neat sound. The EMD 20-645E3 is another neat turbocharged engine, with 20 cylinders and 645 cubic inches of displacement. The two engines make 4,300 and 3,600 horsepower, respectively. They're also both two-stroke engines.
you're prolly one of the smartest people in toronto and not a road runner lol, crazy to think some one this good at this stuff lives close, thanks for the motivation
11:12 - it's definitely not fake. It's sympathetic resonance that comes with every engine ever made. This is honestly proof that your physics code is operating at least somewhat properly.
I believe you already have convolution implemented for your audio engine. Could you add the ability to load impulse responses so we can hear what the engine sounds like in different environments (garage, tunnel, open road, etc.)?
Cool simulation! I think what you're hearing is that at low speeds, this engine is putting out a quite audible tone. At 730rpm the engine produces an exhaust note who's fundamental frequency is 420hz (assuming perfect equal length headers and firing order). I think from there as we hear it rev up it generates a sub harmonic at the engine's combustion cycle (IE fundamental equal to 1/2 RPS) due to uneven bank counts and pairings. Much like the thrum of a cross plane V8, but more severe.
Hey Ange, I recently wrote a 3D position based dynamics (physically accurate through extended position based dynamics) where I also use and calculate forces. I simulate a car with suspension and some other constraints. It is unconditionally stable with possibility of infinitely stiff springs. Working with xpbd was a breeze and the math is far easier then global solvers. I'm not one for showing my work often and the visuals aren't all that pleasing but I can show it to you and eleborate on the methods and papers use. I'm not so sure how to contact you directly but let me know if you like to talk.
Feel free to join my community Discord server (link is in the description). I'd be interested to hear more about what resources you used and about XPBD technique. Thanks for watching!
My man started making a proof of concept for realistic engine sound in video game just for fun and endend up creating a tool that could be used by the whole automotive industry
When thinking about your engine simulator, everything comes down to matrix operations. why isn't it possible to outsource the heavy parts to the gpu since gpus are made to deal with matrices in the first place, aren't they?
it IS possible but might not be worth it - the RAM-VRAM latency might kill any possible gains. You have to remember that you need to move all the data to the GPU's ram and then move the results back to main ram and this takes not-insignificant amount of time. Many numerical simulations software moved entirely to GPUs for that very reason - meaning he would have to rewrite EVERYTHING to GPU and that might be a LOT of work
Instead of solving for position using Newton's three laws directly, you could use other formalisms such as Lagrangian mechanics, or Hamiltonian mechanics. Constraints are handled there directly, instead of having them as an afterthought.
Awesome. I happened to find myself making engine sounds in puredata the other day and of course thought of your project, which I first came across while I was into BeamNG. Very impressive stuff, as always.
11:21 "If we slowly open the throttle, we can hear what this engine sounds like at higher RPM" Ah, yes. The unmistakable sound of an external combustion engine.
I'm looking forward to see 3D engine simulator. Especially Radial engines (like R-2800, r-3450). Actually, do you have any plans about this type of engines? I mean, they have a little bit more complex systems of valves, rods... And do you have any plans about radial and (not only) engines with sleeves distribution? (Like Bristol Hercules, Centaurus, Rolls-Royce Greece)? Thanks.
This was a really interesting video. Currently studying computer science and game dev. Didn't know how complex matrixs could go was really well explained.
From my own experience of coding a simulation, the best way to solve huge sets of linear equation is: Just use a pre-existing math package. These solvers are so heavily optimized, you can barely get the same speed by coding from scratch. Except when that is the whole point...
the optimized algs available for linear algebra are crazy quick! and since most LA problems can be parallelized, it's best to offload that workload to the gpu
Knowing that some day this will come to steam makes me so excited for the future. Love the simulator as it is, but i can only wait to see where it goes 🔥
First of all huge congratulations on the engine. I think you smashed it out of the park. But I have some concerns about the performance, cause I'm thinking that this is the next step in racing simulators, bit if 50% of the resources are being used just for the engine alone, then we are very far from using it. Again, kudos for the engine. I hope that my comment does encourage you to keep working on it. I understand it has some limitations and that improving it could reduce the quality of the sound you are working on, which is a blast
Can you make a video explaining what that extensive dashboard in the game is, like the indicators that you see next to the engine? Sorry for my horrible english. Im still learning
69 is an extremely funny number. I'm glad you agree.
Try everything Brilliant has to offer-free-for a full 30 days, visit brilliant.org/AngeTheGreat/. The first 200 of you will get 20% off Brilliant’s annual premium subscription.
Funni
i agree
hehe
That's the sex number! Similarly, 420 is the weed number.
@@tyttuut Yes that is correct.
Now we just need an Inline-420 with 69L displacement
wait until it becomes obsolete by a decade
or...6.9L PER CYLINDER
Nobody else like this comment
6 More likes, come on guys.
Edit: GO BACK, GO BACK!
You're both dangerously and hilariously close to dad joke territory.
11:21 "If we slowly open the throttle, we can hear what this engine sounds like at a higher RPM"
*Proceeds to simulate the sound of the Earth's End Times*
I have never been terrified by an engine sound before. An engine of this configuration can only be used for forces of evil. It's psychological horror.
sounds like this type of engine inside a wooden shack with concrete floor recorded with webcam
czcams.com/video/T2YyJpwu4jM/video.html
To me tho, it sounds somewhat like a class M2 locomotive engine.
it sounds like someone is running 10 engines on top of each other
it honestly sounds like a washing machine
It's so interesting to get a deeper look at the inner workings of the simulator. Gives me a much greater appreciation for the project and how far its come already. Also, a 420 L V69 is the most internet engine I've ever seen haha well done, Ange.
Glad you like the video 🙏 The next video will be a return to more regular style content where I'll have more to show. Thanks for supporting the project!
Valve Hammer units are the optimal measurement standard
Agreed. Unfortunately the world hasn't caught up yet
I'm pretty sure you can actually use them in engine simulator since you can define values in any units.
I wont snitch but iirc, hammer units are technically inches :)
@@MCSteve_ my hammer unit’s definitely bigger than an inch…
@@ethanpicken6992 Sounds like someone is in denial
always a good day when there's a new engine sim devlog
🙏
Can you make something like Rendering - that will render sound into a file with much more physics cycles and not realtime.
It will create something like “ground truth” to compare.
Great idea, thanks for the suggestion
I was thinking that too, didn't know if it was possible or if it already worked like that, but I'd totally rather spend 40 minutes rendering my X49 engine at 20000 rpm and play it afterwards.
And next would be to render an array of files based on throttle and speed, essentially baking the engine so it can be imported into a game.
agreed
@@AngeTheGreat Oh Yeah It can be so handful for video maker, when you have to recreate the sound engine in post !
Your engine is knocking. You might want to check if there's engine bearing debris or metallic fragments on the oil, or if the oil is overall milky. Also, test your fuel pump's pressure and your 69 spark plugs.
And given how much it uses, also check the fuel pump's flow. It might not be able to do the GPM that it needs.
It could also be an exhaust restriction - try increasing the exhaust to 69 in.
Sounds like a ratial airplane engine.
@@peejay1981 Or try being original instead of overplaying the obvious.
The advantage of this engine is that it will run happily when you shut down one cylinder bank.
So you can check and change spark plugs while it's running. Yep, that'll be noisy, but convenient.
Next up on this channel: twin-spark version, for aircrafts. 138 spark plugs.
XPBD is what you need if you want more physically accurate results from PBD, for "infinitely stiff" materials you can simply use the regular PBD algorithm, restrict it to a single iteration, and then divide the timestep by the "iteration count" (now called substeps).
Miles Macklin and Matthias Müller both have made articles and videos explaining their research papers on the subject.
Edit: Since the fluid sim is the main bottleneck now, that should be the highest priority.
For infinitely stiff constraints in XPBD it's best to use many substeps and set the constraint compliance to 0
@@JoonasHaapala Yes, and regular PBD using a single iteration is a subset of XPBD, equal to setting the constraint compliance to 0, substeps is the same as making the timestep of the entire algorithm loop smaller.
1:20 bocchi the engine block
Your content is so interesting! Thanks for making all of these
Thanks for watching 🙏
You know you're a programmer when you write a script that writes a script that gets used by a program to do a thing :P love this video
Recursive metaprogramming, or something
it's crazy how well you explain this stuff. I'm blown away by how simply you summarize so much raw info; well done!
great to see the progress
If there's anyone who could make use of these improvements, it would be you haha
A useful feature might be dynamic adjustment of accuracy to keep the RT/DT in an acceptable range.
Or instead of adjusting accuracy, scale time. Physics stay stable just shown at a fraction of real speed. Eg at 1000 rpm, maybe it takes a minute to simulate 500 rotations so you see only 30 seconds of simulated time over the course of a minute.
@@Jon-yh3gb yep, and render to video, allow scripted inputs. So many possibilities.
9:29 that "Valve Hammer Units" made me happy as an HL2 fan
"It's a stormy day in Toronto"
Surreal hearing that on the first summer-like day of the year in Toronto so far, this musta been recorded a little while ago.
I was not prepared to sit in 30 degree heat in traffic today. Made me wish for that thunder again.
I had a whole math course on linear solvers for partial differential equations sooooo:
The reason that conjugate gradient (CG) does not work for some of the system of equations is because the matrix has to be symmetric positive definite (SPD, wiki is your friend) for CG to work. Some differential equations give a positive definite matrix but others don’t. This is a bummer because CG is really fast, especially for sparse matrice, way faster than SSOR which does not require positive definitiveness. So if you still want to have a iterative solver for the equations you would have to look in to “iterive methods for systems with a non symmetric positive definite matrix”. There are a lot of these solvers but they all have their problems and advantages.
Since solving the matrix is no longer the main problem this information may not be needed but yeah. If you would want to have some good reference materials please ask!
I just had an idea. If you could give me (an example) of the matrix to solve (or I look in the source code) I could test different solvers on them. Since SciPy all have them pre-programmed would could quite easily test which one is fastest. You can then integrate it your seld in C++ if you would want to.
The wiki page on iterative methods summarizes the options good options quit well under Krylov Subspace Methods:
Krylov subspace methods work by forming a basis of the sequence of successive matrix powers times the initial residual (the Krylov sequence). The approximations to the solution are then formed by minimizing the residual over the subspace formed. The prototypical method in this class is the conjugate gradient method (CG) which assumes that the system matrix A is symmetric positive-definite. For symmetric (and possibly indefinite) one works with the minimal residual method (MINRES). In the case of non-symmetric matrices, methods such as the generalized minimal residual method (GMRES) and the biconjugate gradient method (BiCG) have been derived.
there is extended positional based dynamics (XPBD) that improves on the accuracy but is still missing the forces as far as i know but it shouldn't be too hard to reverse calculate the forces from position and velocity changes
Good to know, thanks for the suggestion!
XPBD is a wonderful method due to its simplicity and efficiency (no global solver necessary). It does converge to the same solutions
Forces can be read directly from the constraint lambdas by multiplying by dt^-2.
Unless I'm missing something, the paper literally shows accurate force measurements.
Sounds like a heavy duty boat engine lol
I noticed that too lol
When you like a content creator enough to listen to a Brilliant sponsor slot for the billionth time to show support... lol
Thanks for being a legend 🙏
I never cease to be more and more entertained by your content. You've become the CZcamsr I look forward to videos from the most.
It's always cool to see the stuff you learn at uni actually getting used in real life. Or at least your own life, not some company at the other side of the world. Hopefully my exam of numerical mathematics goes somewhat well this summer...
Admit it, this video was the true reason you built this sophisticated Bocchi engine simulator 😂
I would be lying if I said a V69 simulation wasn't the plan from the start...
@@AngeTheGreat OMG HAHAHA
everywhere I go
I see her face
💕🟨🟦
The Rock
@@jaypab🗿
Fascinating! The sound has so many layers to it as the engine goes up in rpm. It's also crazy to see the fuel consumption going up so fast on the right, this would not be cheap to run.
This homie just brushed over Doctoral level mathematics like it was scrambled eggs......
Talking about fluid simulations have you seen SpaceX's talk "GPUs to Mars: Full-Scale Simulation of SpaceX's Mars Rocket Engine" ? It has some cool tricks for spending compute power strategically where you actually need the precision. Instead of just the same amount of compute getting used everywhere in the simulation.
As an Automotive Technician of 10+ years and Mechanical Engineer, it legit sounded as if it was running lean on a good portion of those cylinders. This is extremely interesting man! Please keep the content coming and thank you for the content so far. I just stumbled upon your amazing content in the last day or two here.
Some aircraft piston engines would be an interesting application of this. Being able to run at variable barometric pressures, duel magneto running, single magneto failures or fouling, etc. Turbojet engines and high bypass jet engines would also be an interesting simulation.
HEY MA... LOOK I'M ON TV!!
🎉
This is really the most interesting videos I have seen on the internet. It is mind boggling that a single person can create such amazing software. What mountains have you climbed, what roads have you traversed to have gained this knowledge? Asking for us mere mortals.
"warning: video contains math"
"Nyeh, I can handle some numbers!"
As it turns out he, in fact, could not handle some numbers.
I spent some time creating a hybrid rocket engine simulator. That was pain. Can't imagine doing something like this. I've got a lot of respect for you.
There's no way I would have understood anything without the conversation to Egyptian cubits. However I feel a little let down that you didn't convert to my primary measuring unit, plank lengths
BOCCHI THE ENGINE
BOCCHI PISTON
BOCCHI PISTON
i was about to say that😂😂
Bocchi the Piston
i am very thankful that you included Valve Hammer Units, i wouldnt know how big the engine was otherwise
Bocchi the piston
BOCCHI THE MOTOR
Bocchi the V69 engine
Evaluating the matrices symbolically first could lead to massive gains, think FFT vs standard DFT.
Also utilising double derivatives projected as the predictive value gives a good enough baseline, that it becomes possible to use 16bit frames for SIMD and still keeping good accuracy. Especially with reciprocating simulations where there is a self correction factor by the nature of the machine before the simulated.
If you can get away with 16 Bit corrections on a 32bit data path you have an instant 2x speed increase.
4:26 *looks away for five seconds to grab water*
"What did I miss--"
nice math warning, i understood NOTHING but your voice is so nice i stayed. 10/10 i wish i wasn't dropped as a child.
Just found this channel. Absolutely in love!
350 Valve Hammer Units
THAT'S THE MEASURMENT WE NEEDED! THANK YOU!
Even though I don't know much about code, I always enjoy watching your videos! I love your passion and attention to detail with the project
Could be an interesting challenge to obtain one of those little simple RC airplane engines, which are relatively cheap and easy to run on a workbench, and see how close you can get in simulating its sound and behavior to the real thing. Or maybe a grass mower engine could be a convenient one to try, though a more complex engine to emulate.
Its amazing how far the project has come, can’t wait for the release of 3d!
For working with sparse matrices there is a header-only library called Eigen.
It's rather fast, threaded, uses enhanced instruction set and setting up a sparse matrix is fairly straightforward. And it has a decent documentation.
Ange, this truly is Great. I've known a few brilliant devs, all of whom make me feel really dumb, but you have leveled up on them with this. Thank you for posting these.
Amazing work as usual Ange.
When UI 2.0 :)
Thanks 🙏 Working on it right now actually, keep an eye out for the next video!
This all looks amazing. Can’t wait for the full release on steam.
I am a total noob and have no clue what most of those fancy words mean, but i downloaded the free version and all i can say is simply: I love You for creating this
Love your content! Can't wait to get to the point of being able to write my own turbo diesel simulator!
I just love the convertion table, i wouldn't have been able to picture the size of a v69 without the hamburger metric, thanks for that ❤️
09:30 ah yes, just a few of the many non-official measurement units of the United Nations of the Internet. Now we need to know what 22 feet equals to in unicorn horns, bananas, washing machines, giraffe necks, freedom eagle wingspans, capybaras and subway sandwiches.
When I seen the connecting rods bug out like that on 1:14 it made me wonder if there was a way to simulate a catastrophic failure of the engine, like spun bearings, bad rings, rod knock, and throwing rod. If there is that would pretty neat
Thank god you converted to Hammer Units, the only true standard unit of measuring distance.
You're doing great work, this is a groundbreaking piece of software and I'm so excited to see what changes every video!
I love how the sponsor forces you to make regular video
Keep being awesome man! I'm so happy to see you get sponsored, you deserve it!
Now we need a carburetor simulator to go on top. Drag racers will pay big dollars for this.
Good idea, was thinking about a gear change simulator myself.
I'd like to see some big Diesel engines simulated, like the EMD 16-710-G3C-T2, a 16 cylinder, turbocharged diesel engine with 710 cubic inches of displacement and a really neat sound. The EMD 20-645E3 is another neat turbocharged engine, with 20 cylinders and 645 cubic inches of displacement. The two engines make 4,300 and 3,600 horsepower, respectively. They're also both two-stroke engines.
7:10 well it seems that engine sim is like halfway done! i wish you all the best during development ange!
The fact that a V69 sounds like a toilet flushing on startup is hilarious
you're prolly one of the smartest people in toronto and not a road runner lol, crazy to think some one this good at this stuff lives close, thanks for the motivation
11:12 - it's definitely not fake. It's sympathetic resonance that comes with every engine ever made. This is honestly proof that your physics code is operating at least somewhat properly.
I believe you already have convolution implemented for your audio engine. Could you add the ability to load impulse responses so we can hear what the engine sounds like in different environments (garage, tunnel, open road, etc.)?
The sound reminded me of an old U-boat diesel engine sound, maybe because it had 8x2 cylinders on relatively low RPM. Great content, btw!
Cool simulation! I think what you're hearing is that at low speeds, this engine is putting out a quite audible tone. At 730rpm the engine produces an exhaust note who's fundamental frequency is 420hz (assuming perfect equal length headers and firing order). I think from there as we hear it rev up it generates a sub harmonic at the engine's combustion cycle (IE fundamental equal to 1/2 RPS) due to uneven bank counts and pairings. Much like the thrum of a cross plane V8, but more severe.
i'm so excited for the next videos! this simulator has a sentimental value to me and i love it so much.
Hey Ange, I recently wrote a 3D position based dynamics (physically accurate through extended position based dynamics) where I also use and calculate forces.
I simulate a car with suspension and some other constraints. It is unconditionally stable with possibility of infinitely stiff springs. Working with xpbd was a breeze and the math is far easier then global solvers.
I'm not one for showing my work often and the visuals aren't all that pleasing but I can show it to you and eleborate on the methods and papers use.
I'm not so sure how to contact you directly but let me know if you like to talk.
Feel free to join my community Discord server (link is in the description). I'd be interested to hear more about what resources you used and about XPBD technique. Thanks for watching!
My man started making a proof of concept for realistic engine sound in video game just for fun and endend up creating a tool that could be used by the whole automotive industry
When thinking about your engine simulator, everything comes down to matrix operations. why isn't it possible to outsource the heavy parts to the gpu since gpus are made to deal with matrices in the first place, aren't they?
it IS possible but might not be worth it - the RAM-VRAM latency might kill any possible gains. You have to remember that you need to move all the data to the GPU's ram and then move the results back to main ram and this takes not-insignificant amount of time.
Many numerical simulations software moved entirely to GPUs for that very reason - meaning he would have to rewrite EVERYTHING to GPU and that might be a LOT of work
Instead of solving for position using Newton's three laws directly, you could use other formalisms such as Lagrangian mechanics, or Hamiltonian mechanics. Constraints are handled there directly, instead of having them as an afterthought.
I'm getting Rockwell Automation Retro Encabulator vibes.
Awesome. I happened to find myself making engine sounds in puredata the other day and of course thought of your project, which I first came across while I was into BeamNG. Very impressive stuff, as always.
11:21 "If we slowly open the throttle, we can hear what this engine sounds like at higher RPM"
Ah, yes. The unmistakable sound of an external combustion engine.
Very nice bocchi engine, I approve
This actually sounds incredibly similar to large aircraft radial piston engines from the 40s-60s
Did you implement your own sparse matrix solver? I thought standard practice is to use a library for the well-established linear algebra work
"Standard practice" is not the best way of describing how I do things...
Great vid as always! I love watching your thought process and your progress as it inspires me to continue working on my own fluid simulation!
Incredible work. I'll be looking forward to future updates.
Reminds a little of a Napier Deltic… which you should definitely simulate.
I'm looking forward to see 3D engine simulator. Especially Radial engines (like R-2800, r-3450). Actually, do you have any plans about this type of engines? I mean, they have a little bit more complex systems of valves, rods... And do you have any plans about radial and (not only) engines with sleeves distribution? (Like Bristol Hercules, Centaurus, Rolls-Royce Greece)? Thanks.
I had no idea you were going to release ES on Steam, I'm looking forward to seeing it on there!
This was a really interesting video. Currently studying computer science and game dev. Didn't know how complex matrixs could go was really well explained.
I'm excited for you to simulate diesels! I've really been wanting to have a game that properly simulates the power behind bigger truck engines.
From my own experience of coding a simulation, the best way to solve huge sets of linear equation is:
Just use a pre-existing math package. These solvers are so heavily optimized, you can barely get the same speed by coding from scratch.
Except when that is the whole point...
the optimized algs available for linear algebra are crazy quick!
and since most LA problems can be parallelized, it's best to offload that workload to the gpu
11:33 My laundry washer stepping on the gas.
I'd die to see (and hear!) an F1 V10 simulation from you, and to hear you talk about the difficulties of operating an engine at an RPM of 18-19000
Awesome breakdown of the sim! Love this content
Knowing that some day this will come to steam makes me so excited for the future. Love the simulator as it is, but i can only wait to see where it goes 🔥
11:54 ngl that build up sounds insane, and I can imagine this coming from a huge 22ft engine
Interesting as always, such a cool unique project
First of all huge congratulations on the engine. I think you smashed it out of the park. But I have some concerns about the performance, cause I'm thinking that this is the next step in racing simulators, bit if 50% of the resources are being used just for the engine alone, then we are very far from using it. Again, kudos for the engine. I hope that my comment does encourage you to keep working on it. I understand it has some limitations and that improving it could reduce the quality of the sound you are working on, which is a blast
Can you make a video explaining what that extensive dashboard in the game is, like the indicators that you see next to the engine? Sorry for my horrible english. Im still learning
Love watching the future of motorsports games come to life
Thanks for including barleycorns, I finally feel accepted.