Linear momentum, inertia principle, movement inside Earth's gravitational field with all kinds of friction, simple pendulum, Coulomb's friction law, power, work, kinetic energy, potential energy (elastic, gravitational, electrostatic), angular momentum, (un)damped harmonic oscillator, planetary motion, Kepler's laws, central forces, rotation of a solid, brakes and engines, spring pendulum.
The application is divided into modules which for the most part follow the MVC design pattern.
Being arrived at a period of change for La Poste, particularly with the opening of the competitor market (2011), many evolutions of the application have been asked for in order to answer to the arrival of new services.
Thus, in addition to correction and maintenance tasks, I have been in charge of five big evolution tasks, hence with a work of design, realization and testing. These tasks have allowed myself to apply Factory or Decorator design patterns.
Four-month internship realized in the video game development studio Yamago.
Improvement and creation of game templates and game engines.
Research and development in the mobile technologies field.
Yamago is a company which creates video games for the Web, social networks and mobile devices. It has created more than 100 games, for important clients like Disney or Cartoon Network, as well as original creations.
During this internship, I have worked on three templates and their respective engines: the mobile, HTML5 and Flash template/engine.
This template and its engine are written in C++ and use the frameworkCocos2d-x allowing to target many platforms: Android, iOS, Windows Phone and more like computer platforms.
I have included the possibility to launch this mobile version on Windows and this in any resolution.
A lot of improvements have been made to the engine: support of multi-resolutions (adaptation of the game to any device), of relative positions, of masks (OpenGL).
I have ported for the most part the Flash and mobile template and engine into an HTML5 version.
For this purpose, I have used the language TypeScript and the libraryPixi.js.
The result was to obtain a functional template although with low performances.
One of the main improvements of the Flash engine written in ActionScript has been adding the support of tweens (transition animations) thanks to the libraryTweenMax.
This improvement has then been added to the HTML5 version.
In order to be able to test the local notifications as well as the push notifications, a lot of developments have been realized:
An Androidapplication able to receive push notifications and to manage local notifications, written in Java.
An AIR (Flash) application, written in ActionScript, having the same functionalities thanks to ANE (native extensions) and being able to being used on any device (iOS or Android).
A web application written in PHP allowing to manage the sending of push notifications to devices on iOS or Android.
I have created an AIR (Flash) game written in ActionScript and taking advantage of the accelerometer and of the gyroscope, thanks to the use of ANE (native extensions), to be able to guide a little thing willing to eat as fast as possible what is around it.
Some other works I have done during this internship:
Research and development then integration in a game of skeleton animations thanks to the solution DragonBones.
WWOOFing consists in working in an organic farm in exchange for room and board.
This experience has made possible an exchange with a lof of nationalities (American, Australian, Chinese, Austrian, Swedish, German, …) and to discover a new way of life.
Personal project of a Rainmeter skin to know the schedule of the French TV channel Nolife, written in Lua.
The following website is dedicated to it:
Rainmeter is a software allowing to add widgets (called skins) on the Windows desktop.
Nolife is a French TV channel dedicated to Japanese culture, games, technologies, and many other subjects.
The skin is based on a XMLflow called NoAir and containing the informations of the programs grid of the channel.
This flow, and a RSSflow containing the news of the channel, are analyzed by Luascripts.
The skin has a lot of features:
Display in real time of the current broadcasting program and its remaining time.
Characteristics of the program : images, description, links to the online program (SVoD service called noco) or the topic on the forum, …
Possibility to select the next or previous programs, to obtain the other broadcasting hours of a show, to hide programs of music, …
Search engine allowing to search for a specific program or to access a precise time.
Interface entirely adjustable.
Display of the news of the channel.
The skin has a cache system for images, handles UTF-8encoding, possesses a configuration file and displays animations.
Software engineering and end-of-studies project for the startup AbracadaCook during 4 months in a team of 5 persons.
Design of the server architecture and its databases, realization of a base of REST web services in Java EE and of diverse prototypes and writing of an ensemble of tests and an exhaustive documentation.
The project of AbracadaCook is to offer a service in different forms (website and applications) to deal with the daily diet (dishes to cook, catering, CSA).
The whole project has been handled professionally, particularly by applying project management methods: weekly meetings with the client (with agendas and minutes), task tracking, production plan, Gantt chart, …
The writing of the specifications then the design of the server architecture and the databases (use of UML diagrams), the realization of the REST web services in Java EE (JBoss and Hibernate) and finally the writing of the unit, integration and performance tests have been made jointly with the client, the whole concerning mainly the management of the CSA part of the service.
Teamwork has been possible thanks to the use of the revision control system Git.
For non-disclosure reasons, the report and the source codes are not available.
Design and realization in C++ of a tower defense game, linking brain waves, musical generation and gameplay.
An electroencephalographic headset allows particularly to get the mood of the user, then used as a parameter to generate the music, which itself plays on several aspects of the game.
The company Arts Sciences Information is dedicated to the study of the impact of neuro-physiological data on user experiences.
The LaBRI is a research laboratory in computer science associated to the CNRS and partner of INRIA.
To allow the client to actively participate to the project, the agile methodScrum has been used with a team of seven persons.
The coordination between the team members has been possible thanks to the use of the revision control system Git.
The game uses maps, generated thanks to scripts we have written in Python.
The musical generation is inspired by the software Muziko. Music is composed according to the headset data, then sound data are sent in OSC to the software Pure Data which plays them thanks to our patch.
The game possesses an artistic direction inspired by the solfège.
The player starts by selecting a map in a list, and the BPM of the music, corresponding to the difficulty.
The player buys and placestowers (solfège clefs) around the path (musical staff).
Then the monsters (notes of music) come depending on the notes of the generated music (therefore, the higher the BPM, the more monsters are to come during a period of time), during a determined time.
The electroencephalographic headset allows especially to measure the excitation of the player. According to his state, the music changes, and the player wins more or less strategic points or SP (calm state) and power points or PP (excited state).
The points allow to buy or to upgradestrategic towers (rapid and long-range but weak fire; more expensive in SP) or power towers (slow and short-range but powerful fire; more expensive in PP).
The player manually controls the fire direction of the towers and can upgrade or sell them during play.
The player has several lives. If a monster reaches the end of the path, the player loses a life. When the player does not have life anymore, the game is over. If all the monsters are eliminated before the end of the time alloted, the points gained are kept and the player can choose another map.