Thursday 10 November 2011

Research Assignment

Research Assignment - TUTORIAL

Throughout Experiment 1, I triggered events for my machinma by using the Input: Key node in my flowgraphs. This was of course, inefficient, and I had figured that there must've been a solution to this problem.

When Experiment 2 began, Vinh Nguyen's demonstration flowgraph
'Average Velocity from Local Player' is how I discovered a nifty little node called Math: Less. Being extremely simple, this returns true or false if value A is lesser than value B and proved to be very useful in Experiment 2. It allowed me to trigger my flowgraphs automatically  and constantly by reaction rather than user input. This eventually led me to discover the Math: InRange Node that I used to track XML data and decided what would be done according to its current value.

From my understanding, the crucial difference is that Math: Less is triggered based on one value that acts as a threshold, whereas Math: Inrange has two that restrict the conditions of true or false.

The limits on the usage of the node are limitless. For the sake of this tutorial however, I will be showing you how to move an entity based based on the current velocity of the player. 

Due to the simplistic nature of my discovery, this tutorial is designed for beginners and includes the basics on how to get the position of an entity and move it. To sum it up, this tutorial will cover:

  • How to obtain and display the velocity of the player
  • Converting velocity into a useable value for Math: InRange using Vec3: Magnitude Vec3
  • Obtaining the coordinates of an entity using a flowgraph (this is needed for Windows 7 users)
  • Moving an entity when the velocity is in between a certain range

 The initial tutorial covered how to obtain the position of an entity and moving it through inputting a key. It should provide users without knowledge of flowgraphs a basic understanding on 3 important nodes. The tutorial is 2:56 minutes long. This is NOT my final submission video, but I decided to include it into this post for those who do have troubles with the subject of moving entities.
Input: Key
HUD: ShowHUDMessage
Movement: MoveEntityTo
How to Move an Entity by Inputting a key


My second, and submission video tutorial deals with the actual Math: InRange node it self, focusing more on how to track velocity and using that information and avoids the cluttering explanations on how to move an entity that has already been covered in the tutorial above.



Reference
Move Entity in Sandbox2 using FlowGraph, by Russell Lowe:

EXP2_Submission




Analytics Engine Final Brief
Light, a natural resource of nature has been around since the beginning of time. My analytics engine displays data from the Arduino Pachube feed and displays it in a literal form by using the time of day in Sandbox 2.
As the data values lower, the more intense the light is and the time of day is set to one that corresponds with how strong the light is - forcing the pillars/columns to rise up and act as shade devices. The height of which the columns, and the time of day that is set is dependant on certain thresholds that I have defined as follow:

0-300 - Noon
301-599 - 3pm
600-800 - 6pm
801-949 - 9pm
950-1023 - Midnight

Instructions to Test Play the Flowgraphs
np_8 - Starts the counter for time of day
np_9 - Starts the counter for the columns
They should be pressed in alternating order (eg 8, 9, 8, 9, etc)

Mod Folder
Custom Google Sketchup Model

Thursday 3 November 2011

Week 4 Tasks

FIRST DRAFT OF ANALYTICS ENGINE

In the flowgraph above, I have created custom model with side "pillars" or "columns" that react by lowering or rising from their positions when the intensity feed returns lower values or high values accordingly. They act as a shading device that allow obstructs light intensity as it gets higher and letting it in when it is weak.

There are 5 thresholds that trigger the 5 different heights to which the pillar lowers itself to.
The range of values are as follows:
 0-300
301-599
600-800
801-949
950-1023





 SECOND DRAFT OF ANALYTICS ENGINE


The above video demonstrates my second method of representing the light intensity analyzed in a more literal way. Using the actual time of day, the time of day changes depending on the value of the light intensity.

The range of values and their corresponding time settings are as follows:
0-300 - Noon
301-599 - 3pm
600-800 - 6pm
801-949 - 9pm
950-1023 - Midnight




Week 3 Tasks

DRAFT BRIEF OF ANALYTICS ENGINE

With the Week Two's flowgraph relating to DISTANCE between entities in mind, I wanted to create a custom flowgraph that would use this and react accordingky.

A way I figure I could combine this idea with the light intensity data given by the pachube feed was to illuminate either an area or object with an intensity that corresponds with how far away the player is from the object/area

"How will your Analytics Engine allow a viewer to draw conclusions that would be difficult (or impossible) to reach by interrogating the data in its raw form?"

After a brief discussion with another student in the course, Daniel Juarez, I explained that the XML light intensity data would be represented by the light intensity of an area or object. Unlike the raw data, this is a more literal and and graphically easier to understand for users.

Cool Infographics

7 Billion: How Did We Get So Big So Fast?
Link



This infographic uses colors for a typical person to differentiate between countries, and not only liquid to represent the predicted population, but also cleverly uses the rate of which the liquid is poured into the glass to show the rate of growth of each country.

I could incorportae this into my analytics engine by having my object or area glow a certain colour based on the data. Another idea I have thought of is to have an object that would repeatedly move (acting as some sort of 'generator' objet) to show the rate or current intensity of the light, moving faster at high intensities and slowing down when the data becomes 'darker.'


Social Media Usage in the UK
Link

This infographic, like the above, also makes use of colours to differentiate between different types of social media. The icons themselves clearly indicate the type of social media as well.

A bar graph, in my opinion, is a tool that is universally known and easy to understand. Looking at them right now, they vary in all sorts of heights and could be used as some sort of obstruction that rises up to shade an area/object at certain light intensity thresholds.

The Blog Tree: New Growth infographic and Q&A
Link


Not directly related to the information itself, but I found the concept of using a tree to display information potentially useful. The light intensity data could be represented by making an object's size, or amount exponentially grow and branch out into a larger number/size corresponsing to the data. Particles could also be used to show the intensity "multiplying' as the light gets more intense.

 

Week 2 Tasks



The Flowgraph





The flowgraph above displays the distance of the player and the graph entity over a period of 2 seconds. Tof this he information is also recorded into a new XML file.

In relation to my chosen pachube feed, one method of using this new knowledge I have learnt is to light up an object in relation to the distance of the player and the entity. This creates the idea of some sort of safety item that guides players to it by illuminating brighter when they are further away, and dim down when they are close enough to see it.

RESEARCH

A handful of useful tricks that help with creating flowgraphs

Vinh Nguyen's blog contains several video tutorials/examples that I found helpful. Notably, the "Average Velocity from Local Player" example and his video on reading XML files in Sandbox 2.

Russell Lowe's youtube channel includes many fundamental video tutorials such as changing material parameters and importing sketchup models that I have used in the past, and may find use for in this experiment.



Week 1 Tasks

Week 1 Tasks
The flowgraph below analyses the velocity of the player, Using the given velocity, a Math: Less node acts as a marker to determine whether the barbed wire is above or below ground. The barbed wire appears when the velocity is lower than 10, and moves under if it is higher than 10, making way to get through.


Flowgraph



PACHUBE FEED ANALYSIS
Arduino Light Sensor Feed - Link

"This feed displays light input data ranging from 0 to 1023, as collected by a light dependent resistor within an Arduino scheme. A high value currently represents low light intensity, and a low value represents high intensity.These values are translated into an angle value from 0 to 90 degrees which informs the rotation of one or more servos. These servos power circular shutters which block circular openings in a facade system during periods of high daylight intensity, and un-block the openings during periods of low intensity. In this way, the facade is able to maintain soft natural internal lighting at all times."

S.W.O.T ANALYSIS

STRENGTHS: The sensor is located at an area where it is not obstructed by buildings or their shadows, which provides the feed with more reliable and consistent data.

WEAKNESSES: The feed is frozen and has not been updated.

OPPORTUNITIES: Light can be represented in Sandbox through many ways. One opportunity I see is to have a structure illuminate based upon the lught intensity, or the time of day reacting to the data given.

THREATS:

Week 2 Tasks