Skip to content

stevezafeiriou/game-map

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Xylophobia-Dendrophylia

License: MIT React Three.js

An experimental 3D browser environment bridging digital art and ecological awareness through interactive tree models. Built with React and Three.js.

Demo Screenshot

🌳 Overview

Xylophobia-Dendrophylia is an immersive web experience that transforms photogrammetric scans of urban trees into an infinite virtual forest. Part of the Money Trees ecosystem (2024), this project enables:

  • Interactive exploration of 3D tree models
  • Real-world ecological data integration via Google's i-tree
  • Mobile-responsive environment with game-like controls

The project serves as both an artistic installation and educational tool, encouraging users to reflect on environmental stewardship through a blend of digital/physical interactions.

This project is the result of a collaborative effort by Rachy Mcewan and Steve Zafeiriou.

✨ Features

Core Components

  • 3D Environment
    Rendered with Three.js and React Three Fiber
  • Dynamic Models
    Photogrammetric scans of London's urban trees
  • Real-Time Data
    Ecological signals from physical tree counterparts
  • Mobile First
    Optimized touch controls and responsive UI

Interaction System

Component Description
Joystick Controls Dual virtual joysticks for movement
Model Selection Community-voted tree model ranking
QR Code Access Physical/digital tree linking
Info System Educational popups with project docs

🛠️ Technologies

Frontend

React 18          - Component architecture
Three.js/r3f      - 3D rendering pipeline
Styled-Components - CSS-in-JS styling
React Icons       - UI icons
React Router      - Navigation system

Data

i-tree API       - Ecological metrics
GLTF/GLB         - 3D model format
Photogrammetry   - Tree scanning technique

🚀 Installation

  1. Clone repository
git clone https://github.com/stevezafeiriou/xylophobia-dendrophylia.git
cd xylophobia-dendrophylia
  1. Install dependencies
npm install
  1. Start development server
npm start

📖 Usage

Basic Interaction

  1. Model Selection Choose from community-ranked tree models
  2. Movement Left joystick - Camera position Right joystick - Camera rotation
  3. Info Access Click (i) icon for project documentation

Advanced Features

# Environment Variables
REACT_APP_ITREE_KEY=your_api_key
REACT_APP_MAP_ZOOM=1.5

🎨 Project Structure

src/
├── components/       # React components
│   ├── Scene/        # Three.js environment
│   ├── Joystick/     # Control system
│   └── Popup/        # Info modal system
├── data/             # Model metadata
├── styles/           # Global styling
└── public/           # Static assets
    └── models/       # GLTF/GLB files

🌱 Contributing

  1. Fork the repository
  2. Create feature branch
git checkout -b feature/new-tree-model
  1. Commit changes
git commit -m 'Add: New oak tree model'
  1. Push to branch
git push origin feature/new-tree-model
  1. Open pull request

To Do

  1. Fix the joystick controls (the camera movement is currently inverted).

📜 License

MIT License - See LICENSE for details

About

An experimental 3D browser environment bridging digital art and ecological awareness through interactive tree models. Built with React and Three.js.

Topics

Resources

License

Stars

Watchers

Forks

Contributors