BowlerStudio: A robotics development platform

Make cooler robots, faster and with less effort.

Similar projects worth following
BowlerStudio is a robot development application that combines scripting and device management with powerful control and processing features.

The goal is to create a full-stack robotics development environment. I wish to unify the design process of kinematics, CAD, control-law, firmware, CAM and simulation into a single skill set applied across the disciplines. That single skill set is programming. Through the perspective of programming all the tasks and relationships of the interconnected disciplines that make up robotics engineering. You can express relationships and interactions as functions and libraries. The purpose for this re-defining of the development process is to speed up robotics development, lower the skill barrier for new developers, and increase the capabilities of the state of the art in robotics engineering.

BowlerStudio assists you in every step of a robotics project from concept to completion. Tools enable users to:

  • Interface with motors, sensors, and other electronics hardware.
  • Create 3d models for fabrication, and for simulating the motions of your project.
  • Give your robot sight with image processing on camera feeds and Kinect data.
  • Operate 3d printers and other CNC machines.
  • Create custom graphical user interfaces to control yours robots.
  • Create and control animations.

The Nitty-Gritty Version

BowlerStudio Robotics development IDE is based on

  • JCSG A 3d cad engine for Java
  • Java-Bowler A robotics command, kinematics and control system
  • OpenCV A computer vision and image processing system
  • CHDK-PTP-Java A image provider for CHDK Canon DSLR cameras
  • Jinput Provides Joysticks and xbox controllers
  • motej Provides Wiimotes
  • Usb4Java A direct USB access system
  • NrJavaSerial A Serial port interface
  • BlueCove provides raw Bluetooth access.
  • JavaFX 8 3d engine.
  • WalnutIQ AI library based on neural modeling
  • JALSE and AI library based on node modeling
  • FreeTTS an open source Text-to-speech library
  • JBullet physics engine

BowlerStudio is a device manager, scripting engine, CAD package, and simulation tool all in one application. A user can develop the kinematic of an robot arm using the D-H parameters-based automatic kinematics engine. With this kinematics model, the user can then generate the CAD for new unique parts to match the kinematic model. The user can then export the model to an STL, and connect a Bowler 3d printer to BowlerStudio. The printer can print out the part (using the newly generated STL) while the user connects a DyIO and begins testing the servos with the kinematics model. When the print is done, the user can assemble the arm with the tested servos and run the model again to control the arm with Cartesian instructions. Once this is complete, the user can then attach a wiimote to train the robot arm through a set of tasks, recording them with the animation framework built into BowlerStudio. To be sure the arm is moving to the right place, the user can attach a webcam to the end and use OpenCV to verify the arm's position, or use the arm (in conjunction with the webcam with OpenCV enabled) to track and grab objects (IE "eye-in-hand" tracking).

Every step of this task can be performed from within BowlerStudio!

Let's go through the main features:

Scripting With Git

About scripts and Git

Scripts are bits of code that BowlerStudio can load and run. BowlerStudio allows you to open a local file and run it, but BowlerStudio is most powerful when the code lives on Github Gist (a code snippet hosting service from Github). Simply give BowlerStudio the URL for a Gist you want to load and execute. Gists can be selected and edited using the built in browser, or inline in another script using the Gist ID.

Java and Groovy

BowlerStudio can load and run scripts written in Java, Groovy, and Python. Which parser is used is determined by the file extension. Files that end in .java or .groovy will be run through the Groovy compiler. These Groovy scripts are compiled fully and run directly in the JVM. This means they will execute at full speed, just like a regular application.


Python, on the other hand, by virtue of its structure, will generally execute much slower then Java. With the reduction in speed you get lots of flexibility and a clean and easy to understand syntax. The python code can also create and return objects to BowlerStudio (such as CAD CSG objects, or UI Tabs).

Return Objects

A script can return a few object types that will be handled by BowlerStudio: Objects of type "CSG" and "MeshView" will be added to the 3d display. If a transform is added to either of these and updated by a script the user can move an object in the 3d view. Objects of type "Tab" will be added to the Tabmanager and displayed in BowlerStudio. This is an easy way to make control panels or state displays and monitors. Objects of type "BowlerAbstractDevice" (or any subclass) will be added to the connections...

Read more »

  • Added branches and Commit history viewing

    Kevin Harrington01/04/2020 at 14:54 0 comments

    I added commits and branches to the BowlerStudio menu. You can switch between branches, look at all the commits, and if you select a commit, you create a branch from that commit. Merging and deleting branches all happens in the github PR's still. Now having all the commits availible to view and switch back to is usable by users of BowlerStudio. 

  • BowlerStudio is out of Beta with 1.0.2 release!

    Kevin Harrington12/23/2019 at 15:54 0 comments

    There had been a single bug that caused BowlerStudio to sometimes become unstable and freeze, potentially losing user data. I finally found that bug and eliminated it! With that there are no known bugs that affect user data or cause the application to become unusable. 

    As always i aim to make BowlerStudio an excellent tool for designing robots. It has been a long road to get out of Beta testing but I am glad to say it was all worth it. 

    I look forward to seeing what people use BowlerStudio for, and look forward to continuing to provide an excellent tool for free and with open source, well into the future. 

    Thank you all for your support,  go make cool robots!

  • 2 factor auth added upstream, coming soon!

    Kevin Harrington11/25/2019 at 14:51 0 comments

    I just got my PR merged into github-api to add 2 factor authentication! As soon as its released, i will update BowlerStudio to support 2fa (Finally!)

    See the feature add PR here:

    I will add it to GithubPasswordManager, then upstream into the kernel and BowlerStudio. I am just waiting for the official release to go out!

  • Added a new intro walk through

    Kevin Harrington10/16/2019 at 19:53 1 comment

  • Offline loading is now fast and stable Release 0.32.7

    Kevin Harrington07/23/2019 at 01:00 0 comments

    I fixed the issue in BowlerStudio when it tries to open and there is no internet, it used to crash and hang, now it loads normally, AND your workspace is loaded so you still have quick access to your local files. This is a long-standing usability bug in network-denied situations. Now the application loads quickly and it easily ignores all the network operations.


  • Release 0.31.7 Lots of bugfixes and one new feature!

    Kevin Harrington06/21/2019 at 16:50 0 comments

    I spent the week doing bigfixes on BowlerStudio!

    The big ones fixed:

    * Re-docking windows sometimes results in frozen text windows

    * Cold-start on windows was buggy

    * Slide bars for robot link limits is MUCH improved

    * Adding files to empty repos works now

    * Git pull, and update repos menu item, now work

    * Dropped the OpenCV deps, makes cross platform easier and binaries smaller

    New Features:

    * A workspace menu, populated with the 15 most recently used Git repos

    * Bundled JVM on windows and Macos, no more separate Java dependency!

    * Ubuntu 18.04 PPA

  • Mac support is Back! and also high DPI

    Kevin Harrington07/21/2017 at 16:03 0 comments

    I have made a new release 0.22.0 that finally fixes the issues we were having with the binary release of the Mac stand alone. It turns out that when you run the code using gradle, it has already loaded all files into memory, so accessing the files is fast enough to be done in a UI thread, even though this is discouraged. In the Jar form, the timing overran, and Mac UI managed froze the program. I have now made (further) sure that file access takes place in a normal system thread, and UI access is managed by a tiny Platform.runlater code snippet.  This took months to fix because the way Mac breaks is totally opaque to the user and developer. It just hangs, no errors, no exceptions. 

    I really hate macs...

    Anyway, i also added High DPI screen support by making the font of the text window changeable. Ok, in fairness, all the UI text is still tiny, but the editor is nice and readable.  This will also help with projecting code on a projector for teaching.  

  • New introduction video

    Kevin Harrington04/15/2017 at 20:40 0 comments

    I am proud to show you a brand new introduction video for BowlerStudio!

  • Seeking Input

    Kevin Harrington02/03/2017 at 21:29 0 comments

    I have a solid Alpha version that has been released for coming up on 6 months now. The feature list is more or less complete, and the major bugs are mostly worked out. I am looking for feedback from anyone that has been using BowlerStudio. What sort of things annoy you? What things do you expect to happen that don't? What sort of things happen despite you not expecting it? Are there any things you think it should actually do that it doesn't? Let me know in the comments here.

  • Free BowlerStudio class! (as a weekly google Hangout)

    Kevin Harrington01/13/2017 at 16:10 0 comments

    I am hoping to get a bunch of people up to speed with BowlerStudio so I am offering an introduction to BowlerStudio. This will be a set of classes where i will walk you through the process of building robots with BowlerStudio. I will be recording these sessions for anyone that comes later, but if you want to ask questions and get help you will need to attend the final class time. I have posted a when2meet to gather interest, and when a time is selected i will post back here.

    As for prerequisites, this is *not* an introduction to programming class, so the ability to read and write object oriented (or functional) code is a must. I will be instructing using Groovy (Java) in most of the classes for the sake of consistency. I will briefly introduce using Python, Clojure and creating a custom Domain Specific Language. We will cover the scripting system, the git-as-filesystem architecture, the kinematics framework, the CAD engine, the physics engine, Arduino code and Bowler Protocol integration, offline headless deployment all while exploring the BowlerStudio Integrated Development Environment for full-stack robotics.

View all 41 project logs

  • 1
    Step 1

    For Binary installers, go to:

    And run the installer for your platform. Even if you install from sources, you will need to run the installer to get the non-java binaries (OpenCV and drivers).

    To build from source:

    Bash (Linux/OS X/Cygwin/other Unix-like shell)Ubuntu Dependancies

    sudo add-apt-repository ppa:webupd8team/java
    sudo apt-get update
    sudo apt-get install git gradle oracle-java8-installer oracle-java8-set-default libopencv2.4-java libopencv2.4-jni
    All Unix
    git clone
    cd BowlerStudio
    git submodule init
    git submodule update
    gradle jar
    java -jar build/libs/BowlerStudio.jar

    Now you can use the Eclipse Marketplace to install the Gradle Plugin

    Windows (CMD)
     gradlew jar

View all instructions

Enjoy this project?



tommaso.saracco2007 wrote 09/09/2021 at 19:57 point

it can be installed on raspberry pi 4 8gb

  Are you sure? yes | no

AVR wrote 03/08/2017 at 20:28 point

random though of the day: you should include the laser cuttable version of the hexapod you made several years ago as a configurable robot. 

  Are you sure? yes | no

Kevin Harrington wrote 03/08/2017 at 21:31 point

heh, yeah i would need to sit down and do a new parametric link generator. Its totally possible, but would need a solid hackathon's worth of effort. Know of any hackathons coming up in the WPI area?

  Are you sure? yes | no

AVR wrote 08/25/2015 at 05:08 point

Congratulations on making the semi-finals! I am making a note on my project of my use of BowlerStudio within it!!!

  Are you sure? yes | no

MECHANICUS wrote 08/03/2015 at 05:58 point

Heck yeah, I just watched the video am downloading bowler right now, you are a visionary sir!

  Are you sure? yes | no

Kevin Harrington wrote 08/06/2015 at 12:42 point

Cool! tell me how it goes!

  Are you sure? yes | no

MECHANICUS wrote 08/09/2015 at 19:16 point

Eh its slow, I am not a programmer, but I will eventually figure it out its really cool regardless not sure why no one else has latched on to this.

It really needs linear actuators before I can make use of it, but I need to get these muscles finished first.

  Are you sure? yes | no

Kevin Harrington wrote 08/09/2015 at 19:22 point

Mind telling me the specs of the computer you ran it on? I am doing profiling on lots of systems trying to find pinch points and optimize it. Its very new so the speed will come with time. I get real-time motion on a 2.4ghz core i5 with 8gb of ram.  But thats just the cad generator and visualization, the kinemeatics that you are generating can run very fast. 

  Are you sure? yes | no

MECHANICUS wrote 08/09/2015 at 21:14 point

core 2 duo 3ghz OC to 3.6ghz, 4gb ddr2 800, gts 250 windows 7.  My femputer is aging, but by slow I meant that I haven't got it to run yet, by really cool I mean from your demonstration videos it looks cool.

I d/l java sdk, and gradle but I just haven't figured out how to run it yet. Might reinstall ubuntu as it looks easier from there.  I just don't have the time I have to finish my other projects first before I move into this area of learning.

  Are you sure? yes | no

Kevin Harrington wrote 08/10/2015 at 00:00 point

Did you try installing it from the installer?

  Are you sure? yes | no


[this comment has been deleted]

Kevin Harrington wrote 08/10/2015 at 14:03 point

The simple install needs no gradle or sources,  download this: and double click it to run the installer. When its done, a link to run it will be placed on your desktop. You will also need the latest Java to run it if you do not already have it found here:

If you have the wrong Java, the Neuron Robotics splash screen will flash and then disapear. 

  Are you sure? yes | no

MECHANICUS wrote 08/10/2015 at 18:52 point

For the love of Odin, not sure how I made that so hard, Im going to clean up your comment section, by deleting these blundering posts if it's cool with you.

  Are you sure? yes | no

Kevin Harrington wrote 08/10/2015 at 19:09 point

No worries, feel free to edit as you see fit. Did it run ok??

  Are you sure? yes | no

MECHANICUS wrote 08/10/2015 at 19:54 point

Yes thank you, it runs great. I am super excited to learn java/electronics and utilize this great tool.  Once I get up and running with production of artificial muscles I will send you some if you like. I think they will be the cow's jowls when it comes to bio mimicry robotics.

  Are you sure? yes | no

Kevin Harrington wrote 08/10/2015 at 19:56 point

Totally cool! i look forward to hearing about it!

  Are you sure? yes | no

MECHANICUS wrote 07/27/2015 at 16:35 point

I love it, mad props

  Are you sure? yes | no

Kevin Harrington wrote 08/03/2015 at 00:17 point

Thank you! I just posted the video of the printed robot walking...

  Are you sure? yes | no

Kevin Harrington wrote 07/27/2015 at 16:25 point

I just finished implementing the 3d printed CAD generation system. It uses scripts to generate cad kinda like OpenSCAD does, but they are Groovy/ Java scripts which makes them very powerful in terms of language features.  Here is a quick video of it generaating some parts for a walking robot and pulling them into Cura to print. 

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates