Welcome to Pure Python’s documentation!
This documentation provides a detailed API reference for the Pure Python physics simulation project. The project is a benchmark for Python performance, demonstrating the use of modern libraries like NumPy, SciPy, and Qt for Python to create a high-performance, multi-threaded application.
The simulation employs several key strategies to achieve high performance:
Data-Oriented Design: A Structure-of-Arrays (SoA) layout for efficient memory access.
Vectorisation: NumPy is used for fast, array-based calculations.
Parallel Processing: The multiprocessing module is used for parallelising intensive tasks.
Efficient Algorithms: Includes two-stage collision detection and adaptive time-stepping.
Licence
This program is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public Licence as published by the
Free Software Foundation; either version 3 of the licence, or (at your
option) any later version. See the file named LICENSE in the project’s
root directory or view it on-line.
Application Core
Physics Engine
- Space
- Body
- Pysics worker
- Constants
ANGULAR_DAMPINGARROW_INITIAL_LENGTHARROW_RADIUSCOEFF_FRICTIONCOEFF_RESTITUTIONCOEFF_STATIC_FRICTIONDEFAULT_DENSDEFAULT_DTDEFAULT_LOG_FREQDEFAULT_N_BODIESDEFAULT_N_ITERDEFAULT_SEEDDT_DAMPING_FACTOREPSILONGINITIAL_DOMAIN_SIZELINEAR_DAMPINGMAX_DTMAX_INITIAL_ANGULAR_VELOCITYMAX_MASSMAX_VELOCITYMIN_MASSMIN_VELOCITYPLACEMENT_SCALE_FACTORPOSITIONAL_CORRECTION_FACTORSHOW_ALPHA_ARROW_ARGSHOW_TORQUE_ARROW_ARGTARGET_DX
User Interface