Odin release highlights #

New language features #

  • Allow bit_set to be backed by arrays of integers

Significant compiler speedups #

  • LLVM Backend Performance Improvements to Reduce Compile Times Part 1
  • LLVM Backend Performance Improvements to Reduce Compile Times Part 2
  • Compiler Performance Improvements to Reduce Compile Times Part 3
  • Complete Parapoly Rewrite + Race condition fixes
  • Make global checking codegen order-independent
  • Parse integer literals without allocating per digit and reject non digits in their exponent
  • Make radlink default linker on Windows
  • Multithread The Entire Semantic Checker
  • map performance improvements

For the rest of the many compiler changes, read the monthly release notes.


Interview with Wassimulator #

An interview with Wassimulator, co-author of Blick and Zeiger.

Q: Can you tell us how you discovered Odin, and what initially appealed to you about it?

A: I’ve only ever known C and C++ before Odin, and I felt quite happy with where I was. Even though Odin was there in the same community I’ve had many friends in, I didn’t end up trying it for a long time. It didn’t help that Bill never urged me to try it either, which, if you know Bill, will not surprise you. When I asked him every time we hung out, whether I should try it out, at least out of curiosity, he wouldn’t encourage me to. Glad I didn’t listen!

When we started working on Blick, the first decision we had to agree on was what language to use. Even when you decide to go with C or C++, what flavor of the language you use is as complicated a question to answer as any. Everybody ends up having their own style of C/C++ over the years, their own tooling, libraries and macros. It’s never simple to nail these things down with a new team.

One of my partners today at Dihedron, Moritz, was there during that conversation. We were at a meetup in Munich at the time. He was experienced in Odin through personal projects, and suggested we try using it. Odin already had a good track record: JangaFX had shipped mature, well performing desktop software in it. So we decided to give it a go. We never looked back!

The refreshing thing about Odin can be compared in general to the difference between one’s first game engine and one’s, say, fifth. Your first engine will be a hodgepodge of spaghetti code, inconsistent decisions, historical baggage of fundamental components designed before understanding the rest of the system and its needs. You end up with lots of things you wouldn’t have done in retrospect. In your fifth engine, you start already making better decisions. You are more consistent. You can plan ahead well and end up having better design and polish. This is what Odin felt like compared to my experience with C/C++.

Odin was a breath of fresh air, very consistent, extremely readable and ergonomic. The immensely rich roster of packages included out-of-the-box blew me away. I was coming into Odin expecting to write all my tools, containers and helpers. Still many times during the journey of writing Blick, I ended up starting a small helper/container package only to find out from Bill later that this thing already exists in an Odin package. I had to learn the habit to always check the existing packages out before I build any tools!

The simplicity and consistency of the syntax, and the intentionally well scoped design and strong type checking ended up being quite freeing and helped get everyone on track to produce consistent code. After this, I don’t think I’d choose C or C++ for any project in the future if I can help it.

===

Q: Your previous project - as far as I’m aware - was Rebound Express. How did you go from an arcade game to producing an NLE? In fact, what can you tell us about Blick’s inception and the journey along the way to its first release?

A: Chronologically, yes, Rebound Express was the last thing before Blick. It was a one week jam entry. A few friends organized a “Shipping Jam”, where the goal was to ship something in a week. I used Raylib, Box2D, and Kenney.nl assets to keep it ship focused and deliver something polished on a deadline. I was this close to trying Odin! Before the jam, I had been researching vehicle physics for a 3D car game I was making.

The real turning point that got me into starting an NLE was quitting my medical residency to pursue programming full time. The Better Software Conference 2025 (BSC) was absolutely life changing for me and I knew after coming back from Sweden that I had to start a big project. During that time I was chatting with Sander (one of the BSC organizers, the man behind its AV and video production, and now one of my partners at Dihedron) and he showed me his frustration with every available video editor while he worked on BSC videos. So one time on a call I told him “Fuck it, let’s make a video editor”. A few months later, we had a gathering with friends here in Munich and I put a team together. We started working on Blick.

===

Q: Your Discord bio also says “Currently working on a 3D car game engine.” Is that still ongoing, or has that been parked in favor of maximizing Blick’s awesomeness?

A: Thanks for reminding me to update my bio! Yeah, unfortunately I had to put that aside completely once I started Blick. It was a project with a lot of firsts, most prominently, the first time I wrote a 3D rendering pipeline for a game. I still would like to revisit that when things settle down and I find a bit more free time, but it’ll also be a complete rewrite in Odin. Partly as a refresher, and partly because I don’t want to go back to writing C++ ever again.

===

Q: Will the price structure change after more future milestones are hit, and which features can we expect over the next year, say?

A: Yes we expect we will raise Blick’s price down the line as the project matures more. I don’t think we’ll change the licensing model, though. There’s a lot of features we can add; reaching parity with existing competitors will take a while. They’ve been around for decades. For next year though I’m mostly excited about us getting the dynamic effects pipeline up and running with the new rendering code we’re working on. Once we have that, it will open the doors for a lot of new features, ways to automate, introduce plugins, lots of flexibility.

===

Q: What workflows would you say Blick excels at already? Can people drop Resolve, or do you expect people to e.g. color grade in Resolve and then edit in Blick? Are there any additional use cases you’re currently working on “unlocking”, so to speak?

A: Blick in its current feature-set doesn’t replace Resolve, especially not in color grading. Resolve remains the best in the industry at that feature. We still are a ways out before we reach a wide enough feature-set to replace current incumbents. Blick currently does the basics really well though: timeline navigation, wide roster of supported formats, ergonomic editing. At every step where we add a new feature we have the advantage of thinking about it from multiple angles and with the hindsight of our own experiences with existing NLEs, build it from first principles and come up with a good design by iterating on it. We have an advantage here because we have full creative control. We’re a small team, so decisions are efficiently made. And yes, we’re working on new features currently, only this last weekend we put out a proxy pipeline with proxy generation and management UX, improved on our text editing engine, and we recently added chroma keying. There’s a lot of things to add, we won’t run out anytime soon! For my own editing though, it already does everything I need!

===

Q: What’s your favorite thing about Odin, and what do you think could use some love? This could be the language semantics, the packages that come with it, the community, anything.

A: Bill, on both counts :)

Honestly, I’m bad at “favorite” questions. I don’t like ranking things. Most of what I like about Odin is in the answers above. As for what needs love, I’m a user, not a language designer. I don’t think I have a productive opinion to offer after just a single year of use. Every time I thought Odin was missing something, it turned out to already be in the packages. Every time I thought a design decision was questionable, I looked into it and learned there was a good reason for that design that I don’t disagree with. I’m content with the state of things.

===

Q: And now the real question on everyone’s mind: How do you balance your work as a practicing surgeon, working on Blick, being such an affable and approachable gentleman on our Discord, and everything else. What’s your time management secret?

A: I quit my job at the hospital last year around the same time I started working on Blick. I want to give this a real shot. Right now I’m mostly focused on getting this company up and running. I probably will return to medicine down the line once things settle down. In the meantime it’s Dihedron and contract work. That’s part of where the time comes from. Otherwise, I just enjoy programming and do little else. Time flies when you’re doing something you love!

===

Q: Any closing remarks about your projects and/or Odin?

A: Stay tuned, we’re adding new things! I’m excited about the engine work we’ve built over the last year with Dihedron. We’re getting to the point where we have a well written and performant platform- and renderer-agnostic base that we can use for all future products. I think we’re in a good place with Odin. It’s already in a shape where I could see using this language at Dihedron for the foreseeable future, and be happy about that choice.