380 likes | 475 Views
COMP 410 December 2009. Q: A Tactile Approach To Digital Organization. COMP 410 – What is it?. Semester-long project “Customer” poses a challenge Student-run Dr. Wong and 4 TAs Warmup project: BallNet. Resources – Sharepoint. TFS + Visual Studio. Resources – Development Servers.
E N D
COMP 410 December 2009 Q: A Tactile ApproachTo Digital Organization
COMP 410 – What is it? • Semester-long project • “Customer” poses a challenge • Student-run • Dr. Wong and 4 TAs • Warmup project: BallNet
Our Team Nick Bridle Input JaewooJeon Client Rick Manning Server, Client Lee Marinelli Server, Input Kevin Montrose Server, Plugin Seth O’Brien Client Jim Russell 3D Interface Ivan Van Server
Our Organization • Every two weeks we: • Presented new prototype to customer • Reassessed progress • Set goals for next two weeks • Advantages: • Regular schedule • More upfront progress
The Challenge Search is useful, but users need a way to structure information.
Our Solution • Workspaces • Multi-user collaboration • Categories, Tags, and Links • Gestures!
System Overview – Modules Server Plugin Client Gesture Input
The Server Server Plugin Client Gesture Input
Server – Architecture Workspace Workspace Workspace Workspace Task Queue Task Queue Task Queue Task Queue HTTP Communications Layer Server Worker Threads
Server – HTTP Communication • HTTP Requests • GET to get data • POST to send data • JSON encoding used for structured queries:
Server – Concurrency • Many-reader, single-writer • Number of threads proportional to number of processor cores
Server – Workspace Instances • Each instance manages: • Document content • Document metadata • Full-text indexing • Version tracking • Lock tracking
Resource Desc. Framework • Semantic Web • Triples: • Subject • Predicate • Object • Easy to represent many different types of relationships www.Q-is-the-best.com “Tagged with” “COMP 410”
The Plugin Server Plugin Client Gesture Input
Plugin – Overview • Extend the browser, rather than replace it • Familiar interface for keyboard and mouse • User “shares” items from the browser, optionally specifying title, category, and tags
Plugin – Design • Firefox extension • Well-exercised platform • Lots of flexibility • XUL for UI • Javascriptfor logic
Plugin – The Guts • Wraps all requests into JSON objects • Data transmitted as base-64 encoded strings • Tracks browsing history on a per-tab basis • Tracks user actions like reload, back/forward • Browsing histories are non-linear!
The Client Server Plugin Client Gesture Input
Client – Overview • Browser-hosted application • Windows Presentation Foundation • Reference implementation • Wide variety of clients could use same server • Platform independence!
Scalability • Download data only as needed • Workspace structure • Thumbnails • Full documents
The Input Server Plugin Client Gesture Input
Input – Motivation • Interesting • Substitute for traditional keyboard and mouse • Uses Wiimotes! • Intuitive • Meshes well with 3D view • Flexible • Doesn't restrict the user to one input interface
Input – Physical Setup • 2 Wiimotes on tripods • Gloves with IR LEDs on the fingers
Wiimote Stereovision • Like depth perception in humans • Calibrate with cube Monitor Wiimote Wiimote Human w/gloves
Gesture Recognition • Project points in 3D space to two 2D planes • Apply 2D recognizers
Custom Gestures • Pre-existing libraries used to analyze strokes
Super Annoying ProblemsInteresting Challenges • Interfacing different platforms • Browser/client communication • Client/input communication • Firefox • Poor documentation • No official API for extensions! • Hardware (Wiimotes)
Future Improvements • Security • HTTPS • SQL queries • More 3D layouts • Improved gesture fidelity • Improved gloves • Reflected IR approach