Thoughts on plant recipes

What exactly does a plant need to grow?

As we started out, we had absolutely no clue, to be honest. So we decided to do what we do best: gather knowledge first and then boil it down so that everybody is able to understand it. We still have a lot to learn, but, together with the help of experts, we figured out a first draft of what a plant recipe might look like.

Lots of data

First and foremost, a plant recipe is a collection of data. It enables any user, be it a human or a piece of software, to identify a given plant and figure out what this plant needs. To make things really simple, the latter mostly indicates the plants needs of water, light and nutrients. But it should also tell you how to correctly treat the plant, where to plant it and what to do if you or the plant gets into trouble.

What can I do with a plant recipe?

There are different use cases we are taking into account while developing the standard for plant recipes:

  1. Offline use
  2. Use in farmee.OS
  3. Import into other software

Offline use

Offline use means printing the recipe on a single sheet of paper. This print only includes the most important information to grow the specific crop, for example in a typical gardening scenario. It will prepare the recipe in a way a human being can read and understand, quick and easy. You could use it to grow the plant at home, in your garden or a raised bed. You will learn when to plant, where to plant and how to treat the plant during the course of its life until harvest.

This is a mockup of a plant recipe offline export:

Use in farmee.OS

This, of course, is the most important use case for us. Imagine setting up a farm in farmee.OS, which means you are telling the software which plants you are planning to grow. In order to do that, you might be dragging tomatoes into a virtual field. The moment you drop the plant into your field, farmee.OS immediately identifies the plant. Of course, it already knows all the different plant recipes, so it can give you a number of useful information based on this action, for example:

  • suggest suitable carrier materials, seeding distance and neighboring plants
  • setup irrigation and light cycle for the virtual field (in consideration of neighboring plants)
  • setup nutrition structure (also in consideration of neigboring plants)
  • adjust pH-value and conductivity of water
  • set or suggest temperature and humidity range

This enables you to successfully grow plants without knowing a lot about them yourself. It truly makes smart farming easy to use for everybody.

This is what the farmee.OS dashboard currently looks like, not exactly futuristic!

Creating a standard

We believe there is an urgent need for a strong basis to enable automated growth in a huge number of different scenarios. This, of course, is a an open standard, that is not only usable in farmee.OS, but any other given soft- or hardware. Our goal is to create this open standard. Anyone can contribute and anyone can download these recipes.

Tolerances

As you might know, hydroponic farming has very tight tolerances. Soil functions as a powerful buffer for water and nutrients. If you take away that buffer, tiny deviations might kill your plants. Therefore, a plant recipe used in a vertical or indoor farming scenario must use data that is far more specific than an offline printout used by a human farmer. Because of this we’ll make sure our data is as specific as possible, with simplification only happening during output for specific use cases, such as offline printouts.

But what about corrupt data? A plant recipe can only be as good as the data someone feeds it. Which leads me to:

Who writes plant recipes?

Anybody can! As we’re developing an open standard, it just needs someone to input data. We’ll provide an entry form and import functionality to enable anyone to contribute to the open recipe database.

Of course, there are lots of obstacles in that process, for example verification of data. Anybody can punch in some numbers, but are these numbers correct for a given crop? We’ll make sure recipes used in farmee.OS are verified by experts to make sure your crop is well-protected, but also plan to offer a bigger number of community-generated recipes you can download and use at your own risk.

Machine learning

Humans make mistakes, that’s why we’re aiming for automated correction of data with the use of machine learning. If farmee.OS can be used to measure plant growth in different farms, it can be used to automatically alter and verify plant recipes. Of course, we’re far from automatic growth monitoring at the moment, but that’s what we’re aiming for.

For you tekkies out there: Data storage and access

Data is stored partly in relational and non relational structures. It is accessed via a REST-style API which communicates in JSON Data format. We use this API in our own software as well as we plan to make it accessible to third party apps.

Due to the structure we provide, the data representation layer of a recipe can be used to create visual representations of the recipe (in Apps, Web-Apps and good old printouts), plus it can be used as a basis for machine-to-machine interfaces.

You might guess what we are aiming for here: automation and auto-optimization.

How does a plant recipe data structure look like?

We’ve posted our current plant recipe data structure in the forum and will use that thread to further discuss anything on plant recipes, so make sure to sign up if you’d like to join and follow that discussion!

Thoughts on plant recipes – in the farmee-forum.