All Projects → remixlab → proscene

remixlab / proscene

Licence: GPL-3.0 license
Processing library for the creation of interactive scenes

Projects that are alternatives of or similar to proscene

nub
A rendering and interaction Processing library
Stars: ✭ 28 (-37.78%)
Mutual labels:  scene, hci
SGGpoint
[CVPR 2021] Exploiting Edge-Oriented Reasoning for 3D Point-based Scene Graph Analysis (official pytorch implementation)
Stars: ✭ 41 (-8.89%)
Mutual labels:  scene-graph
Authorizer
Authorizer is a Password Manager for Android. It emulates an HID keyboard over USB and enters your credentials on your target device. Additionally it supports OTP 🔑📴
Stars: ✭ 172 (+282.22%)
Mutual labels:  hid
hidapi-rs
Rust bindings for the hidapi C library
Stars: ✭ 103 (+128.89%)
Mutual labels:  hid
Streamdecksharp
A simple .NET wrapper for Stream Deck
Stars: ✭ 203 (+351.11%)
Mutual labels:  hid
EspTinyUSB
ESP32S2 native USB library. Implemented few common classes, like MIDI, CDC, HID or DFU (update).
Stars: ✭ 375 (+733.33%)
Mutual labels:  hid
Ble Hid Peripheral For Android
BLE HID over GATT Profile for Android
Stars: ✭ 143 (+217.78%)
Mutual labels:  hid
joyconpi
An attempt at emulating a Nintendo Switch Joy-Con controller with a Raspberry Pi
Stars: ✭ 24 (-46.67%)
Mutual labels:  hid
python-hid-parser
Typed pure Python library to parse HID report descriptors
Stars: ✭ 31 (-31.11%)
Mutual labels:  hid
video-filename-parser
Scene release name parser
Stars: ✭ 40 (-11.11%)
Mutual labels:  scene
py-bluetooth-utils
Python module containing bluetooth utility functions, in particular for easy BLE scanning and advertising
Stars: ✭ 60 (+33.33%)
Mutual labels:  hci
SerialPundit
Serial port communication in Java - FTDI D2XX, HID API, X/Y modem
Stars: ✭ 116 (+157.78%)
Mutual labels:  hid
GIMLeT
GIMLeT – Gestural Interaction Machine Learning Toolkit
Stars: ✭ 33 (-26.67%)
Mutual labels:  hci
Mixxx
Mixxx is Free DJ software that gives you everything you need to perform live mixes.
Stars: ✭ 2,510 (+5477.78%)
Mutual labels:  hid
phaser3-plugin-pathbuilder
Draw and edit Lines, Bezier Curves, Splines at runtime, explore your scene and export your paths to Phaser
Stars: ✭ 67 (+48.89%)
Mutual labels:  scene
Usbdevice
Highly flexible Composite USB Device Library
Stars: ✭ 144 (+220%)
Mutual labels:  hid
V2R
Code for our IJCAI 2020 paper: "Keep It Real: a Window to Real Reality in Virtual Reality".
Stars: ✭ 20 (-55.56%)
Mutual labels:  hci
mx3000control
Perixx MX-3000 mouse unofficial configuration tool for Linux
Stars: ✭ 20 (-55.56%)
Mutual labels:  hid
ES-Timer
A USB timer powered by Digispark ATtiny85 according to 🍅 pomodoro time management technique
Stars: ✭ 45 (+0%)
Mutual labels:  hid
TextBoxes
TextBoxes: A Fast Text Detector with a Single Deep Neural Network
Stars: ✭ 625 (+1288.89%)
Mutual labels:  scene

Note: this project is deprecated!

Please visit nub to find the latest code. My latest code has been merged with that project and I am committing all my new updates to it.

ProScene Version Dependencies License Paper

Table of Contents

Description

ProScene (pronounced similar as the Czech word "prosím" which means "please") is a free-software java library which provides classes to ease the creation of interactive 2D/3D scenes in Processing.

ProScene extensively uses interactive frames, i.e., coordinate systems that can be controlled with any HID, allowing to easily setup an interactive 2D or 3D scene.

ProScene provides seemless integration with Processing: its API has been designed to fit that of Processing and its implementation has been optimized to work along side with it. It suppports all major Processing flavours: Desktop, JS, and Android.

ProScene support is led by the active and great Processing community at its forum where you can reach us. News and technical details are found at our blog.

Philosophy

One of the main Proscene goals is to provide HCI researchers with a common and simple, yet fully customizable, framework to test different experimental ideas involving the three universal interaction tasks: Object selection & manipulation, including the scene point-of-view; and, application control. For further details please refer to this paper.

Key features

  • Tested under Linux, Mac OSX and Windows, and properly works with the JAVA2D, FX2D, P2D and P3D Processing renderers. No special dependencies or requirements needed (apart of course from Processing >= 3.2.4).
  • It supports all major Processing flavours: Desktop, Android (since Proscene v-3.0.0-beta.6) and (soon) JS.
  • API design that provides seemless integration with Processing (e.g., providing flexible animation and drawing mechanisms), and allows extensibility of its key features.
  • Generic support to Human Interface Devices (HIDs), including not only the mouse and the keyboard, but advanced HID's such as a touchscreen, a space navigator or a kinect.
  • Keyboard shortcuts and HID bindings customization.
  • Hierarchical coordinate systems (frames), with functions to convert between them.
  • Interactive frames (including the camera) which may be manipulated by any HID.
  • Arcball, walkthrough and third person camera modes.
  • Default interactivity to your Processing scenes through the mouse (or touchscreen) and keyboard that simply does what you expect.
  • Visibility culling: Back-face and view-frustum culling.
  • Keyframes.
  • Animation framework.
  • Object picking.
  • Screen drawing, i.e., drawing of 2d primitives on top of another (2d or 3d) scene.
  • Off-screen rendering mode support.
  • Save and load configurations.
  • 2D and 3D Interactive mini-maps.
  • Handy set of complete documented examples that illustrates the use of the package.
  • A complete API reference documentation.
  • Active support and continuous discussions led by the Processing community.
  • Last but not least, released as free software under the terms of the GPL-v3.

Origin of the name

ProScene not only means a "pro-scene", but it is a two-phoneme word pronounced similar as the Czech word "prosím" (which means "please"), obtained by removing the middle phoneme ("ce") of the word pro-ce-ssing. The name "ProScene" thus suggests the main goal of the package, which is to help you shorten the creation of interactive 2D/3D scenes in Processing.

Usage

All library features requires a Scene object (which is the main package class) to be instantiated (usually within your sketch setup method). There are two ways to do that:

  1. Direct instantiation. In this case you should instantiate your own Scene object at the PApplet.setup() function.
  2. Inheritance. In this case, once you declare a Scene derived class, you should implement proscenium() which defines the objects in your scene. Just make sure to define the PApplet.draw() method, even if it's empty.

See the examples BasicUse, AlternativeUse, and StandardCamera for an illustration of these techniques. To get start using the library and learn its main features, have a look at the complete set of well documented examples that come along with it. Other uses are also covered in the example set and include (but are not limited to): drawing mechanisms, animation framework, and camera and keyboard customization. Advanced users may take full advantage of the fully documented API reference (which is also included in the package file).

Installation

Import/update it directly from your PDE. Otherwise download your release from here and extract it to your sketchbook libraries folder.

Acknowledgements

Thanks to Eduardo Moriana and Miguel Parra for their contributions with the TUIO-based touch and kinect interfaces, respectively. Thanks to experimental computational designer Amnon Owed for his collaboration with polishing the KeyFrameInterpolator sub-system. Thanks to Jacques Maire for providing most of the examples found at the Geom section. Thanks to Andres Colubri for his continuous support and thorough insights. Thanks to Victor Forero for coding the initial Android agents. Thanks also to all ProScene users whose sketchs and library hacks always amaze us and inspire us.

Author, core developer and maintainer

Jean Pierre Charalambos, National University of Colombia

Analytics

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].