OpenPool: Community-based Prototyping ofDigitally-augmented Billiard Table
Jun Kato1,3, Takashi Nakashima3, Hideki Takeoka3, Kazunori Ogasawara3,Kazuma Murao3, Toshinari Shimokawa3, Masaaki Sugimoto2,3
1

The University of Tokyo

23
Keio University
OpenPool Project (Lab Production Inc.)Tokyo, Japan – i@junkato.jp

Abstract—This paper describes our experience of prototyping
OpenPool (http://openpool.cc/), a system that digitally augments
a billiard table with audio and visual effects. Our observation on
its growth as an open-source project revealed that entertainment
system can be a good platform for open collaboration amongpeople with diverse backgrounds. In this paper, we explain thebrief overview of OpenPool, investigate how it has engaged many
people to achieve successful collaboration, and characterize its
development process named “community-based prototyping.”
Keywords—entertainment computing; augmented sports; opensource software and hardware; community-based prototyping

I.

INTRODUCTION

People love playing sports. Playing sports is a good way tobuild social relations with others. Therefore, studying theimpact of digital augmentation on such experience has been aninteresting research topic [3]. Ishii et al. proposed
PingPongPlus [2], a novel way of augmenting ping pong tablewith a set of microphone array. The project later became an
open-source project [4], which allowed anyone to make his/her
own visualization for the augmentation. While the projectprovided the entertainment system as a well-designed platform
to the community, we were rather interested in the process of
how such system can be built in collaboration among people
with diverse backgrounds including researchers, developers,designers, and other users.

billiard table. Its Application Programming Interface (API) for
Processing provides the location information of the balls in theprojector’s screen coordinates. With the library, the designer
can easily write Processing code to project visual effects on thetable synchronized with the ball movements. While the corelibrary can provide the approximate ball locations in 30 fps, it
sometimes fails to detect balls near the edge of the table or to
distinguish multiple balls gathered in one place. Therefore, itcannot precisely detect the ball pockets (when the balls fall into
one of the six halls placed around the edge of the table,) which
are significant events in billiard rules.
Second, the pocket detection library was developed alongwith the sensor hardware to complement the core library toensure detection of every ball pocket. Its API provides whether
any ball falls in any hall since its last call. Its hardware wasdeveloped with the mbed ii prototyping toolkit and wirelessly
communicates with the host computer through ZigBee protocol.
Each hall is equipped with one sensor, a pair of infrared LEDand receiver, connected to the mbed microcontroller.
Third, the collision detection library was developed, whichuses a standard microphone to detect the ball collisions throughaudio signal processing. Such collisions are known to produce
special noise in a specific frequency band, which can be easily

In this paper, we will report our experience of prototyping
OpenPool, an entertainment system that digitally augments abilliard table with audio and visual effects. It has beendeveloped in iterative cycles of prototyping, where each cycle
engaged new members with diverse backgrounds. We willname this process “community-based prototyping” (Figure 1)
and characterize its cycle with three substeps of make, play,and engage. Then, we will conclude that entertainment system
can be a good platform for open collaboration because it
provides physical and fun experience.
II.

OPENPOOLOpenPool is published as a set of open-source software andhardware that work well with the Processing i development
environment. Its implementation has gradually evolved throughthe iterative prototyping process.
First, the core software library was developed, which uses aceiling-mounted depth camera to track the ball movements on aFigure 1. Community-based prototypingdistinguished with other sound by applying a bandpass filter.
While the previous two libraries focus on providing visualfeedback, this library was designed to provide audio feedback,achieving multimodal interaction with the players. This libraryprovides API not only for Processing but also for Apple Quartz
Composeriii which is thought to be more suitable for handlingaudio data.
III.

COMMUNITY-BASED PROTOTYPINGAs we described in the previous section, OpenPool isconsisted of three libraries, each of which complement with theothers to achieve a unified special billiard experience. They
have been developed one after another by different coredevelopers with diverse specialities. In this section, we report
our observation on the development of the libraries, dividing
each into three substeps of make, play and engage. We namethis iterative cycle of these substeps “community-basedprototyping.” The substeps correspond to design, test andanalyze in a reflective physical prototyping process describedin [4], respectively. The key difference is that our process
assumes a team rather than a single designer as its performer.
Make is always a collaborative task while design is not. Play is
an opportunity not only to test the prototype but also to meetwith potential team members. Engage involves the newmembers in discussion to get more lively direct feedback onplay step than just analyzing recorded results.
First cycle of Make: The core library was initiated by twomembers, a software engineer who is good at image processing
and a researcher who is good at designing APIs and making
libraries. Play: When the initial prototype with an example
visual effect started to work, it was exhibited to the communityof people who were interested in playing billiards. Engage:
Among the people, there was a hardware engineer who is goodat microcontroller programming and soldering. He had
discussion with the initial members which led them to notice
the importance of precise pocket detection. Then, he suggested
that he might be able to contribute to the project by making thesensor hardware.
Second cycle of Make: The hardware engineer collaborated
with the researcher to realize the set of pocket detection
hardware and software. Play: The prototype with a bit richer
effect implementation was again exhibited to the community.
Engage: Among the people, there was another software
engineer who is good at audio processing with Apple Quartz
Composer. Actually, he had already contributed to the projectthrough bug fixes since the first cycle, but the discussion withplayers during the second play led him to have a new idea ofadding audio-based interaction to the system.
Third cycle of Make: The software engineer developed thecollision detection library. Since it used audio input and output,
it did not conflict with the existing libraries with visual input
and output. At the same time, the members asked a team ofdesigners to make a new visual and audio effect. Play: Theprototype was equipped with a new effect implementation. It
was successfully exhibited at an international conference,
South by Southwest (SXSW) 2013, followed by many press
coverages. Currently we foresee the next engaging step.

IV.

KEYS FOR DRIVING SUCCESSFUL CYCLES

Regarding the previously described observations, the threekeys for successful community-based prototyping are discussed.
A. Physical location with working prototype
During the whole prototyping process, the developers have
deployed the system to one unique billiard table installed in a
specific room called “laboratory.” While the coding was done
through remote collaboration using Git version control system,
the testing had to be done with a real table and real players.
Therefore, the laboratory worked as a unique center of thedevelopment activity. The developers always used thelaboratory as their meeting place. It also benefited newdevelopers since they were guaranteed to see the working
prototype, encouraging their smooth engagement to the project.
B. Early beta testing
As in the usual prototyping process, making the iterative
cycle faster was important in our case as well. Showcasing thesystem to players in its early development stage was not easy
because of instability, but the players in general understood its
incompleteness, had fun, and provided valuable feedbacks.
Observing and communicating with the users have motivatedthe developers to continue their effort. Furthermore, there werepotential developers among the players. The incompletenessencouraged them to consider their possible contributions.
C. Independent modules in one package
The development processes of three libraries have beennearly independent but the effect implementations could easily
retrieve their information through Processing API and integrate
their information to provide a unique billiard experience to theplayers. This is because the libraries were designed to augment
the billiard experience (either visually or aurally.) Keeping thebilliard playable was thought to be mandatory and worked as agood framework for shaping the whole experience.
V.

CONCLUSION

Our experience on OpenPool development has shown thatentertainment systems can be a good platform for communitybased prototyping that enables open collaboration.
REFERENCES
[1]

[2]

[3]

[4]iB. Hartmann, S.R. Klemmer, M. Bernstein, L. Abdulla, B. Burr, A.
Robinson-Mosher, and J. Gee, “Reflective physical prototyping throughintegrated design, test, and analysis,” UIST ’06, pp. 299-308, 2006.
H. Ishii, C. Wisneski, J. Orbanes, B. Chun, and J. Paradiso,“PingPongPlus: design of an athletic-tangible interface for computersupported cooperative play,” CHI '99, pp. 394-401, 1999.
V. Wulf, E.F. Moritz, C. Henneke, K. AI-Zubaidi, G. Stevens,“Computer Supported Collaborative Sports: Creating Social Spaces
Filled with Sports Activities,” ICEC '04, pp. 80-89, 2004.
X. Xiao, M.S. Bernstein, L. Yao, D. Lakatos, L. Gust, K. Acquah, and H.
Ishii, “PingPong++: community customization in games andentertainment,” ACE '11, Article 24, 2011.

Processing. http://processing.org/
Rapid Prototyping for Microcontrollers, mbed. http://mbed.org/.
iii
Apple Quartz Composer.
http://developer.apple.com/graphicsimaging/quartzcomposer/
ii