Jump to content

Ultra Software Company Blog

  • entries
    188
  • comments
    1,259
  • views
    694,397

Contributors to this blog

Why Leadwerks is the clear choice for VR simulations


Josh

3,819 views

 Share

Leadwerks has historically had a small group of customers outside of the game industry who use our software for simulations, training, and visualization.  Customers using our software products include NASA, Lockheed Martin, Northrop Grumman, and the British Royal Navy.  Today I am happy to announce that in response to overwhelming demand we are now offering our services to build custom VR applications with Leadwerks.

 

 

This puts us in head-to-head competition with other services firms who are mostly using the Unity3D engine to put out quick results.  However, longstanding design decisions going back years have put Leadwerks Software in a position that gives us very strong advantages in the VR market.  In this article I will explain how we are leveraging our unique competitive advantages to provide the most compelling results for your VR project.

Leadwerks vs. Unity3D for Virtual Reality

Most of our competitors have tried to take shortcuts by building on a platform with severe limitations, using the Unity 3D engine together with the C# programming language. This 3D engine is primarily used for mobile games, and the C# programming language was originally created for event-driven business applications.

We on the other hand have built our own 3D development system that is specifically designed to capture the maximum capabilities of VR.  Our 3D engine is built specifically for high-end PCs, with graphical fidelity and performance as our overarching principles. We use the C++ programming language which is the standard for any computationally intensive code, including operating systems, device drivers, high-frequency trading software, and virtual reality applications, which must operate at a steady 90 frames per second to prevent nausea. Our development approach brings several significant competitive advantages we can now offer to you.

C/C++ Interoperability

Virtually all major scientific and engineering libraries like MATLAB, etc. are written in C or C++.  Because our VR development platform is written in pure C++ we can seamlessly integrate with all of your existing C and C++ code. For example, actual satellite control code could be compiled into a simulation and run seamlessly to test how the spacecraft would react to a variety of simulated conditions. All scientific and engineering code libraries are easily accessible from a Leadwerks project.

 

Competitors using C# and the Unity 3D engine will encounter roadblocks when they attempt to interface with C/C++ code. An intermediate wrapper has to be written that converts object-oriented code into procedural commands. This process is time-intensive and prone to breakage when APIs change with new versions. Integration of C/C++ code with Leadwerks, on the other hand, is instantaneous and seamless.

Performance

Nausea is a serious consideration in VR. If a discrepancy exists between the inputs received by the operator’s ocular and vestibular systems, it will result in motion sickness. An engineering tool designed to be used for long periods of time must maintain a steady 90 frames per second, allowing only 11 milliseconds for each frame render. Unfortunately, C# is a memory-managed language meaning it suffers overall slower performance, as well as periodic pauses in program execution while garbage collection is performed. All of our code is written in C++ and will perform at the maximum speed allowed by the hardware. This allows us to create richer VR applications with expanded capabilities while our competitors will run into performance problems that cause unpleasant physiological symptoms.

 

QkXl7JzKEvV4XHqb4qdu1vJz-hqPTZds_z5_ZyL3gNpk8zlEv7aC6jNSFfsi8pRzeO78zbuoNFCHB7TBZacMhI18TLWNZotlPP9QGTKAf_NkqtS3UM660baJScMh-5LEPXOv8FxI

Benchmark showing execution time of C++ vs. C#.

Source: https://www.codeproject.com/Articles/212856/Head-to-head-benchmark-Csharp-vs-NET

Source Code Modification

Because we developed our own 3D engine we have full access to the entire source code and can make modifications to expand its capabilities (5). For example, we learned that some aerospace clients were experiencing problems with 32-floating point precision in some applications, so we re-compiled our software using 64-bit floating points, raising the maximum area we can simulate up to one cubic light year with sub-millimeter precision. Because our competitors do not have source code access to the 3D engine they are using, their ability to elastically scale their capabilities and customize their 3D engine for your needs will be greatly impeded.

Accuracy of Simulated Physics

Our software features a fast and stable Newtonian physics system that provides the most realistic physics simulation possible at real-time speeds. As the video above demonstrates, this can be used to simulate robotic arms and other moving mechanical features with a high degree of realism.

 

The Unity physics system was designed for games and runs on the graphical processing unit (GPU). GPUs are good at performing massive parallel processing computations but are not good at problems that involve a lot of data exchange. Unfortunately, colliding objects are a problem that involves a high degree of data exchange between threads, so the accuracy of the simulation is compromised. This has two significant consequences. First, physics in Unity tend to be much less stable than in Leadwerks, making it difficult to simulate complex jointed systems like a robotic arm. A video showing the difference can be seen here.

 

sw2sFZi1XRuv81Pb614YC0AmqhhI5vbAmUdwAHmmDqyrY5ut8BNdowyOLR97dSghlJY20d_wk2jj0MEXTfSE9VRe8sTRhUwrieuxycH_UFdMb__LkFUbkxv_fDEfMDra9vF7YpEa

Rigid body stacking test: Leadwerks physics (green) are stable while Unity physics (yellow) spontaneously collapse.

Second, physics in Unity are non-deterministic. This means that each time a simulation is run, the result will be different, making it very difficult to predict outcomes. The Leadwerks physics system is deterministic and will provide the exact same result each time it is run, even if new objects are introduced into the simulation.

The competitive advantages we can put to work for your VR project are summarized below.  Simply put, we can build applications that are bigger, faster, and have more capabilities.

 

 

Other firms using Unity

Leadwerks VR Services

Primary platform of 3D engine

Mobile phones

High-end PCs

C/C++ Interoperability

Requires C# wrapper

Seamless

Performance

Slower with GC pauses, results in nausea

Fastest possible performance

3D engine source code modification

No

Yes

Physics simulation

Unstable, non-deterministic

Stable, deterministic

Maximum range with sub-mm precision

Eight kilometers

One light year

If you are interested in taking advantage of our capabilities to build VR applications send us an email, or catch me at I/ITSEC later this week.

  • Like 3
 Share

2 Comments


Recommended Comments

OH MAN!!! I/ITSEC is amazing!!! You are lucky you are going. 

Take pictures and let us know what really impressed you. 

I have been a couple of times and the seminars and the simulators are top notch. 
 

The robotic arm simulation is an amazing piece of work.  Having that capability in VR, to transform on the 6 degrees of freedom was mind blowing. I can definately see the use of this in manufacturing and conops design. 

Link to comment
On ‎11‎/‎28‎/‎2017 at 4:08 PM, GSFC_1 said:

OH MAN!!! I/ITSEC is amazing!!! You are lucky you are going. 

Take pictures and let us know what really impressed you. 

I have been a couple of times and the seminars and the simulators are top notch. 
 

The robotic arm simulation is an amazing piece of work.  Having that capability in VR, to transform on the 6 degrees of freedom was mind blowing. I can definately see the use of this in manufacturing and conops design. 

It was basically like GDC except people were dressed in military uniforms instead of comic book characters.

Link to comment
Guest
Add a comment...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...