revolutionary new technology that turns any image into obama
Find a file
2026-01-19 16:06:22 +01:00
.github/workflows packaging fixes 2025-10-07 04:25:30 +02:00
assets update image 2026-01-18 04:12:59 +01:00
presets refactor, add settings menu 2025-10-01 02:28:44 +02:00
src feat: save configuration between obamifications 2025-11-02 17:36:45 +01:00
.gitignore feat: image cropping settings 2025-10-06 04:10:52 +02:00
.typos.toml feat: oh wow it compiles for web now thats crazy 2025-10-05 04:29:29 +02:00
Cargo.lock migrate to webgl instead of webgpu (for better compatability) 2025-10-14 07:52:50 +02:00
Cargo.toml migrate to webgl instead of webgpu (for better compatability) 2025-10-14 07:52:50 +02:00
example.gif readme page + fixes 2025-09-01 17:22:54 +02:00
flake.lock Package for nix 2025-09-01 22:56:51 +03:00
flake.nix Fix flake.nix 2025-09-04 10:03:48 +02:00
index.html update text 2026-01-19 16:06:22 +01:00
LICENSE Initial commit 2025-09-01 09:37:08 +02:00
README.md Update README.md 2025-10-10 16:40:56 +10:30
rust-toolchain feat: oh wow it compiles for web now thats crazy 2025-10-05 04:29:29 +02:00
Trunk.toml improve genetic algorithm performance 2025-10-11 04:47:50 +02:00
worker.js migrate to webgl instead of webgpu (for better compatability) 2025-10-14 07:52:50 +02:00

(try it here)

obamify

revolutionary new technology that turns any image into obama

example

How to use

Use the ui at the top of the window to control the animation, choose between saved transformations, and generate new ones. You can change the source image and target image, and choose how they are cropped to a square (tip: if both the images are faces, try making the eyes overlap). You can also change these advanced settings:

Setting Description
resolution How many cells the images will be divided into. Higher resolution will capture more high frequency details.
proximity importance How much the algorithm changes the original image to make it look like the target image. Increase this if you want a more subtle transformation.
algorithm The algorithm used to calculate the assignment of each pixel. Optimal will find the mathematically optimal solution, but is extremely slow for high resolutions.

Installations

Install the latest version in releases. Unzip and run the .exe file inside! Note for macOS users: Run 'xattr -C <path/to/app.app>' in your terminal to remove the damaged app warning.

Building from source

  1. Install Rust
  2. Run cargo run --release in the project folder

Running the web version locally

  1. Install Rust
  2. Install the required target with rustup target add wasm32-unknown-unknown
  3. Install Trunk with cargo install --locked trunk
  4. Run trunk serve --release --open

Contributing

Please open an issue or a pull request if you have any suggestions or find any bugs :)

How it works

magic