Gordan Sikic, 3D Developer in Medulin, Croatia
Gordan Sikic

3D Developer in Medulin, Croatia

Member since August 27, 2018
With over two decades of experience, Gordan is a veteran C++ software engineer with a strong background in numerical analysis and a passion for virtual reality, 3D graphics, and visual simulations. He is also experienced in mathematical modeling, CAD systems, and real-time systems.
Gordan is now available for hire

Portfolio

Experience

Location

Medulin, Croatia

Availability

Part-time

Preferred Environment

Linux, Unix, Windows, Qt Creator, SVN, Git

The most amazing...

...thing I've designed and implemented a mathematical model for dynamic behavior of a MiG-21 aircraft to be used in a flight simulator for the Croatian Air Force.

Employment

  • Head of Development

    2013 - PRESENT
    Uljanik Shipbuilding Computer Systems
    • Developed virtual reality extensions for the ShipExplorer suite which enabled a complete immersion into the ship. It was made using Oculus Rift and OpenGL 4.X was used in order to improve the user experience such as shadows and water reflections.
    • Built Stereo 3D extensions for the ShipExplorer suite. This is an OS agnostic system that was designed to elevate user experience using Stereo 3D capable output devices. It was made using OpenGL.
    • Implemented speed enhancements without any loss in picture quality; initially, it began with 10-15 frames per second (FPS) for the entire ship and now can go up to 150-250 FPS. This allowed the presentation and examination of the entire ship without any degradation in the user experience. The speed-up was achieved by using spatial data organization in octree structures combined with OpenGL 3.1.
    • Created a client/server system to share data and complete program state between many ShipExplorer processes running on different computers. It allowed remote discussions which assured that everybody was looking at the very same model in the very same way. It was made using Apache Thrift libraries for RPC and C++.
    • Constructed a system to control ShipExplorer from a remote process running on a different computer. It is a callback-based system that also allowed an external process to respond to user input. It was implemented using Apache Thrift, C++, and Python.
    • Developed a modular build system based on CMake and utilizing SVN. This allowed many mutually unconnected SVN repositories to act as one virtual repository, without the need of the external capability of SVN. The net result was a greatly simplified build system, with a very fine granularity for write access control of each particular repository.
    • Added dynamic behavior to a ShipExplorer visualization subsystem. Before initiating the OpenGL drawing, all parameters (like zoom, translations, and rotations) are filtered by solving differential equations in real time. Each parameter was presented as a SISO system with a DC gain equal to 1.0 and an output of the system was used for actual drawing. It was implemented using C++ only.
    • Investigated the possibilities of including 3D ship model into business web applications in Uljanik Shipyard. The idea was to add a visual 3D presentation of data that was already shown in the form of various tables. It was done using JavaScript, WebGL, and Three.js.
    Technologies: C++, Python, OpenGL, CMake, Boost, MATLAB, Oculus Rift, Apache Thrift, WebGL, JavaScript
  • CAD Subsystems Designer

    2005 - 2013
    Uljanik Shipbuilding Computer Systems
    • Built an ANTLR-based alternate system for the parsing and interpretation of a CADDS-5 specialized language which helped in the parametric creation of geometrical shapes.
    • Developed a CORBA-based client/server system for the calculation of a remote hidden line removal in a heterogeneous network environment that allowed a great number of clients to be served very quickly. The calculations which had taken tens of hours were now completed in a few minutes.
    • Introduced a streaming C++ interface into a CADDS-5 console, instead of keeping the original Fortran-like interface.
    • Created a system of hooks that allowed an extension and general change of behavior of internal CADDS-5 commands.
    • Introduced STL (Standard Template Library) into C++ programming for CADDS-5, using STLport.
    • Introduced a CMake build system into the CADDS-5 development environment, resulting in a drastically simplified complete build cycle.
    • Designed and created the first version of ShiplExplorer, a software suite for the visualization, examination, and augmentation of ship structures; it ran on Windows Linux and Solaris. It was made from scratch using C++, OpenGL, and Boost C++ libraries.
    Technologies: C++, OpenGL, CMake, Boost, MATLAB, Corba, ANTLR 2, STLport
  • Software Engineer (Contract)

    2004 - 2004
    Uljanik Shipbuilding Computer Systems
    • Created a system for the automatic nesting of shell plates, running on Linux and Solaris.
    • Built a library for the 2D manipulation and examination of geometric shapes.
    Technologies: C++
  • Software Engineer (Contract)

    2003 - 2004
    Teleconsult
    • Created a visualization-and-manipulation library capable of handling huge terrain areas as a part of a web-based client/server system. It was used for the initial decisions for GSM mast placement.
    • Implemented a real-time visibility check; taking into account the type of terrain, terrain heights, and terrain draping.
    • Calculated the all-around visibility and shadowed areas as a function of position on a terrain, height of the mast, terrain type, and terrain draping.
    • Developed a drawing speed management system using a geo-mipmapping approach to optimize the user experience.
    • Built a multithreaded memory management system to keep the memory footprint as low as possible and assure that all of the relevant terrain tiles are loaded and visible.
    Technologies: C++, OpenGL, Visual Basic, GRASS GIS
  • Software Engineer

    2001 - 2004
    IT-Base
    • Improved the mathematical correctness of a program's back-end. All of the calculations were moved into a specialized, handmade library.
    • Optimized the graphics speed by writing various assessment tests and then the drawing functions were changed accordingly. All of the dynamic texture manipulations were moved out of GDI and executed manually.
    • Redesigned a visualization subsystem of the program. Numerous changes were made in order to replace the GDI visualization back-end with OpenGL.
    • Redesigned an import/export subsystem by making a generic IO library where all of the different formats were represented as a series of callbacks, resulting in greatly simplified code.
    Technologies: C++, OpenGL, GDI
  • Software and Simulation Engineer

    1995 - 2000
    Institute for Defence Studies
    • Designed and implemented various algorithms for antitank missile guidance. The initial design and testing were done with MATLAB with the Control Toolbox and implemented, in real time, with C++.
    • Created a visual interactive real-time tank shooting simulation, using a mathematical model of the Fagot missile. The inner loop of the autopilot was based on an "inverse dynamics" algorithm and the outer loop was designed as a semiautomatic system where it was only necessary to manually light the target. The result was a very robust system that was capable of coping with the highly nonlinear nature of Fagot dynamics and ultimately, increasing the safety of the man firing the missile.
    • Developed a mathematical dynamics model for the MiG-21 aircraft. It was organized as a set of nonlinear differential equations and was checked on three levels: the recreation of longitudinal and lateral modes of dynamic behavior, the recreation of its the aircraft's performance (the maximum altitude or operational envelope), and recreated the behavior mentioned in pilot manuals for the real aircraft.
    • Designed and implemented a complete real-time visual flight simulation using a mathematical model of MiG-21 aircraft. Using the previously designed mathematical model, I made a complete distributed real-time interactive visual simulation, based on RTLinux extensions. The core program ran as an RT process with the highest priority while the original Linux kernel was processed with the lowest priority. The mathematical model was re-implemented as a set of kernel modules, while the rest of the simulation ran in the "userland" space.
    Technologies: C++, OpenGL, MATLAB, RTLinux

Skills

  • Languages

    C++, Python, XSD, XML
  • Libraries/APIs

    wxWidgets, OpenGL, Rhino, WebGL, Three.js
  • Tools

    MATLAB, Qt Creator, CMake, Microsoft Visual Studio, Git, Subversion (SVN), Rhinoceros 3D, Rhinoceros, ANTLR 2, GIS
  • Platforms

    Solaris, Windows, Linux, Oculus Rift
  • Other

    Virtual Reality App Design, Virtual Reality (VR), 3D CAD, 3D, XML RPC, CORBA
  • Frameworks

    Boost, Apache Thrift

Education

  • Master's degree in Multidisciplinary Technical Sciences
    1995 - 2000
    University of Zagreb - Zagreb, Croatia
  • Bachelor's degree in Aerospace Engineering
    1983 - 1990
    University of Belgrade - Belgrade, Serbia

To view more profiles

Join Toptal
I really like this profile
Share it with others