interactive-simulations

Orbie Zots

A mobile-optimized interactive particle swarm simulation with Orbie - a central character that influences nearby particles.

Overview

Orbie Zots is a touch-based interactive simulation that creates mesmerizing particle swarm behavior. The application features:

Features

Orbie Character

Particle Swarms

Wall System

Color Theme System

Interactive Controls

Project Structure

orbie-zots/
├── public/                 # Publicly accessible files
│   ├── index.html          # Main HTML file
│   ├── css/                # Stylesheets
│   │   └── styles.css      # Core CSS styles
│   ├── dist/               # Compiled/minified JS
│   │   └── bundle.js       # Combined, minified JavaScript
│   ├── curves-sample.svg   # Sample SVG for wall importing
│   └── sample-walls.svg    # Sample SVG for wall importing
│
├── src/                    # Source code (not directly accessible)
│   └── js/                 # Original JS source files
│       ├── particles.js    # Particle system logic
│       ├── touch.js        # Touch interaction handler
│       ├── colors.js       # Color themes and generators
│       ├── menu.js         # Menu UI handlers
│       ├── walls.js        # Wall system and physics
│       ├── presets.js      # Preset configurations
│       └── main.js         # Application initialization
│
├── build/                  # Build scripts and configuration
│   ├── build.js            # Simple build script
│   └── .terserrc           # Terser configuration for minification
│
├── docs/                   # Documentation
├── wall-layouts.md         # Documentation for wall system
├── wall-logic.txt          # Technical details of wall implementation
├── package.json            # Project dependencies and scripts
└── README.md               # Project documentation

Technical Design

Modular Architecture

The project is organized into discrete functional modules:

Security Features

Mobile Optimization

Development

Prerequisites

Getting Started

  1. Clone the repository
  2. Install dependencies:
    npm install
    
  3. Build the project:
    npm run build
    

    or for Windows environments:

    npm run build:simple
    
  4. Start the development server:
    npm run start
    

The application will be available at http://localhost:8080

Development Workflow

For convenience, you can use:

npm run dev

This will build the project and start the development server in one command.

Usage

Wall Interaction

Creating Wall Layouts

The simulation can load walls from SVG files containing path elements. These walls support:

See the wall-layouts.md file for comprehensive documentation on creating wall layouts.

Deployment

To deploy the application, transfer the contents of the public directory to your web server.