The approach to parallel programming is fairly standard via parallel data structures. A single new ParallelArray object provides all of the new behaviour needed. You can convert a standard array, including a Canvas pixel array, into a ParallelArray or create a new object using raw data. Once you have a ParallelArray you can operated on it using new parallel methods such as map, reduce, combine, filter etc. All synchronization and locking is taken care of automatically.
You can see River Trail in action in an application that is closer to a 3D game in the following video, but the sound quality is poor.