jeudi 15 juin 2017

6 months Internship with a... Hololens !

J'ai travaillé pendant 6 mois en stage au sein de la banque Française Société Générale. Ce n'est pas vraiment le milieu bancaire qui m’intéressait, mais plutôt le projet hors du commun sur lequel j'allais pouvoir travailler. Deux employés de l'entreprise mettaient en place un tout nouveau projet d'innovation utilisant la technologie Hololens: Utilisation de la réalité mixte par les traders en salle de marché.

Ma mission allait donc être de développer des prototypes suffisamment convaincant pour faire connaitre d'avantages le projet.

Cette expérience a été extrêmement enrichissante car j'ai été énormément livré à moi même, et je suis très fier du travail que j'ai accompli. Je me suis également "forgé" pendant la seconde partie de mon stage une petite expérience de chef de développement d'un projet, je vous en dit plus plus bas.

La première partie de mon stage s'est reposé sur ce pour quoi j'avais été recruté : développer un prototype d'application Hololens à destination des Traders en salle de marchés. Cela m'a fait particulièrement améliorer mes compétences en Unity et donc aussi en C#. Le prototype devait pouvoir :

-Afficher en trois dimensions dans une pièce de nombreux graphiques de différents types (lines, batons..), Connectés à la Bourse.
-Etre Interactif, déplacer les graphs, les connecter à différents indicateurs boursier, les personnaliser en changeant leurs tailles leurs couleurs.
-Etre en réseau, de manière à ce que plusieurs personnes avec des Hololens puissent voir les graphiques en partage et que tout le monde puisse interagir ensemble dessus.
-Toujours en réseau, les différents utilisateurs, si à distance, pouvaient se voir bouger virtuellement dans l'application ainsi que s'écouter parler, tel un Skype ++.
-Encore en réseau, un whiteboard sur lequel tout le monde peut écrire.

Si je suis content de mon travail, c'est notamment parce que le prototype a fait beaucoup de bruits en interne et à même permis à deux reprises à servir à des fins commerciaux (je n'ai pas le droit de vous en dire plus..)

La deuxième partie de mon stage fut une commande en interne. Les équipes de sécurités SAFE nous ayant repéré, nous avons réalisé un contrat avec eux afin de développer pour leur séminaire de sécurité annuel un prototype d'une application de l'analyste sécurité du futur, toujours avec l'Hololens. Ce projet fut comme développer un jeu-vidéo, je devais réalisé une interface futuriste (celle de "Windows 12 en 2025"..) à la minority report et le programme devait suivre un scénario particulier contenant notamment des interaction avec une IA, la gestion d'anomalies sur le réseau de l'entreprise, un appel Skype du futur etc..
Mes chefs m'ont laissés géré le développement et les négociations avec les équipes de SAFE, je devais donc fixer moi même ce qui allait être possible de faire ou non avec les délais et le scénario proposés.

Aussi, j'organisais régulièrement des réunions avec eux afin de leur faire part de l'avancement et pour leur demander certaines ressources nécessaires au bon développement. Ce fut une expérience très intéressante, en terme de dev c’était plutôt fun, très cinématographique comme présentation, en terme de management, j'ai découvert comment dans une grande entreprise comme la SG les projets se géraient, avec les avantages et les inconvénients, c'est très enrichissant.

A l'heure actuelle, je ne peux malheureusement montrer d'images..

vendredi 23 septembre 2016

3d rendering engine - Raytracing


Always in the way of my school, we had to create a big team project because of allowed us to search a internship in a company.

In a team of 4 students, we have choose to develop a 3d rendering engine, using the raytracing technic. It's use for generate realistic image by reproduce the behavior of light. We had to create the engine from scratch, so, we have choose to develop it in C with the SDL2 library.
This is the list of features that we implemented:

- The program run in multithread.
- We have develop our shader system, can be blend like the Photoshop layers.
- We support Diffuse, Specular shaders..
- Reflection
- Refraction, according to the Snell-Descartes law.
- Primitif rendering: Sphere, Cube, Cone, Cylinder..
- 3d Model rendering: Wavefront .obj parsing, composed with triangles.
- Textures (.jpg, .png..)
- Procedural Textures (Damier, Perlin noise..)
- Normal map rendering.
- Colored shadows: if the light passes though a transparent object, then the colors are projected, like a stained glass window.
- Manage scenes contents with tree system. (Object can be child of another object, relative position etc..)
- Hitbox system for optimisation, ray can ignore some objects that are not in the trajectory.
- Bitmap (BMP) export.
- Live scenes edit with a GUI.

You can found the source code here: http://github.com/Chr0nos/rt

mercredi 15 juin 2016

Car Gameplay Prototype

The idea was simple, developed a car gameplay. In the reality, i have see that we need to takes some points of consideration: In a car game like Need For Speed, the rotation of a car depending of her speed. 
So, firstly, in my script, i'm changing in real time the "potential" torque.
Secondly, i'm changing the damping, because the wheels hang greater or lesser depending on their orientation, which allows to manage skids for example.

vendredi 27 mai 2016

Global Game Jam 2016 !

During the Global Game Jam 2016, in the Cité des Sciences of Paris, we have create a team of 6 persons (3 developers, 2 artists, 1 sound-designer) for develop a game in 48 hours.

The theme of this year was "The Ritual". This is a description of our game : 
Once upon a time there was Sun, a bright ball of fire! And then there was Earth, a frozen rock floating around in empty space! And then Sun, being lonely, shined on Earth which created Life. Life started worshipping Sun, which made Sun happy. Happy Sun shined brighter and brighter, warming the Earth. Earth, noticing it was getting warmer and warmer, knew it had to act. Earth created You and Him to stop Sun from getting too happy but at the same time keep him just happy enough so Earth could enjoy a healthy amount of Sun. And so the ‘Ritual Of Just Enough Worship’ was created, an endless cycle of turning Life into happy Worshippers or unclean Heathens. (ps, heathens and other features might not be implemented)
The game is built on an in-house engine, using SDL2, OpenAL and Spriter. It was a amazing experience!  You can download the game (for windows) here: http://globalgamejam.org/2016/games/twinkle-twinkle-little-star

3D wireframe engine



For my first graphic project at my school (42), i developed in C a little 3d wireframe engine. The goal of this project was to create a graphic representation of simple maps (save into text file). I choosed to use perspective projection formula for create a complete 3d representation.

For this project, we don't have the choose of the library, so students use a lib created by the school, which has only simple low level functions (put pixel and.. nothing other).

Source code available here: https://github.com/Hantlowt/fdf

jeudi 26 mai 2016

Raycasting engine - Wolfenstein 3d like

At the time the 3d engines in the video game did not exist, a technique was beginning to emerge, the raycasting. It allowed simulate 3d basic, limited display cube and horizontal planes.
One of my school projects was to reproduce this technique. I am amused by this opportunity to add textures and a skybox. The project uses a library from the school.
Find the source code here: https://github.com/Hantlowt/wolf3d

mercredi 25 mai 2016

Fractal

Little 42's project for explore some famous fractals (with movement, zoom with dynamic iteration, and multiple colors) ! (Mandelbrot, Julia, BurningShip ..)