SimCore

Position: Software Architect & Main Developer
Schedule: Dec. 2015 - Jan. 2017
Client: L3 Wescam
Team size: 1 people

Project description

SimCore is the successor of the MX-Sim project. This project was initiated to provide a new implementation of the simulation system, using state of the art technologies, in a very short time frame. Indeed MX-Sim was becoming overly complex and hard to maintain/extend and furthermore, upgrading from Virtual Battlespace 2 (VBS2) to VBS3 presented serious incompatibilities which required significant refactoring.

Responsibilities & Achievements

  • I adapted the system to the changes in the underlying 3D platform (moving to 64bit, removal of DirectX Hook, removal of lua bindings,etc)
  • I introduced an higher level of abstraction: making the core of the system “3D agnostic” and encapsulating DirectX interactions in a plugin.
  • I significantly extended the project long term maintainability with:
    • A unified architecture: merged 5 separated softwares (created by 7 developers) in one,
    • Major optimizations: moved from Lua & Java code to C++ (and javascript).
    • Intensive use of test/behavior driven implementation: written more than 450 complex tests,
    • Strict usage of git/gitlab workflows.
  • I created multiple communication channels (sockets, serial ports, IPC).
  • I built support for SDI video streaming (with embedded KLV data),
  • I designed all the user interfaces and HUDs as web apps based on AngularJS 2 framework and integrated them in the engine with CEF3.

⇒ In about 1 year on this project I managed to refactor and optimize the work that was previously achieved in more than 4 years by a team of 7 qualified developers. The SimCore project is currently in beta release phase, and already provides complete support and significantly better performances for a few of the major Wescam turret models.

Skills & Techs

  • Bohemia Interactive VBS3
  • DirectX
  • HLSL
  • C++
  • NodeJS
  • HTML5
  • SASS
  • Chromium Embedded Framework 3
  • AngularJS 2
  • RaphaelJS

Images