Christian - Développeur UNITY 3D
Ref : 190810R001-
31490 LÉGUEVIN
-
Développeur (44 ans)
-
Bientôt freelance
PROFESSIONAL EXPERIENCE
Since 2016
Rôle : Architect / Technical leader
Project: Advanced
Remote Assistance Project Description : Advanced Remote Assistance Application
Technical Environment: 3D, augmented reality, audio/video streaming. Multi-plateform (iOS, Android, Hololens, Windows, Realwear, WebGL)
3DEngine
Unity3D version 2018/2020
Server hosting
Azure Windows/Linux Vms
Azure Kubernetes Services
Augmented reality:
Spatial Mapping hololens
ArCore / ArKit
Vuforia
Telecom
Webrtc C++ API (M71, M73)
Signaling server (freeswitch 1.8 / 1.10)
Conference server (freeswitch)
Signaling SIP Client (resiprocate)
Devices:
Windows UWP (Hololens, Hololens2)
Windows 10 (Exe)
Android (tablet, realwear)
iOS
WebGL (Chrome, Firefox)
Other Devices:
Double2 telepresence robot
PTZ Cameras (Pelco)
Mission Description
Unity3D client application
- Components oriented architecture: Definition of interfaces and interactions between components of the application. (C#)
- Integrate dependency injection framework (zenject)
- MVVM (model view / view model) as MVC pattern.
- Multiplatform streaming pipeline (H264, VP8, Opus). Convert YUV to RGB using shaders or a native rendering plugin (based on libyuv). Integration of webrtc as a native plugin (c++ version M71/M73)
- Deployment of unity application on a Robot. (Double2, ios native objective-c plugin)
- Deployment of unity application connected to IP Onvif Cameras (native c++ plugin)
- Integration of Augmented Reality technologies (ArCore, ArKit, study of visionlib)
3D models format pipeline conversion on cloud
- 3D models conversion pipeline (from Step to Fbx using open cascade api, then import in unity).
- Asset bundle packaging of 3D models as a result of the conversion pipeline.
- Runtime : Download and instanciate AssetBundle on client Scene.
Multiplayer data synchronisation server :
- Define network commands and data in json format:
Streaming commands (synchronisation of streaming state)
Model3D commands (synchronisation of 3D scene)
Annotation commands (syncronisation of annotations)
Device commands (Remote command of Robot, Camera PTZ)
- deployment on VM: C# Rest API (IIS) scheduler for managing gaming servers.
- Migration from docker containers to kubernates : Study of using kubernetes for agnostic deployments (on-premise or cloud).
- State of the art on different multiplayer server frameworks and apis (smartfox, nakama, colyseus, unet, …)
SIP/conference servers :
- VM Deployment of Signaling and Conference servers (freeswitch)
- Migration from VM to docker : Deploy freeswitch on docker containers.
Azure cloud :
- VM creation, Network Security Groups, Firewall configuration.
- Installation of backend based on docker containers and installation shell scripts.
- Study migration of backend deployment on kubernetes
CI/CD
- Continuous integration: Setup Unity application build pipeline for Android, iOS, exe and web platforms
- Continuous integration: Setup c++ build pipeline for Android, exe libraries (Cmake, android build tools)
Technical Management
- Git process definition : Rebase, Pull Requests.
- Branches management (feature, hotfix and release branches)
2015
Rôle Technical leader
Airbus : 3D GIS for Avionics Project Name : Mission+
Project Description: 3D GIS avionics application on tablet (SP4 and IOS)
Technical Environment:
Target Platforms : Windows 8, iOS
Technologies C++ 11 QT/Qml 5.9
OSGEarth 2.8 OSG 3.4.0 Spatialite 4.3.0
GDAL 2.2
SQlite 3.1.5
Geos 3.6.1
Boost 1.5.1
Mission Description
Continuous integration
- CMAKE.builds on server side (Jenkins)
- Unit tests (QTest)
- Integration tests, automatically run on Jenkins (nightly build)
Technical Management
- Git process definition : Merge, Pull Requests.
- Branches management (feature, hotfix and release branches)
CI/CD
- Compilation of libraries (sqlite, gdal, osg, osg earth and all its dependencies) : Total of 23 libraries.
- Cmake configuration for iOS, Windows x64 and x86.
- Builds automation : Superbuild (sh for ios), bat for windows.
- Study of a migration to Conan build system
3D Engine:
- Camera Moving functions (mouse move or smooth teleport using lerp)
- Dynamic geometry modifications according to Altitude
- Dynamic Items (text, icons) instanciation/displacement on a Map.
- New Layer in application : GTopo 30 terrain altitude data
Client
- Organisation of application by components. Interfaces description.
- Components are QT Plugins (QT DLL)
- Connections between components are done with Signal / Slot mechanism
- Conception, Design and development of the Vertical Display component.
- Javascript / QML Views.
Migration Databse SIG : from PostGis to spatialite
- Compilation of libraries and dependencies for spatialite.
- GDal ogr2ogr to convert from PostGIS to Spatialite
- Queries Migration : from PostGis to Spatialite.
- Patch of GDal library that did not manage features on Dynamo context.
GPS :
- IOS : Use of plugin QT Positioning
- Windows : recompilation of QT Positioning plugin to modify Baud Rate on SerialPort NMEA.
COMPETENCIES
Technical skills
C++ development (C++11/14/17) : 5 years experience
Native c++ libraries for hololens, android and ios, used in unity3D engine
Tracking native plugin for unity3D (Ptam, OpenCV)
IP Camera remote native plugin for unity3D (MJPeg, Onvif)
Telecom native plugins for unity3D (webrtc, SIP stack)
QT native plugins, used in QML scripting.
Unity3D development : 5 years experience
Multimedia player (live streaming viewer, multi platform)
Asset bundle for 3D scenes download (multi platform).
Camera (ortho and perspective). Camera displacement, raycast, culling mask.
Unity Timeline for animations (3D and UI animations)
Native plugin integration (webrtc, sip, onvif)
Native rendering plugins (Yuv to Unity textures)
Multiplayer Server Technologies (authoritative games) : 4 years experience
Unet/Mirror multiplayer server programming
Nakama multiplayer Server programming
Web Apis / Web MVC applications : 5 years experience
.net core 3.1 Web Apis (kestrel)
nodejs Web Apis (express)
Java MVC Webapps (spring mvc, jsf, icefaces)
Lets encrypt certificate management (automatic renewal on linux)
Nginx reverse proxy
Authentication apis (oauth2 based on azure AD, keycloack, gluu)
Cloud CI/CD : 3 years experience
Azure yaml pipelines
Docker images (aspnet, node, freeswitch, coturn)
Agnostic backend deployment based on docker containers
Study of backend deployment based on kubernetes
Telecom Programming : 3 years experience
SIP stack unity plugin (resiprocate c++)
WebRTC unity plugin (native webrtc using M71 c++ library)
Streaming Protocols : SDP, SIP, RTSP
Environment and Development tools :
Configuration Management : git, svn
CI – CD : azure devops, jenkins.
EDUCATION
06/2004 : DESS Computer Science applied to economics (Mention Bien) University Grenoble
06/2011 : Cnam Multimedia Engineer formation:
Sound and Image processing (NSY122)
Multimedia and interactive games (RSX206)
PROFESSIONAL TRAINING
06/2018 : SIP / Freeswitch Training
2017 - 2020 : Pluralsight Unity3D Trainings
LANGUAGES
English : Read, Written, Spoken (Professional)
Spanish : Read, Written, Spoken (Elementary)