Site hosted by Angelfire.com: Build your free website today!

Accueil

Curriculum vitae

Relevés de notes

Contactez-moi

Liens

English

Stéphane Paradis
Ingénieur

Introduction

Le présent site internet a été conçu afin de fournir un complément d'information à mon curriculum vitae. Vous y trouverez de l'information concernant les sujets suivants:


Engenuity Technologies Inc.

Engenuity Technologies Inc. [TSX: EGY] développe, commercialise et supporte des logiciels et des composants prêts à l’emploi destinés au développement d’applications visuelles de pointe. Nos solutions permettent à nos clients de développer des interfaces humain-machine, des systèmes de simulation et d’entraînement, et de représenter sous forme graphique les informations stratégiques pour l’entreprise. Les produits d’Engenuity permettent d’accélérer le développement et d’accroître la fiabilité d’applications complexes telles que l’affichage des informations pour les cabines de pilotage d’avion ou les tableaux de bord de véhicule, la visualisation des réseaux, la préparation de cartes pour missions critiques et la modélisation du comportement d’avions ou d’hélicoptères.

Jusqu'à tout récemment, Engenuity développait uniquement deux gammes de produits : VAPS XT et STAGE. Or, le 10 novembre 2005 Engenuity a fait l'acquisition de BGT BioGraphic Technologies Inc. Cette compagnie développait des outils pour faire de l'intelligence artificielle. Leur principal produit était AI.implant. Ce dernier était destiné aux concepteurs de jeux vidéo et au milieu du cinéma. De nos jour, AI.implant est utilisé pour le développement de jeux sur les consoles de nouvelle génération (XBOX 360 et PlayStation3). Dorénavant, Engenuity offre trois gammes de produits:


VAPS XT

VAPS XT est un logiciel destiné aux ordinateurs personnels fonctionnant sous Windows. C'est un outil pour le développement rapide d'interfaces humain-machine dynamiques, interactives et graphiques en temps réel. Il offre une très grande liberté et des possibilités de design illimitées. VAPS XT est idéal pour l'affichage de données, des applications de simulation et pour le développement de systèmes embarqués.

Ci-dessous, on peut voir deux captures d'écran de VAPS XT en mode édition. L'image de gauche illustre le développement d'un ADI (Attitude Director Indicator) à l'aide de la librairie d'objets aéronautiques. VAPS XT comporte également une librairie d'objets destinés à la création de tableau de bord d'automobile. L'usager peut enrichir les librairies existantes ou créer de nouvelles librairies en construisant de nouveaux objets à partir des primitives de bases (ligne, rectangle, cercle, image, etc.). Il est même possible de créer de nouvelles primitives de bases en utilisant un API C++ fourni avec le produit.

L'image de droite illustre une fonctionnalité très puissante de VAPS XT; l'éditeur de Statecharts. Cet éditeur permet de créer des Statecharts selon la norme UML (Unified Modeling Language). Chaque état ou transition peut comporter des instructions qui affecteront l'objet auquel le Statechart est associé.

VAPS XT: Librairie d'objets aéronautiques
(Cliquer pour agrandir)
VAPS XT: State Chart
(Cliquer pour agrandir)

VAPS XT est accompagné par défaut d'un générateur de code C++ (CODE nGEN) qui permet de générer automatiquement un exécutable pour la plateforme cible à partir de l'éditeur. Ci-dessous, on retrouve trois exemples d'interfaces générés avec le générateur de code.

Interface primaire de vol
Voici, un exécutable qui illustre un panneau d'affichage de cabine de pilotage fonctionnel comportant un ADI (Attitude Director Indicator). Cet exécutable a été créé en appuyant sur un simple bouton avec le code générateur CODE nGEN.
ADI interactif
Trois ADI (Attitude Director Indicator) simples avec un contrôleur externe.
Cadrans assortis
Cet exécutable illustre quelques-uns des cadrans communs aux interfaces de vol. Deux contrôleurs permettent de manipuler ce qui est affiché.

Mes réalisations chez Engenuity

Je suis entré en fonction chez Engenuity le 5 avril 2004. J'ai d'abord été engagé comme Software Developer pour rapidement être promu comme Software Designer le 1 juillet 2005. J'ai travaillé dans deux groupes : VAPS XT (avril 2004 à décembre 2005) et STAGE (depuis janvier 2006).

En ce qui concerne ma participation dans le groupe de VAPS XT, j'ai participé aux deux dernières années de développement du produit qui a été lancé sur le marché le 9 novembre 2005. Plus précisément, ma tâche a consisté à:

  • Concevoir et développer des parties d’un générateur de code C++. À partir de VAPS XT, il est possible de générer du code C++ qui reproduit le comportement de l’interface développée.
  • Optimiser les structures de données des objets composant les interfaces en vue d’exécuter l’application générée sur un système embarqué.
  • Concevoir et développer un mode de simulation pour les interfaces. Le principal défi de cette tâche consistait à déterminer de façon dynamique l’ordre dans lequel les objets devaient être mis à jour.

Après que VAPS XT ait été mis en marché, l'équipe de développement a été réduite de plus de moitié pour finalement ne comporter que cinq personnes. Voyant une opportunité d'augmenter mon champ de compétences, j'ai demandé à être transféré dans une autre équipe ce qui m'a amené à travailler dans l'équipe de STAGE où ma tâche a consisté à:

  • Intégrer un 3D viewer (GenesisRT de Diamond Visionics) à l’application STAGE.
  • Concevoir et développer un terrain service.

Bust-A-Move 3D

Mode Level (Cliquer pour agrandir) Mode Arcade (Cliquer pour agrandir)

Qui n'a jamais joué au célèbre jeu Bust-A-Move? Voici une nouvelle version 3D réalisée dans le cadre d'un projet de spécialité effectué lors de ma dernière session de mon baccalauréat en génie informatique (automne 2003).

Initialement développé avec Microsoft .NET Framework (C#), la version disponible sur ce site internet a été réalisée en C++ afin d'obtenir un plus haut niveau de performance et afin d'utiliser les mêmes technologies que les grands studios de développement de jeux vidéo. Le moteur 3D du jeu a été construit à partir de la librairie DirectX de Microsoft.

La version développée comprend deux modes de jeu, soit un mode Level et un mode Arcade. Le but du jeu est d’accumuler le plus grand nombre de points en détruisant des balles. Pour ce faire, il suffit de créer des groupes d’au moins trois balles. L’interface de jeu est très intuitive, on oriente le lanceur à l’aide des flèches gauche et droite du clavier et on expulse une balle en appuyant sur la barre d’espacement.

Pour exécuter ce programme, vous devez préalablement installer DirectX 9.0 offert gratuitement sur le site de Microsoft.

Bust-A-Move (Exécutable)
Bust-A-Move (Sources)


Labtep

Image cardiaque présentée selon les axes standardisés
(Cliquer pour agrandir)

Carte polaire
(Cliquer pour agrandir)

Labtep est un logiciel créé par le Centre d'imagerie métabolique et fonctionnelle du centre hospitalier de l'Université Sherbrooke afin de visualiser des images produites par les tomographes par émission de positons.

Dans le cadre d’un stage effectué à cet endroit, j’ai créé deux groupes de fonctions ayant pour but d’étudier des images cardiaques. Dans un premier temps, j’ai développé des fonctions ayant pour but d’effectuer la réorientation automatique selon les axes normalisés (Short axis, Vertical long axis et horizontal long axis). Dans un second temps, j’ai réalisé un outil afin de créer des cartes polaires. Une carte polaire est une image 2D de l’ensemble du coeur.

Labtep a été développé en C++ sous le système d’exploitation Linux avec la librairie QT développée par Trolltech. Cette librairie multiplateforme permet de porter facilement le logiciel de Linux à Windows. L’étape la plus compliquée pour porter le logiciel d’un système d’exploitation à l’autre est la création du projet Visual Studio à partir du Makefile.


Rotomino (Gameloft)

Version portée sur le téléphone cellulaire Motorola I90.

Version originale développée
pour PALM OS.

Dans le cadre de mon baccalauréat en génie informatique, j'ai effectué un stage chez Gameloft durant la session Hiver 2002. À cette époque, Gameloft venait de se lancer dans le développement de jeux vidéo pour plateformes mobiles (téléphones cellulaires).

Durant mon stage, j'ai travaillé sur deux jeux: Incubus et Rotomino. Ces jeux ont été développés pour des téléphones cellulaires Java. Ci-dessus, on peut apercevoir des screenshots du jeu Rotomino. À gauche, on retrouve la version que j'ai portée pour le téléphone cellulaire Motorola I90. À droite, on retrouve la version originale développée pour PALM OS.


Dernière mise à jour : 25 septembre 2006