DiamondSpin
Tabletop Toolkit Project



  • Project
The goal of the DiamondSpin project is to provide to the developer community a rich Java toolkit for tabletop development. Tabletop are different from desktop application in many ways :
  • Multiple users sit around the table
  • Each user has a different point of view with the associated preferred orientation for readable content
  • As they intend to work together they want to interact at the same time with the system
  • They may use different interaction device : finger, hand or tool (stylus, eraser, ruler, phycon, and even wireless mice/keyboards)
  • A single user may use two interaction devices at the same time (right and left hand driven)
  • The same document may appear multiple times in the same interface
  • Hand(s) over the table hide partially the object of interaction
  • fingers are less precise than mices at touch time (but almost as precise for drag&drop)
  • There may ba a shadow of the hand(s) if the tabletop interface is video-projected toward the table from the top
  • Tabletop users may want to collaborate with a remote desktop computer, a laptop put on the table or an other tabletop (remote or present in the same room)
Please visit the DiamondSpace web page for context around this project
 


For all these reasons we believe the existing toolkits are not suitable to develop tabletop application so we work hard on making DiamondSpin. In this web page you will find information on:
We've sent an open letter to OS manufacturers to highlight some OS-level issues effecting the design of tabletop applications.


  • History
Screenshots:

www.merl.com/projects/PDH

PDH stands for Personal Digital Historian and was a stand alone application running family pictures on the table. 2001


www.merl.com/projects/diamondspin

DiamondSpin v1.0 was developped at MERL by Fred Vernier to generalize what we did with PDH. 2002-2003


No web site

DiamondSpin Lite was developped at MERL by Mark Hancock. 2004


No web site

DiamondSpin v1.5 was developped in France for MERL by Frédéric Vernier and focussed on Swing/Java beans integration. 2005


www.diamondspin.org

DiamondSpin v2.0 is developped as an open-source project by Frédéric Vernier and others.

Videos (to come...)


  • Download
  • Read the legal instructions and accept them before going further
  • Try one or all of the following free examples using DiamondSpin
  • Try to click the icon below or download the project and
    • launch run.bat OR
    • double-click the file dstourX.jar OR
    • type the command "ant run" in console OR
    • type the command "java -jar dstourX.jar" in console
  • Download the Toolkit after identifying yourself: Here
  • Read the DiamondSpin API generated by javadoc


DSTour 1 shows a simple frame in a spinnable/rotatable environement [source], [screenshot], [project 1.2MB] [JNLP Jogl]


DSTour 2 shows the different behaviors of the view where framed document lay on [source], [screenshot], [project 1.4MB]


DSTour 3 shows frame decorations, utilities and parameters [source], [screenshot], [project 2.5MB] [video 3.7MB]


DSTour 4 shows (push-up) menubars, (pie) popup menus and the magnetization feature (all documents attracted toward a single direction) [screenshot], [project 5.12MB]


DSTour 5 shows virtual keyboards, text input, etc. [video 2.5MB], [screenshot], [project 2.2MB], [video 4.7MB]


DSTour 6 about strokes, drawing, gesture recognition and engines. [video to come], [screenshot], [project 2.2MB],


DSTour 7 soon ... about images, pictures, movies, multimedia content


DSTour 8 soon ... about Peeling and Piling [screenshot], [video 1.4MB],


DSTour 9 soon ... about shadows [video 11MB] [screenshot]


DSTour 10 soon ... about multiple views, view splitter, etc.


  • Features
  • DSFrame can be rotated, zoomed, resized and moved !
  • DSFrame have special decorations and a customizable title bar
  • Virtual keyboard may appear attached to a frame or alone on top of a view
  • Real keyboard event are forwarded to the last touched text area
  • Document alignement/orientation can easily be customized to face anything to may think to.
  • DSview handle a global rotation, a global translation of the content and a global translation of the background
  • ...


  • To Do
  • All the popup stuff (tooltip, jcombobox, framed menubar)
  • OpenGL rendering using JoGL and accelerated GLJPanel provided by JSR231
  • More default content (Movie, svg, rich HTML, rtf, pdf, text editor, etc.)
  • Look&Feel integration
  • Piling (how to make pile of document and manage the pile on the table)
  • Voice recognition integration
  • Gesture recognition engine
  • Better virtual Keyboard (with localization, animated show on, sounds, etc.)


  • Other tabletop projects


  • Software Architecture
software architecture diagramm of DiamondSpin



  • → TouchEvent (finger's position) trajectory
  • Interfaces in italic, Classes in bold
  • Inheritance when a class inherit methods and fields from an other class
  • Listener receiving events related from a source they registered first
  • Free hand drawing on the table using finger as a brush
  • Graphical element visible on the table
  • Explaining concretely what could be a DSElement in our architecture
  • → layer superposition in front of the eyes
  • DiamondTouch table in this picture but could be any concurent event generator
  • View are repository of graphical elements handling popup menu, selection of element, etc.
  • Engine transforming cartesian coordinates to polar coordinates and reciprocually
  • Popup menu appearing when double tap is performed on the table
  • Corner of a DSFrame, Used to resize, zoom in/out, rotate or peel the frame


  • Copyright 2001-2006. All Rights Reserved

Permission to use, copy, modify and distribute this software and its documentation for educational, research and non-profit purposes, without fee, and without a written agreement is hereby granted, provided that the above copyright notice and the following three paragraphs appear in all copies.

To request Permission to incorporate this software into commercial products contact one of the authors of the project

IN NO EVENT SHALL THE AUTHORS BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING LOST PROFITS, ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE AUTHORS HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

THE AUTHORS SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HERE UNDER IS ON AN "AS IS" BASIS, AND THE AUTHORS HAS NO OBLIGATIONS TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.



  • Contributors
Merrie Ringel-Morris: merriestanford.edu
Ph.D. candidate at Stanford University, San Francisco
[web page]
Kate Everitt: everittcs.washington.edu
PhD candidate at the University of Washington, Seattle
[web page]
Gaëtan Rey: gaetan.reyucd.ie
Postdoctoral Associate at Computer Science School of University College, Dublin
[web page]
Romain Guy: romain.guymac.com
Swing Team Member at Sun Microsystems, San Francisco
[blog]
Jeana Frost: frostmedia.mit.edu
Postdoctoral Associate at boston medical [web page]
Stacey Scott: sdscottmit.edu
Postdoctoral Associate at MIT HAL Lab, Boston
[web page]
Rami Ajaj: rami.ajajlimsi.fr
Master student at LIMSI Lab, Paris
Edward Tse: edwardhtsegmail.com
PhD candidate at the University of Calgary
[web page]
Mark Hancock: mshcs.ucalgary.ca
PhD candidate at the University of Calgary
[web page]

want to join us ? please contact frederic.vernierlimsi.fr