aesel.model package

Submodules

aesel.model.AeselAction module

An Action represents a unique set of keyframes on an object or property. In either case, it is expected that there can be multiple actions associated to a parent object.

Some examples of actions are ‘walk’, ‘run’, ‘jump’, etc. These are commonly used by animators to build out core movements, and then the actions are woven together to create the final effects.

name:The Name of the action.
description:A description of the action.
keyframes:An array of AeselFrame instances.

aesel.model.AeselApplicationUser module

A User is a single account in an Aesel server.

key:The Unique Identifier of the user (generated by Aesel).
username:The username provided to login.
password:The password used to login.
email:The email of the user.
is_admin:Does the user have admin access?
is_active:Is the user active in the system?
favorite_projects:
 A list of project ID’s which the user has marked as a favorite.
favorite_scenes:
 A list of scene ID’s which the user has marked as favorite.

aesel.model.AeselAssetCollection module

A Project has a set of Scene Groups, as well as a set of asset collections. They are meant to help end-users organize their work in Aesel to correspond with real-life projects (ie. a movie or game) being worked on.

key:The Unique ID of the project, assigned by Aesel.
name:The Name of the project.
description:A readable description of the project.
category:The category of the project.
tags:Comma-delimited list of searchable tags for the project.
sceneGroups:A list of scene groups which make up the project.
assetCollectionIds:
 A list of asset collections which make up the project.

aesel.model.AeselAssetMetadata module

An asset is a resource that each device will need in order to accurately depict objects around it. This can vary, from an .obj file, containing mesh information, to a .glsl file, containing shader information, to a .png or .jpg file containing an image. Assets can either be associated to a Scene or an Object.

Asset Metadata is stored as part of an Asset, and can be queried separately.

content_type:The HTTP Content Type to store instead of multipart
file_type:The File Extension of the uploaded file
asset_type:The type of asset being stored (defaults to “standard”)

aesel.model.AeselAssetRelationship module

n Asset Relationship is a link between an asset and any other data entity which is identifiable by a unique ID. Each relationship contains an Asset ID and a Related ID, as well as a Relationship Type. These are used to model relationships with both external sources (such as Scenes and Objects), and between assets (such as having one Asset be the thumbnail of another).

asset:The ID of the Asset specified in the Relationship.
related:The ID of the Related entity in the Relationship.
type:The type of Relationship (ie. “scene”, “property”, “object”, etc).

aesel.model.AeselDataList module

Message List, outer wrapper for Object, Scene, and Property messages.

Generally not used directly by client applications.

aesel.model.AeselGraphHandle module

Typical animation is done by manipulating keyframes, and then adjust the movement graphs generated in order to get exactly the animation desired.

A Graph Handle allows replication of not just the keyframes, but also the interpolated graphs in-between them.

left_type:The type of the left graph handle.
left_x:The x-value of the left graph handle.
left_y:The y-value of the left graph handle.
right_type:The type of the right graph handle.
right_x:The x-value of the right graph handle.
right_y:The y-value of the right graph handle.

aesel.model.AeselObject module

An Object is represented by a transformation matrix representing it’s position in 3-space, as well as a collection of Assets (Mesh files, Texture files, Shader scripts, etc.). Objects are meant to be interacted with by individual devices, and these changes will be streamed to all devices via the Event API. This API exposes CRUD and Query operations for Objects.

Objects may also have a frame/timestamp, as well as animation graph handles. Both of these are, however, optional.

key:The Unique ID of the Object, assigned by Aesel.
name:The Name of the Object.
scene:The ID of the Scene which contains the Object.
type:The type of the object (ie. “mesh”, “curve”, etc).
subtype:The subtype of the object (ie. “cube”, “sphere”, etc).
frame:The integer frame of the object
transform:The transformation matrix of the object, in a single array. The first four elements make up the first row of the matrix, and this pattern continues.
actions:An array of AeselAction instances.

aesel.model.AeselObjectFrame module

An Object Frame represents a single keyframe within an Object Action.

frame:The integer frame of the object
transform:The transformation matrix of the object, in a single array. The first four elements make up the first row of the matrix, and this pattern continues.
translation_handle:
 An array of AnimationGraphHandle’s which correspond to the [x,y,z] values in the translation array.
rotation_handle:
 An array of 4 AnimationGraphHandle’s which correspond to the [w,x,y,z] values in the rotation arrays.
scale_handle:An array of 3 AnimationGraphHandle’s which correspond to the [x,y,z] values in the scale array.

aesel.model.AeselProperty module

A Property is a set of between 1 and 4 double values, which may or not be associated to objects. Properties can also support frames and/or timestamps, just like objects, but cannot be locked and have no transformations.

Properties are meant to be interacted with by individual devices, and these changes will be streamed to other devices via the Events API. In addition, Create and Update messages sent to the HTTP API are converted to events and streamed out to registered devices.

key:The Unique ID of the Property, assigned by Aesel.
name:The Name of the Property.
parent:The ID of the Parent data entity which contains the Property.
scene:The ID of the Scene which contains the Property.
asset_sub_id:The ID of the Property within a parent asset.
frame:The integer frame of the Property.
actions:An array of AeselPropertyFrame instances.
values:An array of AeselPropertyValue instances.

aesel.model.AeselPropertyFrame module

A Property Frame represents a single keyframe within a Property Action.

frame:The integer frame of the object
values:An array of PropertyValue instances.

aesel.model.AeselPropertyValue module

A Property can have between one and four values, each of which can also contain it’s own graph handles.

value:The float value of the PropertyValue.
left_type:The type of the left graph handle.
left_x:The x-value of the left graph handle.
left_y:The y-value of the left graph handle.
right_type:The type of the right graph handle.
right_x:The x-value of the right graph handle.
right_y:The y-value of the right graph handle.

aesel.model.AeselScene module

A Scene is a group of Objects associated to a particular Latitude and Longitude. Examples of Scenes include levels in a video game, rooms in a house, and shots in a movie.

key:The Unique ID of the Scene.
name:The Name of the Scene.
region:The Region of the Scene (ie. ‘us-md’).
latitude:The latitude of the Scene (for use in AR applications).
longitude:The longitude of the Scene (for use in AR applications).
distance:In scene queries, this can be used with lat/long to find scenes near a particular point.
tags:A list of string tags, which will be saved with the scene and can be searched.
devices:A list of AeselUserDevice’s, this is typically populated during registration flows.

aesel.model.AeselSceneGroup module

A Project has a set of Scene Groups, as well as a set of asset collections. They are meant to help end-users organize their work in Aesel to correspond with real-life projects (ie. a movie or game) being worked on.

key:The Unique ID of the project, assigned by Aesel.
name:The Name of the project.
description:A readable description of the project.
category:The category of the project.
tags:Comma-delimited list of searchable tags for the project.
sceneGroups:A list of scene groups which make up the project.
assetCollectionIds:
 A list of asset collections which make up the project.

aesel.model.AeselSceneTransform module

A Scene Transform represents the transformation needed to move between two scenes, or between a scene and the local coordinate system of a device.

translation:A List of 3 floats, [x,y,z], which represent the translation.
rotation:A list of 3 floats, [x,y,z], which represent the euler rotation.

aesel.model.AeselUserDevice module

A User Device represents the final end-user of Aesel, and is always bound to a computer, phone, or other piece of physical hardware. These devices are expected to send and recieve UDP messages (Events) from the Aesel servers.

key:The Unique Identifier of the device.
hostname:The hostname of the device.
port:The port of the device.
connection_string:
 The full URL of the device.
transform:An AeselSceneTransform which can be passed in during Registration flows.

Module contents