Chance the Gardener is an application that lets you easily create scans of your FarmBot garden, and then turn these scans into 3D gardens you can view.
For guides on how to use it, check out the wiki.
A demo garden has been provided, which can be imported in the application.
Check the Getting Started guide in the wiki on how to view it.
The source code for the 3D garden viewer is found at jonathonwolfe/chance-the-gardener-viewer.
A compiled version of the garden viewer is already included with this Electron app's repository.
- This application needs a CUDA-enabled GPU (with at least compute capablility 2.0) in order to generate 3D gardens.
- https://developer.nvidia.com/cuda-gpus
- This is because we use Meshroom.
More info can be found here: https://meshroom-manual.readthedocs.io/en/latest/faq/needs-cuda/needs-cuda.html
It is possible to modify the application to not require a CUDA-enabled GPU, but it is not recommended as it creates a much lower quality render.
See here for more info: https://github.com/alicevision/meshroom/wiki/Draft-Meshing
If the bot is scheduled to scan the garden, please ensure that the garden is in a relatively stable environment.
This includes:
- Rain, fog, dust, etc. - have a cover over the garden to prevent anything from making the camera blurry and/or wipe the camera before a scan to ensure clarity.
- Ensure the scanning process happens during the night, so that the light from the LEDs is constant, without interference from sun rays that can cause high contrast spots in images.
- Have at least 10GB of free space for a creating a scan.
- Have at least 5GB of free space for creating a 3D garden.
This application has a built in import & export system for both scans and generated 3D gardens.
More information about this can be found on the wiki.
- Ensure you have Node.js installed.
- Clone the project's repository.
- Download and extract Meshroom-2018.1.0-win64.zip to the project's folder.
- In the project's folder, run
npm install
to download and install dependencies. - Run
npm start
to launch the application.'
Your folder structure should look similar to:
├── garden_viewer
├── img
├── meshroom-2018.1.0
│ └── Meshroom.exe
└── node_modules
This project uses electron-packager
.
Run npm run packager
to build for your platform.
The result will be found in the packaged
folder.
Packing with this command will also ignore any generated user data such as the database, scans, and 3D gardens.
The source code for the Unity 3D garden viewer is stored in its own repository at jonathonwolfe/chance-the-gardener-viewer.
A compiled version of the garden viewer is already included with this Electron app's repository.
This project makes API calls to the FarmBot system.
For more information on API endpoints, check out FarmBot's API Reference and REST API Documentation.
So far, this application has only been fully tested on a small number of FarmBot garden sizes.
While best effort has been made to account for various garden sizes, there may still be unexpected results when using this application on an untested garden size.
Increments are the distance between 2 images — the greater the distance, the lower the quality. Currently, FarmBot devices do not support the 10mm option. The following images are provided as reference for when FarmBot does implement it in the future.
The high res camera used for this is a 5.0MP DEPSTECH camera.
This application was developed as part of an undergraduate capstone project by group PS2102 of Western Sydney University, the group members are:
- Wathik Al-Qaysi (Project Manager & Application Developer)
- Jessica Lim (Project Manager & Application Developer)
- Charlie Chau (Garden Viewer Developer)
- Fan Wang (Application Developer)
The 3D garden generation process uses:
Meshroom
https://github.com/alicevision/meshroom (MPLv2)
The 3D garden viewer uses:
Unity
https://github.com/github-for-unity/Unity (MIT)
This application is licensed under the MIT license.