# Doodles Wall c\[\_\]

**URL:** <https://openrndr.discourse.group/t/doodles-wall-c/51>\
**Category:** Gallery\
**Created:** [March 11, 2020, 9:20am UTC](https://openrndr.discourse.group/t/doodles-wall-c/51 "2020-03-11T09:20:39Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![ricardo](https://yyz2.discourse-cdn.com/free1/user_avatar/openrndr.discourse.group/ricardo/32/8_2.png) [@ricardo](https://openrndr.discourse.group/u/ricardo)\
**Post date:** [March 11, 2020, 9:20am UTC](https://openrndr.discourse.group/t/doodles-wall-c/51/1 "2020-03-11T09:20:39Z")

</div>

A place to share some doodles/work in progress 🖌

---

<div class="post-metadata">

**Author:** ![ricardo](https://yyz2.discourse-cdn.com/free1/user_avatar/openrndr.discourse.group/ricardo/32/8_2.png) [@ricardo](https://openrndr.discourse.group/u/ricardo)\
**Post date:** [March 11, 2020, 9:24am UTC](https://openrndr.discourse.group/t/doodles-wall-c/51/2 "2020-03-11T09:24:14Z")

</div>

![compositor-sketch](https://global.discourse-cdn.com/free1/uploads/openrndr/original/1X/497f348fb0f21970c878ca0bfad5d2b8ae4ee458.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:** [March 11, 2020, 9:34am UTC](https://openrndr.discourse.group/t/doodles-wall-c/51/3 "2020-03-11T09:34:28Z")

</div>

Beautiful! 😍 How did you choose the colors?

---

<div class="post-metadata">

**Author:** ![ricardo](https://yyz2.discourse-cdn.com/free1/user_avatar/openrndr.discourse.group/ricardo/32/8_2.png) [@ricardo](https://openrndr.discourse.group/u/ricardo)\
**Post date:** [March 11, 2020, 9:39am UTC](https://openrndr.discourse.group/t/doodles-wall-c/51/4 "2020-03-11T09:39:00Z")

</div>

Thanks! This one was one of my early experiments with the compositor… the colors were probably chosen through [orx-palette](https://github.com/openrndr/orx/tree/master/orx-palette).

---

<div class="post-metadata">

**Author:** ![kazik](https://yyz2.discourse-cdn.com/free1/user_avatar/openrndr.discourse.group/kazik/32/7_2.png) [@kazik](https://openrndr.discourse.group/u/kazik)\
**Post date:** [March 11, 2020, 8:54pm UTC](https://openrndr.discourse.group/t/doodles-wall-c/51/5 "2020-03-11T20:54:25Z")

</div>

![Screenshot from 2020-02-07 22-21-19](https://global.discourse-cdn.com/free1/uploads/openrndr/original/1X/bf11bfa600b566f326abd252589cb6e7e5761144.jpeg)  
Testing combination of pinhole camera and iridescence generator.

---

<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:** [March 13, 2020, 8:37am UTC](https://openrndr.discourse.group/t/doodles-wall-c/51/6 "2020-03-13T08:37:03Z")

</div>

![openrndr-2020-03-09-11.44.11](https://global.discourse-cdn.com/free1/uploads/openrndr/original/1X/24dc7193b6c689ec87a4dbf968f516bcf1e6cfee.jpeg)

That’s a rewrite of an openFrameworks program from earlier this year. The idea is to create a line-based generative design program to create images for the Axidraw plotter.

It’s just version 0.0.1 🙂 I have many ideas of things to implement. My approach is to draw by hand in a book, then extract ideas from those drawings to implement in the program.

---

<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:** [March 17, 2020, 2:55pm UTC](https://openrndr.discourse.group/t/doodles-wall-c/51/7 "2020-03-17T14:55:51Z")

</div>

I ported [this Processing program](https://github.com/hamoid/Fun-Programming/tree/master/processing/ideas/2018/08/panZoomSketch) to OPENRNDR

![2020-03-17-153629_602x401_scrot](https://global.discourse-cdn.com/free1/uploads/openrndr/original/1X/a2586a3fdf8cf4292887add980a183ccbcf2440e.png)

Source at [https://github.com/hamoid/openrndr-template/tree/master/src/main/kotlin](https://github.com/hamoid/openrndr-template/tree/master/src/main/kotlin) (Both PanZoom\* files)

Feedback about making [https://github.com/hamoid/openrndr-template/blob/master/src/main/kotlin/PanZoomSketch.kt#L68](https://github.com/hamoid/openrndr-template/blob/master/src/main/kotlin/PanZoomSketch.kt#L68) cleaner is welcome 🙂 The `val canvas = this` feels weird. Or any other improvements. I’m still learning Kotlin and OPENRNDR.

The program has a bug which becomes apparent by setting `width = 900`: it doesn’t properly account for the aspect ratio.

---

<div class="post-metadata">

**Author:** ![edwin](https://avatars.discourse-cdn.com/v4/letter/e/73ab20/32.png) [@edwin](https://openrndr.discourse.group/u/edwin)\
**Post date:** [March 17, 2020, 3:52pm UTC](https://openrndr.discourse.group/t/doodles-wall-c/51/8 "2020-03-17T15:52:52Z")

</div>

The idiomatic way is to use `activeCanvas?.let { }`, which has an implicit `it` argument that points `activeCanvas` and leaves `this` untouched.

---

<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:** [March 17, 2020, 4:59pm UTC](https://openrndr.discourse.group/t/doodles-wall-c/51/9 "2020-03-17T16:59:26Z")

</div>

Thank you! Fixed. Much better now. I didn’t remember that I could name `it` to avoid shadowing previous declarations.

I enjoyed porting the code which is in many places simpler thanks to Kotlin and OR 🙂

---

<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:** [March 27, 2020, 8:38am UTC](https://openrndr.discourse.group/t/doodles-wall-c/51/10 "2020-03-27T08:38:00Z")

</div>

Something I did in the last Creative Code Jam (Berlin) and actually the first one that took place online via [https://meet.jit.si](https://meet.jit.si) with participants from Berlin, Kölln, the Netherlands and London 🙂

---

<div class="post-metadata">

**Author:** ![edwin](https://avatars.discourse-cdn.com/v4/letter/e/73ab20/32.png) [@edwin](https://openrndr.discourse.group/u/edwin)\
**Post date:** [March 27, 2020, 10:02pm UTC](https://openrndr.discourse.group/t/doodles-wall-c/51/11 "2020-03-27T22:02:20Z")

</div>

![Screenshot from 2020-03-27 22-51-32](https://global.discourse-cdn.com/free1/uploads/openrndr/original/1X/37551e66ccdb1ea2fdb1838f0ad6be33c42cf395.png)

A simple shape toy that uses new `orx-gui` and `orx-shapes` functionality.

[Corners02.kt](https://openrndr.discourse.group/uploads/short-url/4Mdgku2um7KgP5C159yk68j28h1.kt) (2.8 KB)

---

<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:** [March 31, 2020, 6:13pm UTC](https://openrndr.discourse.group/t/doodles-wall-c/51/12 "2020-03-31T18:13:14Z")

</div>

I’m recreating in OPENRNDR the program I used to generate [these images](https://hamoid.com/code/2017-gradient-subdivide/?from=next).

 ![Subdivide-2020-03-31-20.04.44](https://global.discourse-cdn.com/free1/uploads/openrndr/original/1X/409669c0f11af8a6d39b8f367ee63cf909f9c19a.jpeg)

Still a very early version, but I see it’s going to be much simpler than when I did that in Processing and then in openFrameworks. In those cases I used polygon clipping libraries. In this case I wrote a minimal one in 10 lines of code. Another change is that in the previous cases I created a gradient texture, but now I know how to do that with shaders. I plan to use an exponential variation of the linearGradient.

I borrowed this function from [OF](https://github.com/openframeworks/openFrameworks/blob/patch-release/libs/openFrameworks/graphics/ofPolyline.inl#L639). Thank you 🙂

```auto
        fun ShapeContour.contains(pos: Vector2): Boolean {
            var counter = 0
            var xinters = 0.0
            var p1: Vector2
            var p2: Vector2

            var n = segments.size

            p1 = segments[0].start;
            for (i in 1..n) {
                p2 = segments[i % n].start;
                if (pos.y > min(p1.y, p2.y)) {
                    if (pos.y <= max(p1.y, p2.y)) {
                        if (pos.x <= max(p1.x, p2.x)) {
                            if (p1.y != p2.y) {
                                xinters = (pos.y - p1.y) * (p2.x - p1.x) / (p2.y - p1.y) + p1.x
                                if (p1.x == p2.x || pos.x <= xinters)
                                    counter++
                            }
                        }
                    }
                }
                p1 = p2;
            }

            return counter % 2 != 0;
        }

```

---

<div class="post-metadata">

**Author:** ![Yann](https://avatars.discourse-cdn.com/v4/letter/y/bc79bd/32.png) [@Yann](https://openrndr.discourse.group/u/Yann)\
**Post date:** [April 1, 2020, 1:41am UTC](https://openrndr.discourse.group/t/doodles-wall-c/51/13 "2020-04-01T01:41:40Z")

</div>

> [ 
>  
> 
>  
>  
> 
>  
> 
>  
> 
>  
> View this post on Instagram
> 
>  
> 
>  
> 
>  
> 
>  
> 
>  
> 
>  
> 
>  
> 
>  
> 
>  
> 
> ](https://www.instagram.com/p/B-N4dnuh497/?utm_source=ig_embed&utm_campaign=loading) 
> 
> [Smoke spiral no. 2. Dual Jetstream. . . . #art #animation #creativecoding #generativeart #codeart #openrndr #kotlin](https://www.instagram.com/p/B-N4dnuh497/?utm_source=ig_embed&utm_campaign=loading)
> 
>  
> 
> A post shared by [Yann Le Gall](https://www.instagram.com/ylegall/?utm_source=ig_embed&utm_campaign=loading) (@ylegall) on Mar 26, 2020 at 5:26pm PDT

---

<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:** [April 10, 2020, 3:20pm UTC](https://openrndr.discourse.group/t/doodles-wall-c/51/14 "2020-04-10T15:20:38Z")

</div>

![Pointy-2020-04-10-12.23.18](https://global.discourse-cdn.com/free1/uploads/openrndr/original/1X/5e4f4b07533221529540783014377d19d89c609e.png)  
A rules-based design.

This version fixes an issue with the previous rules. I plot these things with an axidraw. In my previous iteration I had like 200 lines in the same area, so the pen kept moving in the same spot trying to destroy the paper again and again. Very scary 🙂 I tried lifting the pen **while** it was drawing. I had an idea to do that in the future: attach a string I can pull in case I need to lift the pen while it draws, but not cancelling.

Now there’s a very dark area in the plot, but fortunately it did not go through 🙂 not even the ink! Very stubborn paper 🙂

---

<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:** [April 13, 2020, 5:50pm UTC](https://openrndr.discourse.group/t/doodles-wall-c/51/15 "2020-04-13T17:50:52Z")

</div>

This is how it looks today

 ![Subdivide-2020-04-13-19.49.15](https://global.discourse-cdn.com/free1/uploads/openrndr/original/1X/273f67fe5f531b2267d9dec17faa4bef5af444d6.jpeg)

---

<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:** [April 24, 2020, 5:15pm UTC](https://openrndr.discourse.group/t/doodles-wall-c/51/16 "2020-04-24T17:15:17Z")

</div>

Hey people! Where are your doodles? I miss them 🙂

Here my most recent one:

 ![DSC01157](https://global.discourse-cdn.com/free1/uploads/openrndr/original/1X/9ca381646626ca93b65bd22788bad06b9d11662a.jpeg)

---

<div class="post-metadata">

**Author:** ![Yann](https://avatars.discourse-cdn.com/v4/letter/y/bc79bd/32.png) [@Yann](https://openrndr.discourse.group/u/Yann)\
**Post date:** [April 24, 2020, 9:34pm UTC](https://openrndr.discourse.group/t/doodles-wall-c/51/17 "2020-04-24T21:34:32Z")

</div>

> **[Yann Le Gall](https://www.instagram.com/p/B_Xvue_BdRv/)**

---

<div class="post-metadata">

**Author:** ![ricardo](https://yyz2.discourse-cdn.com/free1/user_avatar/openrndr.discourse.group/ricardo/32/8_2.png) [@ricardo](https://openrndr.discourse.group/u/ricardo)\
**Post date:** [April 25, 2020, 12:26pm UTC](https://openrndr.discourse.group/t/doodles-wall-c/51/18 "2020-04-25T12:26:11Z")

</div>

Not sure this is the best way to share these since these platforms require logging in.

> **[Ricardo Matias](https://www.instagram.com/p/B_Z1UatnbDA/)**

> <https://twitter.com/ricardomatiaspt/status/1254023093422567424?s=20>

---

<div class="post-metadata">

**Author:** ![Yann](https://avatars.discourse-cdn.com/v4/letter/y/bc79bd/32.png) [@Yann](https://openrndr.discourse.group/u/Yann)\
**Post date:** [April 26, 2020, 10:31pm UTC](https://openrndr.discourse.group/t/doodles-wall-c/51/19 "2020-04-26T22:31:35Z")

</div>

Here is a 3D sketch I did with `orx-mesh-generators`.  
I’m new to 3D rendering, and it was a bit hard to make a fragment shader for lighting. I ended up doing something like this:

```auto
    fragmentTransform = """
        float dot_prod = dot(-va_normal, p_light);
        float angle = asin(dot_prod);
        float light = clamp(angle/3.14159, 0.0, 1.0);                                                       
        x_fill.rgb = mix(p_color2.rgb, p_color1.rgb, light);
    """.trimIndent()
    parameter("light", Vector3.UNIT_Y)
    parameter("color1", color1)
    parameter("color2", color2)

```

I would still like to learn how to make wireframes (no fill, only stroke between vertices).

> **[Yann Le Gall](https://www.instagram.com/p/B_b7APehBgn/)**

---

<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:** [April 28, 2020, 6:41am UTC](https://openrndr.discourse.group/t/doodles-wall-c/51/20 "2020-04-28T06:41:03Z")

</div>

Very nice @Yann 🙂 I would say you don’t need `asin()` as dot\_prot is a value between -1.0 and +1.0 so you can just map it in some way (for non realistic but tweakable light). Sometimes I do `float light = dot(...) * 0.5 + 0.5` and then bend that to add more contrast. Simple one is `light * light` (quadratic), more flexible is `pow(light, 3.3);` because you can tweak the exponent. And even more flexible is using [shaping functions from Golan Levin](http://www.flong.com/texts/code/shapers_exp/). Those functions work but sometimes you need to convert ints to double.

Nice @ricardo 🙂 One thing I would like more is if the little sticks didn’t grow and shrink from the same point, but grow from start point and shrink towards the end point. What do you think?

[Next page](https://openrndr.discourse.group/t/doodles-wall-c/51.md?page=2)
