Two New Swift / iOS Apps Released!
This week sees the release of two iOS apps into the App Store from the FlexMonkey stable: Emergent, my Metal based swarm chemistry simulation, and Nodality version 2.3, an update to my node based image...
View ArticlePhysics Based Computer Generated Music With AudioKit and SpriteKit
This post looks at a little experimental app I've created using AudioKit and SpriteKit to generate music (of a sort) based on a simple physics simulation. The app, being a sprightly sounding thing that...
View ArticleHigh Resolution Node Based Image Processing in Nodality 2.2
Today sees the release of version 2.2 of Nodality, my node based image editing and compositing application for iPads. Version 2.2 is available, free of charge, at the App Store and includes some fairly...
View ArticleRadiating Visual Pulses: Visualising AudioKit Sounds in SpriteKit with SKAction
As I continue to experiment with my AudioKit/SpriteKitphysics based audio generation app, I wanted a way to visually feedback on collisions.The effect I wanted to recreate was an animated pulse...
View ArticleSwift & Metal: Four Million Particles on an iPad
Following my recent talk on iOS GPU Programming with Swift & Metal at Swift Summit, I thought I'd revisit the code to see if I could squeeze out any further performance. My previous versions of...
View ArticleAudioKit Reaches Version 2.0
Congratulations to the AudioKit team for releasing version 2.0 of their amazing audio libraries for iOS and OS X. Version 2 includes a load of updates including Playgrounds for developing audio code in...
View ArticleMind Blowing Metal - Four Million Particles at Forty Frames per Second on an...
I was quite please with my recent Swift and Metal experiment - managing to get my iPad to calculate and render over 4,000,000 particles at 25 frames per second. However, there's always room for...
View ArticleParticles Set Free! High Performance Particles for Swift Developers
If you've been interested in the seemingly endless iterations of my GPU based particle systems for iOS but a bit scared of all that slightly arcane Metal boilerplate code, you may be interested to...
View ArticleAudio Visualisation for iOS with AudioKit & ParticleLab
Following my recent post regarding ParticleLab, my high performance GPU based Swift particle system component, I've spent a happy few days working with Aurelius Prochazka from AudioKit creating an iOS...
View ArticlePainless Migration to Swift 1.2: Sets and Touches and Rock and Roll
My initial tests with the early Xcode 6.3 betas were a bit worrying: I ended up with countless compiler errors that couldn’t be easily resolved, the scariest being related to an apparent change in the...
View ArticleSnapSwift: Open Source Popup Menu / Numeric Slider for iOS
After playing with Google's Snapseed app, I was inspired to recreate their user interface as a reusable component in Swift. Snapseed does away with fixed sliders or dials cluttering the screen, rather...
View ArticleWheelTone: Music from Friction Gears in Swift & AudioKit
Many years ago, I wrote a simple friction gear simulation in Flash. I thought it would be an interesting exercise to repeat in Swift that could be made even more interesting by adding the ever...
View ArticleDepth of Field in SceneKit
Depth of field (DoF) is the distance between the nearest and furthest objects in a scene that appear sharp and in focus. A shallow DoF is used by photographers to emphasise a subject by throwing the...
View ArticleSwifter Swift Image Processing With GPUImage
I'm a big fan of Apple's Core Image technology: my Nodality application is based entirely around Core Image filters. However, for new users, the code for adding a simple filter to an image is a little...
View ArticleEasy Group Based Layout for Swift with Shinpuru Layout
One of the joys of working with Apache Flex is easy user-interface layout using horizontal and vertical groups. I haven't worked much with Xcode's interface builder and Visual Format Language looks a...
View ArticleZip, Map and Generics: The Evolution of a Swift Function
Let’s imagine, you come into work one bright and sunny Monday morning to find a new requirement has landed in your inbox:Please create a function that accepts two arrays of Floats and returns a new...
View ArticleA Test Driven Custom Swift Zip Function Using Generics
My recent blog post, Zip, Map and Generics, looked at Swift's new zip() function for zipping together two arrays. zip returns a SequenceType with as many items as its shortest input sequence. What if...
View ArticleAnimated Layout for Swift with Shinpuru
I've spent some time extending my Shinpuru Layout group components to support two new methods: addChild() and removeChild(). These methods animate the addition or removal of components which is...
View ArticleConvolution Filters in Swift with Accelerate and vImage
Convolution filters are a commonly used image processing technique typically used for effects such as blurring, sharpening, embossing and edge detection. A convolution filter uses a kernel: a matrix of...
View ArticleShinpuru Image: Syntactic Sugar for Core Image & Accelerate/vImage
If you've ever used Core Image or vImage for adding filters to UIImages, you may have bemoaned the stringly typed API or tricky boilerplate code required to set things up. Well, fret no more, Shinpuru...
View Article