πŸ”– Graphics in Julia

Computer Vision, Graphics, visualization, plotting libraries and packages.1

See also

  • 🏚️ means the package may not support current versions of Julia.
  • πŸ—οΈ means the package may be a WIP.

Computer Vision (CV)

πŸ“– Computer Vision

  • AAM.jl :: Active Appearance Models.
  • Bezier.jl :: Julia functions for computing a Bezier curve.
  • Contour.jl :: Calculating contour curves for 2D scalar fields in Julia.
  • DevIL.jl :: DevIL / OpenIL binding for Julia.
  • Fontconfig.jl :: provides basic binding to fontconfig.
  • HalideCall.jl :: Use shared libraries created by Halide from Julia.
  • Luxor.jl :: an easy-to-use sugary coating in Julia for the Cairo graphics package.
  • MiniFB.jl :: A Julia wrapper around MiniFB, a small cross platform library that makes it easy to render 32 bit pixels in a window.
  • PerceptualColourMaps.jl :: Perceptually Uniform Colour Maps for Julia.
  • Porta.jl :: This project helps with Eric Weinstein’s the Graph-Wall-Tome (GWT) project.
  • Reel.jl :: Computations caught on camera.
  • ShapeModels.jl :: Statistical shape models / point distribution models.
  • VideoIO.jl :: Reading and writing of video files in Julia via ffmpeg.
  • VisualRegressionTests.jl :: Automated integrated regression tests for graphics libraries.
  • ConstructiveSolidGeometry.jl :: A Constructive Solid Geometry (CSG) and ray tracing package for Julia.
WIP or may not work
  • 🏚️ Blending.jl.
  • 🏚️ Ccv.jl :: Julia bindings for libccv’s SIFT image feature detection.
  • 🏚️ Click.jl :: Julia package for click maps and advanced interaction with graphics.
  • 🏚️ ColorBrewer.jl :: A Julia library for generating color brewer color schemes.
  • 🏚️ Curvelet.jl :: Implementation of the Uniform Discrete Curvelet Transform (UDCT).
  • 🏚️ DelayedBuffer.jl :: Delayed buffer view for Julia 1D arrays.
  • 🏚️ DrakeVisualizer.jl :: Interface to the RobotLocomotion Drake Visualizer tool from Julia. Use [MeshCat.jl][] instead.
  • 🏚️ Drawing.jl :: A library for easy, extensible drawing (diagrams, lines, shapes).
  • 🏚️ GLWindow.jl :: Create a window with an OpenGL context.
  • 🏚️ Konthe.jl :: Collection of convenience function for plotting using the OpenGL package.
  • 🏚️ LatticeVis.jl.
  • 🏚️ Layout.jl :: Graphics layout management for Julia.
  • 🏚️ LeafAreaIndex.jl :: Package to calculate Leaf Area Index from Hemisperical Images.
  • 🏚️ LibOpenCV.jl :: OpenCV library dependencies.
  • 🏚️ LineExtraction.jl :: Line extraction from an image (using Markovian model and energy minimization).
  • 🏚️ LuxRay.jl :: Julia wrapper for LuxRay.
  • 🏚️ MeshSlicer.jl :: A package for slicing meshes into polygons using Julialang.
  • 🏚️ NetworkViz.jl :: Julia Interface to visualize Graphs.
  • 🏚️ Painter.jl :: A Julia implementation of PAINTER (Polychromatic opticAl INTErferometric Reconstruction) algorithm.
  • 🏚️ SchroedingersSmoke.jl :: SchrΓΆdinger’s Smoke.
  • 🏚️ SixelGraphics.jl :: A module for Julia implementing simple Sixel graphics.
  • 🏚️ Skia.jl :: Experimental skia bindings. Skia is a complete 2D graphic library for drawing Text, Geometries, and Images.
  • 🏚️ ThreeJS.jl :: Julia interface to WebGL using Three-js custom elements and Patchwork.jl.
  • 🏚️ TIFF.jl :: is the TIFF image file support for Julia.
  • 🏚️ VLFeat.jl :: Julia wrappings for the VLFeat computer vision library.
  • 🏚️ WavefrontObj.jl :: Wafefront Obj importer.

Feature Detection

πŸ“– Feature Detection

Image Processing

  • ImageProjectiveGeometry.jl :: Projective geometry for computer vision in Julia.
  • ImageQuilting.jl :: Image quilting for texture synthesis in Julia .
  • Images.jl :: An image library for Julia.
  • MeshIO.jl :: IO for Meshes.
  • ImageSegmentation.jl :: Partitioning images into meaningful regions.
  • ImageView.jl :: Interactive display of images and movies.
  • RegisterQD.jl :: It performs image registration using the global optimization routine QuadDIRECT. Unlike many other registration packages, this is not “greedy” descent based on an initial guess—it attempts to find the globally-optimal alignment of your images.
  • SubpixelRegistration.jl :: Efficient subpixel image registration algorithm implementation that allows you to register arrays of arbitrary dimensions (not just 2d). Functions are written for AbstractArrays and should work for Images.
  • TestImages.jl :: Loading standard test images into Julia.
WIP or may not work



Introduction to Julia OpenCV Binding

WIP or may not work

OpenGL and Vulkan API

  • MeshCat.jl :: Julia bindings to the MeshCat WebGL viewer.
  • ModernGL.jl :: OpenGL 3+ bindings for Julia. This is a WIP GSoC-2014 effort to get 3D graphics into Julia.
  • Videre :: OpenGL/Vulkan examples written in Julia.
  • Vulkan.jl :: Wrapper of Vulkan, Khronos next generation OpenGL API.
WIP or may not work
  • 🏚️ Draw3D.jl :: A 3D graphics package with a Julia API, built on OpenGL.
  • 🏚️ julia-opengl-demos :: A holding place for demos and tutorials as @ssfrr learns OpenGL in Julia, using GLFW.jl and OpenGL.jl.
  • 🏚️ Romeo.jl :: 3D visualizations and editing in Julia + OpenGL.
  • 🏚️ ShaderToy.jl :: Shade objects in Julia, created with GLVisualize.jl + OpenGL.

Vector Graphics

πŸ“– Vector Graphics

  • Compose.jl :: Compose is a vector graphics library for Julia, basis of Gadfly.jl
  • ImagesCore.jl :: Julia types for representing images.
  • Rsvg.jl :: An adaptation of the librsvg to render SVG to Cairo surfaces.
  • TikzGraphs.jl :: Graph layout package using algorithms built into PGF/TikZ 3.0+.
  • TikzPictures.jl :: Library interface to PGF/TikZ, that allows one to create PGF/TikZ pictures and images can be saved as PDF, SVG, and TEX. If using IJulia, it will output SVG images.
WIP or may not work
  • 🏚️ Smile.jl :: A Julia wrapper for the Smile C++ Structural Modeling, Inference, and Learning Engine for Bayesian & Influence Networks.


  • OCReract.jl :: A simple Julia wrapper for Tesseract OCR.
WIP or may not work


πŸ“– Geometry

WIP or may not work
  • 🏚️ AffineSpaces.jl :: Uniform representation and computational geometry on affine subspaces (points, lines, planes, etc.) in Rⁿ.
  • 🏚️ AffineTransforms.jl :: Computational geometry with affine transformations for conversion among different representations (mostly between rotation matrices and axis-angle).
  • 🏚️ D4.jl :: An attempted implementation of Enumerating Quartic Dihedral Extensions of Q by Cohen, Diaz y Diaz, and Olivier in Composito Mathematica 2002.
  • 🏚️ GeoAlg.jl :: A basic geometric
  • 🏚️ Geometry2D.jl :: 2D computational geometry package for Julia programming language.
  • 🏚️ mbr.jl :: axis aligned minimum bounding box. algebra library in Julia.

Algebraic Geometry

Wikiepedia | Algebraic Geometry

  • Grassmann.jl :: ⟨Leibniz-Grassmann-Clifford-Hestenes⟩ differential geometric algebra / multivector simplical complex.
  • PtFEM.jl :: Investigate Julia version of Programming the FEM by I M Smith, D V Griffiths.
  • RayTraceEllipsoid.jl :: Ray trace ellipsoid-shaped domes i.e. finds intersection points and refract/reflect according to the refractive indices.
WIP or may not work
  • 🏚️ FEM.jl :: Simple finite elements in Julia.
  • 🏚️ ols.jl :: Julia type for multiple (multivariate) regression using OLS - Performs least squared regression on linear equations of multiple independent variables.
  • 🏚️ SurfaceMesh.jl :: A Finite element surface mesh manipulation library to work with polygon-surface-meshes.
  • 🏚️ TrussPlotter.jl :: This is a package to plot trusses for finite element results.

Computational Geometry

  • CDDLib.jl :: A wrapper for cdd, the library for polyhedra manipulation such as double description and Fourier-Motzkin elimination. This module can either be used in a lower level using the API of cdd or using the higher level interface of Polyhedra.jl.
  • Clipper.jl :: Julia wrapper for Angus Johnson’s Clipper library.
  • ConvexHull.jl :: A Julia library for polyhedral computations.
  • Ganja.jl :: Visualization for geometric algebra, not just algebra, using Ganja.js+ Grassmann.jl :: Differential geometric algebra.
  • GeometricalPredicates.jl :: Fast, robust 2D and 3D geometrical predicates on generic point types. Implementation follows algorithms described in the Arepo paper and used (for e.g.) in the Illustris Simulation.
  • GeometryTypes.jl :: Geometry types and for Julia, based on FixedSizeArrays.
  • LRSLib.jl :: A wrapper for lrs.
  • Meshes.jl :: Generation and manipulation of triangular meshes for a type of polygon mesh in computer graphics.
  • OctTrees.jl :: Fast quad and oct-trees.
  • Polyhedra.jl :: It provides an unified interface for Polyhedra Manipulation Libraries such as CDDLib.jl.
  • PtFEM.jl :: Investigate Julia version of Programming the FEM by I M Smith, D V Griffiths.
  • QHull.jl :: A Julia wrapper around a PyCall wrapper around the qhull Convex Hull library.
  • SignedDistanceFields.jl : Simple and efficient SDF calculation.
  • TetGen.jl :: TetGen wrapper.
  • TriangleIntersect.jl :: Fast ray-triangle intersections for raytracing.
  • VoronoiCells.jl :: Manipulate Voronoi cells in 2D.
  • VoronoiDelaunay.jl :: Fast and robust Voronoi & Delaunay tessellation creation with Julia.
WIP or may not work
  • 🏚️ CHull2d.jl :: Variety of algorithms for taking the convex hull of 2 dimensional sets of points.

Solid Geometry

Solid Geometry

  • Descartes.jl :: A research project into the representation of solid geometry.


WIP or may not work
  • 🏚️ ArcadeLearningEnvironment.jl :: ArcadeLearningEnvironment Julia interface.
  • 🏚️ eve.jl :: Julia library for interacting with Eve Online.
  • 🏚️ Quake2.jl :: Experimental Quake 2 map graphics engine written with Julia and modern OpenGL.
  • 🏚️ SFML.jl :: A binding of the Game and Multimedia Library SFML.
  • 🏚️ SpaceShooter.jl :: This is a small space shooter game made in Julia with SFML.jl.


  1. Julia.jl is under COPYRIGHT Β© 2012-Now SVAKSHA, dual-licensed for the data (ODbL-v1.0+) and the software (AGPLv3+), respectively. ↩︎