GithubHelp home page GithubHelp logo

draw's Introduction

draw

nearly infinite canvas vector drawing program, mainly for keeping a digital notebook

technology

every point drawn is represented by a 128bit integer, this gives a dynamic range of over 3*10^38. using integer means that accuracy is not reduced when moving away from the origin (you might recognise this behaviour from other "infinite" canvas drawing programs)

points belonging to a stroke are connected with triangle strips and the stroke shape is rendered in a pixel shader

goals

  • high performance: using this for normal notetaking no slowdowns should be noticed
  • collaborative: many people should be able to draw together transparently over network, like etherpad, but for drawing
  • multiplatform: native linux, windows, mac, android and webbrowser support
  • infinite undo / save: don't worry about saving
  • full featured: all the normal drawing tools are available: curves, straight lines, polygons, layers, markers, rotation, translation
  • good tablet support: support drawing tablets with pressure, tilt and rotation
  • flexible output: high quality svg and png rendering

draw's People

Contributors

rroohhh avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Forkers

anuejn

draw's Issues

how should alpha work for self intersecting lines

There are two main possibilities

  1. alpha of self intersecting lines is a no op, if a line self intersects the intersection has the same alpha at the whole line
  2. it works like "real" pen / pencil and the intersection accumulates alpha

The first option is vastly more easy to implement and even if one implements the second option it is probably never as fast as the first option.
However the second option is a lot nicer for real drawing stuff, probably not so important for note taking.

I guess having the choice between the two would be nice, however the first option will probably be implemented a lot earlier then the second option.

The first option is also how most other infinite canvas drawing programs handle this (atleast Milton and Mischief)

find good name

should be good to google and allow for a good domain name

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.