Pixelwave is officially released!
Aug 8th
Wow, it’s been a while since we first revealed Pixelwave. I’m delighted to announce that Pixelwave is now publicly available to everyone.
Today marks the official birth day of Pixelwave as it leaves the warm womb of the private beta phase and enters the real world. We are very thankful to our awesome testers who gave us priceless feedback and support. But, as Simon would say, enough with all the self-indulgent nonsense. What are you waiting for? Give it a go.
Where do I start?
We’ve created a comprehensive documentation center to help ease the learning curve as much as possible.
Your very first step should probably be the getting started guide.
What’s Pixelwave all about?
Pixelwave is the framework we’ve always wanted to use. It lets you easily create fast, efficient, hardware-accelerated 2D games and interactive applications for iOS. Being game developers with a background in web, we were inspired to model it after the ActionScript 3 API.
Pixelwave was designed with the following goals in mind:
- Speed – We try to get the most out of the device by coding all the core stuff in C and doing lots of invisible OpenGL optimizations.
- Simplicity – Above all, we believe a great framework must be easy to use. Pixelwave’s interface is written in pure object-oriented Objective-C. We labored over each class, method, and property name to create an intuitive and accessible interface.
- Documentation – At the end of the day, even the greatest open source project would be unusable by most without proper documentation. We’re actively trying to avoid that.
- Open source – What started out as a small internal project has already grown into something much bigger. We’re thrilled to see where the open source community can take this project now that it’s out in the wild.
You can read more about the ideas behind Pixelwave in the 5 minute intro to Pixelwave over at the documentation center.
What can I do with it?
Pixelwave is all about creating interactive 2D games and applications that need to be fast and efficient.
If you want to create a clone of Mail, for example, you’re probably better off using UIKit. But if you’re looking to make a real-time hardware-accelerated 2D game, Pixelwave is the right tool for the job.
You can learn more about Pixelwave’s capabilities in the hulky manual.
Who’s using it?
Though the framework is still in its early stages, Pixelwave’s private beta has already produced a couple of App Store games (Sneak Out!, KickBox), some in-development projects, and there’s even a class being taught with it.
What does it come with?
When you download PIxelwave you get:
- The Pixelwave framework.
- The PixelKit framework, which adds useful tools for game developers.
- A bunch of samples to get you started.
- Several useful Xcode templates.
- A complete API reference (Including a native Xcode docset).
And there’s always the documentation center with lots of yummy articles.
And all of this is free?
Yep, it’s available under the (very) permissive zlib license. Why? Because we believe in the power of open source.
In conclusion
This is the start of something pretty big. We have high hopes for this framework and hope you enjoy it as much as we intended you to. So feel free to join the forums, follow us, fork us, tweet about us, and help us get the word out about Pixelwave.
Cheers!
A blast from the past: the wonders of open source
Apr 23rd
Or: how I realized the purest meaning of open source.
I was googling around for a programming answer and stumbled upon a blog post that brought back some good memories:
A few years back I was in need of a tool that converts Java to AS3. At the time I was trying to convert the Java version of Box2D to AS3 (this was before Box2D hit critical mass and Box2DFlash was created).
I couldn’t find anything useful so I decided to write a quick Java tokenizer. It served its purpose, but there were too many edge cases in fully converting the code so I abandoned it. I figured I’d open source it… but I never thought anyone would actually use it.
So it turns out some people actually found it useful!
It looks like this guy wrapped up the code in an AIR app that can handle multiple files (this was in 2007). Then someone else revived it and put it up on google code. It’s nice to see that code I wrote and forgot about so long ago is till around. Perhaps its a testament that good code dies hard (or that the art of making tokenizers from scratch is a dying one).
Oh, the wonders of open source.
The original source code is no longer online, so If you happen to be one of the people who spent a lot of time searching for it, I apologize. If you think it’s still relevant I’ll try to digg it up and post it again.
PixelKit is released in Beta, adding Box2D support
Jan 2nd
![]()
As you may already know, we recently released Pixelwave into private beta. It’s been going well, and we’ve actually been receiving some great feedback.
The most requested feature so far has been support for Box2D, so a few days ago we released PixelKit (a library of utilities for game developers) which for now includes Box2D and some cool utilities for using it.
If you’re in the private beta and didn’t update already, what are you waiting for? If you’re not in the beta you’ll get to play with it soon
When we started doing iOS development here at Spiralstorm Games, one of the first things we did is try to set up Box2D on the iPhone. If you’ve ever tried to do that from scratch you probably know that it’s not always smooth sailing. And once you do get it set up, you need to write code to render the simulation to the screen if you want to see what’s going on…
So it was very important to us that we provide a really easy way to set up a Box2D project, and it came out even cooler than I expected. If you want to read more about the details of how it’s set up, check out this article: Using Box2D with Pixelwave.
Pixelwave Beta is Out!
Dec 27th
![]()
After over a year of development I’m glad to announce that we’re finally at the private beta phase of Pixelwave!
We’re starting by rolling out the framework to a small group of iOS developers who signed up for the private beta a while back. These fine folks are helping us make sure that the framework is as awesome as it can be before we release it to the general public.
Along with the source code we’ve also released a bunch of learning resources for Pixelwave including a manual, an API reference, and some articles. All these are available online right now at the brand new Pixelwave documentation center.
So when is the framework going to be available to the general public? Well, once we’re done testing it with our group of enthusiastic 3rd party developers and believe that its ready for prime time. We’re estimating a mid-late January release date. So not long from now
Thanks to everyone who’s been following along so far. If you’d like to join the private beta and think you can help put Pixelwave through its paces, do get in touch!
Pixelwave update
Dec 3rd
It’s been a while since the last post on this blog, so I’d like to break the silence by telling everyone what’s going on with Pixelwave. For the past 8 months we’ve been working on adding some really awesome features to the engine while polishing the existing ones. As you may know already, Pixelwave started out as a private project and is actually being used here daily, which makes development much more efficient.
While the codebase is almost ready to roll out, there are other, less glorious things to do before releasing a framework publicly. Proper documentation and a good website are usually the last things a developer wants to work on, but they are actually the most crucial elements for users looking to get started.
Having been an open-source user for a while I know that the #1 issue with most projects is the lack of documentation. Also, most project websites are out-dated and hard to navigate (not to mention hideous).
We’d like to break the mold here and create a complete package, with useful in-depth content and also great style. Of course, doing things the right way always takes a little longer, so we decided not to rush it too much. I think that you’ll appreciate all of the time we’ve been taking to perfect the framework and the developer resources we’re creating to go along with it.
So to wrap up, at this point all of the major features of the engine have been created and we are in the final stages of deployment where everything gets spit-polished. We are expecting to release Pixelwave as a private beta this month, after-which it will be ready for public release.
Big thanks to everyone who’s been following so far!
Oz
You can expect more updates soon.
360|Flex was… Awesome
Mar 15th
So I’m finally back at work from a week at 360|Flex, San Jose, and like the title suggests, it was great!
Tell us more!
Here’s my little blurb about the conference, in case you weren’t there:
This was my first 360 conference, and I had the honor of speaking there as well. I got to talk a bit about the Pixelwave framework, and give an overview of what a Flash developer may need to know to get started developing native iPhone apps. I also got to show a few demos of the engine in action, and finally demoed our upcoming iPhone game, a re-work of the popular Dino Run Flash game.
So that was nice, but the rest of the conference is what’s probably going to keep me coming in the years to come.
The speakers were good, the parties were fun, the location was cool, but what I probably enjoyed most were the people. I got to meet some really cool developers from all over the world, and make some really great connections. I think the smaller, more intimate atmosphere of this conference is what really sets it apart, allowing people to really spend time together, get to know each other, and build real friendships instead of just exchanging business cards. if you can make it to one of these in the future you should, and come say hi!
Flash Extension: Swap multiple symbols at once
Mar 15th
Every once in a while we come across something in Flash authoring that doesn’t work quite right… For example not being able to select a few symbols and swapping them with a different one from the library.
We can’t blame Adobe for this though since they can’t possibly think of everything, and they gave us the means to extend Flash’s capabilities using JSFL. If you’ve never heard of it, JSFL (Java Script Flash) is a javascript API that can be used to make the Flash authoring do whatever you want programatically.
So we had the need to swap something like 30 symbols on the stage with a different one from the library, and once you select more than one symbol the little ‘Swap’ button in the properties panel gets grayed out. We could select each one and swap it individually, but that would take waay too long… So I wrote a small script to do this, and thought I might as well post it here for everyone to use.

It’s super easy to install, just double click the MassSwap.mxp file and it’ll be added to Flash’s commands list (via the extension manager).
Once you’ve installed it you can use it like so:
Pixelwave at 360|Flex and 360|iDev
Feb 19th
Even though we only officially announced the Pixelwave framework yesterday, our list of beta testers has grown tremendously in the past 24 hours.
It looks like alot of devs are a-twitter about it and I wanted to dedicate a blog post to let everyone know that I’ll be showing off some of the framework’s capabilities at this upcoming 360|Flex conference in March as well as 360|iDev in April.
I’ve heard so many good things about these conferences that I can’t wait to get there and meet all the other like-minded people and pretty much just nerd out about code. If you’ll be there do stop by and say hi (look for Oz Michaeli), it would be nice to meet you anonymous reader.
Everyone has already heard about 360|Flex, but If you’re into iPhone development, and you’ve never been to 360|iDev you should definitely check it out.
360|iDev is like 360|Flex for iPhone developers, and one of the biggest iPhone conference for developers out there. The conferences are run by a bunch of very down-to-earth, fun loving, guys (and gals) who have been awesome so far.
What’s going on at 360|iDev :
- iDev is going to go on from April 11 – April 14 (sunday to wed) in San Jose, CA.
- Currently there are 40 sessions planned, 5 hands-on training sessions, and almost 40 speakers.
- The parties are supposed to be extra awesome (looking forward to appFigures‘), and all the curricular activities will be taking place at the Marriot (and it’s where all the speakers stay), so it’s probably the best place to book for maximum exposure. From what I understand there’ll be a special rate for conference goers: bit.ly/360idevhotel
- It looks like the early-bird tickets are gone, but if you buy your tix with this very special link you’ll be rewarded in heaven (There’s a sort of contest among the speakers for who gets the most people to go)
You can learn all about it at www.360idev.com.
And you can also find me on twitter @oztune.
Say hi to Pixelwave for the iPhone
Feb 17th
Today I’m really excited to introduce something we’ve been working on for quite a while here at Spiralstorm.
It’s called Pixelwave and it’s a complete framework for building 2D games and applications on the iPhone, based completely on the Flash AS3 API.

The idea started around mid-2009 when we realized that there really weren’t any good 2D engines out there for the iPhone that wrap OpenGL ES in a clean, object orientated framework, while running in a really fast, optimized way.
We’ve also been using Flash for ages, and decided to start out by using the same class and function names used in Flash to make our lives easier.
The engine has come a really long way since, actually getting overhauled twice until we had something we’re really happy with.
Our main goals were ease-of-use and optimized rendering. The end result is an optimized C-based core, with an easy to use Objective-C interface.
The framework now replicates a lot of the core functionality of Flash in Objective-C. We chose to go with Objective-C over C or C++ because of it’s inherent similarities to Actionscript 3, at least as far as sharing the same concepts for classes/interfaces/methods in a very clean and simple API.
To keep things as fast as possible though, the engine’s core is built completely in C, and wraps OpenGL very intelligently, doing a lot of optimizations for the user for free.
So when we realized just what an awesome tool this creation has become, we decided we need to share it with the world, and open-source it for everyone!
So lets talk features. Here are the big ones:
- Super optimized OpenGL rendering. You just tell Pixelwave where to draw, it’ll take care of the rest
- Very clean API, following the Flash ActionScript 3.0 framework structure.
- Simple event dispatching model, just like Flash. Event bubbling and capture phase included.
- Handles native iPhone features with style. (ex: Listen to touch events just like you would mouse events in Flash, very intuitive)
- Native vector drawing, using the Graphics class
- TextFields with native or custom fonts.
- One line texture loading, supporting many different texture types
- Simple sound playback
- Very easy to extend the engine’s functionality (if you know OpenGL) by subclassing the DisplayObject
- Plays nice with Cocoa Touch, contained completely within a single UIView
So we know all those features are awesome for general use, but seeing as we are all about creating games we thought we’d also share our useful utility classes specialized for games. Since these aren’t a part of the core engine we grouped them into the PixelKit, a collection of classes for game makers to use with Pixelwave. It’ll all be in the same package, pre-integrated for everyone to enjoy.
Main PixelKit features:
- Resource Manager – An efficient, object-oriented resource manager that can handle any file type + sync/async loading
- Animation Importer – Turn your Flash MovieClips into PixelKit AnimationClips with the PixelKit animation importer and the Flash animation exporter (more on that below)
- Tweening engine – A must for any real app, integrated with PIxelwave
- A Particle System – An optimized particle system for use with Pixelwave
- Physics engine bindings – We like Box2D
The Flash exporting conversion tool is another, completely separate app we’ve been working on for a while. It lets you turn your Flash animations into PixelKit AnimationClips, and control them with commands like gotoAndPlay, gotoAndStop, etc. We’re going to keep this one on the down-low for now, expect more info on this in the future.
This framework shines when it comes to code. Things that would take dozens or hundreds of lines before can be achieved in only a few. Whether you’re familiar with the Flash API or not, this framework provides a clean, easy-to-learn API that just makes sense.
Creating a vector shape:
PXShape *shape = [PXShape new]; [shape.graphics lineStyle: 1]; [shape.graphics drawRect: 0 : 0 : 100 : 100]; shape.x = 50; shape.y = 50; shape.rotation = 45; [self addChild: shape]; [shape release];
Loading and displaying an image:
PXTexture *smiley = [PXTexture textureWithFileName: @"smiley.png"]; [self addChild: smiley];
Listening to an event:
[self addEventListener: PX_TOUCH_EVENT_DOWN listener: PXListener(onSmileyTouch:)];
- (void) onSmileyTouch: (PXTouchEvent *)e{
smiley.x = e.localX;
smiley.y = e.localY;
}
If you’re a Flash developer, we also want to know what you DON’T like about Flash. Yup, we figured if we’re already getting our hands dirty we might as well fix those little nuances that drive us crazy with Flash every day. For example, in AS3 you probably find yourself writing this alot:
sprite.scaleX = sprite.scaleY = 0.5;
Well, in Pixelwave the DisplayObject has an extra, derived property called ‘scale’. Changing scale modifies both the scaleX and scaleY property.
sprite.scale = 0.5;
As you can see we’ve been very busy here at the Spiralstorm offices. We’ve been developing all these tools for internal use, but we think the community can take them to places we’ve never even imagined. Everything will be open-source, I can’t wait to see what will happen.
So please, tell us what you think! We’re nearing the beta testing stage soon.
If you want to help us test all this, please contact us. We’ll keep you updated.
I, (Oz) also have the great honor of speaking at 360|Flex and 360|iDev these upcoming two months, and guess what I’ll be demoing…
If you’re going to be attending 360|Flex or 360|iDev (and you should in any case), come check it out!
We also have a new dedicated site: www.pixelwave.org
Progress update: read more
What happened to the App Store last week?
Feb 9th
I don’t know if you noticed, but the app store was a bit screwy last week.
Reports didn’t come out for a whole day and some ranks changed significantly over very short periods of time.
appFigures dug into their infinite bag of App Store data to shed some light on this.
Check out their informative blog post here



