This blog post continues on from the last posts theme of ‘Restrictions Make Us More Creative’ looking at ways that people can be enabled to teach themselves to program, exploring limited sub-sets of commands within StarLogo TNG…
So, I’ve spent the past year working with young and old people, helping them explore the programming of computer games and complex systems using StarLogo TNG. Following the ‘Restrictions Make us More Creative’ theme, I am going to write about a way in which restrictions can be used within StarLogo TNG, to enable participants to construct their own programs in a much more exploratory, open ended way, than conventional instructional, step by step processes.
Just to recap StarLogo TNG is a programming environment, which is a development of the educational programming Language ‘Logo’ with two key differences.
1. StarLogo TNG uses a Visual Programming Language made up of colour coded Logo Blocks, programs are created by clicking these blocks together.
2. It is massively parallel, so any instruction you give to one agent, you give to potentially 100’s of the same breed, often simple instructions result in fascinating complex behaviors.
Sub-sets of StarLogo Blocks, are limited sets of commands that can be defined by whoever is facilitating a session with StarLogo TNG, and are used as a way to enable participants to explore a limited set commands within the wider wider language.
With this sub-set, we can explore different ways to configure, if statements, which are simple commands which tell the computer,
* If “this” is the case, then..
* Do “this other thing”.
This little program tells the breed of characters that this little program is,
* If “the ‘C’ key being pressed” is the case, then.
* Do “move forwards 2 steps”.
A more complex example of this is the Termites activity, which was developed by S.T.E.P. at M.I.T., and taught as part of the Imagination Toolbox workshops. For this activity the participants use a part built StarLogo program that has, 100 or so termites, 100 or so geometric cubes, and a sub-set of ready made StarLogoBlock procedures (mini programs), that can be combined and recombined in a variety of different ways.
The aim of this activity is to create a program for the individual behavior of Termites that, when scaled up to 100’s of termites, all interacting locally, will model the collective behavior that builds a mound, or in this simplified model, piles the blocks (or chips) on top of one another.
The user is given a sub set of procedures, such as:
* Move forwards a random number between 1 & 6
* 50% chance turn left
* 50% chance turn right
* Pick up block
* Put down block
* If there is a block already here then do X
The procedure that you are building in this activity, is executed several times a second, so the trick with this activity, is to recombine one simple set of simple instructions, that is flexible enough so that the Termites will do different things, depending on whether they are carrying a block or not, and whether they are standing on top of a pile of blocks or on the ground. Here is a videograb our solution, which is one of many, and not necessarily the most effective.
Video Grab of Termites Activity
I remember attempting this activity for the first time, and quickly realising that having a limited subset of blocks gave me a freedom to explore the system I was creating, in a way that I wouldn’t have felt if I were using the full language, which at that point I just wasn’t ready for.
This activity, and it’s restrictions also provided one of the biggest lightbulb moments, for the group I was working with at Saint Francis of Assisi School, as part of Fact’s ‘Game V’s Film‘ project.
I was just beginning to think that I had pitched this activity too high for the group, when one lad, shouted out that he had ‘Got it!’, and then started to show his mates how he had worked out how to get the termites to do different things, depending upon whether they were stood on a pile of blocks, or on the ground, using just the code that the sub-set had allowed him.
The subset parachutes us into an exploration of a very specific phenomenon, in this case emergent Termite behaviour on a colony level, without having to get bogged down with aspects of the system that aren’t relevant to that exploration.
I think that the way that the StarLogoBlocks can be combined and recombined in many different ways, restricted only by the internal logic of the language, and the inventiveness of the person using it, offers a lot of possibilities to artists wanting to create tools that put creativity in the hands of the people they are working with.
Both this use sub-sets of Logo Blocks, and the restricted Visual and Spatial Mapping Language of the Canal& Map, are feeding into work I am currently developing, part building activities with which we can digitally model, systems representing the behaviors of thoughts, emotions and memories.
Here are a couple of links to narrated videograbs of games that young people from Kirkby Sports College made working on the project I described above.
By Rhiannon, Kirkby Sports College.
Two Solutions to One Problem
By Danny Kirkby Sports College