Rebuild AsyncArt Works as Interactive Browser Apps
If you are one of the artists who hosted work at Async.art, you can take your original png files and create a simple interactive display of the work, hosted inside a minimal html shell any browser can display for interactive viewing.
The global cryptoartist network became real for me when I met Alotta Money through Async Art.
Early 2020 connections between artists were spreading like mycelium. Phillipe recruited me to his team for the first Kitty Bungalow Cat Rescue Charity Auction, a mega-collaboration with 34 artists to stress-test the platform. Our concept was martial arts so I created the Shaolin Sphynx character and wrote the lore of the project - Big Trouble in Māo Māo City. The auction raised over $30,000 usd. Made a true friend.
Once an Async artist, it felt time to remind artists of one of the greatest act of creative censorship of the twentieth century. Diego Rivera's classic struggle to create the great mural Man at the Crossroads after the work's destruction by the Rockefeller family and its rebirth as El Hombre Controlador del Universo in the Palacio de Bellas Artes in Mexico City.
Like Rivera's original work, my piece "Who's the Controller Now?" disappeared with the demise of the Async platform.
I'm sure many Async artists would like to see those pieces live again. Any artist who still has their files should be able to quickly arrange the images, auto-generate the app, and load it up for viewing/displaying/minting.
Syncollage is a lightweight interactive display solution powered by standard browser code. Turn PNG images and their folders into a visual stack drawn in a browser window. Clicking the visible region of any layer in any group will cycle through images in that group. Layers are randomized at load.
- Lightweight HTML, functionality in Javascript
- Collage from a stack of PNG images organized into interaction groups
- User clicks to cycle through layers in each group
- HTML5 canvas element handles interactivity
- PNG per-pixel alpha channel limits to visible pixels in each layer
- Separate script scans image folder/filenames to generate a visual stack array
- Randomized initial state
- Serve images from a Node server to overcome CORS while testing
Interactive Example located here
To run Syncollage locally, you need to have Node.js and npm (or a similar Node.js package manager) installed on your system.
-
Clone the Repository (if applicable): If you have the project files in a repository, clone it to your local machine using your preferred method or a command like:
# Example if using Git git clone https://github.com/Mayakovsky/Syncollage.git cd Syncollage
-
Install
http-server
Globally: Syncollage uses a simple HTTP server for local development. If you don't have it installed, open PowerShell as an administrator and run:npm install -g http-server
-
Organize Your Images:
-
Create a folder named
imageStack
within your Syncollage project directory. -
Inside
imageStack
, create subfolders for eachchange_group
. Achange_group
holds the image layers for each visual change. Folder names becomechange_group
identifiers in the visual stack, so users should number or order the folders by desired stack position, with 01 being the base or background image folder. -
Place the PNG image layers for each
change_group
inside their respective subfolders. Ensure that images intended to be part of an interactive group have more than one layer. Single-image groups will be treated as static. -
The names of the image files within each group will determine their order for cycling.
-
THe name of the background image needs to be base_image.png in order for the code to function properly.
-
-
Generate
count_stackula.json
:-
Navigate to your Syncollage project directory in PowerShell.
-
Run the
generate_json.js
script using Node.js:node generate_json.js
-
This script will analyze your
imageStack
folder structure and create (or update) thecount_stackula.json
file. An example of the generatedcount_stackula.json
might look like this:{ "visual_stack": [ { "filename": "base_image.png", "change_layer": "base_image.png", "change_group": "base", "opacity": 1, "filePath": "base/base_image.png", "clickability": false }, { "filename": "layer_a1.png", "change_layer": "layer_a1.png", "change_group": "group_a", "opacity": 0, "filePath": "group_a/layer_a1.png", "clickability": true }, { "filename": "layer_a2.png", "change_layer": "layer_a2.png", "change_group": "group_a", "opacity": 1, "filePath": "group_a/layer_a2.png", "clickability": true }, { "filename": "single_layer.png", "change_layer": "single_layer.png", "change_group": "static_element", "opacity": 1, "filePath": "static_element/single_layer.png", "clickability": false }, { "filename": "layer_b1.png", "change_layer": "layer_b1.png", "change_group": "group_b", "opacity": 1, "filePath": "group_b/layer_b1.png", "clickability": true }, { "filename": "layer_b2.png", "change_layer": "layer_b2.png", "change_group": "group_b", "opacity": 0, "filePath": "group_b/layer_b2.png", "clickability": true } ] }
-
-
Run the Development Server:
-
Navigate to your Syncollage project directory in PowerShell.
-
Start the
http-server
:http-server -p 8084
-
This will start a local web server, typically accessible at
http://localhost:8084/index.html
or a similar address provided in the PowerShell output.
-
-
Open in Your Browser:
- Open your web browser and navigate to the address provided by
http-server
(e.g.,http://localhost:8084
). - The
index.html
file should load, displaying your visual collage.
- Open your web browser and navigate to the address provided by
-
Interact with the Collage:
- Click on the visible, non-transparent areas of image groups that contain multiple layers. This will cycle through the different layers within that group.
- Groups with a single image will be static and non-clickable.
-
Hosting Your Collage:
- As long as imageStack is in the same directory as your
Syncollage.html
file, you can host your collage on any web server or platform that supports static file hosting.
- As long as imageStack is in the same directory as your
We welcome contributions to Syncollage! If you'd like to contribute, please follow these steps:
- Fork the repository on GitHub.
- Create a new branch for your feature or bug fix.
- Make your changes and commit them with clear and concise messages.
- Push your changes to your fork on GitHub.
- Submit a pull request to the main repository.
Contributors:
- Hidden Forces
- honorary contributor - Conlan, Async founder
Copyright (c) 2025 Hidden Forces