Skip to content
Andrea Pizzetti edited this page Jan 6, 2026 · 12 revisions
logoABRAMcropped

Overview

ABRAM is A physically-Based Rendering Application in Matlab for celestial objects such as planets, moons and small bodies. ABRAM can be used for the generation of image datasets, for camera design and radiometry-related analysis, and for the usage of hardware-in-the-loop optical facilities. ABRAM has been geometrically and radiometrically validated against analytical models and ground truth images taken from ground and from space.

Some of its core functionalities are:

  • High-Quality Image (uint8, uint16, double) and depth map generation
  • Multi-Spectral Renderings (monochromatic, panchromatic, RGB, etc...)
  • Customizable Shaders (lambert, lommel-seeliger, area, specular, phong, hapke, etc...)
  • High-Resolution Global or Tiled Texture Maps (albedo, displacement, normal, horizon)
  • CPU-based with double-floating point precision
  • 1-10 Hz rendering frame rates with the current MATLAB implementation

Installation

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. If everything goes smooth, you should see an image of the Moon appear on the main installation folder. Otherwise, please refer to the DEBUG section.

Dependencies

ABRAM has been developed and tested in MATLAB r2023b with the following packages installed:

  • Image Processing Toolbox (required)
  • Parallel Computing Toolbox (required only for multi-thread rendering)
  • Statistics and Machine Learning Toolbox (required only for image noises)

Rendering Examples

Clone this wiki locally