A 3D Logo variant for Second Life

Seymour A. PapertAlready in 1980 Papert proposed a 'physics microworld' (Papert, 1980) where, before being receptive to Newton's laws of motion, they should know some other laws of motion, not so complex, subtle, and counterintuitive, invent their own alternative laws, progressing, pehaps, from Aristotle even to Einstein. For that, he proposed a sequency of four types of objects: geometric, velocity, acceleration, and newtonian turtles.
Second LifeOn the other hand, while being resource-rich one cannot say that Second Life is an easy-to-use platform. One of the main difficulties is the learning the Linden Scripting Language (LSL) (LSL Portal), with a structure based on Java and C, and providing nearly four hundred functions, without which one cannot make objects interactive, resulting in little more that a overdimensioned Lego. There is a high learning curve for new users (Sanchez, 2009), which means that any proposal of using SL for teaching should set aside several hours, just to have the students become familiar with basic tasks, e.g. walking, pass through doorways, go up stairs, manipulate objects, and so forth. These two factors surely discourage most Physics teachers which probably will not be willing to invest so much time learning LSL only to build simple educational simulations.

Aware of these shortcomings, I decided to build TATI The Amiable Textual Interface for Second Life which would translate commands in a simple form resembling Logo into LSL commands that would generate objects following alternative physical laws, similar to Papert's turtles (1980) or, even better, to diSessa's Dynaturtles (Abelson; diSessa, 1981).

TATI - The Amiable Text Interface for Second Life
TATILogoAs Hoyles, Noss, & Adamson (2002) say, "programming is the prototypical tool for the constructionist vision, and a microworld without programming runs the risk of avoiding just the thing that gives a microworld its power." Therefore, TATI has its own high-level programming language, TATILogo, a Logo variant, extended to include new commands to create and act on each one of the various object types above. 

For compatibility with Papert (1980, p. 128) proposal, TATI should also be able to generate the two basic types of primitives in Second Life: physical and non-physical objects (Non-PhysicalPhysical). Therefore, TATI offers the following six types of object to its user:

  1. NOROBJECTs are the basic SL primitive (Primitive) building blocks. They are unaffected by gravity and have only such attributes as color, size, texture, and position. 
  2. GEOOBJECTs correspond to Papert's GEOMETRY TURTLEs (1980, p. 122), having two geometric components only: position and heading. 
  3. VELOBJECTs correspond to Papert's VELOCITY TURTLEs (1980, p. 128). Its position changes as a consequence of its velocity; there is no command to directly change its position but only to set or change its velocity. 
  4. ACCOBJECTs implement Papert's ACCELERATION TURTLEs. It is another intermediate between the geometry Turtle and a Newtonian particles (1980, p. 128). If VELOBJECTs could not take instructions to directly change its position, ACCOBJECTs only understand commands to set or change its acceleration. 
  5. NEWOBJECTs implement Papert's NEWTONIAN TURTLEs, those that can accept only orders for changing their momentum (1980, p. 128). 
  6. PHYOBJECTs are the basic SL physical objects (Physical) controlled by the physics simulation engine Havokâ„¢. They are subject to SL dynamics, including gravity, forces, collisions, friction, and buoyancy, among other effects.

Each object is created with a user-defined identifier starting with a letter through the OBJECT_ID parameter; the script sets it as the name of the created SL primitive object and displays it hovering over the object, making it easier to be referenced in the future. Lowercase and uppercase indistinguishable. 

The user can choose the object shape through the OBJECT_SHAPE parameter from cube, sphere, cylinder, cone, apple, OR airplane. Default shape is cube. 

The user can change object color through the COLOUR parameter, or with the command SETCOL after creation, from a predefined set of eight colors: black, blue, green, orange, pink, red, yellow, and white. Default color is white. 

Position, velocity, rotation, angular_velocity, force, impulse, impulse, torque, and rotational_impulse are VECTORS on the form (float float float). Distance and angle are FLOAT. Float are floating point number. ABOVEME is a position a little above you and REZPOS is the position where the object was rezzed (created). 

The ONGO option, when appended to a state-changing command, places its execution in a wait state, until the command GO is issued at the appropriate time.

Part of TATILogo syntax is presented below (? denotes optional parameters and | separates alternative parameters):

CREATE object_id object_type? object_shape? colour?
DELETE object_id
SETCOL object_id colour
FORWARD object_id distance ONGO?
RIGHT object_id angle ONGO?
UP object_id angle ONGO?
CLOCK object_id angle ONGO?
SETPOS object_id position ONGO?
SETVEL object_id velocity ONGO?
SPEEDUP object_id speed ONGO?
SETANGVEL object_id angular_velocity ONGO?
SPINUP object_id angular_speed ONGO?
SPINDOWN object_id angular_speed ONGO?
SETACCEL object_id aceleration ONGO?
ACCELERATE object_id speedup ONGO?
SETANGACCEL object_id angular_aceleration ONGO?
APPFORCE object_id force ONGO?
APPIMPULSE object_id impulse ONGO?
GETCOL object_id
GETTYPE object_id
GETPOS object_id
REPEAT integer ( list_of_statements )

See (dos SANTOS, 2012) for an in-depth description.

TATI and TATILogo are in alpha test and final developments now, but will go to beta test soon by being released to a limited and selected group of volunteer users to perform usability and acceptance tests.

Examples of virtual immersive 3D collision simulation with TATIExamples of TATILogo exploring SL 3D rotation features
In this video, I show how TATILogo includes commands to explore SL 3D rotation features. In the final part of the video, a sequence of commands allows for a simulation of a plane takeoff.
Examples of virtual immersive 3D collision simulation with TATIExamples of virtual immersive 3D collision simulation with TATILogo
In these videos, I show how TATI can be used to setup a simple virtual immersive 3D collision simulation in Second Life.
Examples of circular trajectories with various TATI object typesExamples of circular trajectories with various TATI object types
In these videos, inspired by the classic Logo example (Papert, 1980, p.58) of drawing a circumference, I show the realization of trajectories in the form of a circle with various TATI object types.
Examples of TATI operation with TATILogoExamples of TATI operation with TATILogo
In these videos I show how can easily create physics microworlds with TATI inhabited by objects that follow different physical laws.
The history of TATI and TATILogoThe history of TATI and TATILogo
Here I tell how I came to the idea of building TATI - The Amiable Textual Interface for Second Life - and its programming language TATILogo.

See also:

Second Life Physics LabSecond Life Physics Lab
The Physics implemented in Second Life is hyper-real! I created a microworld, a laboratory to investigate it and use it in Physics Teaching.

Powered By Ringsurf

Voltar a Conheça meu lado virtual!.

Citar esta página:
dos SANTOS, Renato P. . In Física Interessante. 17 Jul. 2021. Disponível em: <>. Acesso em: .

Voltar ao começo desta página

Voltar à página principal de Física Interessante

e-books Grátis

View Renato P. dos Santos's profile on LinkedIn

Renato P. dos Santos