Europython – Python in Science talks LLG Python – A python based approach for High Performance Parallel Geometric Computing M. Jé Jérémie Farret – CTO –
[email protected] Dr. JeanJean-Fran Franç çois Rotg Rotgé é – CSO – jean
[email protected] July 2006 LLG/EUP/JFA/2006-002 rev 1.4
• Objectives
LLG Python Python based programming paradigm for Geometric Simulation
Unify volumic data representation and processing for real time applications Unify geometry, graphics and physics simulation Enable interoperability for various simulation domains
• Notion of Universal 3D Programming • Replacing parametric and polygonal surfaces with descriptive polynomials for generalized algebraic surfaces
Where do we come from
• Montreal University – 1991 to 1995 Desargues Project • Arithmetic of Forms • Implementation based on functional programming Scheme • Parallel Computing – Developments on Archipel Transputer Systems
Thesis • Dr J. F. Rotgé - “L’Arithmétique des Formes - Une introduction à la logique de l’espace” – July 1997
Where do we come from
• Arithmetic of Forms Unifying Topology, Arithmetic and lambda calculus
• Projective Geometry and Unconditional Programming Introducing a superset of Euclidian and other conventional geometric systems Eliminating geometric special cases, i.e. testing and conditions Generalizing homogenous coordinates : Integer based, No loss of precision
Where do we come from
• SGDL Systems – 1995 to 2005 Applying research results and Arithmetics of Forms to industrial applications Focus on Applications / Proofs of concept for hyperlarge scenes Scheme based implementation for mainstream systems
Who we are
• Parallel Geometry – 2006 Single, unified polynomial based description for Graphics, Physics and Geometry simulations Focus on High Performance Computing and Hypercomplex Simulation Applications • Systems Architecture, Software Optimization
Python based implementation targeted at various hardware environments • Supercomputing, Parallel Systems and Multicore Architecture • Embedded Systems
LLG Python for Geometric Programming A polynomial based approach
Geometry
Graphics Polynomial
Physics Computing Systems
LLG Python for Geometric Programming A polynomial based approach Polynomials Polynomials
Implicit Implicit Surfaces Surfaces Polyhedrons Polyhedrons Parametric Parametric Surfaces Surfaces Subdivision Subdivision Surfaces Surfaces
Polygons Polygons
LLG Python for Geometric Programming From Scheme to Python
• Why Python? Functional and imperative programming Efficient coupling with C/C++ based developments Benefits from strong support, both industry and research community Portability, from embedded implementations, to supercomputing and parallel processing support Lightning fast prototyping and development Offers great performance
LLG Python for Geometric Programming Development methodology From Algorithms to C through Python
• Algorithmic phase Development based on Computer Algebra Systems such as Maple Algorithms focusing on hyper efficient polynomial processing • Focused on algorithmic optimization • Parallelized • Integer based
Geometrographie.org • Parallel Geometry contribution to Geometry Optimization community
LLG Python for Geometric Programming Development methodology From Algorithms to C through Python
• Python phases Initial Phase : literal translation • Extremely efficient translation of Maple developed algorithms • Relying on LLG Python environment – Efficient, automated wrapping over developed LLG C code and engines • No implementation bound optimization at this point • No interoperability with Parallel Systems and Environments
LLG Python for Geometric Programming Development methodology From Algorithms to C through Python
• Python phases
Refinement Phases
• Parallel Systems and Environments interoperability (Such as SciPy / NumPy) • Python based optimizations, exploratory phase – Guido Van Rossum “Extending and Embedding the Python Interpreter” – Pyrex – Psycho
Intellectual Property
• Python developed algorithms usable for patenting purposes
LLG Python for Geometric Programming Development methodology From Algorithms to C through Python
• C phase First targeted towards performance critical processing Integration with interoperability in mind • Parallel Systems and Environments – Immediate availability for simulation application in targeted environments • Embedded Systems – Integer based implementation, ARM compatible approach and programming • Interoperability with Python environment and data structures
LLG Python • C development results immediately integrated and operable within LLG Python environment
LLG Python as a Simulation Environment Core Principles – Functional Architecture Spongia System … …
.LLV .LLV
.LLP .LLP … … Atlantis System Medusa System
Cnidaria Architecture
.LLG
Unda System
Chiroptera / Orca Systems
.LLC
LLG Python as a Simulation Environment Core Principles - Systems architecture and Parallel Processing LLG Python Client environment
Conversion Tools Web Based Editor Visualization / Results Display
Versioning System
Medusa Web Based Authoring Environment
LLG Python server environment Atlantis Optimization Processing
Spongia Physics
Unda Rendering
Chiroptera / Orca Navigation
Parallel Computing Environment
LLG Python as a Simulation Environment Simulation Applications Mathematical Surfaces
General Quartic Curve
Disjoint Quartic Curve
Torus determination by horizontal parallel planes
Torus determination by planes passing through its symmetry axis
LLG Python as a Simulation Environment Simulation Applications Molecular Simulation
LLG Python as a Simulation Environment Simulation Applications CMS and Geometrography.org
CMS Pascal Surface
CMS Complex Molecule
CMS Geometrography
LLG Python as a Simulation Environment Simulation Applications Robotics
LLG LLGPython Python SMP2 Simulation System Training and haptics
International Space Station data
• Parallel access and computing • Physics simulation / Collision detection Polygonal data Embedded Rendering System
Robotic data
Panoscope System 360o Immersive Visualization
LLG Python as a Simulation Environment Simulation Applications Public Safety / Homeland Security
GPS positioning
Geolocation
LIDAR Acquisition
Parallel Parallel Geometric Geometric Simulation Simulation System System (PG2S) (PG2S) • RealReal-time access • Parallel access and computing • Rendering optimization • Physics simulation / Collision detection • Volumic Navigation Engine / Visibility detection
Mobile Carry-all Path planning
LLG Python as a Simulation Environment Simulation Applications Aeronautics and Naval Simulation
Section based modeling Strategy Per section / “Maitre couple”
Classic shape typology modeling Strategy