Beginner Handbook
Welcome to the main documentation handbook for the Gwanyan Interactive Grassland project.
If you are a complete beginner and want the fastest path to a working app, read the getting started guide next.
If you are working from the repository root in a terminal, the simplest beginner path is:
pwsh ./scripts/check-prerequisites.ps1
pwsh ./scripts/install-project-dependencies.ps1
pwsh ./scripts/run-development-application.ps1
This project has three teaching layers:
- The beginner wiki, which explains ideas slowly and conversationally.
- This handbook, which explains the system in a more structured engineering format.
- The API reference, which is generated from source comments and is meant for detailed implementation lookup.
What You Are Looking At
The app renders a large square patch of dirt and grass in the browser. The mouse acts like a moving wind emitter:
- The mouse position decides where the gust originates.
- The mouse movement speed decides how strong the gust is.
- A damped spring simulation decides how each patch of grass bends and relaxes.
How To Read The Codebase
If you are a complete beginner, read these in order:
tutorials/getting-started.mddocumentation/wiki/content/Home.mddocumentation/wiki/content/How-Mouse-Wind-Becomes-Physics.mddocumentation/wiki/content/How-Grass-Is-Rendered.mdsrc/input/PointerWindTracker.tssrc/simulation/WindFieldModel.tssrc/simulation/GrassPatchPhysicsSimulation.tssrc/application/InteractiveGrasslandExperience.ts
Example Learning Goal
If your goal is "I want to understand why the grass bends when I move my mouse," the shortest path is:
- Learn how the pointer becomes a world-space point.
- Learn how that point becomes a wind force.
- Learn how a wind force updates a spring simulation.
- Learn how the renderer turns the simulated displacement into visible blade geometry.