This Bit builds on Bit #73, going further into using Blender’s beautiful Bézier curve tools.
Nyquist Art + Logic
A little info for artists and programmers.
Saturday, June 28, 2025
Bits of Blender #73 - Bézier Curves, Part 1
Blender has powerful Bézier curve tools that are a bit different than what you may be used to in other vector programs. This episode introduces you to how Blender handles Bézier handles.
It’s a little different from other vector programs like Adobe Illustrator and Affinity Designer, in fact I think it is better being able to easily see the handle types.Monday, June 23, 2025
Bits of Blender #72 - A REAL 3-button Mouse
Friday, June 20, 2025
New Logo and New Bit!
Blender can be a challenge to learn at first, but its key commands are instantly addictive. I started using Adobe Illustrator with version 1.1 in 1987, but when I discovered Blender 2.37a in 2005, its shortcuts like G, S, R, X, and E quickly overtook 18 years of Illustrator muscle memory. I even caught myself trying to use them in the venerable vector tool!
Monday, June 09, 2025
A Tour of Blender (and Bits of Blender turns 17)
Saturday, May 31, 2025
Distribute Grease Pencil Strokes
I’m happy to share my first Blender Add-On! I couldn’t find a tool to evenly distribute grease pencil strokes in Blender or existing Add-Ons, so I built one myself. It’s simple but gets the job done! Check it out and let me know your thoughts.
#blender #blender3d
https://github.com/johnrnyquist/distribute_grease_pencil_strokes
Tuesday, March 04, 2025
Handling Gesture Recognizers and TouchesBegan in SpriteKit
Are you working on a SpriteKit game and trying to use both gesture recognizers and touchesBegan? I spent more time than I expected figuring this out. After asking AIs and not getting clear answers, I ended up checking the friendly manual myself.
Thought I’d write a quick blog post about it—maybe it’ll help someone else searching for this later.
The issue is that touchesBegan happens before the gesture recognizer. There’s an easy fix: set delaysTouchesBegan to true. Here’s an example:
override func didMove(to view: SKView) {
let panGestureRecognizer = UIPanGestureRecognizer(target: self, action: #selector(handlePanFrom))
panGestureRecognizer.delegate = self
panGestureRecognizer.delaysTouchesBegan = true
self.view!.addGestureRecognizer(panGestureRecognizer)
}
Why was it tricky to find? I think it’s because SpriteKit doesn’t get much attention these days, so there’s not a lot of discussion about it online. Hopefully this saves you some time!