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.



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
  • Tinyfiledialogs – Native file dialog management for image export

How It Works

Amber starts by creating a window with GLFW, providing a cross-platform foundation for user input. It then initializes Vulkan to manage GPU-heavy computations. With Vulkan in place, Amber builds a compute shader pipeline, enabling parallel execution of small GPU programs (shaders), that generate and manipulate images in real time. Specifically, it employs fractal noise (FBM) and warping effects to produce dynamic visuals. (more)

To give users full control over the image, Amber features an ImGui-based UI that allows real-time parameter adjustments through Push-Constants. This makes modifying parameters, experimenting with presets, and fine-tuning rendering settings possible. Once a desired look is achieved, the image can be exported as a PNG.


Running Amber

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

  1. Go to the latest release page
  2. Download Amber.exe
  3. Run Amber.exe
  4. Hover over "File" in the top left corner and press "New" to create an image in a desized resolution
  5. Customize your image via the user interface on the right. If you're looking for a good starting point, check out the presets in the menu bar
  6. Hover over "File" in the top left corner 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. Download or 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