Category Archives: groworld

Building software for farmers

During the summer I’ve been working with the Swarm Knowledge Hub at Cornwall’s Duchy College. We’ve been building an android application that forms part of a scheme to highlight the value of organic fertilisers compared to costly and unsustainable synthetic fertilisers.

The core of the software is a calculator based on tables provided by DEFRA (the UK government’s Department for Environment Food & Rural Affairs) which provides the quantities of nitrogen, phosphorus and potassium nutrients provided by different types of manure spread on different types of soils.

1 2 3

Farmers are required to supply records of the fertiliser they use to DEFRA, so the program also allows you to input your fields and record the levels of nutrients spread on each one separately. You can then export the data as a csv file over email.

We are planning a workshop with local farmers in the coming weeks, which I’m really interested to be part of. To me this is an extension of the groworld project providing a connection to an additional, important group – the people who actually grow the food we eat.

The majority of the code was written in Scheme which meant a lot of it could be rapidly prototyped (I’ll be blogging more about this soon) and the source can be found on github here.

Aniziz and Zizim

The online part of the borrowed scenery project is an experiment in geotagging plants and plant related locations via a website/app called Zizim (the compass) combined with a multiplayer online game called Aniziz (the soil) where you can interact with the plants people have found. Having spent the last couple of months developing them, they are now ready for more of an open beta phase. Another part of the project is the forum here for collecting any feedback and thoughts.

Your role is to strengthen the connection between the world of Aniziz and the plants of Ghent. The plants are broadcasting messages which can only be correctly tuned into by energising them with fungi, the more plants you energise the higher your score will be.

The latest addition are specially tagged items called “pataportals” you can create with the android app which create “wormholes” in the Aniziz world. Stepping into one causes you to get sent to another one – which could be thousands of miles away. Right now Ghent is connected with the Cornish town of Penryn via a wormhole on the sea shore:

Borrowed Scenery

I spent last week working on various activities associated with the Electrified festival in Ghent, which included a mix of plant care, games dev, low level android audio hacking, beagleboard-bike fixing. Here are some photos of the Borrowed Scenery installation/physical narrative, home of the mysterious patabotanists and temporary research laboratory for FoAM – excellent for getting into the spirit of the work while developing it. More details in further posts.

Plasticine architecture

A patafungi building site for the Aniziz game. The shapes have been inspired by Siteless – an architectural book I absolutely love by Fran├žois Blanciak. It contains 1000 ideas for building forms inspired by time spent in different cities around the world. This could be a great starting point for all kinds of ideas for levels, worlds or objects in many types of games.

The forms, drawn freehand (to avoid software-specific shapes) but from a constant viewing angle, are presented twelve to a page, with no scale, order, or end to the series.

Borrowed Scenery – spacesuits for plants and full screen scrolling in HTML5 canvas

Lots more of Theun’s new artwork which is coming on quickly over the last few days has been added to the game, the glass bubbles (more precisely cloches) are space suits for the plants from our world to live in, in their new patabotanical environment. Information about tagged plants is printed in a Voinych Manuscript inspired font.

I’ve been doing a bit more research into HTML5 canvas, turns out the the screen size doesn’t affect rendering framerate too much, and it now adapts to the browser size. Full screen scrolling is working – centring the view on the player. It wasn’t immediately obvious how this could be done without redrawing all the sprites each frame (which is way too slow), in this respect HTML5 development is really reminding me of 16bit era – hacking things like this to work quickly. It turns out it’s possible to use drawImage using the current canvas as it’s own input – so redrawing the whole thing with an offset:

function scroll(diff_x,diff_y) {
    // calculate the source and destination offsets - whether we offset
    // the source or destination rectangle depends on which direction 
    // we are travelling in 
    var sx=0;
    var dx=diff_x;
    var width=this.ctx.canvas.width-diff_x;
    if (diff_x<0) {
        sx=-diff_x;
        dx=0;
        width=this.ctx.canvas.width+diff_x;
    }
        
    var sy=0;
    var dy=diff_y;
    var height=this.ctx.canvas.height-diff_y;
    if (diff_y<0) {
        sy=-diff_y;
        dy=0;
        height=this.ctx.canvas.height+diff_y;
    }

    // remember to convert to ints, subpixel 
    // scrolling results in crazy artifacts
    this.ctx.drawImage(this.ctx.canvas,
                       ~~(sx),~~(sy),~~(width),~~(height),
                       ~~(dx),~~(dy),~~(width),~~(height));
}

Borrowed Scenery tendrils reach out

Some serious connecting work going on with borrowed scenery for joining physical and imaginary worlds together. A new Boskoi database is up and running, giving us a place to put all kinds of story elements and plants found in the city. Boskoi uses the Ushahidi platform, which provides an API the game is now using to pull all items tagged in the map (which can come from the Android app or web app) into the game where they can interact with players or other entities.

More of Theun’s artwork has gone in, including a magician tarot avatar on the left while the three plants in the screenshot above represent those tagged on the map below. Getting everything in the right place (map lat/long coordinates vs game location coordinates and then aligning the map) took a lot of time to get right!