This is the blog part of Coder Corner, home of Pierre Terdiman.
Pierre has been programming computers for almost 20 years.
His first serious programming activities started on Atari ST, where he got in touch with 68000 assembly programming, self-generated code for fast display of bitmaps, linear algebra for 3D applications, or programming in severely constrained environments. He created a number of technical demos, still vividly remembered nowadays as some of the best ever done on this machine. With fullscreen programming in particular, which was a special graphical mode in which the assembly code had to be constantly synchronized with the monitor’s electron beam, he discovered the joy of “pushing the enveloppe” and breaking the hardware’s theoretical limits.
The same idea drove him into the PC world a few years later. There, he joined an international group of computer programmers and artists named Bomb. During that time he created a number of new technical demos, focusing on realtime 3D graphics and software rendering. This gave birth to a significant amount of texture mappers in 80×86 assembly, and a couple of lectures about procedural modeling. The group attended multiple international programming conventions all over Europe, and is still very well known in the demo-scene community.
Meanwhile, Pierre also graduated from a French engineering school, E.S.M.E. Sudria, based in Paris. At this time he moved from assembly to C++ and conducted various experiments related to realtime rendering, optimization, data compression, engine architecture, software engineering, L-systems, computational geometry, collision detection or physics - among other things. He has released large parts of the resulting code to the public, along with several technical articles, gaining popularity among professional game developers and Computer Graphics enthusiasts. At the same time, he was a very active member of a number of public mailing-lists and forums dedicated to those topics, eventually making him a well-known and appreciated contributor. Some of his personal projects have been used in a number of shipped, successful products. His 3DSMAX plug-in Flexporter has been widely used by various game or graphics companies such as Nvidia, for their Cg toolkit. His collision detection library, Opcode, was mentioned in the book “Collision Detection in Interactive 3D Environments”, and has been used by several Open Source projects (e.g. Open Dynamics Engine) or even commercial games (the most recent one being the highly anticipated Crysis, from Crytek). Former projects such as his Triangle Strips library have also found their way in a number of PS2 games.
Around the year 2000 Pierre grew fond of a particular game, Oni - the game Bungie created before Halo. He enjoyed that game so much that he then slowly started a very special side project: a remake of Oni, from scratch to finish, with gameplay elements from other games like Max Payne. The “Konoko Payne” project was born, and Pierre has worked on this continuously since 2000, whenever he had the opportunity. This has allowed him to become familiar with many aspects of a “modern” game, including gameplay-related problems that often remain obscure or unheard of for people only working on the game engine. The last released demo contains a fully functional character animation system (including hand-to-hand combat, throws, etc), combat AI for NPCs using micro-threads, path finding, multiple weapons, cut-scenes, sound effects & music, various post-processing effects like motion blur, bloom filters, and much, much more.
Pierre has worked for various French companies over the years. The most pleasant one was probably RAYFlect (later known as the US-based company EOVIA), where he was in charge of the scanline renderer and the A-buffer antialiasing for a Photoshop plug-in named Phototracer. He also worked for Doki Denki Studio (Lyon), in their R&D department. There he helped designing and creating a modern, object-oriented, scene-graph based game engine, which was running on PC and Dreamcast. More recently he implemented a physics engine for Elsewhere Entertainment’s (now aborted) game, Symbiosis. In 2001 he created his own company with former co-workers, Synthetic3, dedicated to 3D technologies for the web. Around that time, his reputation had him invited by industrial companies such as Solid Dynamics, or research labs such as the french CEA, for possible collaborations and discussions regarding advanced collision detection.
In 2003 he left the Internet business and joined a Zürich-based company called NovodeX, relocating from France to Switzerland in the process. There he worked on advanced collision detection and physics libraries with Adam Moravanszky, with whom he wrote an article in Game Programming Gems 4, “Fast Contact Reduction for Dynamics Simulation”. The improved NovodeX SDK gained popularity thanks to this collaboration, to the point that the company got acquired by a bigger hardware manufacturer company - AGEIA. Working for AGEIA but still located in the good old Zürich office, Pierre remained focused on the software (rather than hardware) physics SDK, adding new features and optimizing it over the years. His contributions involved collision detection and contact generation for convex shapes, sweep tests, a character controller, and many other features. While mainly working on the technical aspects of the PhysX SDK, Pierre also got involved more directly in games. As part of his AGEIA job he went to UbiSoft (Montpellier) to help debugging Ghost Recon Advanced Warfighter (GRAW) and also worked on optimizing the physics in GRAW 2.
In 2005, thanks to his work on Opcode and his reputation in this field, Pierre was asked to review a preprint of Christer Ericson’s book, “Real-time Collision Detection”. His comments appear in the very first pages of the book.
In October 2007, Pierre started working for the Swedish company GRIN, and moved to Spain to join their Barcelona office. As lead gameplay programmer for Wanted : Weapons of Fate, he managed a small team of programmers implementing gameplay-related tasks in LUA.
Two years later, after shipping game, Pierre came back to the PhysX team in Zürich, now working for NVIDIA.