Project
Simulationchanged is an ongoing artist portfolio that treats the browser as a medium rather than a document viewer. The site is built around the idea that an interface should feel alive — generative, reactive, and distinctly non-standard.
The project is currently in active development. Features are added iteratively as the artistic concept evolves, making the site itself a living work.
Direction
- Generative canvas backgrounds that shift based on cursor position and time
- Work presented as experiences rather than static image grids
- Custom cursor and interaction states that replace default browser behaviours
- Text rendered dynamically — typewriter effects, dissolves, and reformations
- Sound-reactive visual layers (planned)
- No scroll — navigation is spatial, not linear
Technical Details
The core rendering layer is a vanilla JS engine built on top of the Canvas API. No Three.js or WebGL — deliberate constraints force more inventive use of the 2D context: compositing modes, pixel manipulation via ImageData, and hand-rolled easing functions.
The backend is PHP serving content from a flat-file store. This keeps the architecture simple while the frontend experiments with complexity. Deployments are manual and intentional — the site is updated in bursts, not continuously.
Rendering pipeline
requestAnimationFrame loop
→ clear canvas (or composite over previous frame)
→ update particle / field state
→ draw generative layer
→ composite content layer on top
→ apply post-processing (blur, grain, vignette)
Interaction model
Mouse position is tracked globally and fed into the generative system as a normalised vec2. This creates a field that influences particle attractors, color temperature, and layout density — the interface responds to the visitor's presence without requiring explicit interaction.