Pixel2Plex turns raster images into mosaics built from the 20 two-uniform (demiregular) tessellations of the plane.
It extends the ideas from Pixel2Polygon: instead of regular or Archimedean tilings, this app renders richer edge-to-edge patterns whose vertices alternate between multiple configurations.
https://multilingualprogramming.github.io/pixel2plex/
- 20 demiregular (2-uniform) tiling patterns
- Drag-and-drop, click-to-upload, and PNG export
- Adjustable tile size and optional outlines
- Geometry computed in WebAssembly compiled from French Multilingual sources
- Static frontend with GitHub Pages deployment
See docs/demiregular-mapping.md for the current mapping notes between the project's 20 methods and the canonical 20 demiregular tilings.
Pixel2Plex/
|-- src/
| |-- demiregulier_wasm.ml
| `-- main.ml
|-- scripts/
| `-- compile_wasm.ml
|-- public/
| |-- index.html
| |-- style.css
| `-- app.js
|-- tests/
| `-- smoke.js
`-- requirements-build.txt
Install the build dependencies:
pip install -r requirements-build.txtCompile the WebAssembly bundle:
python -m multilingualprogramming scripts/compile_wasm.mlThis generates:
public/demiregulier.wasmpublic/demiregulier.wat
The build script also copies the Multilingual source files into public/ for
inspection alongside the generated WASM output.
Serve the public/ directory with any static file server that sends the
application/wasm MIME type for .wasm files.
python -m http.server 8080 --directory publicThen open http://localhost:8080.
Run the frontend and WASM smoke suite with:
node tests/smoke.jsThe test suite validates:
- the DOM contract used by the frontend
- the render pipeline for all 20 methods
- the exported WASM API and method codes
- tile buffer readability for compiled WebAssembly output
The repository includes GitHub Actions for:
- smoke tests on pushes and pull requests
- WebAssembly build verification
- GitHub Pages deployment from
main