{"id":13650794,"url":"https://github.com/evil-mad/robopaint","last_synced_at":"2026-03-11T16:01:49.166Z","repository":{"id":70711631,"uuid":"9786367","full_name":"evil-mad/robopaint","owner":"evil-mad","description":"The software for your friendly painting robot kit!","archived":false,"fork":false,"pushed_at":"2018-01-09T06:25:12.000Z","size":15787,"stargazers_count":129,"open_issues_count":47,"forks_count":33,"subscribers_count":16,"default_branch":"master","last_synced_at":"2025-12-20T20:36:19.982Z","etag":null,"topics":["drawing","electron","robopaint","robot","svg","watercolor","watercolorbot"],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/evil-mad.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":".github/CONTRIBUTING.md","funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2013-05-01T05:33:48.000Z","updated_at":"2025-11-11T09:58:11.000Z","dependencies_parsed_at":null,"dependency_job_id":"7d8721ab-368a-4bb4-b406-5b24f6ceb6da","html_url":"https://github.com/evil-mad/robopaint","commit_stats":null,"previous_names":[],"tags_count":22,"template":false,"template_full_name":null,"purl":"pkg:github/evil-mad/robopaint","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/evil-mad%2Frobopaint","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/evil-mad%2Frobopaint/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/evil-mad%2Frobopaint/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/evil-mad%2Frobopaint/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/evil-mad","download_url":"https://codeload.github.com/evil-mad/robopaint/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/evil-mad%2Frobopaint/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30386975,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-11T14:10:17.325Z","status":"ssl_error","status_checked_at":"2026-03-11T14:09:37.934Z","response_time":84,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["drawing","electron","robopaint","robot","svg","watercolor","watercolorbot"],"created_at":"2024-08-02T02:00:41.119Z","updated_at":"2026-03-11T16:01:49.130Z","avatar_url":"https://github.com/evil-mad.png","language":"JavaScript","readme":"RoboPaint!\n=============\n\n[![Join the chat at https://gitter.im/evil-mad/robopaint](https://badges.gitter.im/evil-mad/robopaint.svg)](https://gitter.im/evil-mad/robopaint?utm_source=badge\u0026utm_medium=badge\u0026utm_campaign=pr-badge\u0026utm_content=badge)\n\nSoftware for drawing robots, and your\n[friendly painting robot kit, the WaterColorBot](http://watercolorbot.com)!\n\n## Downloads / Install\n[Click here](https://github.com/evil-mad/robopaint/releases/tag/v2.0.0-Beta.3.2016-10-12)\nto download the current beta release. This release has many changes that improve\nthe functinality of RoboPaint. Since this a beta release you may expierence bugs.\nIf you do please report it by creating an issue [here](https://github.com/evil-mad/robopaint/issues)\n\n[Click here](https://github.com/evil-mad/robopaint/releases/latest) for the\nlatest official release, then click the green button below the release notes that matches\nyour operating system to download the install package.\n\n*Linux users: Simply copy folder from zip file to your desktop or other folder,\nthen run the executable inside.\n[System installer in the works](https://github.com/evil-mad/robopaint/issues/73)!*\n\n\n## Features\n * Real-time SVG preview and shape tracing, with fully automatic path filling,\ncolor similarity chooser, and outline manager. Load your SVG and just click to\npaint automatically!\n * Single path based tracing for fills, allowing for an infinite array of\ncreative path based crosshatches.\n * Built-in SVG editor and importer from the open-source project\n[Method-Draw](https://github.com/duopixel/Method-Draw)\n * Optional visual path position checking, ensuring that overlapping or\ninvisible portions of paths aren't drawn.\n * Centralized codebase for all platforms allows for easy hacking.\n * [Scratch](http://scratch.mit.edu/) and [Snap](http://snap.berkeley.edu)\nsupport via [WaterColorBlocks](https://github.com/evil-mad/WaterColorBlocks).\n * Modular code addition via RoboPaint Modes:\nControl your bot with a simple web app leveraging everything already written for\nRoboPaint!\n * Allows programatic (including remote) painting and drawing via the high level [RoboPaint API](https://github.com/evil-mad/robopaint-mode-remote/blob/master/API.md), the low level [cncserver API](https://github.com/techninja/cncserver/blob/master/API.md), or the simplified (HTTP get-only) [Scratch API](https://github.com/techninja/cncserver/blob/master/scratch/SCRATCH.API.md)\n\n## Projects:\nRoboPaint is made of modes that are their very own independent projects! This\nproject repository holds all the code to manage the modes, global settings,\nrunning the API, and the connection to a robot. The modes are their own web\napplications that run (almost) completely on their own through the mode API.\n\nHere's a list of all the modes that currently ship with RoboPaint. If you have\nan issue or a feature to add to any of these, open it in the mode's own project\ninstead of this one.\n* **[Edit mode](https://github.com/evil-mad/robopaint-mode-edit)**\n  * For creating/editing/importing SVG art that will be saved to a shared\n  location that modes can use as they choose.\n* **[Print Mode](https://github.com/evil-mad/robopaint-mode-print)**\n  * An automatic paint mode meant to handle most SVG art easily and without much\n  customization\n* **[Remote Print Mode](https://github.com/evil-mad/robopaint-mode-remote)**\n  * Allow for high level sending of SVGs for printing directly with or without\n  user interaction via an API.\n* **[Spiral Mode (experimental)](https://github.com/techninja/robopaint-mode-spiral)**\n  * A mode to take raster images and convert them into spiral art using adjusted\n  brush heights for luminosity.\n* **[Example Text Mode (experimental)](https://github.com/techninja/robopaint-mode-example)**\n  * An example mode for rendering text, and to show developers how to create a\n  mode using most of the available modules and API.\n\n## Problems?\n***Stuck on something?*** Submit an issue! Click the\n[issues tab](https://github.com/evil-mad/robopaint/issues) and see if someone\nis covering your question or problem, if not, ask away! Someone will be around\nto help soon.\n\n### Logging\nRoboPaint 2.1.0 introduces full application logging. If you have a problem\nstarting or running the app, submit your logs with your issue or to Evil Mad\nScientist and we should be able to help you a lot more directly.\n\n**Log data locations:**\n* **Windows:** `%APPDATA%/robopaint`\n* **Linux:** `$XDG_CONFIG_HOME/robopaint/logs` or `~/.config/robopaint/logs`\n* **macOS:** `~/Library/Application Support/robopaint/logs`\n\n***Know how to fix a problem? Or want to add a new feature??*** Submit a pull\nrequest! Just fork the repo using the button on the\n[RoboPaint github homepage](https://github.com/evil-mad/robopaint), and\nthis will give you your own version of RoboPaint. Make your change in a few\ncommits to your branch, then click the pull request button at the top! Talk\nabout what changes you made and submit. A maintainer of the project will check\nyour work, possibly ask you to fix a few more things, and then if all is well,\nyour work will be merged into the project!\n\n## Contributing to the Project\nWant to help be a part of RoboPaint? Maybe spruce it up, or hack it to bits into\nyour own thing? Here's a rough and tumble guide to getting set up:\n\n### Pre-requisites\n#### Electron\nRoboPaint is an HTML5/Node.js application that runs in\n[electron](https://electron.atom.io/). Though the main.html\ncode may somewhat render in a regular browser window, it's still a node.js\napplication that requires its low level file access and other APIs. This is\ninstalled via `npm install` when run at the root.\n\n#### Install Node for node \u0026 npm\nRequired for automated builds and installation content. The build and\ndependency system all uses [node.js](http://nodejs.org). `npm` is installed\nalong with it. If you already have node installed, you can skip this part.\n\n#### Build Tools!\n* CNC Server uses the [node-serialport module](https://github.com/EmergingTechnologyAdvisors/node-serialport),\na low-level partially native module that needs to be built/compiled for every\nOS. We've included the top four common OS \u0026 architecture combinations, so if\nyour dev system is one of those, the file will be copied over after\n`npm install` and you should be in the clear to run immediately.\n* If you're experimenting with new versions of modules, or are running on a\ndifferent arch/OS, you're going to need to be able to build your own, so\ncontinue on.\n\n##### Windows\n* Follow [the Windows build installation here for node-gyp](https://github.com/nodejs/node-gyp#installation)\n(the tool used to automate node module builds).\n* I've personally found their suggestion of using the Microsoft provided global\ninstall via npm to work perfectly! Just paste this into an elevated/administrator level powershell or command prompt and go!\n  *  `npm install --global --production windows-build-tools`\n\n##### OSX\n* Install Xcode and the CLI Developer tools.\n* You _might_ be able to [skip installing Xcode to get the GCC tools alone](http://osxdaily.com/2012/07/06/install-gcc-without-xcode-in-mac-os-x/).\n\n##### Linux\n* This is the easiest, as most [FOSS](http://en.wikipedia.org/wiki/FOSS) ships\nas source to be built on the target machines, so you shouldn't have to install\nanything new for this at all.\n\n#### Building natively for Electron\n1. Pull down/clone your fork of the RoboPaint repository with git (or just\n  download a zip of the files).\n\n  2. In your terminal/command line interface, go to that folder and run\n  `npm install` to install dependencies, if there is not a prebuilt serialport\n  module for your architecture npm will try to build serialport for Electron.\n  You may see some errors, but it should re-compile everything that needs it.\n  run `npm run rebuild` to attempt to rebuild for electron for experimental\n  builds of serialport.\n\n  3. That's it! You should now be installed and ready to hack. To update CNC server\n  just run `npm install cncserver` from the project root and it should pull from\n  the latest master, and you'll likely need to rebuild serialport for Electron\n  with `npm run fix-serialport`.\n\n\n### Running RoboPaint from source\n* Assuming this is all working, get yourself to the root of the repo and simply\nrun `npm start`, this will run it's local version of electron pointed at the\nrepository root.\n* Remember: Alt+Ctrl+I to open the debug console, Ctl+R will reload if the\nconsole is open, and a reload only reloads the contents of the window, and will\n_**not**_ reload the application main process.\n\n## ETC.\n\nThis open source project is built on top of the\n[CNC server project](http://github.com/techninja/cncserver) which provides\na speedy framework of API calls to interact with serial connected drawing\nrobots, while RoboPaint is the clean interface in an easy to install app!\n\nAll code MIT licensed. Created by [TechNinja](https://github.com/techninja),\nwith support and collaboration from\n[Evil Mad Scientist](http://evilmadscientist.com). Don't forget, you can\ndiscover more crazy maker fun with\n[Sylvia's Super-Awesome Maker Show](http://sylviashow.com)!\n","funding_links":[],"categories":["Software"],"sub_categories":["Plotter Control"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fevil-mad%2Frobopaint","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fevil-mad%2Frobopaint","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fevil-mad%2Frobopaint/lists"}