Product

YVision is the result of ten years of research and development in human-computer interaction. Nature inspires us to create systems that transcend traditional interfaces: synthetic worlds that can be touched, pulled and pushed, and which are imbued with meaning and context.

Our framework is the missing link between traditional Game Engines and Natural User Interfaces. It promotes creativity and expressiveness, by offloading the complex of interoperability of the multiple technologies, which are indispensable to deliver state-of-the-art interactive products.

It also features several innovative approaches to modern computing, without compromising efficiency or robustness. YVision is a component-based framework, allowing the development of complex systems based on pre-built modules, which are controlled by behavior trees. These architectural concepts have been validated by the gaming industry and are now widely used in the development of complex end products.

Development

YVision is based on Microsoft® .NET, a managed code platform and it will have you developing faster than ever. YVision is also Mono compatible giving you true multi-platform deployment, for desktops (PC and Mac), mobile devices (iOS, Android and Windows Phone 7) and consoles (Xbox 360 and Wii).

The modular nature of YVision offers automatic thread handling, through Task Parallel Library integration, so you don’t have to worry about concurrency or coordination in multi-core systems. All this complexity is handled for you, behind the scenes.

We’ve also worked on offering rich development features, with a full integration for Microsoft® Visual Studio® and MonoDevelop (project and item templates, code snippets, auto-completion), sets of code samples, documentation and tutorials.

Managed code is usually considered to have a toll on performance, but we have worked hard to optimize our framework, so that the hit on real-time systems is insignificant. Even for environments with increased security, like browser plugins. Experience it for yourself!

Components and Behaviors

In YVision everything is a component, which opens the door for complex simulations, controlled through behavior trees.

Instead of defining multiple conditionals or state machines, smaller subsets of behaviors can be aggregated to form larger trees. This brings us closer to natural language representations, and problems like Sensor Fusion handling or Artificial Intelligence modeling become easier to grasp and implement.

Behaviors have been so deeply abstracted in YVision that even the main execution loop is defined as a behavior tree, giving you full control on how your system works.

Real-time 3D rendering

We have developed a full abstraction layer for real-time 3D rendering. YVision integrates the Axiom rendering engine so you don’t have worry about low-level rendering code. Axiom is fully managed code, with the potential to be supported on all platforms supported by Mono. It works great on Mac and PC and has features like, scene management, meshes, lighting, shadows, texturing, shaders and animation. We are closely working with the Axiom team, helping on the effort to port to more platforms.

We also directly support the upcoming Silverlight 5, with full 3D acceleration, allowing you to build the next full 3D experience for the web browser.

If Axiom doesn’t fulfill all your requirements, it’s possible for you to replace it for another engine, with no impact to other modules.

3D Physics Simulation

With the integration of BulletXNA, a port of Bullet, YVision offers state-of-the-art physics simulations, with all the advantages of managed code described above.

Bullet has been used in Hollywood film productions and several renowned 3D authoring tools. With it you’ll not only add great realism to your applications, but also control several aspects of your simulation. An innovative approach of YVision is to use collision detections as virtual sensors that trigger different behaviors.

If BulletXNA doesn’t fulfill all your requirements, it’s also possible for you to replace it for another engine, with no impact to other modules.

Input Devices

The creation of NUI applications depends heavily on sensor data acquisition and processing. We are always adding new components to manipulate different sensor devices. The current release includes several kinds of video input devices (webcams, ethernet cameras, capture boards), Human Interface Devices (like mice, keyboards, joysticks, Arduinos or any other device that complies to the HID specification) and the Wiimote.

We are also working on providing support for other innovative sensors, like depth sensing cameras (PrimeSense PrimeSensorTM and Microsoft® Kinect) and Wiimotes.

You’ll experience that the handling of complex sensor fusion data becomes much more manageable using our approach of behavior trees.

Computer Vision

YVision includes several proprietary and third-party computer vision algorithms allowing the rapid development of camera-based interactive applications.

It also includes a .NET wrapper for OpenCV, the reference library for real-time computer vision, allowing the development of custom computer vision for your projects.

Support for SLARToolkit is included, a marker tracker for augmented reality applications.


Extensibility

Our modular architecture promotes the creation of new sets of components and behaviors.

We’d like you to use YVision in the way that better suits your needs, so we have included template abstractions to get you started on writing new behaviors, components or adding new libraries.

We also encourage community sharing and we hope that our forum becomes an ever-growing knowledge database of extensions and add-ons.

Publishing

YVision is intended to be multiplatform so that you only have to write your code once. It will allow you to do “one-click” deployment for Web, Windows, Mac OS X, iOS, Android, Windows Phone 7, Wii and XBox 360.

The current beta supports development on Windows and Mac OS X and runtime for Windows, Mac OS X and Silverlight 5. We want to offer you the best possible experience, extensive testing is being done for the Mac and mobile platforms will soon follow. Stay tuned, as we intend to follow the “release often” motto.


Windows is a registered trademark of Microsoft Corporation in the United States and other countries.
Mac OS X is a trademark of Apple Inc.