- About
- Features
- Sample Images
- Used Technologies
- How It Works
- Running Amber
- Building Amber
- Future Improvements
- Acknowledgments
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.
- 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!
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
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.
Amber is currently only supported on windows. Follow these steps to run it:
- Go to the latest release page
- Download and run
Amber.exe
- Customize your image via the user interface on the right
- 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.
- Clone the repository:
git clone https://github.com/its-nion/amber.git
- Go into the "visual-studio" folder and open "Amber.sln" with Visual Studio
- 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.
- Expand shader functionality for additional visual effects
- Clean up project structure
- Additional export formats
Special thanks to the individuals below, whose articles served as inspiration and played a key role in making this project a reality
- Victor Blanco with his Vulkan Guide
- Patricio Gonzalez Vivo & Jen Lowe with their article about Fractal Brownian Motion
- Inigo Quilez with his article about Domain Warping