GLSL Shader Development Environment


Synthclipse is a GLSL shader prototyping tool. It makes possible to fast develop all kinds of shaders: Fragment (FS), Vertex (VS), Geometry (GS), Tessellation (TS) and Compute (CS). Shader development can be done using, compatible with Fragmentarium and Shadertoy (but limited to FS and VS), Fragx shaders or by using fully featured JavaScript JSX scripts. The JSX API is consistent with WebGL but in fact exposes complete OpenGL 4+ API.

Most of the Synthclipse's concepts were invented by Mikael Hvidtfeldt Christensen and first implemented in his own creation: Fragmentarium but Synthclipse tries to extend these ideas a bit more - to the JavaScript scripts and to all types of shaders. As with Fragmentarium, in Synthclipse, shader tweaking is especially easy: using simple annotations, in the GLSL code's comments, uniform variables can be bound to the Graphical User Interface elements like sliders, buttons or check boxes.

Features:

  • easy GLSL shader development focused on simplicity and interactivity
  • support for the newest OpenGL API (4+) and for all kind of shaders (Fragment, Vertex, Geometry, Tessellation and Compute)
  • compatible with WebGL
  • compatible with Fragmentarium, Shadertoy, and GLSL Sandbox
  • fully featured GLSL and JavaScript editors powered by Eclipse IDE
  • possible music visualization with build-in audio player

Synthclipse is based on Eclipse IDE and depends on Eclipse CDT (C/C++ Development Tooling). It pretends that GLSL is just plain C++ code.
It achieves this by inclusion, in all shaders, specially prepared header:

#ifdef SYNTHCLIPSE
#include <synthclipse>
#endif

The reason why GLSL is interpreted in Synthclipse as C++ is to get a great editor with a lot of functionalities, for free. To name a few: auto-complementation, function and globals list (Code Overview), simple static code analysis, a lot of key shortcuts, configurable syntax coloring, code autoformatting, advanced search/replace, "go to function/header by CTRL + click", etc. It is not a perfect solution, but it works surprisingly well most of the time.

As in Fragmentarium, Synthclipse extends GLSL language by "#include" preprocesor directive. It works exactly as in C/C++ and it allows to make shaders more modular. It is only GLSL extension, as opposite to Fragmentarium. All other "magic" happens in special comments - called Commands - starting by "//!" or "/*!".

You can find out more about Synthclipse features and syntax in the User Guide.

News

2014-10-23

Synthclipse 0.9.8 released.
Changelog. Downloads.

2014-09-21

Synthclipse 0.9.7 released.
Changelog. Downloads.

2014-09-10

Synthclipse 0.9.6 released.
Changelog. Downloads.

2014-09-03

Synthclipse 0.9.5 released.
Changelog. Downloads.

2014-08-27

Synthclipse 0.9.4 released.
Changelog. Downloads.

2014-08-15

Added synthclipse-demos repository. To learn more please see the Demos section.

2014-08-14

Synthclipse 0.9.3 released. More bug fixes.
Changelog. Downloads.

2014-08-11

Synthclipse 0.9.2 released. Another portion of bugs fixed.
Changelog. Downloads.

2014-08-05

Synthclipse 0.9.1 quick fix release.
Changelog. Downloads.

2014-07-29

Synthclipse 0.9.0 is out. Scripting and other types of shaders are finally supported.
I've jumped from version 0.2 to 0.9 and changed status from alpha to beta since Synthclipse is almost ready for version 1.0. I've decided to not implement new features before releasing version 1.0. Until it happens I'm just going to fix bugs and maybe add some small improvements.
Changelog. Downloads. Docs. Screenshots.

2014-03-13

Synthclipse 0.2.2 is out.
Changelog. Downloads.

2014-03-11

Synthclipse 0.2.1 quick fix release.
Changelog. Downloads.

2014-03-10

Synthclipse 0.2.0 with high quality recording support is out.
Changelog. Downloads. Screenshot.

2014-02-22

Synthclipse 0.1.3 with brand new GLSL Sandbox importer is ready for downloads.
Changelog. Downloads.

2014-02-18

Synthclipse 0.1.2 is out.
Changelog. Downloads.

2014-02-16

Synthclipse 0.1.1 is ready for downloads.

2014-02-07

The site is up and running.