Physics-Balls Balls of one size on a flat surface with friction: walls they bounce off, nose points they rattle against, gates they drop through. An event-based analytic engine in C, perl-free, with an XS door and a versioned C ABI (include/pb_abi.h) so another module can roll balls with no Perl frame in between. It knows nothing about any game; a pool or snooker adapter describes its table, sends a strike as integers, and reads back the contacts in order, the rest layout, the balls that dropped, and the trajectory as segments a client plays back. Since 0.03 a ball may curve, by its kind: a curling stone or a biased bowl runs as a chain of parabolas that bends, with no trigonometry anywhere, and a shot may say the surface under the struck ball changes partway down its run. The turn rate is a house law with fitted constants, not a model of ice. A world that declares no kinds is exactly what it was. The same inputs give the same doubles on every platform that keeps IEEE arithmetic honest. The build turns off fused multiply-adds for that reason, and the fixtures under t/ were recorded by the JavaScript prototype the engine was transliterated from. INSTALLATION To install this module, run the following commands: perl Makefile.PL make make test make install A C compiler is needed. ExtUtils::Depends installs the ABI header. SUPPORT AND DOCUMENTATION After installing, you can find documentation for this module with the perldoc command. perldoc Physics::Balls LICENSE AND COPYRIGHT This software is Copyright (c) 2026 by LNATION. This is free software, licensed under: The Artistic License 2.0 (GPL Compatible)