NairodGH/Simulations

Raylib/eigen C++ simulations for technical tests or satisfying my curiosity

โ˜… 2Forks 0C++GitHub โ†—Compare
cmakecppeigennairodopenglraylibsimdsimulationstechnical-test

README

๐Ÿ’ป Simulations ๐ŸงŠ

This project started off a weekend technical test I was asked by a company as part of their recruiting process (removed any elements I thought could lead people to cheat using it).
The code intentionally has a high amount of comments (with analogies and examples for hard concepts) as this was made for educational purposes.
Since I used raylib and eigen for visualization, which are solid C++ choices for other projects I had in mind, I decided to continue from their existing setup:

  • download CMake 4.0+
  • then either
    • run those commands in a terminal,
    mkdir build && cd build
    cmake ..
    cmake --build .
    
    • run the executables located at the indicated build paths
  • or, if you're on VSCode like me, for a more UI approach
    • install the Cmake Tools extension
    • Search "CMake: Set Launch/Debug Target" in the command palette and select the target you want
    • Click on the bottom left โ–ถ๏ธ button

Available targets:

๐Ÿ”บ CAD ๐ŸงŠ

Minimal STEP file loader (cylinders, planes and toruses with their relevant keywords for rendering, everything else (styling, metadata, presentation, assembly) is ignored) and tessellator for B-rep to mesh visualization.

Completed by:

๐Ÿฆพ Kinematic ๐Ÿ

Kinematic chain of a serial manipulator.
Only axis 0 (base) can be changed between linear and rotary because linear on any other piece would break the arm.

๐Ÿ“Ÿ PPI แฏค

Real-time PPI sonar display simulating active (send then receive, gets range but less stealthy) and passive (only receive, gets only direction but more stealthy) detection modes, two-way transmission loss, thermocline-induced shadow zones, and a depth-varying sound speed profile.
Assumes we're a surface vessel with sonar transducer pointing downward towards submarines/whales/etc...

๐Ÿ“ Toolpath ๐ŸŒ€

3D printing base generation (for a shape/position that couldn't be printed if not for it).

๐Ÿฒ Soup ๐Ÿฆ 

Artificial life particle method N-body simulation exploring emergent behavior inspired by the primordial soup.

Contributors

NairodGH

Issues