SlideShare une entreprise Scribd logo
1  sur  39
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.1
Taking A Leap Forward With
JavaFX
Simon Ritter, Oracle Corporation
Gerrit Grunwald, Canoo Engineering AG
Johan Vos, Lodgon
José Pereda, Universidad de Valladolid
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.3
The following is intended to outline our general product
direction. It is intended for information purposes only, and
may not be incorporated into any contract. It is not a
commitment to deliver any material, code, or functionality,
and should not be relied upon in making purchasing
decisions. The development, release, and timing of any
features or functionality described for Oracle’s products
remains at the sole discretion of Oracle.
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.4
Program Agenda
 The Man Machine Interface
 Leap Motion Controller
 JavaFX Basics and 3D
 Leap Motion Java API
 Demos
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.5
The Man Machine Interface
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.6
How It All Started
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.7
Progress was made…
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.8
Multi-touch has become popular
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.9
Gaming Has Driven Several Interfaces
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.10
Now It’s About Gestures
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.11
The Leap Motion Controller
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.12
The Basics
 Small device (80 x 30 x 12mm)
 USB connection
– No external power required
 Multiple OS support
– Windows
– Mac OSX
– Linux
 Low cost: $80
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.13
The Technology
 Array of infra-red sensors
– Can be susceptible to bright light
 Proprietary motion detection algorithm
– Tracks to 0.01mm resolution
– The secret sauce
 1-2% CPU load
 No GPU requirement
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.14
The Details
 The Leap Motion sensor detects hands, fingers and tools
 Data captured as frames continuously
 Listener handles events from frames
 Controller is the connection between device and application
 Gesture recognition must be enabled through the controller
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.15
Leap Motion Java API
Co-ordinate System
Right hand Cartesian co-ordinate system
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.16
 60cm range
 150 view angle (left/right)
 120 view angle (front/back)
Field Of View
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.17
Gestures
 Predefined gestures
– Circle
– Swipe
– Key tap (downward movement: y-axis)
– Screen tap (forward movement: z-axis)
 Turn, twist, tilt, make a fist
– Use motion factors from frame
 Translation, rotation axis, rotation angle, scale factor
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.18
JavaFX Basics and 3D
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.19
JavaFX: The New Way To Build Java UIs
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.20
Scene Graph
 Directed Acyclic Graph
 Parents and children
 Representation of the GUI components
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.21
Binding
 Creates a dependency between a property and a
changeable value
 High level API
– Easy to use
– Covers most common situations
 Low level API
– Allows for more complex interactions
– Optimised for fast execution and small footprint
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.22
Properties
 Basis for high level binding API
 Concrete types for all primitives, String and Object
– DoubleProperty, StringProperty, etc
 Simple API
– bind / unbind
– bindBidirectional / unbindBidirectional
– isBound
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.23
Timeline Based Animations
 Timeline
– Modifies values of variables specified in KeyFrames
 KeyFrame: specifies that a variable should have
– A particular value at a particular time
 KeyValue: Value to be interpolated for an interval
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.24
Animated Transitions
 Pre-defined, single-purpose animations
– Fade, Path, Pause, Rotate, Scale, Translate
– Can specify to, from and by values
 Container transitions
– Parallel, sequential
– Can be nested arbitarily
 Transitions and Timelines share ancestary
– A Timeline can be added to a Parallel / Sequential transition
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.25
JavaFX And The Third Dimension
 Basic collection of 3D shapes
– Box
– Cylinder
– Sphere
– MeshView (everything else)
 javafx.scene.shape
Shapes
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.26
JavaFX And The Third Dimension
 PhongMaterial
– Way to cover a 3D object in a colour or image
– Uses interpolation to smooth polygon effects
Surfaces
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.27
JavaFX And The Third Dimension
 How to illuminate the scene
 javafx.scene.effect.LightBase
 AmbientLight
– A light source that seems to come from all directions
 PointLight
– An attenuated light source that has a fixed point in space and radiates light
equally away from itself in all directions
Lighting
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.28
JavaFX And The Third Dimension
 Where the scene is viewed from
 PerspectiveCamera
– Field of view is configurable (default is 30°)
 ParallelCamera
– Renders a scene without perspective correction
Cameras
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.29
Leap Motion Java API
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.30
Interaction Principles
Frame
Application Code
Listener
GUI Node
GUI Node
GUI Node
Controller
Leap
Motion
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.31
Basic Approach
 Create Controller
 Register Listener
– Subclass to implement specific functionality
 onFrame callback method in Listener called by Controller
 Or you can use polling
 Frame contains all data
– Hand position, orientation
– Fingers
– Pointer position, orientation
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.32
Frame By Frame
 Set of hand and finger tracking data detected at a point in time
 Hand provides:
– Direction of palm
– List of visible Fingers
 Finger (which is a subclass of Pointable) provides:
– Direction
– Tip position and velocity
– Length, width
– Time visible
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.33
Handling Gestures
 Enable the gestures you want to use
 Recognised gesture data is added to the Frame
GestureList gl = frame.gestures();
for (int i = 0; i < gl.count(); i++) {
Gesture g = gl.get(i);
if (g.type == TYPE_SWIPE)
SwipeGesture sw = new SwipeGesture(g);
...
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.34
Conclusions and More
Information
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.35
Conclusions
 Leap Motion adds a great new way to interact with applications
 Java support makes integration with existing applications simple
– Clean, straightforward API
– Simple gesture recognition
 Use your imagination!
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.36
Further Information
 www.leapmotion.com
 www.oracle.com/javafx
 jperedadnr.blogspot.co.uk
 blogs.oracle.com/speakjava
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.37
Demos
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.38
Graphic Section Divider
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.39

Contenu connexe

Similaire à Taking a Leap Forward With JavaFX

Delivering Mobile Apps to the Field with Oracle JET
Delivering Mobile Apps to the Field with Oracle JETDelivering Mobile Apps to the Field with Oracle JET
Delivering Mobile Apps to the Field with Oracle JETSimon Haslam
 
Александр Белокрылов, Александр Мироненко. Java Embedded у вас дома
Александр Белокрылов, Александр Мироненко. Java Embedded у вас домаАлександр Белокрылов, Александр Мироненко. Java Embedded у вас дома
Александр Белокрылов, Александр Мироненко. Java Embedded у вас домаVolha Banadyseva
 
Delivering Mobile Apps to the Field with Oracle
Delivering Mobile Apps to the Field with OracleDelivering Mobile Apps to the Field with Oracle
Delivering Mobile Apps to the Field with OracleSimon Haslam
 
Java Embedded у вас дома
Java Embedded у вас домаJava Embedded у вас дома
Java Embedded у вас домаDiana Dymolazova
 
2015 Java update and roadmap, JUG sevilla
2015  Java update and roadmap, JUG sevilla2015  Java update and roadmap, JUG sevilla
2015 Java update and roadmap, JUG sevillaTrisha Gee
 
10 Tips for Java EE 7 with PrimeFaces - JavaOne 2013
10 Tips for Java EE 7 with PrimeFaces - JavaOne 201310 Tips for Java EE 7 with PrimeFaces - JavaOne 2013
10 Tips for Java EE 7 with PrimeFaces - JavaOne 2013Martin Fousek
 
Sviluppo IoT - Un approccio standard da Nerd ad Impresa, prove pratiche di Me...
Sviluppo IoT - Un approccio standard da Nerd ad Impresa, prove pratiche di Me...Sviluppo IoT - Un approccio standard da Nerd ad Impresa, prove pratiche di Me...
Sviluppo IoT - Un approccio standard da Nerd ad Impresa, prove pratiche di Me...Codemotion
 
Project Helidon Overview (Japanese)
Project Helidon Overview (Japanese)Project Helidon Overview (Japanese)
Project Helidon Overview (Japanese)Logico
 
Java: how to thrive in the changing world
Java: how to thrive in the changing worldJava: how to thrive in the changing world
Java: how to thrive in the changing worldAlexey Fyodorov
 
Using Eclipse EMF/GEF to develop an offline designer for identity manager
Using Eclipse EMF/GEF to develop an offline designer for identity managerUsing Eclipse EMF/GEF to develop an offline designer for identity manager
Using Eclipse EMF/GEF to develop an offline designer for identity managerEclipse Day India
 
OSI_MySQL_Performance Schema
OSI_MySQL_Performance SchemaOSI_MySQL_Performance Schema
OSI_MySQL_Performance SchemaMayank Prasad
 
Diagnose Your Microservices
Diagnose Your MicroservicesDiagnose Your Microservices
Diagnose Your MicroservicesMarcus Hirt
 
The Mobile Enterprise in Action: Managing Business Processes from Your Mobile...
The Mobile Enterprise in Action: Managing Business Processes from Your Mobile...The Mobile Enterprise in Action: Managing Business Processes from Your Mobile...
The Mobile Enterprise in Action: Managing Business Processes from Your Mobile...Steven Davelaar
 
Continuous Performance Monitoring of a Distributed Application [CON4730]
Continuous Performance Monitoring of a Distributed Application [CON4730]Continuous Performance Monitoring of a Distributed Application [CON4730]
Continuous Performance Monitoring of a Distributed Application [CON4730]Ashish Srivastava
 
Java Micro Edition (ME) 8 Deep Dive
Java Micro Edition (ME) 8 Deep DiveJava Micro Edition (ME) 8 Deep Dive
Java Micro Edition (ME) 8 Deep Diveterrencebarr
 
CRUX (CRUD meets UX) Case Study: Building a Modern Applications User Experien...
CRUX (CRUD meets UX) Case Study: Building a Modern Applications User Experien...CRUX (CRUD meets UX) Case Study: Building a Modern Applications User Experien...
CRUX (CRUD meets UX) Case Study: Building a Modern Applications User Experien...Chris Muir
 
Mobile Cloud Demo
Mobile Cloud DemoMobile Cloud Demo
Mobile Cloud DemoMee Nam Lee
 
Delivering Mobile Apps to the field using Oracle
Delivering Mobile Apps to the field using OracleDelivering Mobile Apps to the field using Oracle
Delivering Mobile Apps to the field using OracleSimon Haslam
 

Similaire à Taking a Leap Forward With JavaFX (20)

Delivering Mobile Apps to the Field with Oracle JET
Delivering Mobile Apps to the Field with Oracle JETDelivering Mobile Apps to the Field with Oracle JET
Delivering Mobile Apps to the Field with Oracle JET
 
Александр Белокрылов, Александр Мироненко. Java Embedded у вас дома
Александр Белокрылов, Александр Мироненко. Java Embedded у вас домаАлександр Белокрылов, Александр Мироненко. Java Embedded у вас дома
Александр Белокрылов, Александр Мироненко. Java Embedded у вас дома
 
Innoslate 4.5 and Sopatra
Innoslate 4.5 and SopatraInnoslate 4.5 and Sopatra
Innoslate 4.5 and Sopatra
 
Delivering Mobile Apps to the Field with Oracle
Delivering Mobile Apps to the Field with OracleDelivering Mobile Apps to the Field with Oracle
Delivering Mobile Apps to the Field with Oracle
 
Java Embedded у вас дома
Java Embedded у вас домаJava Embedded у вас дома
Java Embedded у вас дома
 
2015 Java update and roadmap, JUG sevilla
2015  Java update and roadmap, JUG sevilla2015  Java update and roadmap, JUG sevilla
2015 Java update and roadmap, JUG sevilla
 
10 Tips for Java EE 7 with PrimeFaces - JavaOne 2013
10 Tips for Java EE 7 with PrimeFaces - JavaOne 201310 Tips for Java EE 7 with PrimeFaces - JavaOne 2013
10 Tips for Java EE 7 with PrimeFaces - JavaOne 2013
 
Sviluppo IoT - Un approccio standard da Nerd ad Impresa, prove pratiche di Me...
Sviluppo IoT - Un approccio standard da Nerd ad Impresa, prove pratiche di Me...Sviluppo IoT - Un approccio standard da Nerd ad Impresa, prove pratiche di Me...
Sviluppo IoT - Un approccio standard da Nerd ad Impresa, prove pratiche di Me...
 
Project Helidon Overview (Japanese)
Project Helidon Overview (Japanese)Project Helidon Overview (Japanese)
Project Helidon Overview (Japanese)
 
Java: how to thrive in the changing world
Java: how to thrive in the changing worldJava: how to thrive in the changing world
Java: how to thrive in the changing world
 
Using Eclipse EMF/GEF to develop an offline designer for identity manager
Using Eclipse EMF/GEF to develop an offline designer for identity managerUsing Eclipse EMF/GEF to develop an offline designer for identity manager
Using Eclipse EMF/GEF to develop an offline designer for identity manager
 
OSI_MySQL_Performance Schema
OSI_MySQL_Performance SchemaOSI_MySQL_Performance Schema
OSI_MySQL_Performance Schema
 
Diagnose Your Microservices
Diagnose Your MicroservicesDiagnose Your Microservices
Diagnose Your Microservices
 
The Mobile Enterprise in Action: Managing Business Processes from Your Mobile...
The Mobile Enterprise in Action: Managing Business Processes from Your Mobile...The Mobile Enterprise in Action: Managing Business Processes from Your Mobile...
The Mobile Enterprise in Action: Managing Business Processes from Your Mobile...
 
Continuous Performance Monitoring of a Distributed Application [CON4730]
Continuous Performance Monitoring of a Distributed Application [CON4730]Continuous Performance Monitoring of a Distributed Application [CON4730]
Continuous Performance Monitoring of a Distributed Application [CON4730]
 
Java Micro Edition (ME) 8 Deep Dive
Java Micro Edition (ME) 8 Deep DiveJava Micro Edition (ME) 8 Deep Dive
Java Micro Edition (ME) 8 Deep Dive
 
CRUX (CRUD meets UX) Case Study: Building a Modern Applications User Experien...
CRUX (CRUD meets UX) Case Study: Building a Modern Applications User Experien...CRUX (CRUD meets UX) Case Study: Building a Modern Applications User Experien...
CRUX (CRUD meets UX) Case Study: Building a Modern Applications User Experien...
 
Mobile Cloud Demo
Mobile Cloud DemoMobile Cloud Demo
Mobile Cloud Demo
 
Delivering Mobile Apps to the field using Oracle
Delivering Mobile Apps to the field using OracleDelivering Mobile Apps to the field using Oracle
Delivering Mobile Apps to the field using Oracle
 
JavaCro'14 - Consuming Java EE Backends in Desktop, Web, and Mobile Frontends...
JavaCro'14 - Consuming Java EE Backends in Desktop, Web, and Mobile Frontends...JavaCro'14 - Consuming Java EE Backends in Desktop, Web, and Mobile Frontends...
JavaCro'14 - Consuming Java EE Backends in Desktop, Web, and Mobile Frontends...
 

Plus de Simon Ritter

Cloud Native Compiler
Cloud Native CompilerCloud Native Compiler
Cloud Native CompilerSimon Ritter
 
The Art of Java Type Patterns
The Art of Java Type PatternsThe Art of Java Type Patterns
The Art of Java Type PatternsSimon Ritter
 
Modern Java Workshop
Modern Java WorkshopModern Java Workshop
Modern Java WorkshopSimon Ritter
 
Java performance monitoring
Java performance monitoringJava performance monitoring
Java performance monitoringSimon Ritter
 
Modern Java Workshop
Modern Java WorkshopModern Java Workshop
Modern Java WorkshopSimon Ritter
 
Getting the Most From Modern Java
Getting the Most From Modern JavaGetting the Most From Modern Java
Getting the Most From Modern JavaSimon Ritter
 
Building a Better JVM
Building a Better JVMBuilding a Better JVM
Building a Better JVMSimon Ritter
 
JDK 14 Lots of New Features
JDK 14 Lots of New FeaturesJDK 14 Lots of New Features
JDK 14 Lots of New FeaturesSimon Ritter
 
How to Choose a JDK
How to Choose a JDKHow to Choose a JDK
How to Choose a JDKSimon Ritter
 
The Latest in Enterprise JavaBeans Technology
The Latest in Enterprise JavaBeans TechnologyThe Latest in Enterprise JavaBeans Technology
The Latest in Enterprise JavaBeans TechnologySimon Ritter
 
Developing Enterprise Applications Using Java Technology
Developing Enterprise Applications Using Java TechnologyDeveloping Enterprise Applications Using Java Technology
Developing Enterprise Applications Using Java TechnologySimon Ritter
 
Is Java Still Free?
Is Java Still Free?Is Java Still Free?
Is Java Still Free?Simon Ritter
 
Moving Towards JDK 12
Moving Towards JDK 12Moving Towards JDK 12
Moving Towards JDK 12Simon Ritter
 
JDK 9, 10, 11 and Beyond
JDK 9, 10, 11 and BeyondJDK 9, 10, 11 and Beyond
JDK 9, 10, 11 and BeyondSimon Ritter
 
Java Is Still Free
Java Is Still FreeJava Is Still Free
Java Is Still FreeSimon Ritter
 
JDK 9, 10, 11 and Beyond
JDK 9, 10, 11 and BeyondJDK 9, 10, 11 and Beyond
JDK 9, 10, 11 and BeyondSimon Ritter
 
JDK 9 and JDK 10 Deep Dive
JDK 9 and JDK 10 Deep DiveJDK 9 and JDK 10 Deep Dive
JDK 9 and JDK 10 Deep DiveSimon Ritter
 

Plus de Simon Ritter (20)

Cloud Native Compiler
Cloud Native CompilerCloud Native Compiler
Cloud Native Compiler
 
Java On CRaC
Java On CRaCJava On CRaC
Java On CRaC
 
The Art of Java Type Patterns
The Art of Java Type PatternsThe Art of Java Type Patterns
The Art of Java Type Patterns
 
Modern Java Workshop
Modern Java WorkshopModern Java Workshop
Modern Java Workshop
 
Java performance monitoring
Java performance monitoringJava performance monitoring
Java performance monitoring
 
Modern Java Workshop
Modern Java WorkshopModern Java Workshop
Modern Java Workshop
 
Getting the Most From Modern Java
Getting the Most From Modern JavaGetting the Most From Modern Java
Getting the Most From Modern Java
 
Building a Better JVM
Building a Better JVMBuilding a Better JVM
Building a Better JVM
 
JDK 14 Lots of New Features
JDK 14 Lots of New FeaturesJDK 14 Lots of New Features
JDK 14 Lots of New Features
 
Java after 8
Java after 8Java after 8
Java after 8
 
How to Choose a JDK
How to Choose a JDKHow to Choose a JDK
How to Choose a JDK
 
Java Programming
Java ProgrammingJava Programming
Java Programming
 
The Latest in Enterprise JavaBeans Technology
The Latest in Enterprise JavaBeans TechnologyThe Latest in Enterprise JavaBeans Technology
The Latest in Enterprise JavaBeans Technology
 
Developing Enterprise Applications Using Java Technology
Developing Enterprise Applications Using Java TechnologyDeveloping Enterprise Applications Using Java Technology
Developing Enterprise Applications Using Java Technology
 
Is Java Still Free?
Is Java Still Free?Is Java Still Free?
Is Java Still Free?
 
Moving Towards JDK 12
Moving Towards JDK 12Moving Towards JDK 12
Moving Towards JDK 12
 
JDK 9, 10, 11 and Beyond
JDK 9, 10, 11 and BeyondJDK 9, 10, 11 and Beyond
JDK 9, 10, 11 and Beyond
 
Java Is Still Free
Java Is Still FreeJava Is Still Free
Java Is Still Free
 
JDK 9, 10, 11 and Beyond
JDK 9, 10, 11 and BeyondJDK 9, 10, 11 and Beyond
JDK 9, 10, 11 and Beyond
 
JDK 9 and JDK 10 Deep Dive
JDK 9 and JDK 10 Deep DiveJDK 9 and JDK 10 Deep Dive
JDK 9 and JDK 10 Deep Dive
 

Dernier

🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 

Dernier (20)

🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 

Taking a Leap Forward With JavaFX

  • 1. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.1
  • 2. Taking A Leap Forward With JavaFX Simon Ritter, Oracle Corporation Gerrit Grunwald, Canoo Engineering AG Johan Vos, Lodgon José Pereda, Universidad de Valladolid
  • 3. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.3 The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described for Oracle’s products remains at the sole discretion of Oracle.
  • 4. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.4 Program Agenda  The Man Machine Interface  Leap Motion Controller  JavaFX Basics and 3D  Leap Motion Java API  Demos
  • 5. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.5 The Man Machine Interface
  • 6. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.6 How It All Started
  • 7. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.7 Progress was made…
  • 8. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.8 Multi-touch has become popular
  • 9. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.9 Gaming Has Driven Several Interfaces
  • 10. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.10 Now It’s About Gestures
  • 11. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.11 The Leap Motion Controller
  • 12. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.12 The Basics  Small device (80 x 30 x 12mm)  USB connection – No external power required  Multiple OS support – Windows – Mac OSX – Linux  Low cost: $80
  • 13. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.13 The Technology  Array of infra-red sensors – Can be susceptible to bright light  Proprietary motion detection algorithm – Tracks to 0.01mm resolution – The secret sauce  1-2% CPU load  No GPU requirement
  • 14. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.14 The Details  The Leap Motion sensor detects hands, fingers and tools  Data captured as frames continuously  Listener handles events from frames  Controller is the connection between device and application  Gesture recognition must be enabled through the controller
  • 15. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.15 Leap Motion Java API Co-ordinate System Right hand Cartesian co-ordinate system
  • 16. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.16  60cm range  150 view angle (left/right)  120 view angle (front/back) Field Of View
  • 17. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.17 Gestures  Predefined gestures – Circle – Swipe – Key tap (downward movement: y-axis) – Screen tap (forward movement: z-axis)  Turn, twist, tilt, make a fist – Use motion factors from frame  Translation, rotation axis, rotation angle, scale factor
  • 18. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.18 JavaFX Basics and 3D
  • 19. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.19 JavaFX: The New Way To Build Java UIs
  • 20. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.20 Scene Graph  Directed Acyclic Graph  Parents and children  Representation of the GUI components
  • 21. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.21 Binding  Creates a dependency between a property and a changeable value  High level API – Easy to use – Covers most common situations  Low level API – Allows for more complex interactions – Optimised for fast execution and small footprint
  • 22. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.22 Properties  Basis for high level binding API  Concrete types for all primitives, String and Object – DoubleProperty, StringProperty, etc  Simple API – bind / unbind – bindBidirectional / unbindBidirectional – isBound
  • 23. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.23 Timeline Based Animations  Timeline – Modifies values of variables specified in KeyFrames  KeyFrame: specifies that a variable should have – A particular value at a particular time  KeyValue: Value to be interpolated for an interval
  • 24. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.24 Animated Transitions  Pre-defined, single-purpose animations – Fade, Path, Pause, Rotate, Scale, Translate – Can specify to, from and by values  Container transitions – Parallel, sequential – Can be nested arbitarily  Transitions and Timelines share ancestary – A Timeline can be added to a Parallel / Sequential transition
  • 25. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.25 JavaFX And The Third Dimension  Basic collection of 3D shapes – Box – Cylinder – Sphere – MeshView (everything else)  javafx.scene.shape Shapes
  • 26. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.26 JavaFX And The Third Dimension  PhongMaterial – Way to cover a 3D object in a colour or image – Uses interpolation to smooth polygon effects Surfaces
  • 27. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.27 JavaFX And The Third Dimension  How to illuminate the scene  javafx.scene.effect.LightBase  AmbientLight – A light source that seems to come from all directions  PointLight – An attenuated light source that has a fixed point in space and radiates light equally away from itself in all directions Lighting
  • 28. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.28 JavaFX And The Third Dimension  Where the scene is viewed from  PerspectiveCamera – Field of view is configurable (default is 30°)  ParallelCamera – Renders a scene without perspective correction Cameras
  • 29. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.29 Leap Motion Java API
  • 30. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.30 Interaction Principles Frame Application Code Listener GUI Node GUI Node GUI Node Controller Leap Motion
  • 31. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.31 Basic Approach  Create Controller  Register Listener – Subclass to implement specific functionality  onFrame callback method in Listener called by Controller  Or you can use polling  Frame contains all data – Hand position, orientation – Fingers – Pointer position, orientation
  • 32. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.32 Frame By Frame  Set of hand and finger tracking data detected at a point in time  Hand provides: – Direction of palm – List of visible Fingers  Finger (which is a subclass of Pointable) provides: – Direction – Tip position and velocity – Length, width – Time visible
  • 33. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.33 Handling Gestures  Enable the gestures you want to use  Recognised gesture data is added to the Frame GestureList gl = frame.gestures(); for (int i = 0; i < gl.count(); i++) { Gesture g = gl.get(i); if (g.type == TYPE_SWIPE) SwipeGesture sw = new SwipeGesture(g); ...
  • 34. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.34 Conclusions and More Information
  • 35. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.35 Conclusions  Leap Motion adds a great new way to interact with applications  Java support makes integration with existing applications simple – Clean, straightforward API – Simple gesture recognition  Use your imagination!
  • 36. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.36 Further Information  www.leapmotion.com  www.oracle.com/javafx  jperedadnr.blogspot.co.uk  blogs.oracle.com/speakjava
  • 37. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.37 Demos
  • 38. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.38 Graphic Section Divider
  • 39. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.39

Notes de l'éditeur

  1. AWT and Swing use a container/component hierarchy for organising the GUI. Layout managers are fundamental to this, but can make development difficult and involved. JavaFX uses a scenegraph which will be familiar to developers who have programmed in 3D. The concept is that all components in the GUI are represented by nodes. Each node can have one parent and groupings can be made by attaching multiple nodes (which may themselves be parents) to a parent. Applying effects to groups of nodes is simply a matter of applying the effect to the parent node. Z ordering can also be altered within a group and for a group as a whole.
  2. Binding is one of the most powerful features of JavaFX. It allows developers to specify the relationship between properties and values so that when the value changes the property is automatically modified byt the JavaFX runtime system. This is analogous to the listener pattern used extensively in AWT/Swing but requires less coding by the developer.The API is separated into a high level version that covers most of the common tasks, but does not provide total flexibility. For tasks that require complete flexibility the low-level API can be used. This, however, requires more coding.
  3. Properties are the basis for high-level binding. There are property types for all Java primitives as well as String and Object. The API for this is simple, allowing you to bind or unbind the property. Bi-directional binding is also supported.
  4. Animations are changes in properties that happen over time (fading by modifying opacity, moving the position of a node, etc).JavaFX uses a Timeline to implement this; each one consisting of a series of KeyFrames. These are points in time where a property will have a specified value (it can also be used to start an action through a method call). The KeyValue has one or more KeyValues that represent the property-value tuple. When a Timeline is started the JavaFX runtime will alter the value of the property automatically. By binding to the changing property the GUI can be animated.
  5. To simplify comman tasks JavaFX includes a number of animated transitions to automate things like fading, rotation, scaling and so on. The start end and intermediate points can all be specificed. These can then be grouped together to provide either sequential or parallel transitions. For non-standard animations arbitary Timelines can also be included in the parallel or sequential transitions.