Doodles Wall c[_]

Wow that was fast! :slight_smile: Nice! Was it hard to do? Do you think it’s also possible to implement as contours? Then it wouldn’t blur.

Why do you think there’s not black space between the first two images, as there is in
image
?

1 Like

Thanks, it was fast indeed. :sweat_smile:

It was not too hard to implement, I guess at the beginning the only confusing part might be the advection, but overall it is not that difficult.
I think it’s possible to implement it using shapes and contours, but that wouldn’t be a GPU implementation
 (unless I’m missing something from the use of contours). But I’ll try, it seems a fun little project, maybe one could plot the results.

I think it might be due to either the ODE integrator I’m using, or to the fact that the deformation field seems to be sensitive to the resolution, but I’m not sure.
Nevertheless, and with no big surprise, after a little while I started playing with the original algorithm in multiple ways until I got these

which are more in my aesthetical realm. Maybe I’ll show the real-time version at the next meetup if there’s a need to fill a spot. :slight_smile:

4 Likes

I really like how it looks like! :heart_eyes:

1 Like

Spent some time in the morning looking at high-order functions in kotlin to implement a numerical approximation to the gradient of an arbitrary scalar function on the plane, and I decided to test it with 2d simplex noise :slight_smile:

5 Likes

A little something concerning self-organizing structures which I am prototyping

I am always fascinated by the inception of projects, with their presentation which is essential though fully containing the “idea”. A minimalism which often gets washed down when I start adding all the bells and whistles


3 Likes

While implementing some quad trees to better play with interactive systems, I decided to give it a test with a flocking system :slight_smile:

2 Likes

Looks great! I like the curves that appear :slight_smile: I wonder how it would look if it was fading to background color, so it doesn’t become flat white. Did you try something like that?

Here something I found tricky to do (a Caternary):

1 Like

Thanks! I had tried at the time, but there was a strange artifact, like a leftover grayish color on the canvas. Since you brought the fading up again, I gave it a second thought and circumvented the problem (admittedly in a hackish way). The result looks like this

UPDATE: I figured out that the issue is related to the precision I had used for the color buffer, using ColorType.FLOAT32 as type solves it.

Very nice! Catenaries were kind of a nightmare in my physics exams as an undergrad :sweat_smile:

1 Like

Evening doodle while I was working with ShapeContour and shadestyles :slight_smile:

UPDATE: Now with colors :slight_smile:

1 Like

Nice! :slight_smile: Those gradients give it a 3D look :slight_smile:

Here my childish curvy ShapeContours and ShadeStyles :slight_smile:

6 Likes

Playing with marching squares.

Here one two variations.

An interesting aspect of this is that it is a ShapeContour-based effect (curves), not a shader effect (pixels) (well, except those little textures I applied). That’s great for generating works for the pen-plotter.

2 Likes

Doodle inspired by Edwin’s presentation :slight_smile:

gif_doodle

1 Like

Nice! Can we see a longer version in vimeo or similar? :slight_smile:
Would be great to see it start from nothing and evolve from there.

1 Like

:slight_smile:

3 Likes

Screenflick Movie 20

import org.openrndr.application
import org.openrndr.color.ColorRGBa
import org.openrndr.extra.color.presets.DARK_BLUE
import org.openrndr.extra.viewbox.viewBox
import org.openrndr.shape.*
import kotlin.math.sin

fun main() {
    application {
        configure {
            width = 200 * 4
            height = 200 * 4
        }
        program {
            val vbx = viewBox(Rectangle(0.0, 0.0, 200.0, 200.0)) {
                extend {
                    drawer.clear(ColorRGBa.DARK_BLUE)
                    val segments = mutableListOf<ShapeContour>()
                    (0..9).forEach {c ->
                        val sub0 = Circle(100.0, 100.0, 125.0 - c * 12.5)
                        (0 until 150).forEach {
                            val total = 1.0
                            val step = (total / 150.0)
                            if (it % 2 == 0) {
                                segments.add(
                                    sub0.contour.sub( it * step, (it + (1.5 * sin(c*0.25 + seconds * 5.0))) * step)
                                )
                            }
                        }
                    }
                    drawer.fill = null
                    drawer.stroke = ColorRGBa.PINK
                    drawer.strokeWeight = 11.0
                    drawer.contours(segments)
                }
            }

            extend {
                vbx.update()
                for (j in 0 until 4) {
                    for (i in 0 until 4) {
                        drawer.image(vbx.result, j * 200.0, i * 200.0)
                    }
                }
            }
        }
    }
}
2 Likes

3 Likes

I’m working on a visualization that highlights patterns in categorical point data (for a university project). The visualization is written using openrndr and makes heavy use of the Shape/ShapeContour operations, and the Voronoi diagram implementation (can you spot it?).

3 Likes

I reeeally like it :slight_smile: Will there be prints at some point? :slight_smile:

1 Like

Created a new showcase of my monday-to-friday project.

Started from a scribble.
Turned it into a live show.
(Watch it fast, before I have to remove the music from the video :sweat_smile:)

StageSketch

I can share the source code if you are interested.

3 Likes

Best way to wake up here dancing with those cool visuals :slight_smile:

Nice that you made it in one week! How much did you work on it every day?

I hope you make more videos :film_projector: :man_dancing: :dancer: !