Graphic Projects – Summer of Code


Improve Documentation + add Examples

Makie is a new plotting library in need of tests and documentation.

One needs to go through all sections of the current documentation, make sure they are understandable and add examples to the documentation where necessary. Depending on how much time is left, there are endless opportunities to create impressive and creative plotting examples for the example database.

Expected Results: greatly improved documentations Recommended skills: Attention to detail and a lot of experience with plotting. Mentors: Simon Danisch

Develop a Cairo/GR/WebVisualize backend

This project involves overloading the Makie API for backends to draw all the different plot types. You will start with a skeleton from already present backends, so it’s about filling the gaps and making sure all tests pass for the new backend.

Expected Results: a fully working new backend to Makie Recommended skills: One should be familiar with a graphics drawing API like Cairo or WebGL for this project. Mentors: Simon Danisch

Port Recipes

Plots.jl offers a lot of recipes. In Makie, we will need to make sure that they are available and work correctly. This project will involve writing a compatibility layer for PlotRecipes.jl and then making sure that all the recipes that are spread around the Julia plotting community work! Expected Results: porting and testing as many recipes as possible Recommended skills: Experience with Plots.jl would be great Mentors: Simon Danisch

Refactor the GLAbstraction API

We are working on deep refactor of GLAbstraction, to finally make a fully fledged, general purpose layer above OpenGL.

The work happens at this PR and has the following goals:

Besides Transpiler integration, a lot of those goals have been achieved and now effort needs to be put into writing tests and porting the packages that rely on GLAbstraction to work with the new API.

Expected Results: finishing the PR and making sure it works with dependant packages Recommended skills: Requirement is a good understanding of OpenGL Mentors: Simon Danisch

Port GLVisualize Shaders and improve API of WebVisualize

This project is about turning the current WebVisualize prototype into a fully featured webgl drawing API. To make things simple, we’re using ThreeJS made accessible from within Julia with WebIO. The goal is to port most GLVisualize shaders so that we can offer exactly the same functionality. We want to use Transpiler to transpile the Julia shaders in Visualize.jl across platforms. This will enable us to generate webgl shaders and opengl shaders from the same Julia functions, which is crucial to keep maintenance low.

Expected Results: Turn the current prototype into a functioning package Recommended skills: Some OpenGL and Web (specifically ThreeJS) knowledge will be required. Mentors: Simon Danisch

Donate Now