Pytellite is an open-source Python simulator for modeling the attitude dynamics and orbital mechanics of satellites. It allows users to define a satellite's physical properties, actuators, and initial state, choose a control law (nadir, inertial, or Sun pointing; detumbling) and then propagates its motion over time. The simulation incorporates key real-world effects, such as perturbations (Solar radiation pressure, gravity gradient, drag) and actuator dynamics and limitations. The core feature of Pytellite is its integrated, web-based 3D visualization of the satellite and reference systems, which provides real-time, intuitive feedback on the satellite's orientation and trajectory, alongside plots of system variables.
The goal of Pytellite is to provide a medium-fidelity, visual, easy-setup satellite simulator for learning, rapid prototyping, and preliminary design. By prioritizing ease of use and clear visualization, the project aims to help users quickly test attitude control laws and gain an intuitive understanding of how a satellite behaves in orbit, making it a practical sandbox for education and early-stage design exploration.
As of early September 2025, Pytellite is in its early stages of development. The source code is available on Github. You're invited to explore a live demo to get a feel for the project's direction and capabilities at pytellite.org.
2025/09/04: Added Numba JIT compilation, simulation speed is ~x8 faster. Added reaction wheel angular momentum (3 wheels, aligned with principal inertia axes). Added a nonlinear PD error quaternion and angular velocity control law for inertial pointing.
2025/09/02: Added a linear PD error quaternion and angular velocity control law for inertial pointing.
2025/08/28: Pytellite.org is live! Early alpha: satellite torque-free attitude dynamics.