Skip to contents

These are the books and resources I found most useful while building orbitr. If you want to go deeper on the physics, the numerics, or the engineering behind the package, these are where I’d start.

Books

Classical Dynamics of Particles and Systems — Stephen T. Thornton & Jerry B. Marion (5th ed., 2004, Brooks/Cole)

This was my primary reference for the gravitational physics at the heart of the simulation engine. Thornton and Marion’s treatment of central-force problems and two-body/multi-body gravitational interactions gave me the framework for implementing the N-body force law and understanding how acceleration vectors compose when multiple bodies are pulling on each other simultaneously.

Computational Physics — Mark Newman (2012, CreateSpace)

Newman’s coverage of numerical integration is where I learned to think carefully about the tradeoffs between integration methods. His discussion of energy conservation in numerical schemes directly shaped the three options in simulate() — basic Euler, symplectic Euler-Cromer, and the Velocity Verlet algorithm that orbitr defaults to for stable long-duration orbits.

Data Structures & Algorithms in Python — John Canning, Alan Broder & Robert Lafore (2022, Addison-Wesley)

Even though orbitr is an R package, the algorithmic thinking in this book influenced how I structured the simulation loop and the vectorized acceleration calculations. The emphasis on pre-allocation, efficient iteration patterns, and choosing the right data layout for the problem carried over directly into the design of the simulation engine.

Online Documentation

Rcpp Documentation — CRAN

The official Rcpp package documentation on CRAN, including the vignettes and the API reference, was what I kept open while writing the C++ acceleration kernel (calc_acceleration_cpp). The vignettes walk through how to pass R vectors into C++, return structured results via Rcpp::List, and register compiled functions — all of which orbitr relies on for its performance on larger N-body systems.

Acknowledgments

Shoutout to The College of New Jersey, where I first got hooked on this stuff. Go Lions.

This package was built with the help of Claude Code, which handled a lot of the boilerplate, scaffolding, and iteration that would have otherwise slowed things down. The physics, the design decisions, and the mistakes are all mine — but Claude made it possible to move from idea to working package much faster than I could have on my own.