Create beautiful Voronoi diagrams based on Fermat spirals.
Live Demo: shinyapps.io | Hugging Face Space
Documentation: pjt222.github.io/spiralizer
| Start=111, End=222, Density=333 | Start=0, End=107, Density=179 |
|---|---|
![]() |
![]() |
| Start=0, End=666, Density=999 | Start=333, End=666, Density=999 |
|---|---|
![]() |
![]() |
- Interactive controls - Real-time parameter adjustment with debounced sliders
- Multiple color palettes - Turbo, Viridis, Plasma, Inferno, Magma, Cividis
- Palette inversion - Flip color direction with a switch
- Collapsible sidebar - Focus on the art, hide controls when not needed
- Export - High-resolution PNG (3000x3000) and SVG vector formats
- Dark zen theme - Minimalist UI with glass-morphism effects
# Clone and run
git clone https://github.com/pjt222/spiralizer.git
cd spiralizer
# Restore dependencies
source(".Rprofile")
renv::restore()
# Run the app
source("R/app.R")- Fermat Spiral - Points generated using
x = √θ·cos(θ),y = √θ·sin(θ) - Delaunay Triangulation - Optimal triangulation via
tessellationpackage - Voronoi Tessellation - Dual of Delaunay creates the cell pattern
- Color Mapping - Cells colored with viridisLite palettes
- R Shiny with bslib (Bootstrap 5, darkly theme)
- tessellation for Voronoi computation
- viridisLite for color palettes
- renv for dependency management
spiralizer/
├── R/ # All R code (flat structure)
│ ├── app.R # Main application
│ ├── theme.R # bslib theme
│ ├── ui_controls.R # Control panel module
│ ├── ui_plot.R # Plot rendering module
│ └── spiral_math.R # Mathematical functions
├── inst/app/ # Deployment entry point
├── docs/ # Documentation
└── tests/ # Test suite
- ARCHITECTURE.md - System design
- DEVELOPMENT.md - Developer guide
- TROUBLESHOOTING.md - Common issues
- tessellation by Stéphane Laurent
- viridisLite for color palettes
- bslib for modern Shiny UI
MIT



