SlideShare a Scribd company logo
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

More Related Content

Similar to 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 JET
Simon Haslam
 
Александр Белокрылов, Александр Мироненко. Java Embedded у вас дома
Александр Белокрылов, Александр Мироненко. Java Embedded у вас домаАлександр Белокрылов, Александр Мироненко. Java Embedded у вас дома
Александр Белокрылов, Александр Мироненко. Java Embedded у вас домаVolha Banadyseva
 
Innoslate 4.5 and Sopatra
Innoslate 4.5 and SopatraInnoslate 4.5 and Sopatra
Innoslate 4.5 and Sopatra
Elizabeth Steiner
 
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
Simon 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 sevilla
Trisha 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 manager
Eclipse Day India
 
OSI_MySQL_Performance Schema
OSI_MySQL_Performance SchemaOSI_MySQL_Performance Schema
OSI_MySQL_Performance Schema
Mayank Prasad
 
Diagnose Your Microservices
Diagnose Your MicroservicesDiagnose Your Microservices
Diagnose Your Microservices
Marcus 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 Dive
terrencebarr
 
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 Demo
Mee 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 Oracle
Simon Haslam
 
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...
HUJAK - Hrvatska udruga Java korisnika / Croatian Java User Association
 

Similar to 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...
 

More from Simon Ritter

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

More from 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
 

Recently uploaded

FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
mikeeftimakis1
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
DianaGray10
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
sonjaschweigert1
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
Ralf Eggert
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
Pierluigi Pugliese
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
Matthew Sinclair
 
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
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
RinaMondal9
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptxSecstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
nkrafacyberclub
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
Alpen-Adria-Universität
 
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfSAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
Peter Spielvogel
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Paige Cruz
 
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
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems S.M.S.A.
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
James Anderson
 

Recently uploaded (20)

FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
 
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
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptxSecstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
 
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfSAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
 
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
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
 

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

Editor's Notes

  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.