# OPENRNDR and ORX 0.4.5 released!

**URL:** <https://openrndr.discourse.group/t/openrndr-and-orx-0-4-5-released/755>\
**Category:** Announcements\
**Created:** [September 11, 2025, 8:08pm UTC](https://openrndr.discourse.group/t/openrndr-and-orx-0-4-5-released/755 "2025-09-11T20:08:56Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![abe](https://yyz2.discourse-cdn.com/free1/user_avatar/openrndr.discourse.group/abe/32/700_2.png) [@abe](https://openrndr.discourse.group/u/abe)\
**Post date:** [September 11, 2025, 8:08pm UTC](https://openrndr.discourse.group/t/openrndr-and-orx-0-4-5-released/755/1 "2025-09-11T20:08:56Z")

</div>

Version 0.4.5 of the framework is out with tons of new features 🎉

The [openrndr-template](https://github.com/openrndr/openrndr-template) now defaults to v0.4.5. Over 300 commits in openrndr and about 400 in orx.

This is our attempt to summarize the changes:

> **[Release OPENRNDR 0.4.5 · openrndr/openrndr](https://github.com/openrndr/openrndr/releases/tag/v0.4.5)**
>
> This release reflects a broad modernization and feature-expansion effort across OPENRNDR and related modules. Core libraries such as openrndr-application, openrndr-draw, openrndr-gl3, openrndr-ffmp...

> **[Release ORX 0.4.5 · openrndr/orx](https://github.com/openrndr/orx/releases/tag/v0.4.5)**
>
> This release reflects a major cycle of infrastructure upgrades, dependency management, and build tooling adjustments. The project underwent numerous Gradle upgrades, though some rollbacks were requ...

In the following weeks I will work on updating the guide to describe the new features, and post some screenshots below.

Note: Take a look at [Keeping your code compatible with recent changes](https://openrndr.discourse.group/t/keeping-your-code-compatible-with-recent-changes/641) for info about updating your programs.

Enjoy! 😁

---

<div class="post-metadata">

**Author:** ![abe](https://yyz2.discourse-cdn.com/free1/user_avatar/openrndr.discourse.group/abe/32/700_2.png) [@abe](https://openrndr.discourse.group/u/abe)\
**Post date:** [September 11, 2025, 8:12pm UTC](https://openrndr.discourse.group/t/openrndr-and-orx-0-4-5-released/755/2 "2025-09-11T20:12:25Z")

</div>

# ContourAdjuster 🆕

I described this feature last year when it was still part of the alpha releases. Now it’s there for everyone. Find some examples in this post:

> [@Modifying contours with ContourAdjuster](https://openrndr.discourse.group/t/modifying-contours-with-contouradjuster/645):
>
> A small demo of the contour adjuster. I accidentally found this shape and I found it interesting slight_smileplay_button imports fun main() { application { program { extend { val cir = adjustContour(Circle(drawer.bounds.center, 200.0).contour) { vertices.forEach { it.rotate(75.0) } } val rect = adjustContour(Rectangle.…

[![](https://global.discourse-cdn.com/free1/uploads/openrndr/original/1X/26dbac98bbbaf6b46233bbd72dc7c988230ddb7a.png) ](https://global.discourse-cdn.com/free1/uploads/openrndr/original/1X/26dbac98bbbaf6b46233bbd72dc7c988230ddb7a.png)

---

<div class="post-metadata">

**Author:** ![abe](https://yyz2.discourse-cdn.com/free1/user_avatar/openrndr.discourse.group/abe/32/700_2.png) [@abe](https://openrndr.discourse.group/u/abe)\
**Post date:** [September 14, 2025, 8:37am UTC](https://openrndr.discourse.group/t/openrndr-and-orx-0-4-5-released/755/3 "2025-09-14T08:37:57Z")

</div>

# Support for ARM processors and compute shaders on Mac 🆕

We are happy to announce that OPENRNDR 0.4.5 supports `arm64` CPUs in Linux, Mac and Windows. This includes the M processors found in recent Apple computers.

At the same time, support for advanced OPENGL features like Compute Shaders are now available on Apple computers\*. They were not supported because OPENGL 4.3 was not available, but thanks to [Angle](https://github.com/openrndr/angle), compute shaders can be used in all desktop platforms 🎉

_\* Metal compatible GPU required_

---

<div class="post-metadata">

**Author:** ![abe](https://yyz2.discourse-cdn.com/free1/user_avatar/openrndr.discourse.group/abe/32/700_2.png) [@abe](https://openrndr.discourse.group/u/abe)\
**Post date:** [September 17, 2025, 11:23am UTC](https://openrndr.discourse.group/t/openrndr-and-orx-0-4-5-released/755/4 "2025-09-17T11:23:21Z")

</div>

# Applying a 2D/3D camera only to some items

In the past it was a bit cumbersome to combine static elements with other elements affected by a Camera2D. For instance, imagine you want to render some fixed texts or a logo, while being able to pan, zoom and rotate a generative design.

Thanks to `Camera2DManual` and it’s `isolated` method this is now very simple. See this [demo](https://github.com/openrndr/orx/tree/master/orx-camera#democamera2dmanual01), or a [different one](https://github.com/openrndr/orx/tree/master/orx-camera#democamera2dmanual02) in which the camera is applied interactively to the object under the mouse. The 3D equivalent is `OrbitalManual` and there’s a [demo](https://github.com/openrndr/orx/tree/master/orx-camera#demoorbitalmanual01) for it too.

 ![DemoOrbitalManual01Kt](https://global.discourse-cdn.com/free1/uploads/openrndr/original/1X/1919aa6e20259fa0427fae678b56f97b57774fbe.png)

---

<div class="post-metadata">

**Author:** ![abe](https://yyz2.discourse-cdn.com/free1/user_avatar/openrndr.discourse.group/abe/32/700_2.png) [@abe](https://openrndr.discourse.group/u/abe)\
**Post date:** [September 18, 2025, 2:50pm UTC](https://openrndr.discourse.group/t/openrndr-and-orx-0-4-5-released/755/5 "2025-09-18T14:50:17Z")

</div>

# orx-fft

One of the new extras added to the `orx` repository is `orx-fft` which as you may have guessed, provides the [Fast Fourier Transform](https://en.wikipedia.org/wiki/Fast_Fourier_transform) algorithm.

 ![FftDemo-2025-09-18-16.44.51](https://global.discourse-cdn.com/free1/uploads/openrndr/original/1X/b230b6e6724b27ceb089a9b7bd3d08f3cecfb098.png)

Here an example calculating the FFT values for some simple generated number sequences:

```kotlin
import org.openrndr.color.ColorRGBa
import org.openrndr.extra.fft.FFT
import org.openrndr.math.Vector2
import kotlin.math.sin

fun main() = org.openrndr.application {
    configure {
        width = 1024
        height = 512
    }
    program {
        val fft = FFT(1024)
        fun Double.tof() = (this * 0.5 + 0.5).toFloat()

        extend {
            val t = frameCount * 0.2

            // Generate some numbers
            val b = FloatArray(1024) {
                //Double.uniform(-1.0, 1.0).tof()
                //simplex(123, it * 0.08, t).tof()
                //sin(it * 2.5 + t).tof()
                (sin(it * 2.5 + t) + sin(it * 0.1 + t)).tof()
            }

            // Do the FFT calculations
            fft.forward(b)

            // Render some results
            drawer.clear(ColorRGBa.WHITE)
            drawer.stroke = ColorRGBa.BLUE
            drawer.lineStrip(List(b.size) {
                Vector2(it * 1.0, height - fft.magnitude(it) * 10.0)
            })
            drawer.stroke = ColorRGBa.RED
            drawer.lineStrip(List(b.size) {
                Vector2(it * 1.0, height * 0.5 - fft.phase(it) * 10.0)
            })
        }
    }
}

```

---

<div class="post-metadata">

**Author:** ![abe](https://yyz2.discourse-cdn.com/free1/user_avatar/openrndr.discourse.group/abe/32/700_2.png) [@abe](https://openrndr.discourse.group/u/abe)\
**Post date:** [September 20, 2025, 5:29pm UTC](https://openrndr.discourse.group/t/openrndr-and-orx-0-4-5-released/755/6 "2025-09-20T17:29:41Z")

</div>

# orx-shade-styles

There are a lot of new configurable shaders you can apply when drawing things. They can even be combined. Take a look at [orx/orx-shade-styles at master · openrndr/orx · GitHub](https://github.com/openrndr/orx/tree/master/orx-shade-styles) to see images and descriptions of what they have to offer.

 ![gradients-DemoGradient03Kt](https://global.discourse-cdn.com/free1/uploads/openrndr/original/1X/ba3ea01632c595c9ac81e977301ce135e00c7677.png)

---

<div class="post-metadata">

**Author:** ![torb](https://avatars.discourse-cdn.com/v4/letter/t/2bfe46/32.png) [@torb](https://openrndr.discourse.group/u/torb)\
**Post date:** [October 1, 2025, 5:54pm UTC](https://openrndr.discourse.group/t/openrndr-and-orx-0-4-5-released/755/7 "2025-10-01T17:54:16Z")

</div>

Want to say I’m really excited about a lot of these. The FFT will be really nice as I’d been using some less-that-Kotlin-idiomatic Java libraries to do that. What I’m most excited about is finally being able to make GPU shaders on Mac. This platform parity is important as it makes it more more viable to develop on Mac yet deploy on (much cheaper) other platforms. Other stuff looks really good too!

I’m on a bit of a creative coding hiatus for various reasons, but I’ll definitely test these things out once I get back into things! Great work for everyone who worked on this!

---

<div class="post-metadata">

**Author:** ![abe](https://yyz2.discourse-cdn.com/free1/user_avatar/openrndr.discourse.group/abe/32/700_2.png) [@abe](https://openrndr.discourse.group/u/abe)\
**Post date:** [October 1, 2025, 7:29pm UTC](https://openrndr.discourse.group/t/openrndr-and-orx-0-4-5-released/755/8 "2025-10-01T19:29:14Z")

</div>

Hey @torb , nice to read you 🙂 I’ve been updating a project to make it work on a Mac Mini. I’ll post how it went when I have a moment. I hope to see you CC’ing soon again. Cheers!

> **[aBe (@hamoid@genart.social)](https://genart.social/@hamoid/115300544292955629)**
>
> Attached: 1 image
> 
> Previous software based artworks I sold ran with Intel+nVidia. This time we switched to a Mac Mini. I do not like that it's made by a company that seems like the opposite of openness. But the hardware is impressive. The Zotac I...
