Skip to content
/ abram Public

The Astronomical Bodies Rendering Application for Mission design (ABRAM) is a validated physical-based render engine for planets, moons and small bodies.

License

Notifications You must be signed in to change notification settings

andrepiz/abram

Repository files navigation

ABRAM

Astronomical Bodies Rendering Application for Mission design

optimal_texp

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.

Usage A single configuration file in YAML format is enough to generate a rendering. Provide the filepath of the yml file to the abram.render constructor method in MATLAB:

rend = abram.render('YOUR_FILE.YML')

And a first image will be rendered. To generate new renderings, you can first modify the render properties with the desired parameters (for instance, new pose or new camera properties), then call:

rend = rend.rendering()

In this way most of the pre-processing activities will be skipped to lower computational time. Examples of a multi-rendering call are provided in the script call_multi().

https://github.com/user-attachments/assets/20ef4518-5e67-48cf-a2be-605e1f6d0abc

Description ABRAM is a physical-based validated render engine to generate images of celestial quasi-spherical objects with radiometric consistency. The tool integrates radiometry equations on discretized surface sectors of a sphere according to the desired Bidirectional Reflectance Distribution Function (BRDF), resulting in a 3D point cloud of points that is then direct-gridded to the image frame. ABRAM can be used for camera design, radiometry-related analysis and generation of datasets for training or testing of vision-based navigation algorithms.

Several BRDFs are implemented and the user can mix them to find the more realistic model depending on the body considered.

image

The user can provide also texture maps to increase the fidelity of the model at close range. Examples of renderings using only albedo (left), albedo + displacement (middle) and albedo + displacement + normal (right) are shown in the following:

temp

Normal maps of different planets and moons of the solar system have been generated as byproduct of ABRAM development and are available at the following link.

ABRAM has been validated against real space images acquired by the AMIE camera on-board of the SMART-1 mission. Examples of real images (above) versus their rendering (bottom) at the same exposure time are depicted in the following pictures:

validation_amie_corr_tiled_horz validation_amie_ideal_tiled_horz

Publications For more details on the implementation and capabilities, check the publications:

A. Pizzetti, P. Panicucci, F.Topputo. "A Radiometric Consistent Render Procedure for Planets and Moons". 4th Space Imaging Workshop.

Credits If you use the tool, please cite it in your work as:

A. Pizzetti. Astronomical Bodies Rendering Application for Mission design (ABRAM)

Version Changelog
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

About

The Astronomical Bodies Rendering Application for Mission design (ABRAM) is a validated physical-based render engine for planets, moons and small bodies.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages