Skip to content
A cross-platform, cross-language, audio, vector, input server.
C Python Other
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
avecis_linux update Aug 20, 2019
avecis_win32 update Aug 20, 2019
draw_c_linux update Jul 26, 2019
draw_c_win32 update Jul 24, 2019
draw_py update Jul 22, 2019
hello_world_c_linux update Jul 26, 2019
hello_world_py update Jul 22, 2019
pics update Aug 5, 2019
sine_c_win32 update Jul 29, 2019
track_ball_c_linux update Jul 26, 2019
track_ball_c_win32 update Jul 24, 2019
track_ball_py update Jul 22, 2019
yarn_c_linux update Jul 29, 2019
yarn_c_win32 update Jul 29, 2019
LICENSE update Jul 28, 2019
avecis_spec.pdf update Aug 5, 2019


A sketch pad is to artists as avecis is to programmers.

Avecis is a programmable window. Sound, graphics, and keyboard/mouse input can all be accessed and programmed through TCP.


Each program in the 'hello_world*' folders demonstrates drawing, printing to the status bar, and playing a sound.


Each program in the 'sine*' folders demonstrates playing unbroken sound segments.


Each program in the 'track_ball*' folders demonstrates 3D vector graphics.


Each program in the 'yarn*' folders demonstrates using 3D vector graphics on top of a raster.

Compiling Avecis

You may need gcc to compile avecis.
There is both a linux and windows version.

Read Avecis Events Using Putty

It is possible to read events with putty because avecis uses TCP.

  • Run 'avecis -h' in a terminal to get the default port.
  • Run avecis.
  • Run putty.
  • Enter for the host name.
  • Enter the default port.
  • Choose raw for the connection type.
  • Click Open.

Typing in the avecis window will allow putty to read events.
Typing in the putty window would likely cause a data error which avecis will then disconnect from the client.

Accessing Avecis Using Perl and Netcat

Using a bash terminal this code will draw a line in the avecis window.

perl -e "print pack('C I< f<f<f< f<f<f< C I<',11, 24, -90,-40,0, 90,40,0, 13,0)" | nc 27015

Note that avecis does not reset the graphics for each client connection.

Avecis Command Line Usage

avecis [options]

-t [title], changes the window title; the default is 'Avecis'
-x [x position], changes the x position; the default is 0
-y [y position], changes the y position; the default is 0
-w [width], changes the window width; the default is 640
-h [height], changes the window height; the default is 360
-p [port], changes the server port; the default is 27015
-b [buffer size], changes the audio buffer size; the default is 4096
-s [samples/sec], changes the audio sample rate; the default is 11025
-u, pops the window up each time a connection is made
-h, displays this message

Example usage:
avecis -t 'New Title' -w 400 -h 400 -p 27016 -u

You can’t perform that action at this time.