Josh On Design

  • Blog
  • About Josh
  • Books & Writing
  • Apps & Projects
  • Hire Me
past future

    How Bezier Curves Work

    July 11th, 2018

    Today we are going to take a break from creative procedural generation and talk about a very useful graphics primitive, the Bézier curve, and learn how to render it from scratch.

    Read more...

    Tagged: javascript graphics procgen

    ProcGen: Playing with Color

    June 11th, 2018

    Welcome back to my series on procedural content generation. Today we are going to learn how to play with color. Generating textures is great, but it's so much better when we can generate new color schemes to go with our textures. First, however, we need to do a little clean up.

    Read more...

    Tagged: procgen graphics node

    ProcGen: Gradients and Lerps

    June 7th, 2018

    We've built a lot of stuff so far. In part one we built some tools and noise. In part two we created patterns with sine waves, then mixed them with noise. However, so far our images are essentially black and white, or occasionally hard coded to a particular color like red. Today we're going to lerp through some colors. Don't worry, I'll explain that this means in a minute.

    Read more...

    Tagged: procgen node graphics

    ProcGen: Sine Waves

    June 6th, 2018

    Now that we've got a little toolkit from part 1, let's draw a simple sin wave. As you may recall from your trigonometry, the sin function goes from -1 to 1. It also loops forever. That's going to be very handy.

    Read more...

    Tagged: graphics procgen node

    Procedural Generation Challenge

    June 6th, 2018

    Thanks to a project I'm doing at work I started reading a book on procedural content generation. ProcGen (as apparently the cool kids call it) is all about creating interesting systems with randomness, which inevitably brings up texture generation, which brings up Perlin Noise, one of the most useful sources of randomness.

    Read more...

    Tagged: graphics procgen node

    Why don't we have Wayland yet?!

    March 26th, 2018

    Or: The state of Linux Graphics with Raspberry Pi and Rust

    I have long wanted to create my own desktop operating system targeting the Raspberry Pi. I believe we should have a hackable desktop environment that is both powerful and lightweight, similar to BeOS and the Amiga. To build this desktop we really need full control over how apps draw to the screen, but still have hardware acceleration. That means we'll need to use real graphics drivers and real graphics APIs from existing Linux desktops. When I last looked at all things Linux graphics five years ago everything was a mess but with some promising signs. Over the past couple of days I've been researching the current state. Here is my report, with both good and bad news.

    Read more...

    Tagged: rant linux graphics

    Improved Easing Functions

    March 1st, 2013

    Animation is just moving something over time. The rate at which the something moves is defined by a function called an easing equation or interpolation function. It is these equations which make something move slowly at the start and speed up, or slow down near the end. These equations give animation a more life like feel. The most common set of easing equations come from Robert Penner's book and webpage.

    Read more...

    Tagged: programming rant graphics

    HTML Canvas Deep Dive: Updated and Free

    July 17th, 2012

    This week at OSCON gave an updated version of my 3 hour Canvas tutorial. I think the session was well received. It was one of only a few tutorials that was completely sold out, 200 seats taken. But if you couldn't be one of those two hundred I don't want you to miss out.

    Read more...

    Tagged: canvas graphics

    Read me in .net Magazine

    March 27th, 2012

    Thanks to my HTML Canvas Deep Dive at OSCON, .net Magazine asked me to write a tutorial for them. The topic was just something interesting with Canvas. I'm a huge fan of infographics, as well as .net Magazine, so I jumped at the chance to write for them. I recently discovered an amazing treasure trove of data at the World dataBank, so that formed the core of the article.

    Read more...

    Tagged: canvas articles graphics

    Java + SDL + Avian + webOS = Magically Delicious

    August 31st, 2011

    Mmmwaa haa haa. It lives! I've gotten Java to run on webOS natively with a new set of Java SDL bindings. That means it just *might* time to start a new project. Read on for how it works and how you could help.

    Read more...

    Tagged: graphics java palm programming

    Playing with Noise

    May 12th, 2011

    While I have many projects in progress right now, including Amino, Leonardo, getting the TouchPad out the door, and having my first baby (only a few weeks left!); every now and then I just get something into my head and have to code it out. Last night it was noise functions.

    Read more...

    Tagged: code graphics

past future
Like this? Hire Me!