The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Art::World - Agents interactions modeling 🎨

SYNOPSIS

  use Art::World;

  my $artwork = Art::World->new_artwork(
    creator => [ $artist, $another_artist ]  ,
    value => 100,
    owner => $f->person_name );

DESCRIPTION

Art::World is an attempt to model and simulate a system describing the interactions and influences between the various agents of the art world.

More informations about the purposes and aims of this project can be found in it's Art::World::Manual. Especially, the HISTORY and the OBJECTIVES section could be very handy to understand how this is an artwork using programming.

ROLES

Active

Provide a participate method.

Buyer

Provide a aquire method requiring some money. All this behavior and attributes are encapsulated in the Buyer role because there is no such thing as somebody in the art world that buy but doesn't sale.

Collectionable

If it's collectionable, it can go to a Collector collection or in a Museum.

Concept

Exhibit

Role for Places that display some Artworks.

Fame

Fame role provide ways to control the knowledge and reputation that various Agents, Places or Works have. Cannot be negative.

It has an handy bump_fame() method that self-bump the fame count. It can be passed a positive Num, a negative Num (so that the fame will get lower) and even no parameter, in that case it will just add 1.

  my $artist = Art::World->new_artist(
    reputation => 0.42,
    name => 'Questular Rontok'
  );

  say $artist->bump_fame;               # ==>  1.42
  say $artist->bump_fame( 0.0042 );     # ==>  1.4242

If you try to update the fame to a negative value, nothing happens and a nice warning is displayed.

Market

It is all about offer and demand. Involve a price but should involve more money I guess.

Showable

Only an object that does the Showable role can be exhibited. An object should be exhibited only if it reached the Showable stage.

CLASSES

Agent

They are the activists of the Art World, well known as the wildlife.

  my $agent = Art::World->new_agent( name => $f->person_name );

  $agent->participate;    # ==>  "That's interesting"

A generic entity that can be any activist of the Art::World. Provides all kind of Agent classes and roles.

Art

Will be what you decide it to be depending on how you combine all the entities.

Article

Something in a Magazine of Website about Art, Exhibitions, etc.

Artwork

The base thing producted by artists. Artwork is subclass of WorkArt::World::Work that have a Showable and Collectionable role.

Artist

The artist got a lots of wonderful powers:

create
have_idea all day long

In the beginning of their carreer they are usually underground, but this can change in time.

  $artist->is_underground if not $artist->has_collectors;

Book

Where a lot of theory is written by Critics

Collector

Collective

They do stuff together. You know, art is not about lonely Artists in their Workshop.

Critic

Curator

Event

Exhibition

Just another kind of Place, mostly commercial.

Since it implements the Buyer role, a gallery can both acquire() and sell().

Institution

A Place that came out of the Underground.

Magazine

Museum

Yet another kind of Place, an institution with a lot of Artworks in the basement.

Opening

Place

Playground

A generic space where Art::World Agents can do all kind of weird things.

Public

School

Sex

Squat

Website

Work

There are not only Artworks. All Agents produce various kind of work or help consuming or implementing Art.

Workshop

A specific kind of Playground where you can build things tranquilly.

AUTHORS

Sébastien Feugère <sebastien@feugere.net>

Contributors

    Ezgi Göç

    Joseph Balicki

    Nadia Boursin-Piraud

    Nicolas Herubel

    Pierre Aubert

    Seb. Hu-Rillettes

    Toby Inkster

COPYRIGHT AND LICENSE

Copyright 2006-2020 Sebastien Feugère

This library is free software; you can redistribute it and/or modify it under the Artistic License 2.0.