vector graphics terminal

ctx is an interactive 2D vector graphics, audio, text- canvas and terminal, with escape sequences that enable a 2D vector drawing API using a vector graphics protocol.

The ctx rasterizer is fast and provides higher fidelity AA than cairo's 17x15 super sampling. With color managed compositing directly to RGBA8, GRAYA8, GRAYAF, RGBAF and CMYKAF pixel formats, the 8bit formats are presumed to be for display and currently only does compositing using the gamma encoded values, the floating point code yields accurate math with natrual expression of the compositing math. For micocontrollers rendering to lower bitdepth RGB332, RGB565 variants as well as 1,2 and 4 bit per pixel grayscale is handled.

The ctx renderer is written in portable C, without inline assembly or SIMD intrinsics - but is still fast. The single threaded rendering performance for 8bit RGBA is comparable with and for most cases quite a bit faster than the rendering engines in Qt/cairo that are using SIMD like SSE2/AVX/Neon for compositing. The next parts of ctx to be refactored for performance while trying to keep the code mictrocontroller friendly, is anyways not the compositing - but the rasterizer itself.

Programs using the ctx SDK are able to run as clients of the ctx terminal/other ctx applications or can run directly on top of SDL2, NetBSD framebuffer, linux framebuffer, KMS (tested with linux and OpenBSD) and alsa. When using these backends there is additional caching and threading that helps boost performance.

license and funding

The terminal is available under GPLv3+, and ctx.h is available under LGPLv3+ you can encourage continued development of ctx and dissimilar technologies by financially supporting me, Øyvind Kolås who is doing independent pro-bono R&D through patreon and similar. If my income through such sources is above 4000USD per month for a year, or a similar amount in shorter time I want to relicense the rasterizer and protocol parts of ctx under the ISC license. If you'd rather have this R&D applied to cairo; because it helps your corporation, I am willing to offer a 2 month stint for 25000 USD; that would result in patches significantly improving the performance of cairo's rasterizer, maybe also improving the gradient rendering