sifteo

=Sifteo Cubes Intelligent Play Platform=

Sifteo SDK
The Sifteo SDK has been released in an alpha state. It may be downloaded from [|here].

Getting Started with the SDK
[|Mono] and the [|MonoDevelop] IDE must be downloaded prior to development.

(Note: This wiki will first discuss the directory structure of, tools provided by, and usage of the SDK before discussing how to run. Those interested in jumping into running the demos or other applications should skip to the Running Programs section below.)

**Tools Provided**
The SDK provides the following resources available at download:
 * API Documentation
 * Set of demo programs and documentation
 * Siftdev, the global Sifteo application launcher
 * Siftulator, a cube simulator
 * Project Generator

__API Documentation:__ Provides a documented list of all Sifteo classes, packages, and functions available for developer use. Also contains several short tutorials, including a "my first app" page and "quickstart" page. To access: open the "api-docs.html" file in any browser.

__Demo programs:__ Sifteo provides a set of simple demo programs. The source code may be found in the demos directory. The demos also give the developer a template for directory structure, as several parts of the API (mainly graphics) require a specific directory structure.

The SDK also provides very useful documentation with the demos. This consists of side-by-side documentation of the demo source code, explaining the purpose and functionality of important lines of code. This is a great place for developers to start learning about the API.

__Siftdev:__ Siftdev is the global Sifteo application launcher. All programs, simulated or run on the hardware, must be run through this launcher. Steps to do so are described below (in the Running Programs section). The application also provides a simple tutorial, application library, and application store. It essentially attempts to wrap all parts of the Sifteo front-end into one central program.

__Siftulator:__ Siftulator is the virtual cube simulator Sifteo provides. It allows the user access to all of the physical cube functions via keyboard commands, which are documented in the API. It's still pretty buggy but should provide the developer a decent testbed.

__Project Generator:__ The project generator is used to create template Sifteo application bundles, the basic structure for any Sifteo applicatoin. The generator executable may be found at tools/projecct_gen/project_gen.exe.

**Developing for Sifteo**
The Sifteo API is in C#. The application bundles and code must conform to basic templates, which are defined in the "My First App" section of the API documentation.

The API is highly event-driven. Sifteo provides black-box event listeners which may be augmented with developer event handlers. Recognized events are:
 * Neighbor (add, remove)
 * Button press (down, up)
 * Tilt
 * Shake (start, stop)
 * Flip

When you download the SDK there are a few example applications which are very helpful.

**Building and Running Programs**
Sifteo has attempted to streamline the execution and client-server processes by routing all execution steps through IDEs and the proprietary Siftdev launcher. To run programs not in the Siftdev library:
 * Build .sln file (in app template - created by project_gen) in MonoDevelop
 * make sure to set Sifteo References, look here for support []
 * Run .sln file in MonoDevelop
 * Load running app into Siftdev (Developer->Load Apps)
 * Load app directory
 * Access app from game library

The launcher will handle all interfacing with the cubes. For more information, see the "Build and Run your Project" in the "Quickstart" section of the Sifteo documentation.



Group Members: Julian E. Herwitz - jherwitz@u.rochester.edu Harry Ledley - hledley@u.rochester.edu

[|Company Website]