All Projects → bollu → ward

bollu / ward

Licence: other
WARD is a minimal, performant infinite whiteboard app for wacom tablets

Programming Languages

c
50402 projects - #5 most used programming language
C++
36643 projects - #6 most used programming language

icon

WARD: WARD 'Aint Really for Drawing

alt  height=

No-nonsense infinite whiteboard, in the suckless tradition.

This lacks:

  • multiple types of brushes.
  • layers.
  • save/load.
  • custom palettes
  • ... custom anything, really.
  • mouse support.

This features:

  • Rock solid framerate.
  • Infinite undo/redo.
  • infinite whiteboard with panning.
  • Wacom tablet pressure sensitive drawing.
  • quick minimap view to view the entire whiteboard at a glance.
  • Not written using web tech: ~800 lines of readable c++ code.
  • grid background
  • Draw points with a fixed time lag, then interpolate thickness of the line from 0 to how wide it should be, offset from the time lag.
  • Take a rolling average both backwards and fowards.

shortcuts:

  • Q: undo
  • W: redo
  • E: toggle E raser
  • R: R otate to next color.
  • lower wacom button + drag: pan.
  • upper wacom button: toggle overview. Tap to move to a location in the overview. Tap upper button in overview mode to quit overview without moving.
  • Color selection: hover pointer over color in color pot in color palette at bottom row.
  • Eraser selection: hover pointer over eraser in color palette at bottom left.

The code uses:

  • the EasyTab library to work with Wacom tablets.
  • The Milton project as heavy reference on how to work with tablets.
  • SDL2 for rendering.
  • Cairo-gl for anti aliased vector graphics.
  • Spatial hashing to quickly add and delete brush strokes.
  • Lazy repainting of the entire frame upon change..
  • Wishes to use FastUIDraw for an even faster backend than cairo.

Build with CMake

$ mkdir build && cd build && cmake ../ && make -j

Build with Meson

$ meson build && cd build && ninja && ./ward
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].