# FrenchCurve v0.1.4 - Table of Contents > Terminal graphics in pure Elixir. Draw charts, curves and sprites into an RGBA raster and emit it over the kitty, sixel, iTerm2 or braille protocol. ## Pages - [FrenchCurve](readme.md) - [LICENSE](license.md) ## Modules - [FrenchCurve](FrenchCurve.md): Draws pixel rasters to a terminal over whichever graphics protocol it supports. - Drawing - [FrenchCurve.Chart](FrenchCurve.Chart.md): Plots a series of numbers as a line or filled-area chart on a `FrenchCurve.Raster`. - [FrenchCurve.Curve](FrenchCurve.Curve.md): Smooths a path of control points into a dense curve and rounds points to pixels. - [FrenchCurve.Draw](FrenchCurve.Draw.md): Rasterises lines, rectangles and circles into a `FrenchCurve.Raster`. - [FrenchCurve.Raster](FrenchCurve.Raster.md): A fixed-size RGBA pixel buffer, the value every drawing and backend function operates on. - Backends - [FrenchCurve.Backend.Braille](FrenchCurve.Backend.Braille.md): Renders a raster as braille characters, for terminals with no graphics protocol at all. - [FrenchCurve.Backend.Iterm2](FrenchCurve.Backend.Iterm2.md): Renders a raster with iTerm2's inline-image protocol, as a base64 PNG in an OSC 1337 sequence. - [FrenchCurve.Backend.Kitty](FrenchCurve.Backend.Kitty.md): Renders a raster with the kitty graphics protocol, as raw RGBA (`f=32`) in APC sequences. - [FrenchCurve.Backend.Sixel](FrenchCurve.Backend.Sixel.md): Renders a raster as a sixel image, a palette-indexed DCS sequence. - Sprites - [FrenchCurve.Sprite](FrenchCurve.Sprite.md): A raster that is drawn many times, uploaded once where the protocol allows it. - [FrenchCurve.Sprite.Registry](FrenchCurve.Sprite.Registry.md): Remembers which sprite ids have been uploaded, so a render loop uploads each one once. - Terminal - [FrenchCurve.Capability](FrenchCurve.Capability.md): Chooses a graphics protocol from the environment and maps it to a backend module. - [FrenchCurve.Geometry](FrenchCurve.Geometry.md): Converts between terminal cells and pixels. - Encoding - [FrenchCurve.Png](FrenchCurve.Png.md): Encodes raw RGBA pixels as a PNG.