Giter Club home page Giter Club logo

engine-sim's Introduction

Engine Simulator

Alt text

Engine Simulator has moved!

To get the newest releases of the game, click here.

What is this?

This is a real-time internal combustion engine simulation designed specifically to produce engine audio and simulate engine response characteristics. It is NOT a scientific tool and cannot be expected to provide accurate figures for the purposes of engineering or engine tuning.

How do I install it?

This is a code repository and might not look like other software that you're used to downloading and installing (if you're not familiar with programming). To download a ready-to-use version of the application, navigate to the releases page, find the most recent release (ex. v0.1.5a), click "Assets" and download the .zip file with a name that starts with engine-sim-build. Unzip this file, then run bin/engine-sim-app.exe. The simulator should then start normally.

Check out our Frequently Asked Questions if you need more details.

How do I use it?

The UI is extremely minimalistic and there are only a few controls used to interact with the engine:

Key/Input Action
A Toggle ignition
S Hold for starter
D Enable dyno
H Enable RPM hold (see below for instructions)
G + Scroll Change hold speed
F Enter fullscreen mode
I Display dyno stats in the information panel
Shift Clutch (hold spacebar at the same time to slowly engage/disengage)
Up Arrow Up Gear
Down Arrow Down Gear
Z + Scroll Volume
X + Scroll Convolution Level
C + Scroll High frequency gain
V + Scroll Low frequency noise
B + Scroll High frequency noise
N + Scroll Simulation frequency
M Increase view layer
, Decrease view layer
Enter Reload engine script
Escape Exit the program
Q, W, E, R Change throttle position
Space + Scroll Fine throttle adjustment
1, 2, 3, 4, 5 Simulation time warp
Tab Change screen

Using the RPM hold

The RPM hold feature will hold the engine at a specific RPM and also measure the engine's horsepower and torque at that RPM. You can enable RPM hold by pressing the H key. You must then enable the dynomometer (press the D key) in order for the RPM hold to take effect. To change the hold speed, hold the G key and scroll with the mouse wheel. The RPM hold will be shown on the DYNO. SPEED gauge in the lower left of the screen.

Why is the code so sloppy?

I wrote this to demo in a YouTube video, not as a real product. If you would like it to become a usable product please reach out to me or join my Discord (link can be found in the description of the aforementioned YouTube video). I use this codebase for my own purposes and so it might change frequently and without warning.

How do I build it? (Ignore this section if you're not a developer!)

Note: this project currently only builds on Windows!

Step 1 - Clone the repository

git clone --recurse-submodules https://github.com/ange-yaghi/engine-sim

Step 2 - Install CMake

Install the latest version of CMake here if it's not already installed.

Step 3 - Install Dependencies

You will need to install the following dependencies and CMake will need to be able to locate them (ie. they need to be listed on your PATH):

1. SDL2
2. SDL2_image
3. Boost (make sure to build the optional dependencies)
4. Flex and Bison

Step 4 - Build and Run

From the root directory of the project, run the following commands:

mkdir build
cd build
cmake ..
cmake --build .

If these steps are successful, a Visual Studio solution will be generated in build. You can open this project with Visual Studio and then run the engine-sim-app project. If you encounter an error telling you that you're missing DLLs, you will have to copy those DLLs to your EXE's directory.

Patreon Supporters

This project was made possible by the generous donations of the following individuals!

Grease Monkeys

Devin@Hondatuningsuite nut Devin C Martinez WelcomeCat Saints Sasha
Ida 8858 Emily Steelorse Kruddy Sgt. Fluff
darcuter FatFluffyFox Benton1234 Jim C K Flaten The Zuck
Blade Skydancer Ye' old apple Hayden Henderson AlphaX Lucas Martins Bündchen
Jay Dog damo IBS-IS-CRAP Snowy Noah Greenberg
Eisberg Brendan M. Alex Layton Lukas Bartee Thibaut Dubuisson
The Cheeze Ity JoeJimTom MichaelB450 Björn Bartdavy
sasha bandelier Caleb Black COOKIES Andrew Cooper asimo3089
Vim Wizard Kevin Arsenault Carl Linden Kele Tappi Kroklethon
labourateur viperfan7 SlimmyJimmy Jason Becker Sascha Kamp
ves Supernalboot BeamNG Paul Harrison Tyler Russell (Nytelife26)
nicholas jacobs DrDotMadness AVeryPlainTyler Zach Perez Paul Schaefer
Clay Bauer CR33DYM0N14 julien nadeau Patt313 Philip Edwards
RegularRuby670 Mateusz Ładosz FémLol Stúdió Crazy Yany Elden
Tristan Walker Matthew McDonald Jan-Sander Huiting Mitchell Almstedt Dylan Lebiedz
Name Here LoganBoi FNAF Epic Randomness MrPiThon mike
dung Alvaro ArroyoZamora Skinna Godwin BeppoBarone レナVA
Sabata Brady Fulham Powerpuncher NK10K Gavin Osowski
Orbitstrider Steven Doyle Jaksu2696 Toni Devin Abolins

Tuners

Boosted Media Matthew McLennan Venican Lyan le Golmuth Alberto R.
BetaToaster Akira Takemoto J Anderson Apolly007 LexLuther
xilophor Robert K viktor lind Adrian Kucinski sarowie .
Chris Fischer Marlod Chase Hansen Aidan Szalanski Andrew Taylor
Jason Hwang Juuso Natunen Ian Moss PickleRick Beljim46
RSOFT92 UCD Sped OldManJenkins James Hart
Kalle Nilsson XxBrasta455xX Colin Sandage Dakota Mackinnon Carter Kopp
Jakub Kozak CJ Plessas Loizeau Charles Mills YellowLight
Didrik Esbjug Alessandro Dal Pino Carter Williams Robert D Cadence Plume
BLANK Provenance EMU Dylan Engler Nathan Rojas Cornelius
Acid larsloveslegos Maxime Desages GM BreadForMen
Devin Freeman Lieven RYCKEBOER Amelia Taylor Jelle Plukker sodmo
Jimmy Briscoe Cirithor Martin .K DMartland Lucas Diem
Richard Budíček Jack Sheppeard Meemen Anderson Huynh NPException
Mattia Villa C AIDAN POWELL Brenn_the_Otter Lane Mosier
Ceze oranjest1 Jw ISON Mathew Graham
MACHINA John Crowell Asher Blythe Cronos Skies Matt Amott
CpTKugelHagel Simon Krayer Caleb Bek Monster Man25 GeneralMoineau
EsuKurimu Caleb Sartin Jared L. Hunter Wood Ben Poole
Steven Victoria Jordan Zondlak Agelessgod Christopher Fahs Jonathan Vincent
Dalton Guillot Simon Stojanovic Andrew Urbanczyk deniaL Tyler Hughes
vPam Justin Kruithof Curtis C Coomber Sawyer Clark Mike Hart
Ciro Rancourt Miles Guo Rewind E=mc^2 Keaton Call
J.Es Jeremy B Chance Hall Jack Tompkins Race Sim Studio
Quentin ZAOUI Floyd Henderson James Haylow Milkshiekh Wyatt Todd
User 2820 Leon Schutte CYBERBUG_JR sebiii Keegan
Victor Cosiuga Rolly ! Elias Pettersson Tyson Makovec Bill McDermott
Phontonic Simon Armstrong avec KidozyGAME (Dead) Stephan Cote
Justin Biggerstaff Jabba Jubba notD34THNIGHT Inventor Wesley Bear
Supersonic2510 Pixel Simon Bernhardt Bas Vangermeersch ToyotaCipra
kyle crawford ApatheticWood Ben Vaughn Erich Westhoven Zack Myers
Tbjoern Vetle Høgås Derek Thom Aaron Beck

Junior Mechanics

Karol Szép Leon Jordan Nathan Higginson Patrick F Samuel Picard
Alexander Fritsch Lucas Scarpi Jack Humbert G2Eneko SweCreations
Marius Becker Cedric Wille infernap12 Julian Dinges Wamuthas
Alex Mason Hawar Karem Melonenstrauch Jacek Dębski Alex Eastman
Darren Taing Po Wang Giorgio Iannucci Levis Eden
Alin Chiparatu Arjun Mandakath A.M. Dylan Ryan Noah Entrekin
GT130 Josh D generic Henrik Cohrs Nic Yetter
Dan Fredriksen 153AN1MJ Rasmus EpicEcho Kaur Hendrikson
Maddox Partridge L33TIFY_ Zack Fletcher teiiio Mike Zaite
Evan Sonin Christopher Zimmerman PrefacedVase funtomr Triton Alabaster
appelpie Julien Ferluc AnomalousFerret_ Miles Orozco Spencer Teeter
ThatCanadian Harry Prabowo Dylan Rogerson Jaedyn Allen Zephyr Sefira
Alexander Stone Mason Little Wojciech Czop ryzen5 Kosta Diamantis
Karol Stodolak Tim van der Linde Loïc Ruttner jonthefuzz AsgarK
James Morgan Elijah 1ntl Tobias Johansson Mome
P SOPA_ Shingekuro Sean King Russell Marsh
Alyx Ranas Naters305 ChrisakaMrXD Nic sean
Zach Hagedorn Jhon lenon Everett Butts Kyan ranger Nation
Hiago Oliveira Texi MrRhody Inglorious Bastard Marty Mitchell
Justin Chao ManuelS Cornelius Rössing Pedro Freire Anthony Stuart
Hubba Nubba Skychii Joe Underwood Xander_ Notbigdank
Sander D. Lars Joosten Danksa Metrostation Myles Wommack
Derrick Sampson Corey Hannen Matteo La Corte Octothorp Obelus David Baril
Soyuz Kafire Ivan Coha BigElbowski Apolepth Julian Krad
David Soulieres Eric Huang Léo Vias Riccardo Mariani Vic Viper
Shinkaaaa Mumaransa Michael Banovsky Hendrik Voss Inverted Blackhat
skipyC Tobias Moor jaky3 . Clément LEGRAND Ian C. Simpson
Challier Jan Przemysław Drabik Dsand23 Smooth DLX The German Dude
CrazyEagle Jordon Goodman HenryWithaG . Oscar Krula Brayden Moore
Steven Nall Wolfert papajonk Andrew Ben Kingston
Julian Vogl Maxime Lubrano MrMekouil Doudimme Jacob Hultberg
Nolan Orloff Mike tobi9899 Danila Frolkin Xecotcovach
Aj Carcar404 John Martin Dominik Greinert Lukas Stadler
Oliver Yang sonax51 Marcel Kliment Chris David Rush
LethalVenom13 Dave Osterhoff Anto1709 Ben Morgan Munroe
Ivor Forrest Sam Hopkins Atte Dax William Bergström
homelessmeme Thanleft Zaxerg Robeloox Maximilian-Lukas Marz
Morgn Seth Monteleone playfulmean videos Lanimations LA Bram G
Benoit Fournier Bernar Lepiller Nicolas Baur the Snekers
Darkmount Tobiasz Michalik Aidas Ri Daniel Postler Skim_Beeblez
Impetus Thunderbird324 Fred Joss Krzysztof Radowski Azerrty
Harrison Speck Matt Baker BigLynch Markus Pelto IMBIBE
James L Plummer Rose Giles Jonas Brekka HASTRX Lepoucehumain
Naomi Humin qkrrudgks Johann Gross Janis Knappich WhatTheDuck
테루 Glimple Bort Jacob Tudisco Tanner Julian kaspi
nathan gould Randal Rainis Kruus Beppierre Craig Martin Thomas Bukovsky
Colaxe Robert Oram Matsuy15 L Kacpe Alex Sedlic
Mark Benson Mhenn! Anders Nelson Dingus Rustle
Marco Schulz stratum brochier gabriel Thomas brody of hillcountry
Thomas Afford Brody Blaskie Martien Gaming Adrien MC William A Grubbs
Trevo Ph.D. Donovan Gibson Polish R3t4rd Keith Price LAWL CAKE
Rhien Schultz FireThrow13 Seraphim Titus Standing Matt Miklos
B Dub Jonathan Ekman Al Pomeroy Vestii Wil
adrian Airatise TJ Sinkoski Shotts SilverStone Reagan Carbaugh
WarAestheticsRebooted Aidan Case Casey Bryant Goodwin Konrad Adam Larcher
Kazar Xin Xiao Riccardo Marcaccio William S. Francis Filion Loïc
Kenny Deane Blackspots mike MXT Joshua Gibson
milky boi Hagen gunmaster929 jgvan Benny 282
Sean Wehner Christian Poole Ethan Tsukiyama Shuu Ooof_uhhh_haah
sano ken ch Diego Martinez Chuck GalaxyFrogs TheGeForce
Chriphost Carthage Greg L Chipskate Muhammed Mehmood
Hamilton Sjoberg Amina Moh vSiiFT Jeremy Wren Esteban Acosta
John A Ullenberg Michael Morozov Andrew Webberley Nathaniel Lim Aaron Ksicinski
Apocalypt Josh batuzich Ed Hunter Gene Brockoff
Redheadspellslinger. Pablo Magariños Nilz Jose Manuel Silva Calvo AJ
Ethan Wille Aurora Derek Shunia Jan Nope Mircea
Giancarlo Cestari Tanner Edge brad. Connor Merrick Martin Scholer
Deppy Dan Smith Tyson Jac Comeau Itemfinder
Tischer Games Pedro Henrique BeenWashedUp martin wolff Kurt Houben
Thomas Onslow Brendan Puglisi Kai Anquetil Rudolph Ignatenko CloudHackIX
Zach Carreau Jonathan Vanderlyn Krobivnov ienergy Leifster
Mikael Kaaronen Glen H.Helsing ange The Nobles
Johnathan Johnson Juha Merentie Jim Fares Tom Marshall Superferrariman
Zakary Zisa JustTy 晟道 杜 Dnialibr Williams Takumi Fujiwara
Koen van Hal Jonathan Hill Marco Siciliano Kevindosenfutter Angry Prawn
Natharic 67 Rafael Monteiro Jacob Ashline ChironTheFloof Caleb Dauphinee
Tony Zac L AlainMoto FPV eirik johan johnsen Elderet
Miles Longmore lemon head Viccy Casey Kajetan Cupa
Conejero00 Bill Gricko A cow wearing a turban Danni Nowicki Udo Schmidt
Tyler Swords Constellation Gaming Manimo valentine Jules Schattenberg
Brandon Crotts Philipp Popetschnigg Tiziano Della Fazia goodgamer1109 Joshua Thomas
Jeff Testa Avery Snyder Josh Kern Triptagram Bayon Antoine
Iván Juárez Núñez Amery Martinat ElArGee Cory Green lucas Di lorenzo
Caleb Sandersier

engine-sim's People

Contributors

akcore avatar ange-yaghi avatar boogiehasfun avatar dogeskii avatar jackcossack avatar jckf avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

engine-sim's Issues

Build Error: 'malloc.h' file not found

What a fascinating project! Thanks for making it public. I immediately wanted to try it out!

However, I am not familiar with C++ so it might be because of my lack of experience.

I have followed the instructions I get an error like that:

fatal error: 'malloc.h' file not found
#include <malloc.h>
         ^~~~~~~~~~
1 error generated.
make[2]: *** [dependencies/submodules/delta-studio/CMakeFiles/delta-core.dir/src/yds_animation_action.cpp.o] Error 1
make[1]: *** [dependencies/submodules/delta-studio/CMakeFiles/delta-core.dir/all] Error 2
make: *** [all] Error 2

I am using macOS btw.

When I do a search about #include <malloc.h> I see that people suggest just using #include <stdlib.h> instead.

The error happens on this file:
dependencies/submodules/delta-studio/include/yds_allocator.h

How to resolve this issue?

How do you switch to a different Engine?

I just downloaded this, and I have to say this is amazing and thank you for letting the public use this for free, but I have a question on how to change which engine you are simulating? Is it something in the files, is there a key or set of key that a press? Once again this is amazing.

High pitch buzz upon executing application

High pitch sound only lasts maybe half a second. Not exactly an issue but it is odd.
I also can't seem to keep the engine running when switching into gear - yes, I'm using clutch too.
Otherwise, this application works very very well. What an amazing concept.

Feature request: Set default values

Feature request: There should be a way to set a default value, either globally or per engine, so each time you launch the app you don’t need to reset the simulation frequency, volume, etc.

fatal error: xmmintrin.h: No such file or directory

When i try to build from source, this happens when i run cmake --build .

[  0%] Built target csv-io
[  1%] Building CXX object dependencies/submodules/delta-studio/CMakeFiles/delta-core.dir/src/yds_animation_action.cpp.o
In file included from /home/pitch/engine-sim/dependencies/submodules/delta-studio/src/../include/yds_animation_action.h:7,
                 from /home/pitch/engine-sim/dependencies/submodules/delta-studio/src/yds_animation_action.cpp:1:
/home/pitch/engine-sim/dependencies/submodules/delta-studio/src/../include/yds_math.h:4:10: fatal error: xmmintrin.h: No such file or directory
    4 | #include <xmmintrin.h>
      |          ^~~~~~~~~~~~~
compilation terminated.
gmake[2]: *** [dependencies/submodules/delta-studio/CMakeFiles/delta-core.dir/build.make:82: dependencies/submodules/delta-studio/CMakeFiles/delta-core.dir/src/yds_animation_action.cpp.o] Error 1
gmake[1]: *** [CMakeFiles/Makefile2:595: dependencies/submodules/delta-studio/CMakeFiles/delta-core.dir/all] Error 2
gmake: *** [Makefile:160: all] Error 2

Idk why this is happening

Feature request: add button/feature to run sim out of realtime and record results to wav file

There are several reasons why I think this would be a good feature to add:

  1. My laptop is very low spec and sadly can't run the sim at full speed without stutters even with the update frequency turned down low, this means sadly I can't just record the output in audacity like I was hoping to be able to do, having this feature would allow people with really low spec pcs/laptops like myself to still be able to use it to an extent even if you can't run it at full speed in realtime
  2. Somewhat related to #20 Being able to record to a wav file would be a good feature to have for games, with most popular game engines it would be pretty difficult to integrate the sim directly (not to mention the aforementioned negative performance implications which if you're making something like a racing sim where you have many cars driving at once it would be really bad) so the best way to use the sim in this case would be to set up a list of throttle/shift inputs and have the sim read through those inputs and render out a wav file based on them, kind of like how a DAW can render out a song based on the notes in midi tracks. It obviously wouldn't need to be too complex, just something like "hold throttle at x% for y seconds, shift into gear z," etc.

Error with CMake: Could NOT find FLEX

When I try to build I get the error: CMake Error: Could NOT find FLEX
Where do I get/build flex?

I have all required dependencies installed and added to PATH

Full error message from Visual Studio:

CMake Error at C:/Program Files/Microsoft Visual Studio/2022/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.23/Modules/FindPackageHandleStandardArgs.cmake:230
 (message): Could NOT find FLEX (missing: FLEX_EXECUTABLE)

I am using Visual Studio 2022 on Windows 10.

Zero degree indicator

I think it would be nice to have an indicator on the crank and cams to show where 0 degrees on them is. It would visualize for "engine builders" where they have placed their journals and lobes, instead of them having to calculate it and carry some internal mental representation of what they're doing.

Poor Performance Issue (May be bug)

Noticing poor performance when running engines with multiple cylinders, but my CPU isn't maxed out and neither are any of the cores. FPS will do a weird spiking and dropping thing, the engine will turn over but not run by itself, and the game will run slow and not smooth.

Could simply be a processor speed issue, but I thought it was weird that my CPU cores weren't even being maxed. Noticed that they wouldn't go much past 50%.

I know some others were experiencing this and I wanted to add it as an issue in case this is a bug and not just hardware limitations.

I have an i7-7700 processor for reference (4 core, 8 thread, 4.2ghz boosted).

The sim is incomplete

I love this sim!
But to change the engine, we need to edit some files.
You know the deal.🤓
It would be more intuitive to have a menu to change engines.

Also its too hard to edit/make the engines!!!!!
It would be cool to have a visual editor like Automation.
Yeah.🤓

If someone could do it, it would be simulation-changing

Performance Issues

Im having great performance issues and i don't know why exactly (probably cuz PC)

I would like to know the minimum specs for running the simulation OK, if those are available, please and thanks

a way to hook up pedals and a shifter

I think there should be a way to hook up pedals and a shifter or just pedals for the sim I think it would make things more interesting and fun. :)

No linux support

It tries to build a bunch of windows related stuff... And after it fails at missing windows headers it fails even more with some internal stuff.

I believe it is possible to make workarounds that will fill in the gaps or at least make it buildable.

Full logs:

max@(master)[~/p/engine-sim/build]$ cmake -DCMAKE_BUILD_TYPE=Release -G"Ninja" ..
-- The C compiler identification is GNU 11.1.0
-- The CXX compiler identification is GNU 11.1.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found Python: /usr/bin/python3.8 (found version "3.8.10") found components: Interpreter 
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE  
-- Found SDL2: /usr/lib/x86_64-linux-gnu/libSDL2.so;-lpthread  
-- Found SDL2_image: /usr/lib/x86_64-linux-gnu/libSDL2_image.so  
-- Found Boost: /usr/lib/x86_64-linux-gnu/cmake/Boost-1.71.0/BoostConfig.cmake (found suitable version "1.71.0", minimum required is "1.40") found components: filesystem 
-- Found FLEX: /usr/bin/flex (found version "2.6.4") 
-- Found BISON: /usr/bin/bison (found version "3.5.1") 
-- Configuring done
-- Generating done
-- Build files have been written to: /home/max/p/engine-sim/build
max@(master)[~/p/engine-sim/build]$ cmake --build .
[1/352] Building CXX object CMakeFiles/engine-sim-app.dir/src/main.cpp.o
FAILED: CMakeFiles/engine-sim-app.dir/src/main.cpp.o 
/usr/bin/c++  -DBOOST_ALL_NO_LIB -I../dependencies/submodules -O3 -DNDEBUG   -std=gnu++11 -MD -MT CMakeFiles/engine-sim-app.dir/src/main.cpp.o -MF CMakeFiles/engine-sim-app.dir/src/main.cpp.o.d -o CMakeFiles/engine-sim-app.dir/src/main.cpp.o -c ../src/main.cpp
In file included from ../dependencies/submodules/delta-studio/include/yds_core.h:12,
                 from ../src/../include/delta.h:4,
                 from ../src/../include/geometry_generator.h:4,
                 from ../src/../include/engine_sim_application.h:4,
                 from ../src/main.cpp:1:
../dependencies/submodules/delta-studio/include/yds_windows_audio_wave_file.h:6:10: fatal error: Windows.h: No such file or directory
    6 | #include <Windows.h>
      |          ^~~~~~~~~~~
compilation terminated.
[2/352] Building CXX object CMakeFiles/engine-sim-app.dir/src/engine_sim_application.cpp.o
FAILED: CMakeFiles/engine-sim-app.dir/src/engine_sim_application.cpp.o 
/usr/bin/c++  -DBOOST_ALL_NO_LIB -I../dependencies/submodules -O3 -DNDEBUG   -std=gnu++11 -MD -MT CMakeFiles/engine-sim-app.dir/src/engine_sim_application.cpp.o -MF CMakeFiles/engine-sim-app.dir/src/engine_sim_application.cpp.o.d -o CMakeFiles/engine-sim-app.dir/src/engine_sim_application.cpp.o -c ../src/engine_sim_application.cpp
In file included from ../dependencies/submodules/delta-studio/include/yds_core.h:12,
                 from ../src/../include/delta.h:4,
                 from ../src/../include/geometry_generator.h:4,
                 from ../src/../include/engine_sim_application.h:4,
                 from ../src/engine_sim_application.cpp:1:
../dependencies/submodules/delta-studio/include/yds_windows_audio_wave_file.h:6:10: fatal error: Windows.h: No such file or directory
    6 | #include <Windows.h>
      |          ^~~~~~~~~~~
compilation terminated.
[3/352] Building CXX object CMakeFiles/engine-sim-app.dir/src/geometry_generator.cpp.o
FAILED: CMakeFiles/engine-sim-app.dir/src/geometry_generator.cpp.o 
/usr/bin/c++  -DBOOST_ALL_NO_LIB -I../dependencies/submodules -O3 -DNDEBUG   -std=gnu++11 -MD -MT CMakeFiles/engine-sim-app.dir/src/geometry_generator.cpp.o -MF CMakeFiles/engine-sim-app.dir/src/geometry_generator.cpp.o.d -o CMakeFiles/engine-sim-app.dir/src/geometry_generator.cpp.o -c ../src/geometry_generator.cpp
In file included from ../dependencies/submodules/delta-studio/include/yds_core.h:12,
                 from ../src/../include/delta.h:4,
                 from ../src/../include/geometry_generator.h:4,
                 from ../src/geometry_generator.cpp:1:
../dependencies/submodules/delta-studio/include/yds_windows_audio_wave_file.h:6:10: fatal error: Windows.h: No such file or directory
    6 | #include <Windows.h>
      |          ^~~~~~~~~~~
compilation terminated.
[4/352] Building CXX object CMakeFiles/engine-sim-test.dir/test/function_test.cpp.o
FAILED: CMakeFiles/engine-sim-test.dir/test/function_test.cpp.o 
/usr/bin/c++  -DBOOST_ALL_NO_LIB -I../dependencies/submodules -isystem _deps/googletest-src/googletest/include -isystem _deps/googletest-src/googletest -O3 -DNDEBUG   -std=gnu++11 -MD -MT CMakeFiles/engine-sim-test.dir/test/function_test.cpp.o -MF CMakeFiles/engine-sim-test.dir/test/function_test.cpp.o.d -o CMakeFiles/engine-sim-test.dir/test/function_test.cpp.o -c ../test/function_test.cpp
In file included from ../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/constraint.h:6,
                 from ../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/rigid_body_system.h:5,
                 from ../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/generic_rigid_body_system.h:4,
                 from ../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/scs.h:4,
                 from ../test/../include/scs.h:4,
                 from ../test/../include/gaussian_filter.h:4,
                 from ../test/../include/function.h:4,
                 from ../test/function_test.cpp:3:
../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/matrix.h:20:13: error: ‘__forceinline’ does not name a type
   20 |             __forceinline void set(int column, int row, double value) {
      |             ^~~~~~~~~~~~~
../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/matrix.h:27:13: error: ‘__forceinline’ does not name a type
   27 |             __forceinline void add(int column, int row, double value) {
      |             ^~~~~~~~~~~~~
../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/matrix.h:34:13: error: ‘__forceinline’ does not name a type
   34 |             __forceinline double get(int column, int row) {
      |             ^~~~~~~~~~~~~
../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/matrix.h:63:13: error: ‘__forceinline’ does not name a type
   63 |             __forceinline void fastRowSwap(int a, int b) {
      |             ^~~~~~~~~~~~~
In file included from ../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/rigid_body_system.h:5,
                 from ../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/generic_rigid_body_system.h:4,
                 from ../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/scs.h:4,
                 from ../test/../include/scs.h:4,
                 from ../test/../include/gaussian_filter.h:4,
                 from ../test/../include/function.h:4,
                 from ../test/function_test.cpp:3:
../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/constraint.h:31:13: error: ‘__forceinline’ does not name a type
   31 |             __forceinline int getConstraintCount() const { return m_constraintCount; }
      |             ^~~~~~~~~~~~~
In file included from ../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/rigid_body_system.h:8,
                 from ../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/generic_rigid_body_system.h:4,
                 from ../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/scs.h:4,
                 from ../test/../include/scs.h:4,
                 from ../test/../include/gaussian_filter.h:4,
                 from ../test/../include/function.h:4,
                 from ../test/function_test.cpp:3:
../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/sparse_matrix.h:264:13: error: ‘__forceinline’ does not name a type
  264 |             __forceinline int getWidth() const { return m_width; }
      |             ^~~~~~~~~~~~~
../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/sparse_matrix.h:265:13: error: ‘__forceinline’ does not name a type
  265 |             __forceinline int getHeight() const { return m_height; }
      |             ^~~~~~~~~~~~~
../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/sparse_matrix.h: In member function ‘void atg_scs::SparseMatrix<T_Stride, T_Entries>::expand(atg_scs::Matrix*)’:
../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/sparse_matrix.h:80:44: error: no matching function for call to ‘atg_scs::Matrix::set(int, int&, double&)’
   80 |                                 matrix->set(block * T_Stride + k, i, m_matrix[i][j * T_Stride + k]);
      |                                 ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/constraint.h:6,
                 from ../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/rigid_body_system.h:5,
                 from ../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/generic_rigid_body_system.h:4,
                 from ../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/scs.h:4,
                 from ../test/../include/scs.h:4,
                 from ../test/../include/gaussian_filter.h:4,
                 from ../test/../include/function.h:4,
                 from ../test/function_test.cpp:3:
../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/matrix.h:18:18: note: candidate: ‘void atg_scs::Matrix::set(const double*)’
   18 |             void set(const double *data);
      |                  ^~~
../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/matrix.h:18:18: note:   candidate expects 1 argument, 3 provided
../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/matrix.h:41:18: note: candidate: ‘void atg_scs::Matrix::set(atg_scs::Matrix*)’
   41 |             void set(Matrix *reference);
      |                  ^~~
../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/matrix.h:41:18: note:   candidate expects 1 argument, 3 provided
In file included from ../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/rigid_body_system.h:8,
                 from ../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/generic_rigid_body_system.h:4,
                 from ../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/scs.h:4,
                 from ../test/../include/scs.h:4,
                 from ../test/../include/gaussian_filter.h:4,
                 from ../test/../include/function.h:4,
                 from ../test/function_test.cpp:3:
../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/sparse_matrix.h: In member function ‘void atg_scs::SparseMatrix<T_Stride, T_Entries>::expandTransposed(atg_scs::Matrix*)’:
../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/sparse_matrix.h:96:44: error: no matching function for call to ‘atg_scs::Matrix::set(int&, int, double&)’
   96 |                                 matrix->set(i, block * T_Stride + k, m_matrix[i][j * T_Stride + k]);
      |                                 ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/constraint.h:6,
                 from ../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/rigid_body_system.h:5,
                 from ../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/generic_rigid_body_system.h:4,
                 from ../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/scs.h:4,
                 from ../test/../include/scs.h:4,
                 from ../test/../include/gaussian_filter.h:4,
                 from ../test/../include/function.h:4,
                 from ../test/function_test.cpp:3:
../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/matrix.h:18:18: note: candidate: ‘void atg_scs::Matrix::set(const double*)’
   18 |             void set(const double *data);
      |                  ^~~
../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/matrix.h:18:18: note:   candidate expects 1 argument, 3 provided
../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/matrix.h:41:18: note: candidate: ‘void atg_scs::Matrix::set(atg_scs::Matrix*)’
   41 |             void set(Matrix *reference);
      |                  ^~~
../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/matrix.h:41:18: note:   candidate expects 1 argument, 3 provided
In file included from ../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/rigid_body_system.h:8,
                 from ../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/generic_rigid_body_system.h:4,
                 from ../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/scs.h:4,
                 from ../test/../include/scs.h:4,
                 from ../test/../include/gaussian_filter.h:4,
                 from ../test/../include/function.h:4,
                 from ../test/function_test.cpp:3:
../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/sparse_matrix.h: In member function ‘void atg_scs::SparseMatrix<T_Stride, T_Entries>::multiplyTranspose(const atg_scs::SparseMatrix<T_Stride, T_Entries>&, atg_scs::Matrix*) const’:
../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/sparse_matrix.h:161:36: error: no matching function for call to ‘atg_scs::Matrix::set(int&, int&, double&)’
  161 |                         target->set(j, i, dot);
      |                         ~~~~~~~~~~~^~~~~~~~~~~
In file included from ../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/constraint.h:6,
                 from ../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/rigid_body_system.h:5,
                 from ../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/generic_rigid_body_system.h:4,
                 from ../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/scs.h:4,
                 from ../test/../include/scs.h:4,
                 from ../test/../include/gaussian_filter.h:4,
                 from ../test/../include/function.h:4,
                 from ../test/function_test.cpp:3:
../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/matrix.h:18:18: note: candidate: ‘void atg_scs::Matrix::set(const double*)’
   18 |             void set(const double *data);
      |                  ^~~
../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/matrix.h:18:18: note:   candidate expects 1 argument, 3 provided
../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/matrix.h:41:18: note: candidate: ‘void atg_scs::Matrix::set(atg_scs::Matrix*)’
   41 |             void set(Matrix *reference);
      |                  ^~~
../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/matrix.h:41:18: note:   candidate expects 1 argument, 3 provided
In file included from ../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/rigid_body_system.h:8,
                 from ../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/generic_rigid_body_system.h:4,
                 from ../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/scs.h:4,
                 from ../test/../include/scs.h:4,
                 from ../test/../include/gaussian_filter.h:4,
                 from ../test/../include/function.h:4,
                 from ../test/function_test.cpp:3:
../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/sparse_matrix.h: In member function ‘void atg_scs::SparseMatrix<T_Stride, T_Entries>::transposeMultiplyVector(atg_scs::Matrix&, atg_scs::Matrix*) const’:
../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/sparse_matrix.h:184:75: error: ‘class atg_scs::Matrix’ has no member named ‘get’; did you mean ‘set’?
  184 |                             target->add(0, j, m_matrix[i][offset + l] * b.get(0, i));
      |                                                                           ^~~
      |                                                                           set
../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/sparse_matrix.h: In member function ‘void atg_scs::SparseMatrix<T_Stride, T_Entries>::multiply(atg_scs::Matrix&, atg_scs::Matrix*) const’:
../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/sparse_matrix.h:207:66: error: ‘class atg_scs::Matrix’ has no member named ‘get’; did you mean ‘set’?
  207 |                                 v += m_matrix[i][offset + l] * b.get(j, block * T_Stride + l);
      |                                                                  ^~~
      |                                                                  set
../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/sparse_matrix.h:211:36: error: no matching function for call to ‘atg_scs::Matrix::set(int&, int&, double&)’
  211 |                         target->set(j, i, v);
      |                         ~~~~~~~~~~~^~~~~~~~~
In file included from ../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/constraint.h:6,
                 from ../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/rigid_body_system.h:5,
                 from ../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/generic_rigid_body_system.h:4,
                 from ../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/scs.h:4,
                 from ../test/../include/scs.h:4,
                 from ../test/../include/gaussian_filter.h:4,
                 from ../test/../include/function.h:4,
                 from ../test/function_test.cpp:3:
../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/matrix.h:18:18: note: candidate: ‘void atg_scs::Matrix::set(const double*)’
   18 |             void set(const double *data);
      |                  ^~~
../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/matrix.h:18:18: note:   candidate expects 1 argument, 3 provided
../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/matrix.h:41:18: note: candidate: ‘void atg_scs::Matrix::set(atg_scs::Matrix*)’
   41 |             void set(Matrix *reference);
      |                  ^~~
../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/matrix.h:41:18: note:   candidate expects 1 argument, 3 provided
In file included from ../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/rigid_body_system.h:8,
                 from ../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/generic_rigid_body_system.h:4,
                 from ../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/scs.h:4,
                 from ../test/../include/scs.h:4,
                 from ../test/../include/gaussian_filter.h:4,
                 from ../test/../include/function.h:4,
                 from ../test/function_test.cpp:3:
../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/sparse_matrix.h: In member function ‘void atg_scs::SparseMatrix<T_Stride, T_Entries>::rightScale(atg_scs::Matrix&, atg_scs::SparseMatrix<T_Stride>*)’:
../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/sparse_matrix.h:234:39: error: ‘class atg_scs::Matrix’ has no member named ‘get’; did you mean ‘set’?
  234 |                                 scale.get(0, index * T_Stride + k) * m_matrix[i][j * T_Stride + k]);
      |                                       ^~~
      |                                       set
../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/sparse_matrix.h: In member function ‘void atg_scs::SparseMatrix<T_Stride, T_Entries>::leftScale(atg_scs::Matrix&, atg_scs::SparseMatrix<T_Stride>*)’:
../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/sparse_matrix.h:258:39: error: ‘class atg_scs::Matrix’ has no member named ‘get’; did you mean ‘set’?
  258 |                                 scale.get(0, i) * m_matrix[i][j * T_Stride + k]);
      |                                       ^~~
      |                                       set
In file included from ../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/scs.h:12,
                 from ../test/../include/scs.h:4,
                 from ../test/../include/gaussian_filter.h:4,
                 from ../test/../include/function.h:4,
                 from ../test/function_test.cpp:3:
../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/gaussian_elimination_sle_solver.h: At global scope:
../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/gaussian_elimination_sle_solver.h:19:20: error: ‘__forceinline’ does not name a type
   19 |             static __forceinline double fastAbs(double v) {
      |                    ^~~~~~~~~~~~~
[5/352] Building CXX object CMakeFiles/engine-sim-test.dir/test/synthesizer_tests.cpp.o
FAILED: CMakeFiles/engine-sim-test.dir/test/synthesizer_tests.cpp.o 
/usr/bin/c++  -DBOOST_ALL_NO_LIB -I../dependencies/submodules -isystem _deps/googletest-src/googletest/include -isystem _deps/googletest-src/googletest -O3 -DNDEBUG   -std=gnu++11 -MD -MT CMakeFiles/engine-sim-test.dir/test/synthesizer_tests.cpp.o -MF CMakeFiles/engine-sim-test.dir/test/synthesizer_tests.cpp.o.d -o CMakeFiles/engine-sim-test.dir/test/synthesizer_tests.cpp.o -c ../test/synthesizer_tests.cpp
In file included from ../test/../include/synthesizer.h:7,
                 from ../test/synthesizer_tests.cpp:3:
../test/../include/low_pass_filter.h:15:9: error: ‘__forceinline’ does not name a type
   15 |         __forceinline double fast_f(double sample) {
      |         ^~~~~~~~~~~~~
In file included from ../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/constraint.h:6,
                 from ../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/rigid_body_system.h:5,
                 from ../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/generic_rigid_body_system.h:4,
                 from ../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/scs.h:4,
                 from ../test/../include/scs.h:4,
                 from ../test/../include/part.h:4,
                 from ../test/../include/ring_buffer.h:4,
                 from ../test/../include/synthesizer.h:8,
                 from ../test/synthesizer_tests.cpp:3:
../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/matrix.h:20:13: error: ‘__forceinline’ does not name a type
   20 |             __forceinline void set(int column, int row, double value) {
      |             ^~~~~~~~~~~~~
../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/matrix.h:27:13: error: ‘__forceinline’ does not name a type
   27 |             __forceinline void add(int column, int row, double value) {
      |             ^~~~~~~~~~~~~
../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/matrix.h:34:13: error: ‘__forceinline’ does not name a type
   34 |             __forceinline double get(int column, int row) {
      |             ^~~~~~~~~~~~~
../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/matrix.h:63:13: error: ‘__forceinline’ does not name a type
   63 |             __forceinline void fastRowSwap(int a, int b) {
      |             ^~~~~~~~~~~~~
In file included from ../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/rigid_body_system.h:5,
                 from ../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/generic_rigid_body_system.h:4,
                 from ../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/scs.h:4,
                 from ../test/../include/scs.h:4,
                 from ../test/../include/part.h:4,
                 from ../test/../include/ring_buffer.h:4,
                 from ../test/../include/synthesizer.h:8,
                 from ../test/synthesizer_tests.cpp:3:
../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/constraint.h:31:13: error: ‘__forceinline’ does not name a type
   31 |             __forceinline int getConstraintCount() const { return m_constraintCount; }
      |             ^~~~~~~~~~~~~
In file included from ../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/rigid_body_system.h:8,
                 from ../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/generic_rigid_body_system.h:4,
                 from ../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/scs.h:4,
                 from ../test/../include/scs.h:4,
                 from ../test/../include/part.h:4,
                 from ../test/../include/ring_buffer.h:4,
                 from ../test/../include/synthesizer.h:8,
                 from ../test/synthesizer_tests.cpp:3:
../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/sparse_matrix.h:264:13: error: ‘__forceinline’ does not name a type
  264 |             __forceinline int getWidth() const { return m_width; }
      |             ^~~~~~~~~~~~~
../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/sparse_matrix.h:265:13: error: ‘__forceinline’ does not name a type
  265 |             __forceinline int getHeight() const { return m_height; }
      |             ^~~~~~~~~~~~~
../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/sparse_matrix.h: In member function ‘void atg_scs::SparseMatrix<T_Stride, T_Entries>::expand(atg_scs::Matrix*)’:
../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/sparse_matrix.h:80:44: error: no matching function for call to ‘atg_scs::Matrix::set(int, int&, double&)’
   80 |                                 matrix->set(block * T_Stride + k, i, m_matrix[i][j * T_Stride + k]);
      |                                 ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/constraint.h:6,
                 from ../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/rigid_body_system.h:5,
                 from ../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/generic_rigid_body_system.h:4,
                 from ../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/scs.h:4,
                 from ../test/../include/scs.h:4,
                 from ../test/../include/part.h:4,
                 from ../test/../include/ring_buffer.h:4,
                 from ../test/../include/synthesizer.h:8,
                 from ../test/synthesizer_tests.cpp:3:
../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/matrix.h:18:18: note: candidate: ‘void atg_scs::Matrix::set(const double*)’
   18 |             void set(const double *data);
      |                  ^~~
../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/matrix.h:18:18: note:   candidate expects 1 argument, 3 provided
../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/matrix.h:41:18: note: candidate: ‘void atg_scs::Matrix::set(atg_scs::Matrix*)’
   41 |             void set(Matrix *reference);
      |                  ^~~
../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/matrix.h:41:18: note:   candidate expects 1 argument, 3 provided
In file included from ../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/rigid_body_system.h:8,
                 from ../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/generic_rigid_body_system.h:4,
                 from ../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/scs.h:4,
                 from ../test/../include/scs.h:4,
                 from ../test/../include/part.h:4,
                 from ../test/../include/ring_buffer.h:4,
                 from ../test/../include/synthesizer.h:8,
                 from ../test/synthesizer_tests.cpp:3:
../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/sparse_matrix.h: In member function ‘void atg_scs::SparseMatrix<T_Stride, T_Entries>::expandTransposed(atg_scs::Matrix*)’:
../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/sparse_matrix.h:96:44: error: no matching function for call to ‘atg_scs::Matrix::set(int&, int, double&)’
   96 |                                 matrix->set(i, block * T_Stride + k, m_matrix[i][j * T_Stride + k]);
      |                                 ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/constraint.h:6,
                 from ../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/rigid_body_system.h:5,
                 from ../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/generic_rigid_body_system.h:4,
                 from ../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/scs.h:4,
                 from ../test/../include/scs.h:4,
                 from ../test/../include/part.h:4,
                 from ../test/../include/ring_buffer.h:4,
                 from ../test/../include/synthesizer.h:8,
                 from ../test/synthesizer_tests.cpp:3:
../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/matrix.h:18:18: note: candidate: ‘void atg_scs::Matrix::set(const double*)’
   18 |             void set(const double *data);
      |                  ^~~
../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/matrix.h:18:18: note:   candidate expects 1 argument, 3 provided
../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/matrix.h:41:18: note: candidate: ‘void atg_scs::Matrix::set(atg_scs::Matrix*)’
   41 |             void set(Matrix *reference);
      |                  ^~~
../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/matrix.h:41:18: note:   candidate expects 1 argument, 3 provided
In file included from ../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/rigid_body_system.h:8,
                 from ../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/generic_rigid_body_system.h:4,
                 from ../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/scs.h:4,
                 from ../test/../include/scs.h:4,
                 from ../test/../include/part.h:4,
                 from ../test/../include/ring_buffer.h:4,
                 from ../test/../include/synthesizer.h:8,
                 from ../test/synthesizer_tests.cpp:3:
../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/sparse_matrix.h: In member function ‘void atg_scs::SparseMatrix<T_Stride, T_Entries>::multiplyTranspose(const atg_scs::SparseMatrix<T_Stride, T_Entries>&, atg_scs::Matrix*) const’:
../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/sparse_matrix.h:161:36: error: no matching function for call to ‘atg_scs::Matrix::set(int&, int&, double&)’
  161 |                         target->set(j, i, dot);
      |                         ~~~~~~~~~~~^~~~~~~~~~~
In file included from ../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/constraint.h:6,
                 from ../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/rigid_body_system.h:5,
                 from ../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/generic_rigid_body_system.h:4,
                 from ../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/scs.h:4,
                 from ../test/../include/scs.h:4,
                 from ../test/../include/part.h:4,
                 from ../test/../include/ring_buffer.h:4,
                 from ../test/../include/synthesizer.h:8,
                 from ../test/synthesizer_tests.cpp:3:
../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/matrix.h:18:18: note: candidate: ‘void atg_scs::Matrix::set(const double*)’
   18 |             void set(const double *data);
      |                  ^~~
../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/matrix.h:18:18: note:   candidate expects 1 argument, 3 provided
../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/matrix.h:41:18: note: candidate: ‘void atg_scs::Matrix::set(atg_scs::Matrix*)’
   41 |             void set(Matrix *reference);
      |                  ^~~
../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/matrix.h:41:18: note:   candidate expects 1 argument, 3 provided
In file included from ../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/rigid_body_system.h:8,
                 from ../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/generic_rigid_body_system.h:4,
                 from ../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/scs.h:4,
                 from ../test/../include/scs.h:4,
                 from ../test/../include/part.h:4,
                 from ../test/../include/ring_buffer.h:4,
                 from ../test/../include/synthesizer.h:8,
                 from ../test/synthesizer_tests.cpp:3:
../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/sparse_matrix.h: In member function ‘void atg_scs::SparseMatrix<T_Stride, T_Entries>::transposeMultiplyVector(atg_scs::Matrix&, atg_scs::Matrix*) const’:
../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/sparse_matrix.h:184:75: error: ‘class atg_scs::Matrix’ has no member named ‘get’; did you mean ‘set’?
  184 |                             target->add(0, j, m_matrix[i][offset + l] * b.get(0, i));
      |                                                                           ^~~
      |                                                                           set
../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/sparse_matrix.h: In member function ‘void atg_scs::SparseMatrix<T_Stride, T_Entries>::multiply(atg_scs::Matrix&, atg_scs::Matrix*) const’:
../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/sparse_matrix.h:207:66: error: ‘class atg_scs::Matrix’ has no member named ‘get’; did you mean ‘set’?
  207 |                                 v += m_matrix[i][offset + l] * b.get(j, block * T_Stride + l);
      |                                                                  ^~~
      |                                                                  set
../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/sparse_matrix.h:211:36: error: no matching function for call to ‘atg_scs::Matrix::set(int&, int&, double&)’
  211 |                         target->set(j, i, v);
      |                         ~~~~~~~~~~~^~~~~~~~~
In file included from ../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/constraint.h:6,
                 from ../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/rigid_body_system.h:5,
                 from ../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/generic_rigid_body_system.h:4,
                 from ../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/scs.h:4,
                 from ../test/../include/scs.h:4,
                 from ../test/../include/part.h:4,
                 from ../test/../include/ring_buffer.h:4,
                 from ../test/../include/synthesizer.h:8,
                 from ../test/synthesizer_tests.cpp:3:
../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/matrix.h:18:18: note: candidate: ‘void atg_scs::Matrix::set(const double*)’
   18 |             void set(const double *data);
      |                  ^~~
../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/matrix.h:18:18: note:   candidate expects 1 argument, 3 provided
../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/matrix.h:41:18: note: candidate: ‘void atg_scs::Matrix::set(atg_scs::Matrix*)’
   41 |             void set(Matrix *reference);
      |                  ^~~
../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/matrix.h:41:18: note:   candidate expects 1 argument, 3 provided
In file included from ../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/rigid_body_system.h:8,
                 from ../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/generic_rigid_body_system.h:4,
                 from ../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/scs.h:4,
                 from ../test/../include/scs.h:4,
                 from ../test/../include/part.h:4,
                 from ../test/../include/ring_buffer.h:4,
                 from ../test/../include/synthesizer.h:8,
                 from ../test/synthesizer_tests.cpp:3:
../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/sparse_matrix.h: In member function ‘void atg_scs::SparseMatrix<T_Stride, T_Entries>::rightScale(atg_scs::Matrix&, atg_scs::SparseMatrix<T_Stride>*)’:
../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/sparse_matrix.h:234:39: error: ‘class atg_scs::Matrix’ has no member named ‘get’; did you mean ‘set’?
  234 |                                 scale.get(0, index * T_Stride + k) * m_matrix[i][j * T_Stride + k]);
      |                                       ^~~
      |                                       set
../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/sparse_matrix.h: In member function ‘void atg_scs::SparseMatrix<T_Stride, T_Entries>::leftScale(atg_scs::Matrix&, atg_scs::SparseMatrix<T_Stride>*)’:
../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/sparse_matrix.h:258:39: error: ‘class atg_scs::Matrix’ has no member named ‘get’; did you mean ‘set’?
  258 |                                 scale.get(0, i) * m_matrix[i][j * T_Stride + k]);
      |                                       ^~~
      |                                       set
In file included from ../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/scs.h:12,
                 from ../test/../include/scs.h:4,
                 from ../test/../include/part.h:4,
                 from ../test/../include/ring_buffer.h:4,
                 from ../test/../include/synthesizer.h:8,
                 from ../test/synthesizer_tests.cpp:3:
../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/gaussian_elimination_sle_solver.h: At global scope:
../test/../include/../dependencies/submodules/simple-2d-constraint-solver/include/gaussian_elimination_sle_solver.h:19:20: error: ‘__forceinline’ does not name a type
   19 |             static __forceinline double fastAbs(double v) {
      |                    ^~~~~~~~~~~~~
../test/synthesizer_tests.cpp:7:22: error: ‘chrono_literals’ is not a namespace-name
    7 | using namespace std::chrono_literals;
      |                      ^~~~~~~~~~~~~~~
[6/352] Building CXX object CMakeFiles/engine-sim-test.dir/test/gas_system_tests.cpp.o
FAILED: CMakeFiles/engine-sim-test.dir/test/gas_system_tests.cpp.o 
/usr/bin/c++  -DBOOST_ALL_NO_LIB -I../dependencies/submodules -isystem _deps/googletest-src/googletest/include -isystem _deps/googletest-src/googletest -O3 -DNDEBUG   -std=gnu++11 -MD -MT CMakeFiles/engine-sim-test.dir/test/gas_system_tests.cpp.o -MF CMakeFiles/engine-sim-test.dir/test/gas_system_tests.cpp.o.d -o CMakeFiles/engine-sim-test.dir/test/gas_system_tests.cpp.o -c ../test/gas_system_tests.cpp
In file included from ../test/gas_system_tests.cpp:3:
../test/../include/gas_system.h:40:73: error: default member initializer for ‘GasSystem::Mix::p_fuel’ required before the end of its enclosing class
   40 |         void initialize(double P, double V, double T, const Mix &mix = {}, int degreesOfFreedom = 5);
      |                                                                         ^
../test/../include/gas_system.h:13:27: note: defined here
   13 |             double p_fuel = 0.0;
      |                           ^~~~~~
../test/../include/gas_system.h:40:73: error: default member initializer for ‘GasSystem::Mix::p_inert’ required before the end of its enclosing class
   40 |         void initialize(double P, double V, double T, const Mix &mix = {}, int degreesOfFreedom = 5);
      |                                                                         ^
../test/../include/gas_system.h:14:28: note: defined here
   14 |             double p_inert = 1.0;
      |                            ^~~~~~
../test/../include/gas_system.h:40:73: error: default member initializer for ‘GasSystem::Mix::p_o2’ required before the end of its enclosing class
   40 |         void initialize(double P, double V, double T, const Mix &mix = {}, int degreesOfFreedom = 5);
      |                                                                         ^
../test/../include/gas_system.h:15:25: note: defined here
   15 |             double p_o2 = 0.0;
      |                         ^~~~~~
ninja: build stopped: subcommand failed.

More cylinders

I tried to edit the engine file but idk what .mr is, is there a way you guys can add a default file to add cylinders so its actually working ?

I cant build the project

Hi,

I'm loving the project and I'm dying to try it out but I'm struggling with how to get it built on my PC. So far I've completed steps 1 and 2 in the build steps but I'm stuck on steps 3 and 4. I can tell that the person who wrote the steps has made the assumption that I'm suppose to know what programs I should have installed on my PC and or what programs they mean because they didn't mention that I needed Git Bash to clone the repository in step 1 and which I didn't understand until I searched up what they wanted me to do. It would be nice to be a little more specific on how to build the project for those who know much less than a person with a master's in computer science.

Anyway, for step 3, I don't know what dependencies are and what SDL2 and SDL2_image and boost are and what they mean by "make sure to build the optional dependencies". I'm not sure if I downloaded the right stuff and if I even did the right things with those files but I downloaded what looks to be those dependencies and put them in the Windows file on my local C drive which I assume is what is meant by PATH. After that, I tried step 4 assuming I did everything right but I'm getting errors when I run "cmake ..". The error is as follows:

C:\Users\TMCChamp\Desktop\engine-sim\build>cmake ..
-- Building for: NMake Makefiles
CMake Error at CMakeLists.txt:18 (project):
Running

'nmake' '-?'

failed with:

The system cannot find the file specified

CMake Error: CMAKE_C_COMPILER not set, after EnableLanguage
CMake Error: CMAKE_CXX_COMPILER not set, after EnableLanguage
-- Configuring incomplete, errors occurred!
See also "C:/Users/TMCChamp/Desktop/engine-sim/build/CMakeFiles/CMakeOutput.log".

I have no idea what this means and how to fix it and I pretty much give up trying to read lots of websites talking about complicated computer stuff to fix this issue to just try out the awesome engine sim program I've patiently waited for to be public since the video of it was released.

Could anyone please help me with this?
Thank you

I downloaded SDL2 from this website: https://www.libsdl.org/download-2.0.php (The development libraries one)
I forgot where I downloaded the other two from but I'm sure about SDL2.

objects(483): error V0080: Undefined builtin input

using prebuilt release since I gave up building from source (I managed to nab it before it was taken down temporarily and have been trying to build that for over a week now possibly 2 (I have gone that mentally insane))

This error cropped up within the error_log,txt and with other issues what happens is that I will double click the application, a white window with the title: Engine Sim | AngeTheGreat will appear and then it will close.

Configure error

I'm getting an error in the configure process that says:

CMake Error at C:/Program Files/CMake/share/cmake-3.24/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
Could NOT find SDL2 (missing: SDL2_LIBRARY SDL2_INCLUDE_DIR)

What should I do?

cannot load the V8 engine

i tried to follow someone's advice to import the v8 engine (in my case it was engine 02 or video_engine_454_02)

i put this in the test.mr file

import "engine_sim.mr"
import "part-library/part_library.mr"
import "video-scripts/454-tuning/engine_02.mr"

set_engine(
engine: video_engine_454_02()
)

i was able to start the app and the angine is there however even if i have the ignition on and i run the starter, the engin won't run but just kinda missfire, i have also noticed that if i leave the simulation speed untouched it's very laggy and unstable, so i played with the simulation speed and after setting it between 3000 and 4000 it stopped lagging but the engine sadly still won't run.

App crashes on start

I have no idea why but i can't launch that app When opening .exe file white screen shows up and after 2 sec it crashes I tried reinstaling it but still crashes I think that it might be because of my trash pc

Or maybe Im dumb and dont know how to use it

windows 10 64bit
Intel(R) Core(TM) i5-2400 CPU @ 3.10GHz
Intel HD2000
HDD

Piranha not compiling

Hi, So I tried cloning the repo into a folder and then following the instructions but when I try to compile using cmake --build . it works but says something like this:

D:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Microsoft\VC\v170\Microsoft.CppCommon.targets(242,5): e
rror MSB8066: kompilacja niestandardowa dla elementu "E:\projects\cpp\engine-sim\new\engine-sim\build\CMakeFiles\c13d90
053f35118ca7aaba0ca881c914\parser.auto.cpp.rule;E:\projects\cpp\engine-sim\new\engine-sim\build\CMakeFiles\c13d90053f35
118ca7aaba0ca881c914\scanner.auto.cpp.rule;E:\projects\cpp\engine-sim\new\engine-sim\dependencies\submodules\piranha\CM
akeLists.txt" została zakończona z kodem 63. [E:\projects\cpp\engine-sim\new\engine-sim\build\dependencies\submodules\p
iranha\piranha.vcxproj]

Sorry about the error being sort of in polish but it says custom compilation for element: --- ended with code 63 or something like that.
If someone could help then I would be thankful.

Feature request: Different kinds of engines

Expand the project to encompass not only 4 stroke, but 2 stroke engines and diesel internal combustion engines. Displacement sizes, modified exhausts and the type of engine can sound vastly different from one another.

Description for installing dependencies

Maybe I am too dump, but I keep getting error messages over and over.

I drilled the source of this trouble down to the installation of the SDL2, SDL2_image and Boost installation.

Could you please add some more explanation here, that would be VERY helpful.
Thank you so much in advance.

Crash in Windows 11

It was working normally, but right after installing msys2 and several c++ dependencies to try to build the project, the executable on the release tab stopped working


Microsoft (R) Windows Debugger Version 10.0.25136.1001 AMD64
Copyright (c) Microsoft Corporation. All rights reserved.

CommandLine: D:\Downloads\build_1_3a (1)\build_1_3a\bin\engine-sim-app.exe

************* Path validation summary **************
Response                         Time (ms)     Location
Deferred                                       srv*
Symbol search path is: srv*
Executable search path is: 
ModLoad: 00007ff6`66110000 00007ff6`662c5000   engine-sim-app.exe
ModLoad: 00007ffc`52dc0000 00007ffc`52fc9000   ntdll.dll
ModLoad: 00007ffc`51a60000 00007ffc`51b1d000   C:\WINDOWS\System32\KERNEL32.DLL
ModLoad: 00007ffc`50600000 00007ffc`50979000   C:\WINDOWS\System32\KERNELBASE.dll
ModLoad: 00007ffc`51f80000 00007ffc`5212c000   C:\WINDOWS\System32\USER32.dll
ModLoad: 00007ffc`504b0000 00007ffc`504d6000   C:\WINDOWS\System32\win32u.dll
ModLoad: 00007ffb`cb560000 00007ffb`cb695000   C:\WINDOWS\SYSTEM32\d3d10.dll
ModLoad: 00000000`6c740000 00000000`6c88f000   D:\Downloads\build_1_3a (1)\build_1_3a\bin\SDL2.dll
ModLoad: 00000000`6a880000 00000000`6a8b7000   D:\Downloads\build_1_3a (1)\build_1_3a\bin\SDL2_image.dll
ModLoad: 00007ffc`51e80000 00007ffc`51ea9000   C:\WINDOWS\System32\GDI32.dll
ModLoad: 00007ffc`50fb0000 00007ffc`51053000   C:\WINDOWS\System32\msvcrt.dll
ModLoad: 00007ffc`51840000 00007ffc`518ee000   C:\WINDOWS\System32\ADVAPI32.dll
ModLoad: 000001f1`85f80000 000001f1`86023000   C:\WINDOWS\System32\msvcrt.dll
ModLoad: 00007ffc`50390000 00007ffc`504a2000   C:\WINDOWS\System32\gdi32full.dll
ModLoad: 00007ffc`51680000 00007ffc`5171e000   C:\WINDOWS\System32\sechost.dll
ModLoad: 00007ffc`50a40000 00007ffc`50add000   C:\WINDOWS\System32\msvcp_win.dll
ModLoad: 00007ffc`49cc0000 00007ffc`49f40000   C:\WINDOWS\SYSTEM32\d3d11.dll
ModLoad: 00007ffc`504e0000 00007ffc`505f1000   C:\WINDOWS\System32\ucrtbase.dll
ModLoad: 00007ffc`51720000 00007ffc`51840000   C:\WINDOWS\System32\RPCRT4.dll
ModLoad: 00007ffb`dfe90000 00007ffb`dff2e000   D:\Downloads\build_1_3a (1)\build_1_3a\bin\d3dx10d_43.dll
ModLoad: 00007ffc`51ce0000 00007ffc`51e7a000   C:\WINDOWS\System32\ole32.dll
ModLoad: 00007ffc`51f40000 00007ffc`51f71000   C:\WINDOWS\System32\IMM32.dll
ModLoad: 00007ffb`febb0000 00007ffb`febf6000   C:\WINDOWS\SYSTEM32\d3dx11_43.dll
ModLoad: 00007ffc`4db30000 00007ffc`4dc23000   C:\WINDOWS\SYSTEM32\dxgi.dll
ModLoad: 00007ffc`518f0000 00007ffc`519c6000   C:\WINDOWS\System32\OLEAUT32.dll
ModLoad: 00007ffc`521e0000 00007ffc`52559000   C:\WINDOWS\System32\combase.dll
ModLoad: 00007ffb`fa560000 00007ffb`fa602000   C:\WINDOWS\SYSTEM32\DSOUND.dll
ModLoad: 00007ffc`51060000 00007ffc`514cc000   C:\WINDOWS\System32\SETUPAPI.dll
ModLoad: 00007ffc`42910000 00007ffc`42943000   C:\WINDOWS\SYSTEM32\WINMM.dll
ModLoad: 00007ffb`cb3f0000 00007ffb`cb551000   C:\WINDOWS\SYSTEM32\vulkan-1.dll
ModLoad: 00007ffb`cb2e0000 00007ffb`cb3e1000   C:\WINDOWS\SYSTEM32\OPENGL32.dll
ModLoad: 00007ffc`52560000 00007ffc`52d18000   C:\WINDOWS\System32\SHELL32.dll
ModLoad: 00007ffb`c9bc0000 00007ffb`c9dfb000   D:\Downloads\build_1_3a (1)\build_1_3a\bin\avformat-58.dll
ModLoad: 00007ffb`c9e00000 00007ffb`cb2d6000   D:\Downloads\build_1_3a (1)\build_1_3a\bin\avcodec-58.dll
ModLoad: 00007ffc`51ed0000 00007ffc`51f3f000   C:\WINDOWS\System32\WS2_32.dll
ModLoad: 00007ffb`c9a90000 00007ffb`c9bb5000   D:\Downloads\build_1_3a (1)\build_1_3a\bin\avutil-56.dll
ModLoad: 00007ffc`3c140000 00007ffc`3c14e000   C:\WINDOWS\SYSTEM32\d3d10core.dll
ModLoad: 00007ffb`c99f0000 00007ffb`c9a86000   D:\Downloads\build_1_3a (1)\build_1_3a\bin\swscale-5.dll
ModLoad: 00007ffb`f8780000 00007ffb`f87a8000   D:\Downloads\build_1_3a (1)\build_1_3a\bin\swresample-3.dll
ModLoad: 00007ffc`28950000 00007ffc`289de000   C:\WINDOWS\SYSTEM32\MSVCP140.dll
ModLoad: 00007ffc`28930000 00007ffc`2894b000   C:\WINDOWS\SYSTEM32\VCRUNTIME140.dll
ModLoad: 00007ffc`28ac0000 00007ffc`28acc000   C:\WINDOWS\SYSTEM32\VCRUNTIME140_1.dll
ModLoad: 00007ffb`fa4a0000 00007ffb`fa551000   C:\WINDOWS\SYSTEM32\ResampleDmo.DLL
ModLoad: 00007ffc`4f560000 00007ffc`4f5ad000   C:\WINDOWS\SYSTEM32\powrprof.dll
ModLoad: 000001f1`85f90000 000001f1`85fdd000   C:\WINDOWS\SYSTEM32\powrprof.dll
ModLoad: 00007ffc`45c00000 00007ffc`45c29000   C:\WINDOWS\SYSTEM32\winmmbase.dll
ModLoad: 00007ffb`f8750000 00007ffb`f877d000   C:\WINDOWS\SYSTEM32\GLU32.dll
ModLoad: 00007ffc`4a460000 00007ffc`4a46a000   C:\WINDOWS\SYSTEM32\VERSION.dll
ModLoad: 00007ffc`30c00000 00007ffc`30c0c000   C:\WINDOWS\SYSTEM32\Secur32.dll
ModLoad: 00007ffc`4ff70000 00007ffc`4ffbc000   C:\WINDOWS\SYSTEM32\CFGMGR32.dll
ModLoad: 00000000`62500000 00000000`62755000   D:\Downloads\build_1_3a (1)\build_1_3a\bin\libopus-0.dll
ModLoad: 00000000`6d540000 00000000`6d5a2000   D:\Downloads\build_1_3a (1)\build_1_3a\bin\libvorbis-0.dll
ModLoad: 00000000`6b680000 00000000`6b730000   D:\Downloads\build_1_3a (1)\build_1_3a\bin\libvorbisenc-2.dll
ModLoad: 00000000`66280000 00000000`664a6000   D:\Downloads\build_1_3a (1)\build_1_3a\bin\libvpx-1.dll
ModLoad: 00007ffc`4fc80000 00007ffc`4fca7000   C:\WINDOWS\SYSTEM32\bcrypt.dll
ModLoad: 00007ffb`c9650000 00007ffb`c99e9000   D:\Downloads\build_1_3a (1)\build_1_3a\bin\libx264-161.dll
ModLoad: 00000000`6ad00000 00000000`6ad24000   D:\Downloads\build_1_3a (1)\build_1_3a\bin\zlib.dll
ModLoad: 00000000`00c80000 00000000`00ca4000   D:\Downloads\build_1_3a (1)\build_1_3a\bin\zlib.dll
ModLoad: 00000000`69d00000 00000000`69e60000   D:\Downloads\build_1_3a (1)\build_1_3a\bin\libsrt.dll
ModLoad: 00007ffc`45880000 00007ffc`4588b000   C:\WINDOWS\SYSTEM32\msdmo.dll
ModLoad: 00000000`70680000 00000000`706b6000   D:\Downloads\build_1_3a (1)\build_1_3a\bin\libogg-0.dll
ModLoad: 00007ffc`4daf0000 00007ffc`4db28000   C:\WINDOWS\SYSTEM32\dxcore.dll
ModLoad: 00000000`6d840000 00000000`6d8c0000   D:\Downloads\build_1_3a (1)\build_1_3a\bin\libmbedcrypto.dll
ModLoad: 00007ffc`28ab0000 00007ffc`28ab9000   C:\WINDOWS\SYSTEM32\WSOCK32.dll
ModLoad: 00007ffc`4f6b0000 00007ffc`4f6f2000   C:\WINDOWS\SYSTEM32\SSPICLI.DLL
(3138.315c): Break instruction exception - code 80000003 (first chance)
ntdll!LdrpDoDebuggerBreak+0x30:
00007ffc`52e9d154 cc              int     3
0:000> g
ModLoad: 00007ffc`4f440000 00007ffc`4f453000   C:\WINDOWS\SYSTEM32\UMPDC.dll
ModLoad: 00007ffc`4fb10000 00007ffc`4fb28000   C:\WINDOWS\SYSTEM32\CRYPTSP.dll
ModLoad: 00007ffc`4f370000 00007ffc`4f3a5000   C:\WINDOWS\system32\rsaenh.dll
ModLoad: 00007ffc`4fb00000 00007ffc`4fb0c000   C:\WINDOWS\SYSTEM32\CRYPTBASE.dll
ModLoad: 00007ffc`502a0000 00007ffc`5031f000   C:\WINDOWS\System32\bcryptPrimitives.dll
ModLoad: 00007ffc`4d9f0000 00007ffc`4da9c000   C:\WINDOWS\system32\uxtheme.dll
ModLoad: 00007ffc`50e90000 00007ffc`50fae000   C:\WINDOWS\System32\MSCTF.dll
ModLoad: 00007ffc`4f420000 00007ffc`4f438000   C:\WINDOWS\SYSTEM32\kernel.appcore.dll
ModLoad: 00007ffc`3bed0000 00007ffc`3bffd000   C:\WINDOWS\SYSTEM32\textinputframework.dll
ModLoad: 00007ffc`4dc70000 00007ffc`4dc85000   C:\WINDOWS\SYSTEM32\resourcepolicyclient.dll
ModLoad: 00007ffc`4aef0000 00007ffc`4af34000   C:\WINDOWS\SYSTEM32\directxdatabasehelper.dll
ModLoad: 00007ffc`4dc30000 00007ffc`4dc64000   C:\WINDOWS\SYSTEM32\ntmarta.dll
ModLoad: 00007ffc`46a60000 00007ffc`46b77000   C:\WINDOWS\System32\DriverStore\FileRepository\nv_dispi.inf_amd64_246e95e4066041ad\nvldumdx.dll
ModLoad: 00007ffc`4fb60000 00007ffc`4fb72000   C:\WINDOWS\SYSTEM32\msasn1.dll
ModLoad: 00007ffc`4a2e0000 00007ffc`4a311000   C:\WINDOWS\SYSTEM32\cryptnet.dll
ModLoad: 00007ffc`50ae0000 00007ffc`50c42000   C:\WINDOWS\System32\CRYPT32.dll
ModLoad: 00007ffc`49fa0000 00007ffc`4a0e9000   C:\WINDOWS\SYSTEM32\drvstore.dll
ModLoad: 00007ffc`4ffc0000 00007ffc`4ffec000   C:\WINDOWS\SYSTEM32\devobj.dll
ModLoad: 00007ffc`4fbd0000 00007ffc`4fc10000   C:\WINDOWS\SYSTEM32\wldp.dll
ModLoad: 00007ffc`50320000 00007ffc`50387000   C:\WINDOWS\System32\WINTRUST.DLL
ModLoad: 00007ffc`51eb0000 00007ffc`51ecf000   C:\WINDOWS\System32\imagehlp.dll
ModLoad: 00007ffc`041d0000 00007ffc`06bca000   C:\WINDOWS\System32\DriverStore\FileRepository\nv_dispi.inf_amd64_246e95e4066041ad\nvwgf2umx.dll
ModLoad: 00007ffb`c8c50000 00007ffb`c8cfe000   C:\WINDOWS\System32\DriverStore\FileRepository\nv_dispi.inf_amd64_246e95e4066041ad\NvCamera\NvCameraAllowlisting64.dll
ModLoad: 00007ffc`4e410000 00007ffc`4ec77000   C:\WINDOWS\SYSTEM32\windows.storage.dll
ModLoad: 00007ffc`4e2a0000 00007ffc`4e406000   C:\WINDOWS\SYSTEM32\wintypes.dll
ModLoad: 00007ffc`514d0000 00007ffc`515ba000   C:\WINDOWS\System32\SHCORE.dll
ModLoad: 00007ffc`52d20000 00007ffc`52d7d000   C:\WINDOWS\System32\shlwapi.dll
ModLoad: 00007ffc`1ebd0000 00007ffc`1ee97000   C:\WINDOWS\system32\nvspcap64.dll
ModLoad: 00007ffc`501d0000 00007ffc`501f1000   C:\WINDOWS\SYSTEM32\profapi.dll
ModLoad: 00007ffc`4d400000 00007ffc`4d532000   C:\WINDOWS\SYSTEM32\CoreMessaging.dll
ModLoad: 00007ffc`515d0000 00007ffc`5167f000   C:\WINDOWS\System32\clbcatq.dll
ModLoad: 00007ffc`45ad0000 00007ffc`45b6c000   C:\WINDOWS\System32\MMDevApi.dll
ModLoad: 00007ffc`45ad0000 00007ffc`45b6c000   C:\WINDOWS\SYSTEM32\MMDevAPI.DLL
ModLoad: 00007ffc`43960000 00007ffc`439a6000   C:\WINDOWS\SYSTEM32\wdmaud.drv
ModLoad: 00007ffc`45590000 00007ffc`45599000   C:\WINDOWS\SYSTEM32\ksuser.dll
ModLoad: 00007ffc`4ae20000 00007ffc`4ae2b000   C:\WINDOWS\SYSTEM32\AVRT.dll
ModLoad: 00007ffc`3fca0000 00007ffc`3fe73000   C:\WINDOWS\SYSTEM32\AUDIOSES.DLL
ModLoad: 00007ffc`453c0000 00007ffc`453cd000   C:\WINDOWS\SYSTEM32\msacm32.drv
ModLoad: 00007ffc`43ae0000 00007ffc`43afe000   C:\WINDOWS\SYSTEM32\MSACM32.dll
ModLoad: 00007ffc`43ad0000 00007ffc`43adb000   C:\WINDOWS\SYSTEM32\midimap.dll
onecore\com\combase\objact\objact.cxx(808)\combase.dll!00007FFC5224E37A: (caller: 00007FFC5224D748) ReturnHr(1) tid(315c) 800401F0 CoInitialize não foi chamado.
onecore\com\combase\objact\objact.cxx(808)\combase.dll!00007FFC5224E37A: (caller: 00007FFC5224D748) ReturnHr(2) tid(315c) 800401F0 CoInitialize não foi chamado.
(3138.315c): Access violation - code c0000005 (first chance)
First chance exceptions are reported before any exception handling.
This exception may be expected and handled.
engine_sim_app+0xc27a4:
00007ff6`661d27a4 488b01          mov     rax,qword ptr [rcx] ds:00000000`00000000=????????????????
0:000> g
(3138.315c): Access violation - code c0000005 (!!! second chance !!!)
engine_sim_app+0xc27a4:
00007ff6`661d27a4 488b01          mov     rax,qword ptr [rcx] ds:00000000`00000000=????????????????

Missing engine

The video shows CHEV 454 V8 but I can only find Kohler CH750 in the source code? Has it been intentionally removed? If yes, could you give a hint on how to obtain an engine similar to that in the video, I tried editing the assets/kohler_ch750.mr file but sadly it does not work as intended. (I neither know C++ nor piranha).

I tried adding two more wires, a crankshaft, another exhaust and 2 more cylinder banks and then tried to bind it to the engine (class/enum/dictionary?) from what I could make out of the language but now it just won't open.

Thanks for this mind blowing project.

issue: air to fuel ratio

i was trying to get the i6 engine going and it wont run, it was not timining or anything like that the reason it was not working is that the fuel wasnt getting into the engine, i checked intake but i didnt saw any problem and bcs of that i cannot get it running and i saw that on v4 engines

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.