Hello to all you GDTF-Heads,
for the last 1,5 years I've been writing a little application to control GDTF fixtures, called GlowDTF (because it makes GDTFs glow). I like to call it a "technical demo" with some notable features being
Partially view and validate GDTF Fixture Types (XSD validation and basically everything around Channel Functions)
Visualize Mode Master Dependencies
Patch Fixtures
Control individual Channel Functions with sliders reflecting the DMX and ModeMaster structure
Art-Net Output
Check it out here: https://github.com/cueglow/glowdtf
The application consists of a server written in Kotlin, running on the Java Virtual Machine (JVM). The frontend runs in a web browser and is written in React and TypeScript.
While programming this has been a great learning experience, progress has been slow. I've realized that instead trying to build a full application, my time would be better spent building a basic GDTF library. And unfortunately I think the JVM is the wrong platform to do that, because only a small amount of people want to work on that platform. Therefore I decided not to develop GlowDTF further, but provide the code in case someone finds it useful.
I would however like to start a discussion on how to build an Open Source GDTF ecosystem.
Personally, I will be looking into Michael Hugi's gdtf_parser when I find the time. It is an already mostly functional GDTF parser written in Rust. Rust as programming language makes a lot of sense in my opinion. Open Source Lighting Software seems divided between C++, JS, C# and Python. If a single library is to be used across all these languages (since I don't think we'll be able to support multiple Open Source GDTF libraries until MA or Vectorworks step in), it needs to be written in a language that doesn't need a runtime and can be used to write C APIs. While C and C++ fulfill these criteria, Rust has been picking up as an alternative because it makes it much harder to shoot yourself in the foot, as is often easy in C/C++. This makes it such a good experience that it has been voted most loved programming language in the StackOverflow developer survey every year since 2016. If we write software in our free time, it might as well be in an enjoyable language like Rust! Combined with the hopefully lower bug count of a Rust library, I think this justifies working around the less mature XML ecosystem in Rust.
What do you think? If you have questions or comments about GlowDTF or the Open Source GDTF ecosystem in general, I'm looking forward to your comments!