{"id":26540349,"url":"https://github.com/webmatze/digital_garden","last_synced_at":"2025-10-04T08:56:43.770Z","repository":{"id":279935467,"uuid":"910542144","full_name":"webmatze/digital_garden","owner":"webmatze","description":"Digital Garden is a mesmerizing web-based simulation that brings to life the subtle beauty and complexity of a self-sustaining garden ecosystem.","archived":false,"fork":false,"pushed_at":"2025-02-28T09:25:13.000Z","size":45,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-07-11T06:06:35.410Z","etag":null,"topics":["canvas2d","garden","simulation"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/webmatze.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-12-31T15:20:45.000Z","updated_at":"2025-06-11T10:14:54.000Z","dependencies_parsed_at":"2025-02-28T16:17:13.084Z","dependency_job_id":"5f5f3acd-1e68-416a-a44c-578660986f7a","html_url":"https://github.com/webmatze/digital_garden","commit_stats":null,"previous_names":["webmatze/digital_garden"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/webmatze/digital_garden","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webmatze%2Fdigital_garden","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webmatze%2Fdigital_garden/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webmatze%2Fdigital_garden/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webmatze%2Fdigital_garden/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/webmatze","download_url":"https://codeload.github.com/webmatze/digital_garden/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webmatze%2Fdigital_garden/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278289498,"owners_count":25962356,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-04T02:00:05.491Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["canvas2d","garden","simulation"],"created_at":"2025-03-22T00:31:33.305Z","updated_at":"2025-10-04T08:56:43.752Z","avatar_url":"https://github.com/webmatze.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Digital Garden - An Interactive Plant Life Simulation\n\n## 🌱 About The Project\n\nDigital Garden is a mesmerizing web-based simulation that brings to life the subtle beauty and complexity of a self-sustaining garden ecosystem. Unlike traditional games or simulations, this project focuses on creating an ever-evolving, living canvas where plants grow, reproduce, and interact in fascinating ways.\n\n## ✨ What Makes It Special\n\n- **Natural Life Cycles**: Each plant in the garden has its own unique lifecycle - from seed to maturity, reproduction, and eventual fade. Trees grow tall and majestic, flowers bloom with vibrant colors, and grass creates a dynamic ground cover.\n\n- **Dynamic Weather System**: The simulation features a weather system that directly impacts plant growth. Sunny days provide steady growth, rain accelerates it, and cloudy conditions slow things down, creating a more realistic and engaging environment.\n\n- **Intelligent Plant Spacing**: Plants use sophisticated spacing algorithms to ensure they don't overcrowd each other, mimicking natural competition for resources. Different plant types maintain different spacing requirements, just like in nature.\n\n- **Organic Reproduction**: Mature plants naturally drop seeds within realistic spread radiuses, with trees spreading their seeds further than flowers or grass, creating natural-looking plant distributions.\n\n- **Interactive Controls**: Users can:\n  - Adjust simulation speed to watch evolution happen faster or slower\n  - Fine-tune plant spacing parameters\n  - Add new plants manually\n  - Clear the garden to start fresh\n\n## 🎨 Visual Design\n\nThe project uses HTML5 Canvas to create smooth, efficient animations and beautiful visual effects. Each plant type has its own distinctive appearance:\n- Trees with broad canopies\n- Flowers with colorful blooms\n- Grass with varying heights and shades\n\n## 💭 Philosophy Behind the Project\n\nThis project was born from a fascination with emergent systems and natural processes. It demonstrates how simple rules can create complex, beautiful outcomes - much like nature itself. The garden serves as both a meditative visual experience and an educational tool, helping users understand concepts like plant lifecycle, spacing, and environmental factors in plant growth.\n\n## 🚀 Future Vision\n\nThe Digital Garden is an ongoing project with room for endless possibilities:\n- New plant species\n- Seasonal changes\n- More environmental factors\n- Enhanced visualization options\n- Plant evolution mechanics\n\n## 🛠 Technical Implementation\n\nBuilt using modern JavaScript with ES6 modules, HTML5 Canvas, and CSS. The project follows a clean architecture with separation of concerns:\n\n- **Models**: Plant, Weather, Environment, Ecosystem\n- **Controllers**: Garden, UI\n- **Configuration**: Centralized settings management\n- **Utils**: Reusable helper functions\n\n### Project Structure\n```\nsrc/\n├── config.js                # Centralized configuration settings\n├── utils.js                 # Utility functions\n├── main.js                  # Application entry point\n├── controllers/\n│   ├── garden-controller.js # Main garden logic controller\n│   └── ui-controller.js     # UI interaction handling\n├── models/\n│   ├── plant.js             # Base plant class\n│   ├── seed.js              # Seed management\n│   ├── weather.js           # Weather system\n│   ├── environment.js       # Environment handling\n│   ├── ecosystem.js         # Plant ecosystem\n│   ├── plant-registry.js    # Plant type registration\n│   └── specific-plants/     # Specialized plant implementations\n│       ├── tree.js\n│       ├── flower.js\n│       └── grass.js\n├── index.html               # Main HTML entry point\n└── styles.css               # CSS styling\n```\n\n## 🌿 Get Started\n\n1. Clone the repository\n2. Open `src/index.html` in your browser or run a local server:\n   ```\n   python -m http.server\n   ```\n3. Visit http://localhost:8000/src/index.html\n\n## 🧪 Extending the Garden\n\nTo add new plant types:\n1. Create a new class that extends the base Plant class\n2. Register it with the PlantRegistry\n3. Update the UI to include your new plant type\n\n---\n\nCreated with 💚 by a developer who believes code can create beauty.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwebmatze%2Fdigital_garden","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwebmatze%2Fdigital_garden","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwebmatze%2Fdigital_garden/lists"}