Skip to content

Fresco simulates observations of particle-based simulations.


Notifications You must be signed in to change notification settings


Repository files navigation



Fresco aims to simulate observations of particle-based simulations, such as those of a star cluster. It creates an observation-like image from a list of stars and/or gas particles. Supported filetypes include AMUSE-type hdf5 files, Starlab files and plaintext files.

For stars, the temperature and radius are calculated using a stellar evolution code, if these are not already present in the dataset.

Gas particles may also be read. In combination with stars, these will cause reflection from nearby stars and optionally extinction of light from background. Without stars, Fresco will make a density plot of the gas. Optionally, the gas may also be indicated with contour lines.

A random field of background and foreground stars may be added to the image, as a way to make the image more natural looking and/or to provide a background that may be obscured by the gas/dust particles.

Example image


  • Python 3.7 or higher
  • Numpy
  • Scipy
  • Matplotlib
  • AMUSE (
    • a stellar evolution code (e.g. SSE or SeBa, for calculating stellar luminosities and radii)
    • optional: Fi (for calculating dust extinction)
  • Astropy
  • amuse-masc (recommended)


import matplotlib.pyplot as plt
from amuse.datamodel import Particles
from amuse.units import units, nbody_system
from import Sse
from amuse.ext.masc import make_a_star_cluster
from amuse.plot.fresco import make_fresco_image
?make_fresco_image  # See options
stars = make_a_star_cluster.new_cluster()
gas = Particles()
se = Sse()
from_se = se.particles.new_channel_to(stars)
image, vmax = make_fresco_image(
    stars, gas,


Fresco is developed by Inti Pelupessy and Steven Rieder