/milton

An infinite-canvas paint program

Primary LanguageC++GNU General Public License v3.0GPL-3.0

MiltonLogo

Milton is an open source application that lets you Just Paint.

There are no pixels, you can paint with (almost) infinite detail. It feels raster-based but it works with vectors. It is not an image editor. It is not a vector graphics editor. It is a program that lets you draw, sketch and paint. There is no save button, your work is persistent with unlimited undo.

Stories in Ready Join the chat at https://gitter.im/serge-rgb/milton

Milton Paint ss

zoooom

What Milton is not:

Milton is not an image editor or a vector graphics editor. It's a program that lets you draw, sketch and paint.

User Manual

If the GUI makes something not-obvious, please create a github issue!

It's very helpful to drag the mouse (or pen) while pressing space to pan the canvas. Also, switching between the brush and the eraser with b and e. You can change the brush size with [ and ] and control the transparency with the number keys.

Here is the latest video tutorial

Check out the patreon page if you would like to help out. :)

While on Windows there are binaries available, for Milton on Linux or OSX you will have to compile from source. There are some basic build instructions below. They will probably build, but please be prepared to do a bit of debugging on your end if you run into trouble, since these are not the primary development platforms.

How to Compile

Windows

Milton currently supports Visual Studio 2017.

Other versions of Visual Studio might not work.

To build:

Run cmd.exe and type the following

build.bat

Milton will be compiled to build\Milton.exe

This repo provides a binary SDL.lib that was compiled by running build_deps.bat in the third_party directory.

Linux

Work in progress, but is known to build and run.

Dependencies

Use your linux distribution's package manager to install these.

  • X11 (libx11-dev on Debian-based distros)
  • OpenGL (libgl1-mesa-dev on Debian-based distros)
  • XInput
  • GTK2 (libgtk2-dev on Debian-based distros)

On Ubuntu, these are Milton's required packages:

cmake
libx11-dev
libgl1-mesa-dev
libxext-dev
libgtk2.0-dev

Building

Release build:

./build-lin.sh
build/Milton

build-lin.sh uses cmake under the hood, and any arguments you pass to it will be passed along to cmake.

Here are some CMake options you might care about:

flag type does
TRY_GL2 bool Tells Milton to target OpenGL2.1. Does not guarantee that such a context will be created. This is the default Release target.
TRY_GL3 bool Tells Milton to target OpenGL3.2. Does not guarantee that such a context will be created. This is the default Debug target.
CMAKE_BUILD_TYPE string Configures the build type. Defaults to Release. Available build types are: Release and Debug.

Example debug build u sing GL2.1: ./build-lin.sh -DCMAKE_BUILD_TYPE=Debug -DTRY_GL2=1

OSX

Work in progress.

Building

./setup_osx.sh

If you run into troubles building on OSX, please try to submit a pull request if possible.

License

Milton

Copyright (C) 2015 - 2018 Sergio Gonzalez

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>.

Thanks

Milton is made with love by Sergio Gonzalez with the help of awesome people.