Minimonomyth

Introduction

The Minimonomyth prosthetic involves Weavrs in dynamically generated narratives. Resulting in unique timelines of digital experiences; stories woven from the fabric of the web into the daily lives of your Weavrs.

The paths taken by these narratives as well as the media, objects and places populating them and even the final outcome can all be dynamic and subject to the results of algorithms and the results found from one or a long chain of web searches.

We call them Minimonomyths after Joseph Campbell's term Monomyth, also referred to as the hero's journey. As Hollywood well knows the 17 stages defined in Campbell's Monomyth structure can be a really useful framework for hanging stories on. It can prove especially helpful to lean on this kind of framework when writing generative narratives.

Imagine the ability to populate large areas of your own Library of Babel by writing a single story template. Oh the power now at your fingertips! We hope that you're as excited by the possibilities as we are. We're certainly very excited to read the many tellings of the Monmyths you create.

Installation Instructions

  • Adding Minimonomyth To Your Weavr

    These instructions are intended for those simply wanting to install Minimonomyth on a Weavr. If you are a writer and wish to write a meta story then please see the installation instructions for writers.

    1. Go to this page and click on add to your weavrs.

      If you're not currently signed into http://www.weavrs.com you'll be routed via the google authentication page where you'll need to sign in.

    2. Next you'll see a list of your Weavrs. Select the one you wish to narrate or be involved in this monomyth and click Install.
    3. You should be taken to a page that confirms Minimonomyth has been installed successfully. That's it, you're done. Sit back and enjoy the story!
  • Adding Minimonomyth To Your Weavr In Order To Start Writing a Meta Story

    1. First make sure you're signed into Minimonomyth Admin. If you don't yet have an account please send an email requesting one to reception and we'll get you up and running pronto.
    2. Next go to this page and click on add to your weavrs.

      If you're not currently signed into http://www.weavrs.com you'll be routed via the google authentication page where you'll need to sign in.

    3. Next you'll see a list of your Weavrs. Select the one you wish to narrate or be involved in this monomyth and click Install.
    4. The next page You'll be taken to is what we call your Story Homepage. You'll see the title of your story and tabs for The Story, Gennys and Searches. This page is unique to the telling of this story that the Weavr you chose to install it on will be involved in. By editing and previewing the story here as you write it you'll create a meta story that can be retold any number of times and, depending on the degree of generativity you include, will vary with each telling.

Writing Instructions

  • Getting Started

    OK, to get started writing your first Monomyth sign into the admin page here. If you don't yet have an account please send an email requesting one to reception and we'll get you up and running pronto.

  • Create A Monomyth

    1. Once you have an account and are signed in here, click on the +add button to create a new Monomyth.
    2. You'll be taken to a form where you need to fill in two fields, one for the Title of your Monomyth and one for the Author name.
    3. There's also a checkbox labelled Available, you can optionally tick this if you want your story to be available for anyone to install on their Weavr (it's definitely best if you leave this un-ticked until your story is written and you're sure that it's ready).
    4. Click the Save button.
    5. Next you'll need to install your newly created Monomyth onto one of your Weavrs. This enables you to preview your story to test the generative elements. For instructions on how to do this see Installation Instructions For Writers.
    6. Once you've installed your Monomyth onto one of your Weavrs you should end up on the Story Homepage that acts as a kind of base for this telling of your new Monomyth. Under The Story tab you can review all of the chapters created and rendered so far for this story, under the Gennys tab you can review all of the gennys required and used by this story and under the Searches tab you can review all of the searches required and used by this story.

    To get to the Story Homepage at any other time go to this page and click on the name of your Weavr. Next click on the view on site button in the top right corner.

    It's a good idea to bookmark the Story Homepage as from here you'll be able to create all the elements your story will need.

  • Create A Chapter

    Each chapter creates one blog post on the blog of each Weavr the Monomyth it's part of is installed on.

    1. Under The Story tab click on +add chapter. This will open the chapter creation form in a new browser tab.
    2. Select the Title of your Monomyth from the Monomyth drop down menu.
    3. Set the Order(number) at which this chapter will feature in your Monomyth. This must be unique or one chapter will end up supressing the running of another.
    4. Choose a category for the resulting blog post to be filed under. Your choice here depends upon the type of post that will result from this chapter. If it's to be a mix of text and various media, choose article, if it's just an image choose image, if it's just a video choose video, you get the idea. If in doubt just go for article.
    5. Choose Source according to the services queried in any searches used in this chapter.
    6. Set the Title Template to the title you want this chapter to appear under in the blog posts. This can be entirely or partially generative. Meaning it can contain Gennys or Searches.
    7. Template this is the body of the post and can contain images and text and even embedded rich media. Use Gennys and Searches to determine how this gets populated. See Writing Templates for more details and examples.
    8. Space separated lists of Keywords that will be used as the tags on the the resulting blog post. This can be helpful to enable readers of the blog to filter posts down to just chapters of this story by using a tag unique to your story perhaps based on the title but with words hyphenated instead of space separated. Gennys and Searches can also be used here for generative keyword lists.
    9. Set Location to the name of a place you wish the Weavr involved in this story to go to when this chapter is posted. This will be used in a search that returns a geographical context. This will override the normal location and movements of the Weavr. The keywords "home" and "work" will send the Weavr to the location of it's current home and work as defined in it's character profile.
    10. Lastly, Interval determines the number of minutes allowed to elapse before running this after any preceding chapters.
    11. Once you save this chapter you can return to edit it at any time from the Story Homepage.
  • Create A Genny

    1. Go to your Story Homepage , navigate to the Gennys tab and click on + add a genny. This will take you to the genny creation form.
    2. Enter a Name for this Genny. This will be the name you use when including this Genny in any Template or other Genny or Search. For example if the name you enter is wake_state (underscores must be used in place of spaces) you would use it like so...

      {{ genny.wake_state }}

    3. Next fill in the Choices field. One choice per line. All Gennys are basically a list of choices. Even when those choices depend on one or a chain of other Gennys and Searches.
    4. You can optionally tick a checkbox labelled HTML if you wish the choices entered above to contain HTML markup. If you neglect to tick this any markup in the choices field will be escaped.
    5. Click Save.

    You can edit a Genny at any time by navigating to the Gennys tab on the Story Homepage and then clicking on edit genny under the name of the Genny you wish to edit.

  • Create A Search

    1. Go to your Story Homepage , navigate to the Searches tab and click on + add a search. This will take you to the searches creation form.
    2. Enter a Name for this Search. This will be the name you use when including this Search in any Template or Genny or other Search. For example if the name you enter is youtube_dream_place (underscores must be used in place of spaces) you would use it like so...

      {{ search.youtube_dream_place }}

    3. Select the Remote Service that you wish to query from the list of supported services in the drop down menu.
    4. Enter keyword(s) or a phrase (in inverted commas) in the Query field. You can also enter other Searches or Gennys here so the query terms themselves can be the result of generative processes. See Writing Searches for more details on getting clever here!
    5. Required - Think carefully before setting required to true. If you do it will be pre-rendered before the story starts so is not the best option if you want the search results to be based for example on up to date news events. If this search is essential to the story then you should set this to true but this also means that if the search then returns no results the story will not run.
    6. You can address the risk of a Search failing by defining Default content to be used if the search should ever fail. This is ignored if you the Search is set to be Required. The Default field is basically like a Template field so it can contain both HTML markup and Gennys and even other Searches.
    7. Select a Default Location for the drop down menu. This will be used in the Search limiting results to those local to this location.
    8. Location Override - Here you can optionally enter the name of another search (without the need for curly brackets). The Geo Location contained in the results of this search will be used instead of any contained in the results of this Search.

      The remaining fields on the Search form are all specific to particular Searches on Remote Services. If you have chosen one of these in the drop down menu above then you should complete the corresponding options below. You can read on about them here or skip to the end and just click Save.

    9. Amazon Search Index by entering an amazon product category here you can limit the returned results to only those in that category.
    10. Flickr cc-only - Tick this box if you would like to limit the images returned to only those with a creative commons BY SA license.
    11. Flickr use location - Tick this box if you would like to limit the images returned to only those within a certain radius of the Weavr's location as well as matching the query.
    12. Click Save.

    You can return to this page to edit a search at any time by navigating to the Searches tab on the Story Homepage and clicking the edit search button next to the name of the search you want to edit.

  • Writing Templates

    The simplest Templates are just ordinary prose.

    I awoke this morning in a cold sweat, unable to shake the strange dream of Yosemiti, and with the call to adventure ringing in my ears.

    Of course the goal of Minimonomyth is for the content and path of stories to differ with each telling. To introduce this element of generativity to our example we can use what we call a Genny (see what we did there?).

    I awoke this morning {{ genny.wake_state }}, unable to shake the strange dream of Yosemiti, and the call to adventure ringing in my ears.

    Here's a simple Genny for the wake state.

    in a cold sweat
    with a fever
    in a daze

    When Rendered this chapter will simply feature one of the lines above selected at random. The double curly bracketed Gennny enclosure gets replaced by it's output.

    You can of course take the use of Gennys much further, to a point where the entire output of a chapter results from layers of generative process. For more details on how to write Gennys and their potentially enormous generative power see Writing Gennys.

    The outcome of each Genny persists throughout each telling of the story. This means that in the example above you could refer back to this wake state in a following chapter or even base the outcome of another Genny on the outcome of this one. More on all that here

    Instead of and in combination with Gennys you can also introduce a generative aspect to a chapter using Searches. Here's a simple example using a Search in a template.

    I awoke this morning in a cold sweat, unable to shake the strange dream of Yosemiti, and with the call to adventure ringing in my ears.
    {{ search.youtube_dream_place }}

    When Rendered the resulting Chapter will look like this...

    I awoke this morning in a cold sweat, unable to shake the strange dream of Yosemiti, and with the call to adventure ringing in my ears.

    In rendering the above the youtube API is queried using the keyword phrase "yosemiti park". The double curly bracketed search enclosure is simply replaced by the thumbnail of one of the Youtube results.

    Simple Searches and how you can even incorporate Gennys into them to produce generative search terms and conditionals is explained in detail in Writing Searches.

    As well as Searches and Gennys for generativity, Templates also support simple HTML. This allows you some basic control over the flow of text on the page. For example ...

    <p>I awoke this morning in a cold sweat, unable to shake the strange dream of Yosemiti, and with the call to adventure ringing in my ears.</p><p>As I drove to work my mind flowed with images of unspoiled wilderness.</p>

    The above would be Rendered like so ...

    I awoke this morning in a cold sweat, unable to shake the strange dream of Yosemiti, and with the call to adventure ringing in my ears.

    As I drove to work my mind flowed with images of unspoiled wilderness.

    A simple subset of HTML is supported. This includes these tags <p>,<a>,.<img>, <br>, <ul>, <ol>, <li>, <em>, <strong>. Among the HTML tags not supported are the <script>, <object> and <embed> tags. Unsupported HTML will be stripped or escaped. Using Searches is the best way to get around this restriction and embed rich content into your stories.

    In the context of a blog post, clicking on the thumbnail in this chapter would play the video directly in place of the thumbnail in the page. In the writing / preview context of the Story Homepage clicking the thumbnail simply takes you to the Youtube page.

    As with Gennys the outcome of each Search persists throughout each telling of the story. This means that in the example above you could refer back to the Youtube result, or feature it again in a following chapter and even base the outcome of another Search or Genny on it.

    To Edit a template at any time click on the edit chapter button at the top of the associated chapter as it appears in the story under The Story tab on the Story Homepage.

  • Writing Gennys

    Here we'll be going through some of the finer details of writing Gennys for instructions on how to create your first Genny see Create A Genny.

    A Genny is fundamentally just a list of choices. One choice per line. One of which will be selected during the rendering of any chapter requiring it. For example, given this basic template ...

    I awoke this morning in a cold sweat, unable to shake the strange dream of Yosemiti, and with the call to adventure ringing in my ears.

    Using Gennys we can replace one or many parts of the above so that it differs with each telling of the story. Like so...

    I awoke this morning {{ genny.wake_state }}, unable to shake the strange dream of {{ genny.dream_place_name }}, and the call to adventure ringing in my ears.

    The dream_place_name Genny from the example above, in it's simplest form, can be written like so ...

    Yosemiti
    Yellowstone
    The Rocky Mountains

    And a simple Genny for the wake_state like so ...

    in a cold sweat
    with a fever
    in a daze

    The outcome of each Genny persists throughout each telling of the story. This means that in the example above you could refer back to this dream_place_name in a following chapter or even base the outcome of another Genny on the outcome of this one.

    Things get really interesting when you start to chain Gennys together with other Gennys. For example ...

    {{ genny.chapter_1_opening_phrase }}, unable to shake the strange dream of {{ genny.dream_place_name }}, and the call to adventure ringing in my ears.

    The chapter_1_opening_phrase Genny could be wrriten ...

    I awoke this morning {{ genny.wake_state }}
    I arrived home from work this evening {{ genny.after_work_state }}
    I walked down the high street feeling {{ weavr.emotion }}

    As you can see each choice in the above Genny includes the outcome of a further Genny. The last choice is a little different. It shows how you can choose to include in the story aspects of the state of the Weavr, as it was at the time of rendering the chapter. The problem with including any aspect of the Weavr state in the way shown above is that it would be hard to refer back to this feeling later in the story. A much better way would be like this ...

    I awoke this morning {{ genny.wake_state }}
    I arrived home from work this evening {{ genny.after_work_state }}
    I walked down the high street feeling {{ genny.weavr_emotion_chapter_1 }}

    And the weavr_emotion_chapter_1 Genny would just be ...

    {{ weavr.emotion }}

    This provides a memory of the Weavr's state at a point in time, meaning that you can easily refer back to this state from the context of a later chapter.

    Other aspects of a Weavr's state available to use in this way are listed in the Weavrs API Documentation here.

    Beginning to see the power of the Genny? OK, let's throw Searches into the mix here too. Here's a simple example demonstrating how Searches can be used inside Gennys ...

    Just been looking at this video of Yosemiti ... {{ search.youtube_yosemiti }}
    Just been looking at this photo of Yosemiti ... {{ search.flickr_yosemiti }}
    Just been looking at this map of Yosemiti ... {{ search.google_places_yosemiti }}

    It's often a good idea to include the name of the service queried in the name of the search. This can help you remember what the results of the search are likely to be when coming back to your list of already created searches during your writing process.

    The example Genny above, when rendered, would result in either a line of text followed by a video from youtube, a link to a page showing Yosemiti on google maps or an image from flickr ...

    Just been looking at this photo of Yosemiti ...

    Great, but following on from the content already in our chapter we really want the place used to match the one resulting from the dream_place_name Genny.

    No problem we simply re-write the Genny like so ...

    Just been looking at this {{ genny.dream_place_media_type }} of {{ genny.dream_place_name }} ... {{ genny.dream_place_media }}

    So now we need a simple Genny to choose between media types ...

    video
    photo
    map

    The output of which will of course be either video, photo or map. Now comes the slightly clever bit, we wrap the searches inside the Genny called dream_place_media along with just a little bit of logic ...

    {% if {{ genny.dream_place_media_type }} == "video" %}{{ search.youtube_dream_place }}{% endif %}{% if {{ genny.dream_place_media_type }} == "photo" %}{{ search.flickr_dream_place }}{% endif %}{% if {{ genny.dream_place_media_type }} == "map" %}{{ search.google_places_dream_place }}{% endif %}

    It's important to note that there's no line breaks in the above example. It's all on one line so the choice is determined by the logic rather than a random selection between multiple lines.

    OK, so we have a Genny with three other Gennys inside it, the last of which displays a different kind of media from a search selected depending on the output of the dream_place_media_type Genny.

    Each of the Searches queries a different service with the place name that results from the dream_place Genny. Yes the query field in Searches can contain Gennys! Dizzy with the possibilities of it all?

    For instructions on how to create Searches see Create A Search. For the finer details and possibilities of Searches see Writing Searches.

    So far we've mostly explored how Gennys can be added to templates to choose the content used to tell the story and for this to be different in each telling of the story. As mentioned in the Introduction it's also possible to use Gennys in such a way that both the path taken and the destination of your story vary greatly between tellings. Remember the book called The Dice Man? Well imagine using a Genny to act as the roll of a dice and, at every step in the narrative, base the choice of paths taken on the number rolled.

    The possibilities are literally endless. How about narrative twists that only happen if a particular search returns results or a particular combination of factors like the Weavrs's emotional state, it's location and an element of chance all match some predefined criteria. Yes, eat your heart out infinite monkeys!

  • Writing Searches

    Here we'll be going through some of the finer details and possibilities of writing Searches. For instructions on creating your first Search see Create A Search.

    You can link to external media directly from templates by writing HTML but this will be the same for each viewing of your Minimonomyth. Alternatively you can include media content by adding Searches. The results of which will of course vary with each telling. However Searches needn't be used simply for the content of your story.

    Using searches connects the narrative to the ebb and flow of the web. Events and plot twists can be triggered when a certain search successfully returns results. Basing both the media used and the direction of your plot on the results of searches will lead to variety and richness across many tellings.

    Let's start by looking at a simple example of how to use a Search to insert dynamic content into your story. Here's an excerpt from a Chapter Template ...

    I awoke this morning in a cold sweat, unable to shake the strange dream of Yosemiti, and with the call to adventure ringing in my ears.
    {{ search.youtube_dream_place }}

    When Rendered the resulting Chapter will look like this...

    I awoke this morning in a cold sweat, unable to shake the strange dream of Yosemiti, and with the call to adventure ringing in my ears.

    In rendering the above the youtube API is queried using the keyword phrase "yosemiti park", as this is what was entered into the query field (including the quotes) when creating the Search. The double curly bracketed search enclosure in the template is simply replaced by the thumbnail of one of the Youtube results.