• Save
YVision: A General Purpose Software Composition Framework
Upcoming SlideShare
Loading in...5

Like this? Share it with your network


YVision: A General Purpose Software Composition Framework

Uploaded on

Presentation of the paper "YVision: A General Purpose Software Composition Framework" at the HCII2009 conference. ...

Presentation of the paper "YVision: A General Purpose Software Composition Framework" at the HCII2009 conference.

NOTE: Expand slide notes for detailed info.

More in: Technology , Business
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads


Total Views
On Slideshare
From Embeds
Number of Embeds



Embeds 4

http://www.slideshare.net 3
http://www.linkedin.com 1

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

    No notes for slide
  • YDreams been working on natural interaction for several years. Most of these application use video cameras to allow user interaction. Unlike keyboard and mouse, this type of sensor delivers a very rich amount of information (a picture is worth a thousand words).
  • This type of application is very complex. It may include all the listed computer science fields. It’s very hard to find qualified people that can work on all these components. It is better to divide these subjects among a team of experts but, these are few and expensive. How can we put together the work of these experts?
  • We don’t want to reinvent the wheel. Many free and commercial tools are good solutions for each component. Redoing any of these tools would take years. We couldn’t find any hat can (affordably) solve all at once. The problem still is that, to make all these tools work together, it’s a very complex task.
  • YDreams makesmany applications of this type. Many of these are used for advertising but this type of customers usually have requirements like: very short production times, very cheap and always want thing that no one has ever seen. As we all know, this is impossible. Previously, customizing an application would mean many hours of development time. Often just to change a color or a logo.
  • We decided to develop our own framework that tries to solve the previouslymentioned problems.
  • YVision is developed on Microsoft .NET platform, taking advantage of its productive and efficient environment. YVision can oalso take advantage of the modern multi-core CPUs and GPUs.
  • The core of the YVision platform is composed of the following:
  • The graph is the part of YVision that can handle data streams, for example, video, sound, etc. Blocks encapsulate functionalities. Pins allow the connection of these. Connections are strongly-typed, making it possible to detect problems at compile time, instead of execution time. Blocks can be assigned to execution contexts that, for now, are equivalent to threads. The pins and connections automatically handle the between thread communication. This way we can have image processing working on one or more threads. Graphics rendering, physics and behaviors on different ones. We plan to support Microsoft ParallelFXon the next release, allowing the automatic core assignment of blocks. Graphs can have loops and the data handling is “fair”.
  • The settings make it simple to serialize into non-volatile memory, and vice-versa. It can automatically generate a user interface for the settings values. These are all customizable but, it saves developers time to focus on the complicated parts of the application development.
  • The application persistent objects may have aspects controlled by different engines. For example, visual rendering and physics. It is not a good idea to tightly couple the object to these. YVision supports a component-based architecture which allow all aspects of the persistent objects to be decoupled.
  • Objects in simulation have a life cycle. Life cycle can be broken down into atomic behaviors. Behaviors can be composed into a tree. Composition allows the reuse and control the execution of a behavior. Behaviors are executed on each simulation step. Execution is resumed from last step’s position.
  • YVision Core is independent of any engine or library that we talked about. It’s a “general purpose software composition framework”. Ontop of it, we’ve added all the other “modules” like, computer vision, graphics rendering, physics, steering behaviors, etc. The encapsulation of all the components allows the development of data-driven applications. Applications where all its aspects can be defined by XML files. Once these files are specified, we have a customized application ready to be delivered to the customer.
  • The multi-layered architecture of YVision allows the customization to have small increments of cost. Changing a color, a logo, or even a behavior, may mean a small change on an XML file. If a new algorithm, or a behavior is required, the developer only focus on this small change, everything else is reused. This makes it possible to be competitive and have robust applications.


  • 1. AntãoAlmada
    Director, Strategic Software Development
  • 2. YDreams has been working on natural interaction for several years…
  • 3. Interactive application
    Computer Vision
    Object and camera tracking
    Input devices
    Steering behaviors
    Artificial intelligence
  • 4. No need to reinvent the wheel!...
    Computer Vision
    Object and camera tracking DirectShow, OpenCV, ADETTI
    Input devices DirectInput
    2D Flash, FreeFrame
    3D Ogre
    Physics ODE
    Steering behaviors
    Artificial intelligence
  • 5. Customization pit
    From “Domain-Specific Development with Visual Studio DSL Tools ”, Steve Cook et al, Addison-Wesley Professional.
  • 6. YVision
    A general purpose software composition framework
  • 7. YVision
    Developed on .NET platform.
    Takes advantage of modern multi-core CPUs and GPUs.
  • 8. Architecture
  • 9. Graph
    Data stream handling (video, audio, network, etc.)
    Strongly-typed connections
    Execution context
  • 10. Settings
    XML file serialization and deserialization of values.
    User interface generation.
  • 11. Components
    Component-based development.
    Decoupled architectures.
  • 12. Behaviors
    Latent execution.
  • 13.
  • 14. Customization staircase
    From “Domain-Specific Development with Visual Studio DSL Tools ”, Steve Cook et al, Addison-Wesley Professional.
  • 15. Playing in an augmented world
    Full body and face detection
  • 16. YDreams camera-based interaction on a netbook
    YVision on an Atom-based netbook
  • 17. Real-time interaction with augmented reality mascots
    Occlusion and shadow casting with static and dynamic objects
  • 18. Thank you!...