Skip to content

its-nion/amber

Repository files navigation

Logo

Amber

A simple way to generate beautiful images

Latest Build · Report Bug


Table of Contents


About

Amber is a lightweight image generator that lets you design stunning patterns in real-time and export them as high-quality PNGs. It’s a quick and easy way to create beautiful visuals.


about-gif

Features

  • Lightweight · No installation or large files required
  • Customizable · Full control over every design element
  • High Quality · Images are drawn directly in your preferred resolution
  • Free · No cost whatsoever!

Sample Images

red image white image desert image water image cloud image

Used Technologies

Amber utilizes the following libraries and frameworks:

  • Vulkan SDK – Rendering and execution of compute shaders on the gpu
  • GLFW – Cross-platform window and input handling
  • GLM – Mathematical functions and data structures for graphics computations
  • ImGui – User interface for the editor
  • stb_image – Image loading and processing
  • VkBootstrap – Simplifies Vulkan initialization
  • Vulkan Memory Allocator (VMA) – Manages efficient GPU memory allocation
  • Bin2cpp – Embedding shaders and images directly into the application as C++ headers

How It Works

Amber generates images using a Vulkan-based compute shader pipeline. At startup, it initializes Vulkan, sets up a swapchain and other required vulkan objects, and configures descriptor sets and synchronization mechanisms. The application then builds a dedicated compute pipeline to render images on the GPU. Users can interact with the ImGui interface to modify rendering parameters in real time through push-constants.

The compute shader executes a warped Fractal Brownian Motion (FBM) algorithm, which layers multiple octaves of procedural noise. By applying a nonlinear warping function, the shader distorts the noise pattern, producing complex organic textures. This enables users to create a wide variety of abstract visuals with smooth, natural variations.


Running Amber

Amber is currently only supported on windows. Follow these steps to run it:

  1. Go to the latest release page
  2. Download and run Amber.exe
  3. Customize your image via the user interface on the right
  4. Hover over "File" and press "Export" to save your image

Warning

The executable file got flagged as a virus on my pc, probably because it's a singular small file. If that happens to you aswell, you can either quarantine the file from the windows defender firewall or build the file yourself, which is explained in the next step.


Building Amber

  1. Clone the repository:
git clone https://github.com/its-nion/amber.git
  1. Go into the "visual-studio" folder and open "Amber.sln" with Visual Studio
  2. Build/Run the project

Note

To build the project, you need to have the Vulkan SDK installed. All other libraries should be included in the "third-party" folder, but make sure that all dependencies are linked correctly.


Future Improvements

  • Expand shader functionality for additional visual effects
  • Clean up project structure
  • Additional export formats

Acknowledgments

Special thanks to the individuals below, whose articles served as inspiration and played a key role in making this project a reality