GIFtorio is a web application that converts animated GIFs into Factorio blueprints. The resulting blueprint creates an animated display using the game's circuit network and lamps. It requires absolutely no mods - works on vanilla Factorio version 2.0 and the Space Age DLC.
- Converts animated GIFs to Factorio blueprints directly in your browser
- Automatically downscales GIFs to fit within signal limitations
- Configurable frame rate and image size
- Configurable substation quality to reduce dead pixels
- Attempts to maintain animation timing similar to the original GIF
- Supports different substation qualities when using the Space Age DLC
For development:
- Rust (latest stable version)
- Node (latest LTS version)
- wasm-pack (
cargo install wasm-pack
) - A web browser with WebAssembly support
- Clone this repository:
git clone https://github.com/colinchilds/giftorio.git
cd giftorio
- Build the WebAssembly module:
wasm-pack build --target web --release
- Run it with NPM:
npm install
npm start
- Open your browser and navigate to
http://localhost:3000
- Visit the website (or your local development server)
- Upload your GIF file
- Configure settings (frame rate, image size, etc.)
- Click Generate
- Copy the generated blueprint string
- Import the blueprint string into Factorio
The application:
- Uses WebAssembly (compiled from Rust) to process GIFs efficiently in the browser
- Loads and downscales the input GIF to a manageable size
- Converts each frame into a series of circuit network signals
- Creates a blueprint containing:
- A grid of substations to power the display
- Constant combinators to store pixel data
- Decider combinators to control frame timing
- A grid of lamps to display the image
- Outputs an encoded blueprint string compatible with Factorio
- Maximum image size is limited by available signals, but more realistically by in-game performance.
- Higher resolution images will require more in-game entities and may impact performance
- Browser must support WebAssembly
- Longer GIFs can take a really long time to process and may cause the game to lag. We recommend trying keep gifs to only a few seconds. If you have a really long gif, consider using the grayscale option, as it can signficantly reduce blueprint size.
Contributions are welcome! Please feel free to submit a Pull Request.