Scientific 3d Software Developer - C / C++ / STL / Python / Java / OpenGL / shading computer vision - 3d capture - tracking - augmented reality signal / image processing - mesh generation - real time simulation development of a workflow programming environment - third parties packages interface this file http://ysengrin.com/VareilleResume.pdf Guillaume VAREILLE 7 December 1969 - married - 2 children (9 and 6) French citizenship Bilingual French / English (7 years US, 5 years UK) Basic Russian 2 rue pèré maron 4130 Esneux Belgium [+32] 42 68 29 51 [email protected] http://ysengrin.com I can relocate anywhere in the world. I am entitled to work in the EU and worked in the US (H1b visa) and Switzerland (permis B) in the recent past. A personal development tool, basic 3d mesh viewer using OpenGL is available on my website (actually, it's kind of old now, but there still is this vertigo effect feature that you don't see everywhere). A previous software I was working on professionally is free to download and open source on the company website http://mgltools.scripps.edu . I've implemented for it OpenGL shading, FBO, stencil and stereo vision with quad buffering. EDUCATION 1989 - 1992: Institut de Physique du Globe de Strasbourg (Strasbourg Institute of Geophysics): Master 2 in Geophysics with honors. Ingénieur Grande École EOST (ex EOPGS) (1992) http://eost.unistra.fr/en/ecole-dingenieurs/cursus/diplomes-depuis-1985/#dip_1992 http://en.wikipedia.org/wiki/Ecole_et_Observatoire_des_Sciences_de_la_Terre 1988 - 1989: Institut Universitaire de Technologie - IUT Cergy Paris X : Bachelor of Science in Civil Engineering with honors (DUT génie civil) (1989) http://www.iut.u-cergy.fr/ COMPUTER KNOWLEDGE present: C, C++, STL, Python, Java, Design patterns, 3d, OpenGL (including shading language), HOOPS, DSP, image processing, GUI with MFC, GLUT, FLTK, Tcl/Tk, GUI on MacOS, Vrml. PL/SQL, ORACLE, Forms builder, XML (write-read-parse), DevStudio, gcc, g++, make, nmake, Eclipse, SVN, CVS, SourceSafe, ClearCase, Code Co-op, Lint, Purify, BoundChecker, Valgrind, gdb, Quantify, Windows, Unix (Irix, Linux, freeBSD, Mac OSX). in a previous life: Delphi/Pascal, Fortran, Html, Basic, Assembler PC, DOS, MVS, TMS320, Cadsap (finite elements structure analysis), Mustig & Famos (digital signal processing), Quicktime, AVID Media Composer, FLINT Discreet Logic, Photoshop, Illustrator, Strata Studio Pro, Quark xpress, Excel macros. RECENT SCIENTIFIC FIELDS OF COMPETENCE Mathematics, physics Data acquisition Digital signal processing Image processing Filter theory Spectral analysis and transforms Multi-platform conditional programming Real time programming and 3d simulation Algorithm development and implementation 3d programming Mathematics of 3d manipulation Euler angles, quaternions Camera calibration, tracking, augmented reality Extraction of intrinsic and extrinsic camera parameters Epipolar geometry, 3d reconstruction Curves, surfaces, 2d and 3d interpolations 3d meshing and remeshing Unstructured mesh generation Delaunay triangulation, marching triangles PUBLICATION (yes, singular) Services Oriented Architecture for Managing Workflows of Avian Flu Grid http://arnetminer.org/publication/services-oriented-architecture-for-managing-workflows-of-avian-flu-grid-3208348.html PRESENTATION A physicist by training, with a specialization in signal processing, I am a graphic and scientific programmer. Taking charge of a project from A to Z, confronted with a given problem, I search in scientific literature and on the internet for different types of known or possible answers, then implement the chosen algorithm developing a specific variation in C, C++, STL, Java or Python on any kind of platform. Expert in signal processing, data analysis and acquisition, I have notably developed a feature tracker (normalised cross-correlation) for similar or moving images. The core algorithm is in C; a small graphic application in Java allows it to be used on Quicktime movies (in the past I have been an AVID editor and technician). For the past 15 years I have been working in 3d programming and have specialised in various fields involving 3d. For instance meshing and remeshing, whether creating an initial mesh for 3d data capture or remeshing an object with other constraints, such as transforming a purely geometric mesh into a mesh suitable for finite elements calculations. Besince of a real-time application/animation, whdes mathematics linked to 3d manipulation, 3d animation and computer vision, I have mastered OpenGL and all questions of 2d representation of 3d objects; moreover the techniques of camera calibration allowing the mapping between real and virtual worlds, essential for any 3d data acquisition. I was lacking practical experience of a real-time application/animation, which I gained in Switzerland working on a surgical operation simulator. And finally some experience with OpenGL shaders, stencil, quad buffering and FBO. WORK EXPERIENCE Belgium: Nov 09 – present: SAMTECH finite element analysis software, C++, java, OpenGL. First I Worked on replacing the graphic renderer from OpenCascade with the HOOPS scene graph. In CAESAM and Samcef field. Now I am adding to NX specific features for our finite element solver http://www.samtech.com US (H1b visa): Sep 05 – Oct 09: TSRI (The Scripps Research Institute) Python C, C++, OpenGL working on two different development on xp, vista, mac osx, linux, irix: - Pmv (python molecular viewer): a powerful molecular viewer that has a number of customizable features and comes with many pluggable commands ranging from displaying molecular surfaces to advanced volume rendering. - Vision: a visual workflow programming environment in which a user can interactively build networks describing novel combinations of computational methods, and yielding new visualizations of their data without actually writing code. - assisting other developers on an augmented reality project concerning molecule's manipulation. http://mgltools.scripps.edu UK (contracting from Switzerland): May 05 – Jul 05: JAHSHAKA video/film compositing software. Open source and Cross-platform. C++ STL Programming. Windows XP and Linux (devstudio, eclipse, cvs, gcc, g++, make, nmake). Programming of the XML writing-reading-parsing of the compositing project. Programming of the load and opengl display of various 3d file formats via a plugin architecture. http://www.jahshaka.com Switzerland: Feb 02 – Nov 04: MENTICE (ex XITACT) Delphi Programming on Windows2000 (Delphi6, Code Coop). Developing a real time simulator to train surgeons for laparoscopic surgery. I mostly concentrate on the interactions between the instrument and the surface of the organ (tear, tent, cut, burn, bleeding, local deformations, collision detection, smoothing of edge contour by closed BSpline using De Casteljau algorithm). I also work on some OpenGL aspects of the system (guidance, camera navigation). http://www.mentice.com UK: Jun 00 - Feb 02: AUTODESK (ex MOLDFLOW) C/C++ Cross Platform Programming on NT (DevStudio 6, MFC, ClearCase) using WindU on UNIX machines (IBM, SUN, SGI, HP). We were developing a CAD / CAE package, finite elements simulation of the plastic flow. My main concern was around the correct remeshing of the mold as a 3d model (decimation, finite elements mesh generation, shortest path, skeletonization, NURBS conversion to triangle mesh), and the manipulation of the 3d object in OpenGL, lighting and bumpmapping. Incidentally, I took care of the help system for the release on my arrival. http://www.moldflow.com UK: Sep 97 - Jun 00: 3DMD (ex TCTI, ex TRICORDER) Programmer on UNIX (GCC) and NT. (C++, STL, DevStudio6, MFC, SourceSafe, Lint, Purify, Quantify, GUI programming through the wizards). I was working on the development of a 3d library and 3d applications related to instantaneous 3d digitizing (based on a stereoscopic method), video acquisition, camera calibration (intrinsic and extrinsic), stereovision, 2d and 3d registration, iterative closest point registration, Genetic algorithm optimization, Delaunay triangulation, marching triangles, decimation, texturing. I also developed a 2d tracking system (normalized cross correlation) used to register 3d surfaces via their texture. http://www.3dmd.com US (H1b visa): Sept 94 - Sep 97: WHERE4 Programmer on Macintosh. Digital video effects (image processing) and 3d digitizing software (based on a contouring method, see below). Symantec C++ on Power Macintosh. Multimedia / cd-rom / html design and production using all the available Macintosh tools (2d, 3d, QTVR, QTO, film compositing, sound editing). STABLEFILMS Engineer in the post-production facility. Macintosh Network, Technical support on AVID and assistance to the clients. Offline/Online editing (Avid). France: 94: CALLIGEE Geophysics and geology of subsurface, Radar systems, electrical and electromagnetic measurements (data acquisition and signal processing), frequency analysis (Fourier transform), time-frequency analysis (Wavelet and Wignerville transforms). TMS320 - Borland C++. http://www.calligee.fr 93: YSO Consultants Mine blasting optimization, data acquisition, signal processing, time frequency analysis, sismic refraction, diagraphy, C++. Excel (macros programming). 92 (8 month training): TOTAL (ex ELF_AQUITAINE) Research into sismic reflexion (anisotropic pre-stack migration), wave propagation by Eïkonal (ray tracing) and wave equation. Fortran on Unix (SPARKS 2) and MVS (IBM 3090, CRAY YMP). http://www.elf.fr 91 (2 month training): Laboratoire central des ponts et chaussées (National Department of Public Works) Research on fissures in concrete by wave propagation. Borland C++. http://www.lcpc.fr 90 (2 month summer job):SCREG (Major construction company) Team leader at construction site, plan drawing, quantity surveying, management of people and machines. http://www.screg.fr WHERE4 3d digitizer (contouring) The system automatically converts a series of photographs of any object (or subject) into a 3d graphic format. It can also grab the color texture. I developed the whole software on Macintosh concentrating essentially on the low-end algorithm. I also developed the calibration and positioning method. 3DMD (ex-TCTI ex-TRICORDER) Instant 3d digitizer (stereoscopic) Using a non-structured light (speckle pattern), the system produces a couple of pictures from two calibrated cameras. A 2d matching point process then allows calculation of the corresponding 3d points. By the way, that’s me (hum... was me). MOLDFLOW Cad Package Simulation of the plastic flow in the mold. MENTICE (ex XITACT) Real time simulator to train surgeons for laparoscopy. It’s a bit like a play station game, but contacts are much softer. It’s quite difficult to play and not very funny. Someone asked me once to describe a problem I encountered and how I solved it. Here it is: Contour smoothing problem. While working on the surgical operation simulator, I was asked to consider what could be done to smooth the contour of the cuts. The scissors were cutting the organic tissues and this was represented by simply removing the cut triangles from the top surface. The problem was that by simply removing triangles from the mesh, the remaining contour was very jaggy, and not at all “natural” looking. I looked at the different possible smoothing methods that could be used, and found that the De Casteljaut spline addressed all my concerns as it is a closed bspline that doesn't go through its control points. It has to be a closed curve because such are the contours. The fact that it doesn't go through its control points is the cherry on top. I don't want actually to obtain a finely sampled contour. Each point of the initial contour being a triangle vertex, all I need to do is to move each vertex to its position on the De Casteljaut spline (and keep the triangulation as it is). The idea is to say that the vertices on the contour are the control points of the De Casteljaut spline. Then instead of generating all the points along the curve (as you generally do with splines), I just calculate the position on the spline of the control points. That way I am using the “spline calculation” routine just for the few vertices of the original contour. Consequently it is very quick, performs real time and the result is nice and smooth. TSRI Pmv - python molecular viewer TSRI Vision visual workflow programming environment SAMTECH I rearranged the way we mesh secondary order surfaces. This is the result in flat rendering. Just the pink ones are mine (and the sledge is actually my bodyboard from San Diego) I've taught my 8yo how to solve the rubik's cube http://www.youtube.com/watch?v=ZQJuykPVz9A Don't forget to watch my amateur theater videos in French and in English http://theatre.ysengrin.com In San Diego, I founded an amateur theater group and they wrote a paper about it (and me): http://www.scripps.edu/newsandviews/e_20080407/mobility.html my other hobbies includes: motorcycles, ping pong, singing, c ontemporary art, rollerblades.
© Copyright 2021