Computer-Graphics.md 20 KB

Graphics and other Visualization libraries and packages. Also includes blog links narrating user experiences and howto's.


GRAPHICS

  • AAM.jl :: Active Appearance Models.
  • Bezier.jl :: Julia functions for computing a Bezier curve.
  • 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.
  • Compose.jl :: A declarative vector graphics system written in Julia, designed to simplify the creation of complex graphics and serves as the basis of the Gadfly data visualization package. Source code on Github.
  • Contour.jl :: Calculating contour curves for 2D scalar fields in Julia.
  • Curvelet.jl :: Implementation of the Uniform Discrete Curvelet Transform (UDCT).
  • DevIL.jl :: OpenIL binding for DevIL.
  • Draw.jl :: A library for drawing (diagrams, lines, shapes).
  • Draw3D.jl :: A 3D graphics package with a Julia API, built on OpenGL.
  • DelayedBuffer.jl :: Delayed buffer view for Julia 1D arrays.
  • GLGraphics.jl :: Advanced 3D and 2D graphics for Julia.
  • GLUT.jl :: A Julia interface to GLUT. Ref: OpenGL Utility Toolkit.
  • GLText.jl :: Text Rendering for OpenGL.
  • GLUtil.jl :: Utility package for ModernGL by @SimonDanisch.
  • GLWindow.jl :: Create a window with an OpenGL context.
  • GreinerHormann.jl :: An implementation of the Greiner-Hormann clipping algorithm in Julia.
  • GR.jl :: This module provides a Julia interface to the GR framework graphics library.
  • HalideCall.jl :: Use shared libraries created by Halide from Julia.
  • Images.jl :: An image library for Julia.
  • ImageQuilting.jl :: Image quilting for texture synthesis in Julia .
  • ImageView.jl :: An interactive display of images and movies.
  • ImplicitEquations.jl :: Julia package to facilitate graphing of implicit equations and inequalities.
  • Konthe.jl :: Collection of convenience function for plotting using the OpenGL package.
  • Layout.jl :: Graphics layout management for Julia.
  • LeafAreaIndex.jl :: Package to calculate Leaf Area Index from Hemisperical Images.
  • LineExtraction.jl :: Line extraction from an image (using Markovian model and energy minimization).
  • Luxor.jl :: an easy-to-use sugary coating in Julia for the Cairo graphics package.
  • LuxRay.jl :: Julia wrapper for LuxRay.
  • MeshSlicer.jl :: A package for slicing meshes into polygons using Julialang.
  • ModernGL.jl :: This package includes all definitions of OpenGL versions > 3.0., a WIP GSoC-2014 effort to get 3D Graphics into Julia.
  • OCV.jl :: A wrapper for OpenCV - WIP.
  • OpenGL.jl :: Julia interface to OpenGL.
  • Painter.jl :: A Julia implementation of PAINTER (Polychromatic opticAl INTErferometric Reconstruction) algorithm.
  • Reel.jl :: Computations caught on camera.
  • Romeo.jl :: 3D visualizations and editing in Julia + OpenGL.
  • Rsvg.jl :: An adaptation of the librsvg to render SVG to Cairo surfaces.
  • SignedDistanceFields.jl : Simple and efficient SDF calculation.
  • SDL.jl :: Julia interface to SDL.
  • seg2seg.jl :: Computes the minimum distance between two segments in a 2D plane.
  • ShaderToy.jl :: Shade objects in Julia, created with GLVisualize.jl + OpenGL.
  • Skia.jl :: Experimental skia bindings. Skia is a complete 2D graphic library for drawing Text, Geometries, and Images.
  • SignedDistanceFields.jl :: Simple and efficient SDF calculation.
  • SixelGraphics.jl :: A module for Julia implementing simple Sixel graphics.
  • ShapeModels.jl :: Statistical shape models / point distribution models.
  • TestImages.jl :: Loading standard test images into Julia.
  • ThreeJS.jl :: Julia interface to WebGL using Three-js custom elements and Patchwork.jl.
  • TIFF.jl :: is the TIFF image file support for Julia.
  • VideoIO.jl :: A wrapper around libav/ffmpeg libraries, which are the defacto open-source libraries for video IO. The library offers an easy way to open video files or a camera and read sequences of images, as either arrays, or optionally as Image objects, using the Images package, has been developed on Linux, and the installation and functionality has been minimally tested on Macs, but not yet on Windows.
  • VLFeat.jl :: Julia wrappings for the VLFeat computer vision library.
  • VisualRegressionTests.jl :: Automated integrated regression tests for graphics libraries.

Games

Resources
  • julia-opengl-demos :: A holding place for demos and tutorials as @ssfrr learns OpenGL in Julia, using GLFW.jl and OpenGL.jl.
  • Videre :: OpenGL examples written in Julia.

INFOGRAPHICS

Plotting for statistical Charts, Graphs, Plots, Histograms, Maps:

  • AnimatedPlots.jl :: Fast animated (and static) plots for Julia.
  • AverageShiftedHistograms.jl :: David Scott's Average Shifted Histogram density estimation.
  • BBVis.jl :: Visualizations for branch-and-bound algorithms.
  • CData.jl :: C-Data Analysis/Visualization Suite.
  • ComposeVideo.jl :: Video generator for Gadfly.jl.
  • Displaz.jl :: is julia bindings for "displaz", a cross platform las viewer application for displaying geospatial LiDAR data (point clouds and high level features deduced from such point clouds, and other geometry). The announcement on the julia-dev ML by the core-dev ChrisFoster @c42f, also includes some installation instructions, which uses OpenGL display.
  • GainPatterns.jl :: This package allows manipulation of gain patterns. A gain pattern is a collection of gains (or strengths) versus angle. If you have a vector of angles, and a vector of gains taken at these angles, you can create a GainPattern, then create publication-ready plots of these gain patterns using PGF with the GainPatternsTex.jl package.
  • GainPatternsTex.jl :: Plotting gain patterns.
  • GracePlot.jl :: Publication-quality plotting for julia using Grace/xmgrace.
  • ECharts.jl
  • echarts
  • GL.jl :: Experimental OpenGL bindings for Julia.
  • GLAbstraction.jl :: Abstraction library for OpenGL.
  • GLWindow.jl :: Simple package to create an OpenGL window with an OpenGL context.
  • GR framework :: A graphics library for visualisation applications. {{Has Julia routines compatible with the current ver0.4-stable release}}
  • GraphCentrality.jl :: All centrality measures relating to graphs for degree (with indegree and outdegree), betweenness, and closeness centrality measures.
  • GraphPlot.jl :: Graph visualization for Julia.
  • GraphViz.jl :: Julia bindings for the GraphViz library.
  • HEALPix.jl :: Julia wrapper for HEALPix.
  • Histograms.jl :: Methods for handling histograms in Julia.
  • julia-glplot :: Opengl plotting - Plotting of arrays, functions, Histograms, oscilloscope style real-time plotter.
  • Lumira.jl :: A Julia Library which helps in the creation of SAP-Lumira extensions using Gadfly.
  • MinMaxFilter.jl :: Lemire min max filter.
  • Plots.jl :: An API/interface and wrapper that sits above other plotting packages (backends) and gives the user simple, consistent, and flexible plotting commands.
  • RasterIO.jl :: Simple Raster Formats for Julia.
  • VennDiagrams.jl :: Generate Venn diagrams in Julia using Compose.jl.
  • VennEuler.jl :: Generate area-proportional Venn/Euler diagrams in Julia.
  • VGPlot.jl :: A knock-off of ggplot2 in Julia using Vega.
  • VTK.jl :: VTK bindings for the Julia language.
  • Wavelets :: Implementation of Wavelet methods in Julia.
  • Wavelets.jl :: Fast Discrete Wavelet Transforms written in Julia.

Graphical Plotting

Non-Graphical Plotting

  • ASCIIPlots.jl
  • Hinton.jl :: A small Julia library for generating Hinton diagrams. It supports standard vector graphics formats such as PNG, SVG, and PDF, as well as generating diagrams in a terminal with Unicode and colour support.
  • ImageTerm.jl :: Julia functions to plot colorful maps in the terminal.
  • Sparklines.jl :: A Julia implementation of spark: simple printing of unicode trendlines.
  • TextPlots.jl :: Fancy terminal plotting for Julia using Braille characters.
  • UnicodePlots.jl :: Unicode plotting for the REPL in Julia.
Resources

Read other Julia-users experiences with visualization and plotting.


Org-JuliaGL

Julia packages for the OpenGL API ecosystem.

  • GLFW.jl :: Julia interface to GLFW, a multi-platform library for creating windows with OpenGL contexts and managing input and events.
  • GLVisualize.jl :: Visualization library written in Julia and OpenGL.
  • Vulkan.jl :: Wrapper of Vulkan, Khronos next generation OpenGL API.

Org-JuliaGraphics

An umbrella group on Github, unifying the following packages: GLUtil.jl, GLWindow.jl, GLFW.jl, Processing.jl, SDL.jl, etc..

  • Colors.jl will replace Color.jl from ver-0.4 onwards.
  • ColorTypes.jl :: Color primitives for Julia, based on FixedSizeArrays.
  • ColorVectorSpace.jl :: This package is an add-on to ColorTypes, and provides fast mathematical operations for objects with types such as RGB and Gray - Treat colors as if they are n-vectors for the purposes of arithmetic.
  • Immerse.jl :: Dive deeper into your data with interactive graphics.

Org-JuliaGeometry

Computational Geometry with Julia. Discussion centered around the JuliaGeometry organization.

  • 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.
  • Meshes.jl :: Generation and manipulation of triangular meshes for a type of polygon mesh in computer graphics.
  • OctTrees.jl :: Fast quad and oct-trees.
  • Orthotopes.jl :: A Julia package for creating n-dimensional "bounding boxes", a.k.a "orthotopes", which are generalizations of rectangles in arbitary dimensions that are useful for describing bounding boxes of geometrical primitives. It implements Allen's interval algebra for evaluating the relations between orthotopes.
  • TetGen.jl :: TetGen wrapper.
  • TriangleIntersect.jl :: Fast ray-triangle intersections for raytracing.
  • VoronoiCells.jl :: Manipulate Voronoi cells in 2D.
  • VoronoiDelaunay.jl :: Fast robust Voronoi and Delaunay triangulations, using GeometricalPredicates.jl package.

Org-JuliaIO

  • ImageMagick.jl :: Thin Wrapper for the library ImageMagick - Seperated ImageMagick from Images.jl to make ImageIO more leightweight.
  • MeshIO.jl :: IO for Meshes.
  • NRRD.jl :: Package for NRRD IO.
  • WavefrontObj.jl :: Wafefront Obj importer.

Org-JuliaLang

  • Cairo.jl :: Bindings for the Cairo graphics library.

Org-SISL

  • PGFPlots.jl :: Plotting tool that uses the LaTeX pgfplots package (built on top of TikZ) to produce plots. Short tutorial notebook.
  • Smile.jl :: A Julia wrapper for the Smile C++ Structural Modeling, Inference, and Learning Engine for Bayesian & Influence Networks .
  • 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.