Software for drawing robots, and your friendly painting robot kit, the WaterColorBot!
Downloads / Install
Click here for the latest release, then click the green button below the release notes that matches your operating system to download the install package.
Linux users: Simply copy folder from zip file to your desktop or other folder, then run the executable inside. System installer in the works!
- Real-time SVG preview and shape tracing, with fully automatic path filling, color similarity chooser, and outline manager. Load your SVG and just click to paint automatically!
- Single path based tracing for fills, allowing for an infinite array of creative path based crosshatches.
- Built-in SVG editor and importer from the open-source project Method-Draw
- Optional visual path position checking, ensuring that overlapping or invisible portions of paths aren't drawn.
- Centralized codebase for all platforms allows for easy hacking.
- Scratch and Snap support via WaterColorBlocks.
- Modular code addition via RoboPaint Modes: Control your bot with a simple web app leveraging everything already written for RoboPaint!
- Allows programatic (including remote) painting and drawing via the high level RoboPaint API, the low level cncserver API, or the simplified (HTTP get-only) Scratch API
RoboPaint is made of modes that are their very own independent projects! This project repository holds all the code to manage the modes, global settings, running the API, and the connection to a robot. The modes are their own web applications that run (almost) completely on their own through the mode API.
Here's a list of all the modes that currently ship with RoboPaint. If you have an issue or a feature to add to any of these, open it in the mode's own project instead of this one.
- Edit mode
- For creating/editing/importing SVG art that will be saved to a shared location that modes can use as they choose.
- Print Mode
- An automatic paint mode meant to handle most SVG art easily and without much customization
- Remote Print Mode
- Allow for high level sending of SVGs for printing directly with or without user interaction via an API.
- Spiral Mode (experimental)
- A mode to take raster images and convert them into spiral art using adjusted brush heights for luminosity.
- Example Text Mode (experimental)
- An example mode for rendering text, and to show developers how to create a mode using most of the available modules and API.
Stuck on something? Submit an issue! Click the issues tab and see if someone is covering your question or problem, if not, ask away! Someone will be around to help soon.
Know how to fix a problem? Or want to add a new feature?? Submit a pull request! Just fork the repo using the button on the RoboPaint github homepage, and this will give you your own version of RoboPaint. Make your change in a few commits to your branch, then click the pull request button at the top! Talk about what changes you made and submit. A maintainer of the project will check your work, possibly ask you to fix a few more things, and then if all is well, your work will be merged into the project!
Contributing to the Project
Want to help be a part of RoboPaint? Maybe spruce it up, or hack it to bits into your own thing? Here's a rough and tumble guide to getting set up:
RoboPaint is an HTML5/Node.js application that runs in
electron. Though the main.html
code may somewhat render in a regular browser window, it's still a node.js
application that requires its low level file access and other APIs. This is
npm install when run at the root.
Install Node (4.x+) for node & npm
Required for automated builds and installation content. The build and
dependency system all uses node.js.
npm is installed
along with it. If you already have node installed, you can skip this part.
- CNC Server uses the node-serialport module, a low-level partially native module that needs to be built/compiled for every OS.
- These are pre-compiled for each release in
the robopaint-build repository,
which you can easily use to replace the node_modules folder within
- BUT, if you're experimenting with new versions of modules, you're going to need to be able to build your own, so continue on.
- You'll need the free download version of Visual Studio Express 2013 which will have the command line tools required for builds.
- Install Xcode and the CLI Developer tools.
- You might be able to skip installing Xcode to get the GCC tools alone.
- This is the easiest, as most FOSS ships as source to be built on the target machines, so you shouldn't have to install anything new for this at all.
Building natively for Electron with
npm install node-gyp node-pre-gyp -gto install globally the node native builder. (ignore this if you already have them)
- Pull down/clone your fork of the RoboPaint repository with git (or just download a zip of the files).
- In your terminal/command line interface, go to that folder and run
- This will run through all the required module dependencies and install/build them to the best of its ability.
- This will have built the node-serialport for io.js, but we actually need the binary created with electron headers, soo..
- Follow Jed's instructions here to build the binary correctly.
- That's it! You should now be installed and ready to hack. To update CNC server
npm install cncserverfrom the project root and it should pull from the latest master.
Running RoboPaint from source
- Assuming this is all working, get yourself to the root of the repo and simply
npm start, this will run it's local version of electron pointed at the repository root.
- Remember: Alt+Ctrl+I to open the debug console, Ctl+R will reload if the console is open, and a reload only reloads the contents of the window, and will not reload the application main process.
This open source project is built on top of the CNC server project which provides a speedy framework of API calls to interact with serial connected drawing robots, while RoboPaint is the clean interface in an easy to install app!