A physically-Based Rendering Application in Matlab for planets, moons, small bodies and space debris.
Clone the repository and the linked submodules by running the following git commands:
git clone https://github.com/andrepiz/abram
git submodule init
git submodule update
Then, simply run the script
call() to generate your first rendering.
Check the ABRAM wiki to access the full documentation and follow the LinkedIn Page for release updates.
ABRAM has been developed and tested in MATLAB r2023b with the following dependencies:
- Image Processing Toolbox (required)
- Parallel Computing Toolbox (required for multi-threading)
- Statistics and Machine Learning Toolbox (required for image noises)
If you use the tool, please cite it in your work with:
Pizzetti, A., Panicucci, P., Capolupo, F., & Topputo, F. (2026). Development and validation of a physically based rendering methodology for celestial bodies. Acta Astronautica. https://doi.org/10.1016/j.actaastro.2026.03.003
ABRAM has been used in the following publications:
Ornati, F., Panicucci, P., Pizzetti, A., Capolupo, F., & Topputo, F. (2026). On the radiometric calibration of optical Hardware-In-the-Loop stimulators. Journal of Spacecraft and Rockets, 1-14. https://doi.org/10.2514/1.A36543
Pizzetti, A., Panicucci, P., & Topputo, F. (2025). A Bottom-Up Approach for Radiometric Validation of Synthetic Imagery. In Inter-Agency GNC V&V Workshop.
Pizzetti, A., Panicucci, P., & Topputo, F. (2024, October). A Radiometric Consistent Render Procedure for Planets and Moons. In 4th Space Imaging Workshop (pp. 1-3).
Panicucci, P., Balossi, C., Ornati, F., Piccolo, F., Pizzetti, A., Topputo, F., & Capolupo, F. (2025). What if Star Trackers Were Navigation Cameras?. In 35th AAS/AIAA Space Flight Mechanics Meeting (pp. 1-23).
Feel free to open an issue to report a bug or ask for a feature. If you want to contribute to the project, or you need some help in the usage of the tool, e-mail me at andrea.pizzetti@polimi.it
| Version | Changelog |
|---|---|
| v1.8 | Added support to rgb and multispectral image saving; Added support to multiple lights; Added smearing, aberration and blooming noise models |
| v1.7 | Changed algorithm of frustum culling; added raymarching shadow culling algorithm; added depthbuffer shadow culling algorithm; added depth map as optional output; added new concentrated sampling; refactored code and architecture; added default objects initialization; extended flexibility of inputs |
| v1.6 | Added horizon maps; added support to tiled maps; added support to multi-threads parallelization |
| v1.5 | Added support to hyperspectral maps; added support to non-spherical shapes; added tutorials |
| v1.4 | Improved frame rate; added Hapke reflection model; added ellipsoidal shapes |
| v1.3 | Added occlusions; improved direct gridding efficiency; added smart-calling of methods |
| v1.2 | New object-oriented architecture; new fast mode with constant BRDF and no loops; increased fps at close range by pre-computing fov intersection; capability to merge QE and T spectra defined at different wavelengths |
| v1.1 | Added parallelization |
| v1.0 | Ready for dissemination |












