# AAF Systems Homepage

A modern 3D homepage built with Three.js, TypeScript, and Vite.

## Features

- 3D graphics with Three.js
- Physics simulation with Cannon.js
- Post-processing effects
- TypeScript for type safety
- Hot reload development with Vite

## Docker Setup

### Prerequisites

- Docker
- Docker Compose (optional)

### Running with Docker

#### Option 1: Using Docker Compose (Recommended)

```bash
# Build and run the application
docker-compose up --build

# Run in detached mode
docker-compose up -d --build

# Stop the application
docker-compose down
```

#### Option 2: Using Docker directly

```bash
# Build the Docker image
docker build -t aaf-systems-homepage .

# Run the container
docker run -p 8080:8080 aaf-systems-homepage
```

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

## Local Development

### Prerequisites

- Node.js 18+
- npm

### Setup

```bash
cd app
npm install
npm run dev
```

The development server will start at `http://localhost:5173`

### Build for Production

```bash
cd app
npm run build
npm run preview
```

## Project Structure

- `app/` - Main application directory
  - `src/` - TypeScript source code
  - `public/` - Static assets
  - `index.html` - Entry point
- `Dockerfile` - Docker configuration
- `docker-compose.yml` - Docker Compose configuration

## Docker Packaging & Transfer

### Package Image for Transfer

To package the Docker image for transfer to another computer:

```bash
# Build and package the Docker image
./package-docker.sh
```

This will create a `aaf-systems-homepage-docker.tar` file that you can transfer to another computer.

### Transfer Methods

**Option 1: USB/External Drive**
```bash
# Copy the .tar file to USB drive
cp aaf-systems-homepage-docker.tar /path/to/usb/drive/
```

**Option 2: Network Transfer (SCP)**
```bash
# Transfer via SCP
scp aaf-systems-homepage-docker.tar user@target-computer:/path/to/destination/
```

**Option 3: Cloud Storage**
Upload `aaf-systems-homepage-docker.tar` to your preferred cloud storage service.

### Load and Run on Target Computer

On the target computer:

1. Make sure Docker is installed and running
2. Copy both files to the target computer:
   - `aaf-systems-homepage-docker.tar` (the image package)
   - `load-and-run-docker.sh` (the load script)
3. Run the load script:

```bash
# Load and run the Docker image
./load-and-run-docker.sh
```

The application will be available at `http://localhost:8080` on the target computer.
