technical – Naked on Pluto http://pluto.kuri.mu “ Share your way to a better world ” Mon, 23 Sep 2013 09:34:19 +0000 en-US hourly 1 https://wordpress.org/?v=4.5.2 Our Life online – Workshop+debate – 24 February 2012 at CCCB http://pluto.kuri.mu/2012/02/17/our-life-online-workshopdebate-24-february-2012-at-cccb/ http://pluto.kuri.mu/2012/02/17/our-life-online-workshopdebate-24-february-2012-at-cccb/#respond Fri, 17 Feb 2012 09:13:47 +0000 http://pluto.kuri.mu/?p=870 The first session of I+C+i 2012 carries out a critical explanation of software policies, the notion of identity on the social networks and the impact of simulation caused by new artificial life applications. A workshop taught by Naked on Pluto, winners of the VIDA 13.2 prize and Gerald Kogler, and a discussion with the participation of experts such as Jussi Parikka, Pau Waelder, Aymeric Mansoux, and Mónica Bello, promise an intense day of action and reflection on lesser known aspects of our life on the web.

Session organised in collaboration with Fundación Telefónica.

WORKSHOP: Facesponge with Aymeric Mansoux and Gerald Kogler. 10h-14h

Have you ever wondered what is going on “behind the scenes” on social networks like Facebook? In this workshop we will explore our so-called social data and get a glimpse at how it is viewed by the company and third parties who access it. In order to break several myths about Facebook applications, you will be invited to take part in designing small programs that extracts and manipulate you and your friend’s online information. Nothing will be written back to Facebook at any time, we will only be reading existing data. No data will be collected or viewable by anyone else.

No programming experience is required. Basic knowledge of javascript can be useful to explore more advanced possibilities of the Facesponge sandbox.

This workshop is part of the Naked on Pluto project, a critical text adventure Facebook game concerned with issues of online privacy and control within centralized commercial social networks, designed and written by Marloes de Valk, Aymeric Mansoux and Dave Griffiths.

Facesponge is developed in collaboration with Baltan Laboratories.
All Naked on Pluto software is released under free culture licenses.

Schedule:

* Naked on Pluto presentation
* Gameplay session
* Anatomy of an FB app
* Introduction to Facesponge
* Breaking FB apps myths
* Group discussion

Practical information:

* The workshop will be taught in English.
* You will need to bring your own laptop.
* Places are limited.

DEBATE: Identity and simulation. Artificial life on the networks. With Jussi Parikka, Pau Waelder, Aymeric Mansoux and Mónica Bello. 19h-21h

Internet is changing our way of understanding the public space. The Web has become a dominant structure that covers all aspects of contemporary society. The proliferation of virtual agents, designed to stimulate non-fortuitous reactions and meetings, reconfigures the profile of individuals in dynamics that are innovative but also invasive, and generates new forms of control. In this brand new context, identity and simulation become decisive themes of behaviour on the Web.

REGISTRATION:

Workshop + Debate: 6€
Please send an email explaining the reasons for your interest to cursos@cccb.org
Limited capacity!

Debate: 3€
Tel-entrada (tel. 902 101 212 / www.telentrada.com)
CCCB page for the event

]]>
http://pluto.kuri.mu/2012/02/17/our-life-online-workshopdebate-24-february-2012-at-cccb/feed/ 0
Setting up Naked on Pluto at ARCO http://pluto.kuri.mu/2012/02/15/setting-up-naked-on-pluto-at-arco/ http://pluto.kuri.mu/2012/02/15/setting-up-naked-on-pluto-at-arco/#comments Wed, 15 Feb 2012 17:12:25 +0000 http://pluto.kuri.mu/?p=861 If you are in Madrid this week come to visit the exhibition of VIDA
13.2 showcasing some of the projects awarded in the last edition of
the Art and Artificial Life International Awards, including Naked on Pluto. You will find us at the Fundacion Telefonica stand at Arco Madrid.

In the last days Dave and the whole VIDA team are putting together the final bits of the installations. Come and check the result from the 16th of the 19th of this month.

]]>
http://pluto.kuri.mu/2012/02/15/setting-up-naked-on-pluto-at-arco/feed/ 1
Library projection progress http://pluto.kuri.mu/2012/02/08/library-projection-progress/ http://pluto.kuri.mu/2012/02/08/library-projection-progress/#comments Wed, 08 Feb 2012 12:17:39 +0000 http://pluto.kuri.mu/?p=852

]]>
http://pluto.kuri.mu/2012/02/08/library-projection-progress/feed/ 1
Resuming work on the installation http://pluto.kuri.mu/2012/01/20/resuming-work-on-the-installation/ http://pluto.kuri.mu/2012/01/20/resuming-work-on-the-installation/#respond Fri, 20 Jan 2012 12:51:24 +0000 http://pluto.kuri.mu/?p=846 And another secret preview. We’ll explain what’s in the books soon.

]]>
http://pluto.kuri.mu/2012/01/20/resuming-work-on-the-installation/feed/ 0
Starting work on a “live world” projection http://pluto.kuri.mu/2011/12/11/starting-work-on-a-live-world-projection/ http://pluto.kuri.mu/2011/12/11/starting-work-on-a-live-world-projection/#respond Sun, 11 Dec 2011 10:39:39 +0000 http://pluto.kuri.mu/?p=836 Following on from the VIDA win, we need to work hard on Naked on Pluto’s gallery installation presence. Although we now have the news website style front page, we need to take the game externalisation to another level, and one of the things required is a realtime projection of the game world. This represents the unfiltered behind-the-scenes view of the game as seen by the bots as they attempt to keep track of what is going on. Technically we decided to do this work using HTML5 canvas, in keeping with the web based themes of the game it needs to work on a browser, which has the added bonus of making gallery setup quite simple.

My first approach was to write a scheme bricks representation for Javascript objects, and see how bits of the game looked if rendered in this way.



This is part of the ArrivalLobby, and all the internal information is present with no explanations, which is great, but it results in very large images. The next thing was to try filtering the objects to remove most of this information:

function node_filter()
{
    this.filter=function(obj)
    {
        return {objects:obj.objects.map(function(object) {
            return object.name;
        })};
    }
}

This code provides a single method for filtering locations in the game – it simply returns an object consisting of a list of names of things found at that location. These filters can be easily changed over time, to include different information or process it in different ways. Rendered with the same code as before, this makes the location diagrams much smaller:

Add a few more locations, put them together in a circular formation (the projection will be onto the floor space in the gallery), add some bezier curves to indicate paths between locations and it looks like this:

There is also some relatively complex jiggery-pokery to detect when bots have moved from one location to another and animate them. The moving bots display more detail including what they are wearing and who has ‘liked’ them. In this image you can see the AdverBot004 moving to the HelpDesk, and the HyperClock and GreenwichClock on the upper right as they move from the Palace Garden.

]]>
http://pluto.kuri.mu/2011/12/11/starting-work-on-a-live-world-projection/feed/ 0
Golden Medallions and in-game programming http://pluto.kuri.mu/2011/07/12/golden-medallions-and-in-game-programming/ http://pluto.kuri.mu/2011/07/12/golden-medallions-and-in-game-programming/#respond Tue, 12 Jul 2011 08:47:12 +0000 http://pluto.kuri.mu/?p=792 Once the low level code for a Naked on Pluto bot is written in Scheme, it’s added by the game using secret commands which program the game inside itself, while it’s running. This means the game can be changed while people are playing it – which makes it much easier to add new things without worrying about the disruption caused by restarting the server. We can also work on the game collaboratively, at the same time this way.


(Programming a spybot with it’s behaviour)

Eventually the plan is to be able to program the bots fully within the game client – this is still a long term goal, but there are of course some fairly complex security problems with this idea.


(dressing a AudienceBot with another object)

Not all players have the ability to use these secret commands right now, in order to access them a player has to be carrying a special object (also known as a “Golden Medallion”). This allows you access to all areas of the game, including an “administration room” and various other secret powers.

]]>
http://pluto.kuri.mu/2011/07/12/golden-medallions-and-in-game-programming/feed/ 0
Bots as WordPress Editors http://pluto.kuri.mu/2011/07/06/bots-as-wordpress-editors/ http://pluto.kuri.mu/2011/07/06/bots-as-wordpress-editors/#comments Wed, 06 Jul 2011 21:58:18 +0000 http://pluto.kuri.mu/?p=757 As mentioned in previous posts, we have resumed our work on Naked on Pluto and are at the moment working on the idea of a newspaper which content would be entirely generated by bots. Nothing new under the sun, as automated blogging and generating content from the output of scraping spiders has been increasingly popular to drive traffic in order to generate ad clicks or to manipulate its readers in downloading some malware. The difference here is that our content will be the result of various interviews and reports “written” by a couple of newsbots wandering in Elastic Versailles.

Just like our cleaner bot, we will be using existing platforms, more precisely the newspaper will be a good old WordPress blog and each bot will have its own editor account. Thanks to XML-RPC, making the bridge between EVr14 ecosystems and the blog was quite trivial.

#!/usr/bin/python

import xmlrpclib, sys

target = 'http://nothing.now/xmlrpc.php'

if len(sys.argv) >= 6:
    try:
        post = {'title': sys.argv[4], 
                'description': sys.argv[5], 
                'categories': [sys.argv[3]]}
        blog = xmlrpclib.ServerProxy(target)
        blog.metaWeblog.newPost('Plutonian Times', 
                                sys.argv[1], 
                                sys.argv[2], 
                                post, 
                                1)
    except:
        print 'OOPS: ' + str(sys.exc_info()[1])
else:
    print 'Usage: '+sys.argv[0]+' user password category title content'

We still have to figure out what kind of generative information will be made with this script when it’s called from scheme, but no matter what in a couple of days we should have the first edition of this newspaper up and running!

]]>
http://pluto.kuri.mu/2011/07/06/bots-as-wordpress-editors/feed/ 1
Naked on Pluto goes to São Paulo http://pluto.kuri.mu/2011/07/04/naked-on-pluto-goes-to-sao-paulo/ http://pluto.kuri.mu/2011/07/04/naked-on-pluto-goes-to-sao-paulo/#comments Mon, 04 Jul 2011 13:31:22 +0000 http://pluto.kuri.mu/?p=735 Naked on Pluto has been selected for FILE festival São Paulo 2011 which, in addition to some funding from the Finnish Promotion Centre for Audiovisual Culture (AVEK) allows us to develop the game for an art gallery installation setting.

I’ve been reacquainting myself with bot programming, and trying some experimental and dangerous things with conversations.

As an example, here is a bot that simply repeats things it overhears – if you throw a couple of these in a room and start them going by saying something – chaos follows as they start to repeat you and then each other’s messages:

(define (talkative-action entity graph node)
  (if (and
       (< (random 5) 3) ; do this 3 out of 5 times
       (< (length (pluto-node-old-messages node)) 10)) ; safety valve
      (foldl                ; loop over all the messages
       (lambda (msg node)
         ; get the name of the sender
         (let ((name (entity-name
                      (pluto-node-entity-get
                       node (pluto-message-from msg)))))
           (pluto-say-to-random ; make a new message 
            node                ; to a random entity
            entity
            (string-append ; build the message
             (choose
              (list
               (string-append name " just said: ")
               (string-append "I just heard " name " saying: ")))
             (pluto-message-txt msg))))) ; repeat the message
       node
       (pluto-node-old-messages node))
      node))
]]>
http://pluto.kuri.mu/2011/07/04/naked-on-pluto-goes-to-sao-paulo/feed/ 1
@NopCleanerBot http://pluto.kuri.mu/2010/12/07/nopcleanerbot/ http://pluto.kuri.mu/2010/12/07/nopcleanerbot/#comments Tue, 07 Dec 2010 07:40:21 +0000 http://pluto.kuri.mu/?p=611
In our continuing efforts to embrace all “social media”, one of the bots in Naked on Pluto has started a twitter account. Could this be the first character in a FaceBook game to tweet?

The tweeting bot’s actions cause it to wander the world and sporadically report on it’s progress, who is in the same location (bots, players or objects) and snippets of conversations it hears, from players or bots talking to each other. I’m using tweepy, a python twitter library, so I had to do a bit of a cheap hack for the racket->python process communication using the filesystem. The python daemon simply waits for a file to be created by the main bot AI thread and sends the contents of it to the twitter stream. In order to do the authentication with OAuth I needed to set up a Twitter application to get a pair of keys to sign the single user the app will have.

Here is the code for the tweepy daemon:

#!/usr/bin/env python                                                                                   
import tweepy
import os.path
import time

auth = tweepy.OAuthHandler("your consumer key", "your consumer secret")
print(auth.get_authorization_url()) # you need to visit this site, logged in as the twitter user
verifier = raw_input('Verifier:') # then input the verifier code here before continuing
auth.get_access_token(verifier)
api = tweepy.API(auth) # this api allows us to read or write from the user's account

while True:
    if os.path.isfile("msg"): # look for a file called "msg"
        f = open("msg", "r")
        api.update_status(f.read()) # dump the contents into the twitter stream
        f.close()
        os.remove("msg")
    time.sleep(10)
]]>
http://pluto.kuri.mu/2010/12/07/nopcleanerbot/feed/ 1
What do we do with your data? http://pluto.kuri.mu/2010/11/16/what-do-w-do-with-your-data/ http://pluto.kuri.mu/2010/11/16/what-do-w-do-with-your-data/#comments Tue, 16 Nov 2010 14:18:57 +0000 http://pluto.kuri.mu/?p=593 Now we have people playing the game, it’s a good time to explain what happens with your facebook data in more detail. Given the nature of the project it’s important for us to make this clear. Here is a diagram I’ve prepared for the presentation we are giving at Piksel at the weeked:



On the left is the naked on pluto server, the machine in the middle is your computer running the client in the browser, and on the right is facebook’s server.

The first thing to notice is that the NoP server doesn’t ever communicate with facebook directly. The other thing to notice is that we never write anything to your facebook account.

The client only passes your name and facebook ID number to the server, where it gets incorporated into the game world. This information is considered public by facebook so it’s a usual thing to do. We use it to pass back to other players, so they can see who else is playing. The facebook ID is used to get the right icon for the players, but we also use it to find the player’s in-game entity when they log in (they are unique – so two people with the same name can play).

All the other information you can see – your friends and their data, is displayed by your client based on the data read by your machine from facebook. None of this gets passed to our server or other players.

For more information on how this all relates to facebook privacy policy, see the plutonian clothing stragegy.

]]>
http://pluto.kuri.mu/2010/11/16/what-do-w-do-with-your-data/feed/ 1