OPENRNDR

In short, OPENRNDR is a tool to create tools. It is an open source framework for creative coding, written in Kotlin for the Java VM that simplifies writing real-time interactive software. It fully embraces its existing infrastructure of (open source) libraries, editors, debuggers and build tools. It is designed and developed for prototyping as well as the development of robust performant visual and interactive applications. It is not an application, it is a collection of software components that aid the creation of applications.  

Key features


  • a light weight application framework to quickly get you started
  • a fast OpenGL 3.3 backed drawer written using the LWJGL OpenGL bindings
  • a set of minimal and clean APIs that welcome programming in a modern style
  • an extensive shape drawing and manipulation API
  • asynchronous image loading
  • runs on Windows, MacOS and Linux

 

Ecosystem


Applications written in OPENRNDR are able to communicate with third-party tools and services, either using OPENRNDR’s functionality or through the use of third-party Java libraries.

Existing use cases involve connectivity with devices such as Arduino, Philips Kinet, Microsoft Kinect 2.0, RealSense, DMX, ARTNet and Midi devices; applications that communicate through OpenSoundControl; services such as weather reports and Twitter.

Getting Started

SOURCE CODE ON GITHUB

Fundamentals


OPENRNDR is written with the idea to provide simple, reusable utilities with which creative coders can build robust, fast and reliable (interactive) applications. It is intended for prototyping as well as building production quality software.

OPENRNDR is free and open source software. The source code can be downloaded on Github.

OPENRNDR is an initiative of RNDR, a studio for interactive design based in The Netherlands.

READ ORIGIN STORY

Tutorials


The fastest way to learn is to peak over the shoulders of those who already know the framework. Go direct to the tutorials  to get you started. All examples can be downloaded and changed, so you can get a feel of how OPENRNDR is set up. 

GO TO TUTORIALS

Guide


The guide contains an extensive description on how to install, use and run OPENRNDR. It shows you how to set up your projects and what hard-and software is required next to an in-depth overview of its drawing functions and transformations, integration with video and sound, interaction and animation. 

GO TO GUIDE

API Documentation


APIs are the glue of the digital realm. We offer APIs with which hardware accelerated graphics can be programmed flexibly and easily. We provide an API documentation so that third-party developers can enhance and add services on top of OPENRNDR. 

GO TO API DOCS

showcase

community

Submit your project

FAQ


I am new to creative coding, is OPENRNDR for me?

It could be, but we don't provide documentation that teaches you how to code. To get acquainted with coding, a good place to start might be Processing. Processing is a flexible software sketchbook and a language for learning how to code within the context of the visual arts. 

I am a creative coder, should I use OPENRNDR?

OPENRNDR is made with creative coders in mind. Creative coding is approaching computing as a mechanical machine instead of a mathematical formality. A machine that can process data (and what looks like data) with precise and predictable outcome if operated in the intended way. Creative coding is a necessity in the creation of exciting interactive experiences.

OPENRNDR combines the unique qualities of being versatile enough to sketch in it, but at the same time be robust enough to deliver production-quality interactive media installations, that you know will also run without worries in a few years from now. It takes the creative mind set of a designer or artist, and combines that with the power of IT-grade software. As we could not find this in existing software, we had to develop this ourselves. We are convinced that there are many more people out there that crave for the same.

What is the difference between Processing and OPENRNDR?

While both Processing and OPENRNDR are written in Java, OPENRNDR’s approach is to utilise the existing Java development infrastructure whereas Processing has built their own. Processing’s infrastructure is easy to use but it does not integrate well with existing infrastructures, making it harder to use existing libraries that are not specifically written to be used with Processing. Processing provides simplified APIs to its users, which work great in the context of education and prototyping but are disadvantageous outside of that scope. The simplified APIs burden the user with program complexity. Processing’s APIs are not using the object-oriented paradigm.

OPENRNDR’s APIs are designed to embrace Java’s advanced functionality while still being easy to use. Bottom-line is, we feel that Processing is less suitable for a production context.

What is the difference between openFrameworks and OPENRNDR?

OpenFrameWorks is written in C++ and targeted at very advanced users. The advertised benefit of developing in C++ over Java is the speed of execution. While in general that statement holds, in the context of visual computing where most of the work takes place on the graphics adapter this benefit is not strongly apparent. Developing in C++ comes with complexities that do not exist in Java.

Can I use OPENRNDR to create an app?

OPENRNDR currently targets desktop platforms including MacOS, Windows and Linux. Support for Arduino, iOS and Android platforms is currently future sound, however, we warmly invite you to help develop this via the Github repository.

What about third-party tools, like OSC or RealSense?

Applications written in OPENRNDR are able to communicate with third-party tools and services, either using OPENRNDR’s functionality or through the use of third-party Java libraries.

Existing use cases involve connectivity with devices such as Arduino, Philips Kinet, Microsoft Kinect 2.0, DMX, ARTNet and Midi devices; applications that communicate through OpenSoundControl; services such as weather reports and Twitter. We also have Java-bindings available on Github for the RealSense.

Do I have to credit OPENRNDR?

We appreciate it when you use a credit like "Made with OPENRNDR", as it helps spread the project. You don't have to, but it will make the community stronger. For the rest, you can distribute your projects all you want. Please note that there is no warranty whatsoever on the framework.

I have a more technical question, where should I be?

For the moment, we have a dedicated publicly accessible Slack team for OPENRNDR (we might move to Matrix in a later stage). There are special channels for questions and answers, bugs or features, and general remarks. As an alternative, you can also post issues on the issue tracker on Github. 

Is there a roadmap for future developments?

Yes, there is, in fact there is a list of short to mid-term development goals and for longer term goals:

  • A way of playing multi-channel sound, supporting more than 8 channels
  • Asynchronous loading of images by using a secondary shared GL-context from a thread implemented 
  • Multi-threaded rendering implemented
  • Serial port interfacing for communicating with Arduino and similar devices, not really an OR specific problem but the landscape for portable serial communication on the JVM seems to be fragmented.
  • Raspberry PI support, this requires the implementation of an OpenGLES back-end
  • Documentation and a friendly API for OPENRNDR-Panel implemented
  • Presentation quality video player, the current video player is only suited for video processing
  • Support for webcams implemented
  • 3D drawing primitives, either in-library or through an extension library

Long-term goals:

  • Vulkan back-end
  • Libfreetype based glyph rendering
  • Support for non-latin alphabets  only cyrillic is currently implemented
  • A custom shader language for shadestyles

Please add your wishes when you miss something or want to contribute to some parts on Github. 

Contribute


OPENRNDR is publicly available under an open source license. This means that the software library and its source code will be publicly available, for free, forever, and that the library can be used without restrictions.

We invite the public to download and create unexpected things with the framework. Next to that, we seek contributions in the form of improvements and maintenance to the OPENRNDR library. These modifications will be managed and merged into the project per the pull request mechanism on Github

HELP IMPROVE THE FRAMEWORK

Forum


Let the community answer your technical questions on StackOverflow using the tag #OPENRNDR or sign up for our Slack group.

Want your experiments to be featured on this site? Use #OPENRNDR on Instagram or use the project upload form

GO TO SLACK

about

Background


Development of OPENRNDR was started in 2010 at LUSTlab under the name RNDR, with the idea to create an in-house framework that was versatile enough to sketch in, but at the same time be robust enough to deliver production-quality interactive media installations, that you know will also run without worries in a few years from now. It takes the creative mind set of a designer or artist, and combines that with the power of IT-grade software. As we could not find this in existing software, we had to develop this ourselves. We are convinced that there are many more people out there that crave for the same. 

When LUST and LUSTlab closed doors in 2017, the newly formed studio RNDR continued development and changed the name to OPENRNDR, a precursor to its goal to distribute the software under an open source license. They translated the framework from Java 8 to Kotlin, created the guide, and developed the API documentation and launched the framework officially in June 2018. 

Edwin Jakobs initiated and maintained the framework and is till date the lead developer. He is a partner at RNDR.

Made possible by


Donate


Consider to support the project financially by donating via Paypal, or become a patron on Patreon. It will help to keep the project up and running and allows us to keep on developing and make improvements. 

calendar

events


01-11-2018
Demo&presentationatGoogleDesignSPANconference2018

Join the technologists and designers, founders and futurists, architects and artists coming together at SPAN for a day of diverse programming. OPENRNDR will give a presentation and a demo.

Wanha Satama Pikku Satamakatu 5, 00160 Katajanokka Helsinki, Finland

13-10-2018
PresentationatJFutureconference,Minsk

We will be presenting OPENRNDR at the JFUTURE Java conference in the oldest & most beautiful theatre in Minsk | Organized by SPACE Production.

The main track is focused on major updates of Java and popular Java frameworks. The second track is dedicated to emerging technologies and soft skills for engineers.

Janka Kupala National Theatre Minsk, Belarus

22-09-2018
Artisttalksandpaneldiscussions@RNDR.studio

During Todaysart festival 2018 (21–23 Sept) Kyle McDonald and Jonas Jongejans will install their installation "Light Leaks" in the RNDR.studio theater space. On Saturday 22 Sept, there will be a compact presentation program in the space where the installation is.

PROGRAM
Panel in collaboration with Digi.logue Istanbul with artists working on live coding, mapping, live content, and performance:

  • Ersin Han Ersin (creative director Marshmallow Laser Feast)
  • Kyle McDonald (media artist)
  • Edwin Jakobs (OPENRNDR & RNDR.studio)
  • Push 1 stop (interactive media artist)
  • Caroline Teunissen (Lucid Lien)
  • Lalin Akalan (moderator, Digi.logue)

+ Artist talk with c / a of Hyper_hologram

+ Artist talk with Daito Manabe

24-05-2018
PrelaunchofOPENRNDRatCreativeCodingUtrechtmeetup

Creative Coding Utrecht (CCU) is a local platform for makers and people interested in the creative & artistic potential of technologies. RNDR will present OPENRNDR as a public pre-launch. 

workshops


25-02-201901-03-2019
OPENRNDRworkshop@ArtezDATA

OPENRNDR workshop on generative design for Design Art Technology, Arnhem (DATA)

ArtEZ Academie voor Art & Design Onderlangs 9, 6812 CE Arnhem

21-01-201924-01-2019
OPENRNDRworkshopRoyalAcademyofArt

OPENRNDR workshop on generative design for the Royal Academy of Art, Den Haag

Royal Academy of Art Prinsessegracht 4, 2514 AN Den Haag

12-10-201812-10-2018
WorkshopatJFutureconference,Minsk

OPENRNDR workshop on October 12. We will show the key features and examples and show you how to get started. Laptop required.

Janka Kupala National Theatre Minsk, Belarus

24-09-201828-09-2018
OPENRNDRworkshop

Workshop on generative design for the HKU, Utrecht, using OPENRNDR. 

03-09-201807-09-2018
DESIGNVISUALSYSTEMS:GENERATIVETOOLSFORIDENTITIES
A workshop using OPENRNDR at the Scuola Open Source in Bari, IT. The workshop will explore a new visual system for the identity of Spore. The visual system works as intersection between adaptability, complexity and engaging aesthetics. The resulting framework will provide an innovative way to visually solve communication designs. The participant’s ability to program (in Kotlin and OPENRNDR) is helpful, especially in later stages of the workshop where the customization of tools is addressed. It will however not be a requirement and the workshop will be organized with programming at an introductory level.

La Scuola Open Source (Bari, IT)