- 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
- Tinyfiledialogs – Native file dialog management for image export
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.
Amber is currently only supported on windows. Follow these steps to run it:
- Go to the latest release page
- Download
Amber.exe
- Run
Amber.exe
- Hover over "File" in the top left corner and press "New" to create an image in a desized resolution
- 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
- 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.
- Download or 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