Hyppää sisältöön
    • Suomeksi
    • På svenska
    • In English
  • Suomeksi
  • In English
  • Kirjaudu
Näytä aineisto 
  •   Etusivu
  • LUTPub
  • Diplomityöt ja Pro gradu -tutkielmat
  • Näytä aineisto
  •   Etusivu
  • LUTPub
  • Diplomityöt ja Pro gradu -tutkielmat
  • Näytä aineisto
JavaScript is disabled for your browser. Some features of this site may not work without it.

Development of a bridge between C++ and Unity environment to visualize simulations

Isaksson, Otto (2025)

Katso/Avaa
Mastersthesis_Isaksson_Otto.pdf (1.035Mb)
Lataukset: 


Diplomityö

Isaksson, Otto
2025

School of Energy Systems, Konetekniikka

Näytä kaikki kuvailutiedot
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi-fe20251201113328

Tiivistelmä

This thesis looks at the development and testing of a communication link between a C++ simulation environment and the Unity game engine. This link will allow for real-time visualization of the dynamics of mechanical systems, with a focus on heavy machinery applications. C++ is great for doing physics-based simulations quickly, but Unity is a good choice for making interactive 3D visualizations. Many current solutions depend on ROS-based communication, are mostly for mobile robotics, or add latency through TCP-based middleware. This work fills the gap by creating lightweight, Windows-native integration methods that work with articulated heavy machinery models.

Two bridging architectures were developed and evaluated: a native plugin utilizing a C++ dynamic-link library (DLL) and a socket-based client-server interface employing TCP. A simplified pendulum model was used as a test case to check numerical accuracy, latency, and synchronization between simulation and rendering in a controlled way. Unity was able to call C++ functions directly with the DLL method, which allowed for stable real-time updates. The socket-based architecture made it easier to separate processes and made the system more flexible, but it also added latency because of buffering and thread management.
 
Tämä diplomityö tarkastelee viestintäyhteyden kehittämistä ja testaamista C++-pohjaisen simulaatioympäristön ja Unity-pelimoottorin välillä. Tällainen yhteys mahdollistaa mekaanisten järjestelmien reaaliaikaisen visualisoinnin, erityisesti raskaan kaluston sovelluksissa. C++ soveltuu erinomaisesti laskennallisesti raskaiden fysiikkasimulaatioiden suorittamiseen, kun taas Unity tarjoaa tehokkaan alustan interaktiivisten 3D-visualisointien luomiseen.

Tutkimuksessa toteutettiin ja arvioitiin kaksi erilaista siltaratkaisua: C++-dynaamista linkkikirjastoa (DLL) hyödyntävä natiivi plugini sekä TCP:hen perustuva socket-pohjainen asiakas–palvelinrajapinta. Testitapauksena käytettiin yksinkertaistettua heilurimallia, jonka avulla voitiin hallitusti arvioida numeerista tarkkuutta, viivettä ja synkronointia simulaation ja visualisoinnin välillä. DLL-pohjaisessa ratkaisussa Unity pystyi kutsumaan C++-funktioita suoraan, mikä mahdollisti vakaan ja viiveettömän reaaliaikaisen päivityksen. Socket-pohjainen arkkitehtuuri tarjosi paremman prosessierottelun ja joustavuuden, mutta lisäsi viivettä puskuroinnin ja säikeidenhallinnan vuoksi.
 
Kokoelmat
  • Diplomityöt ja Pro gradu -tutkielmat [14668]
LUT-yliopisto
PL 20
53851 Lappeenranta
Ota yhteyttä | Tietosuoja | Saavutettavuusseloste
 

 

Tämä kokoelma

JulkaisuajatTekijätNimekkeetKoulutusohjelmaAvainsanatSyöttöajatYhteisöt ja kokoelmat

Omat tiedot

Kirjaudu sisäänRekisteröidy
LUT-yliopisto
PL 20
53851 Lappeenranta
Ota yhteyttä | Tietosuoja | Saavutettavuusseloste