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

More Related Content

Similar to YVision: A General Purpose Software Composition Framework

Introduction to Android Programming
Introduction to  Android ProgrammingIntroduction to  Android Programming
Introduction to Android Programming
Pyingkodi Maran
 
android-tutorial-for-beginner
android-tutorial-for-beginnerandroid-tutorial-for-beginner
android-tutorial-for-beginnerAjailal Parackal
 
Hunlan Lin_resume
Hunlan Lin_resumeHunlan Lin_resume
Hunlan Lin_resumehunlan lin
 
Sample 3D Projects_ TMA Solutions
Sample 3D Projects_ TMA SolutionsSample 3D Projects_ TMA Solutions
Sample 3D Projects_ TMA Solutions
TMA Solutions
 
A164 enterprise javascript ibm node sdk
A164 enterprise javascript ibm node sdkA164 enterprise javascript ibm node sdk
A164 enterprise javascript ibm node sdk
Toby Corbin
 
Android Programming made easy
Android Programming made easyAndroid Programming made easy
Android Programming made easy
Lars Vogel
 
J2 Me Gaming Using Netbeans
J2 Me Gaming Using NetbeansJ2 Me Gaming Using Netbeans
J2 Me Gaming Using Netbeansstrongdevil
 
AdamVisserResume
AdamVisserResumeAdamVisserResume
AdamVisserResumeAdam Visser
 
Visual Studio for Mac (AltConf 2017)
Visual Studio for Mac (AltConf 2017)Visual Studio for Mac (AltConf 2017)
Visual Studio for Mac (AltConf 2017)
Craig Dunn
 
YolactEdge Review [cdm]
YolactEdge Review [cdm]YolactEdge Review [cdm]
YolactEdge Review [cdm]
Dongmin Choi
 
Satish resume
Satish resume Satish resume
Satish resume
Satish Lokkoju
 
How ABB shapes the future of industry with Microsoft HoloLens and Unity - Uni...
How ABB shapes the future of industry with Microsoft HoloLens and Unity - Uni...How ABB shapes the future of industry with Microsoft HoloLens and Unity - Uni...
How ABB shapes the future of industry with Microsoft HoloLens and Unity - Uni...
Unity Technologies
 
Titanium Overview (Mobile March 2011)
Titanium Overview (Mobile March 2011)Titanium Overview (Mobile March 2011)
Titanium Overview (Mobile March 2011)
Kevin Whinnery
 
Introduction to Android
Introduction to Android Introduction to Android
Introduction to Android
Ranjith Kumar
 
Android Anatomy
Android  AnatomyAndroid  Anatomy
Android Anatomy
Bhavya Siddappa
 
Stocktwits & Responsive Web Design, social network meets flexible framework
Stocktwits & Responsive Web Design, social network meets flexible frameworkStocktwits & Responsive Web Design, social network meets flexible framework
Stocktwits & Responsive Web Design, social network meets flexible framework
John Strott
 

Similar to YVision: A General Purpose Software Composition Framework (20)

Bhavin_Resume
Bhavin_ResumeBhavin_Resume
Bhavin_Resume
 
Introduction to Android Programming
Introduction to  Android ProgrammingIntroduction to  Android Programming
Introduction to Android Programming
 
android-tutorial-for-beginner
android-tutorial-for-beginnerandroid-tutorial-for-beginner
android-tutorial-for-beginner
 
MERLINO2015
MERLINO2015MERLINO2015
MERLINO2015
 
Hunlan Lin_resume
Hunlan Lin_resumeHunlan Lin_resume
Hunlan Lin_resume
 
Android course1
Android course1Android course1
Android course1
 
Sample 3D Projects_ TMA Solutions
Sample 3D Projects_ TMA SolutionsSample 3D Projects_ TMA Solutions
Sample 3D Projects_ TMA Solutions
 
Quoc Lien
Quoc LienQuoc Lien
Quoc Lien
 
A164 enterprise javascript ibm node sdk
A164 enterprise javascript ibm node sdkA164 enterprise javascript ibm node sdk
A164 enterprise javascript ibm node sdk
 
Android Programming made easy
Android Programming made easyAndroid Programming made easy
Android Programming made easy
 
J2 Me Gaming Using Netbeans
J2 Me Gaming Using NetbeansJ2 Me Gaming Using Netbeans
J2 Me Gaming Using Netbeans
 
AdamVisserResume
AdamVisserResumeAdamVisserResume
AdamVisserResume
 
Visual Studio for Mac (AltConf 2017)
Visual Studio for Mac (AltConf 2017)Visual Studio for Mac (AltConf 2017)
Visual Studio for Mac (AltConf 2017)
 
YolactEdge Review [cdm]
YolactEdge Review [cdm]YolactEdge Review [cdm]
YolactEdge Review [cdm]
 
Satish resume
Satish resume Satish resume
Satish resume
 
How ABB shapes the future of industry with Microsoft HoloLens and Unity - Uni...
How ABB shapes the future of industry with Microsoft HoloLens and Unity - Uni...How ABB shapes the future of industry with Microsoft HoloLens and Unity - Uni...
How ABB shapes the future of industry with Microsoft HoloLens and Unity - Uni...
 
Titanium Overview (Mobile March 2011)
Titanium Overview (Mobile March 2011)Titanium Overview (Mobile March 2011)
Titanium Overview (Mobile March 2011)
 
Introduction to Android
Introduction to Android Introduction to Android
Introduction to Android
 
Android Anatomy
Android  AnatomyAndroid  Anatomy
Android Anatomy
 
Stocktwits & Responsive Web Design, social network meets flexible framework
Stocktwits & Responsive Web Design, social network meets flexible frameworkStocktwits & Responsive Web Design, social network meets flexible framework
Stocktwits & Responsive Web Design, social network meets flexible framework
 

More from Antão Almada

Natural User Interfaces
Natural User InterfacesNatural User Interfaces
Natural User Interfaces
Antão Almada
 
The UI of things
The UI of thingsThe UI of things
The UI of things
Antão Almada
 
Interface naturais no ensino
Interface naturais no ensinoInterface naturais no ensino
Interface naturais no ensinoAntão Almada
 
Natural User Interfaces using YVision
Natural User Interfaces using YVisionNatural User Interfaces using YVision
Natural User Interfaces using YVision
Antão Almada
 
Coordinate Systems
Coordinate SystemsCoordinate Systems
Coordinate Systems
Antão Almada
 
Augmented Reality
Augmented RealityAugmented Reality
Augmented Reality
Antão Almada
 

More from Antão Almada (6)

Natural User Interfaces
Natural User InterfacesNatural User Interfaces
Natural User Interfaces
 
The UI of things
The UI of thingsThe UI of things
The UI of things
 
Interface naturais no ensino
Interface naturais no ensinoInterface naturais no ensino
Interface naturais no ensino
 
Natural User Interfaces using YVision
Natural User Interfaces using YVisionNatural User Interfaces using YVision
Natural User Interfaces using YVision
 
Coordinate Systems
Coordinate SystemsCoordinate Systems
Coordinate Systems
 
Augmented Reality
Augmented RealityAugmented Reality
Augmented Reality
 

Recently uploaded

PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Thierry Lestable
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
Product School
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Ramesh Iyer
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
Alison B. Lowndes
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
Paul Groth
 
Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
g2nightmarescribd
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Product School
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
Product School
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
UiPathCommunity
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
Product School
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
Product School
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
Cheryl Hung
 

Recently uploaded (20)

PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
 
Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 

YVision: A General Purpose Software Composition Framework

Editor's Notes

  1. 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).
  2. 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?
  3. 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.
  4. 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.
  5. We decided to develop our own framework that tries to solve the previouslymentioned problems.
  6. 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.
  7. The core of the YVision platform is composed of the following:
  8. 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”.
  9. 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.
  10. 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.
  11. 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.
  12. 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.
  13. 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.