Opening the iTunes Store.If iTunes doesn't open, click the iTunes application icon in your Dock or on your Windows desktop.Progress Indicator
Opening the iBooks Store.If iBooks doesn't open, click the iBooks app in your Dock.Progress Indicator

iTunes is the world's easiest way to organize and add to your digital media collection.

We are unable to find iTunes on your computer. To buy and download Codea by Two Lives Left, get iTunes now.

Already have iTunes? Click I Have iTunes to open it now.

I Have iTunes Free Download


By Two Lives Left

This app is only available on the App Store for iOS devices.


"It’s kind of like the Garage Band of coding." – Wired

"Codea for iPad is a super slick way to write and run programs on your iPad." – Gizmodo

Codea lets you create games and simulations — or just about any visual idea you have. Turn your thoughts into interactive creations that make use of iPad features like Multi-Touch and the accelerometer.

We think Codea is the most beautiful code editor you'll use, and it's easy. Codea is designed to let you touch your code. Want to change a color, or an image? Tapping will bring up visual editors that let you choose exactly what you want.

Codea is built on the Lua programming language. A simple, elegant language that doesn't rely too much on symbols — a perfect match for iPad.

Here's how you use it: type your code. Press play to watch it run. Interact with it. Get creative.


• A fully featured 2D and 3D renderer
• Lots of great example projects to learn from, including games
• Touch your code: tap colors, images and sounds to adjust them
• Export your finished projects to Xcode to produce real apps
• Complete in-line reference documentation accessible from keyboard
• Intelligent syntax highlighting and auto-completing code editor
• Import your own assets from Dropbox
• Full 2D and 3D physics engines for complex motion
• Add parameters so you can tweak variables at runtime
• Interact with accelerometer and multi-touch on your device
• Generate retro-game sound effects
• GLSL Shader Language support with live shader editor
• Bluetooth keyboard support and keyboard shortcuts
• Air Code: code live from your PC using WiFi
• Much, much more


• Join the forums at to ask questions, share ideas and get help when you need it

• If you would like to help translate Codea into your language please join the translation effort at

• If you need help or wish to get in contact with us, please use the support link on this page

What's New in Version 2.5.1

Check below to see if your favorite bug has been fixed

• Craft project templates now add your project name to the top of the file. How else would you know which project you were editing? You wouldn't, that's how.

• The dark editor theme background color got messed up. You sent many complaints. We fixed it so your eyes can rest easy

• Importing projects crashed Codea. Due to careless last-minute feature adding. Was it us? Who knows, maybe

• Fixes the search results randomly dismissing in the full screen reference view. Man that was annoying

• The search keyboard in the in-project documentation now matches the selected editor theme. Yay, consistency

• Air Code was crashy. Especially with physics code. It's less crashy now. Especially with physics code

• Air Code works with your craft projects

• repeat ... until loops now indent correctly. Someone reported this. You know who you are

• The code editor should be faster to catch up to your code for indentation and autocomplete

• When duplicating a project that used a non-square icon image the image would bleed past the edges of the view. Not anymore. We put a stop to that

• When duplicating a project we showed the project template selector. Why? Who knows. We shouldn't have. Now we don't

• Codea will no longer export the "Inbox" folder when exporting all projects

• Craft didn't run on 32-bit devices. It does now and we are sooo sorry. Not really that sorry, I mean bugs happen sometimes. Don't hold us accountable*. It's fixed now anyway stop complaining

• Changed the default constructor for quat to (1,0,0,0) and its toString() prints (w,x,y,z) instead of (x,y,z,w). If you know what this means then please tell us.

• Added normalize(), normalized(), len(), lenSqr() and conjugate() methods to quat. Bet you didn't see that coming.

* You should probably hold us accountable for bugs

iPad Screenshots

iPad Screenshot 1
iPad Screenshot 2
iPad Screenshot 3
iPad Screenshot 4
iPad Screenshot 5

Customer Reviews

Makes you fall in love with your iPad all over again

I have encountered a few apps which are so brilliant, so innovative, and so intellectually stimulating that the single app, would be worth having an iPad for. This is one of them.
Of course, this only applies if you have an interest and curiosity about how the iPad actually works, and what is possible with it, plus some ability to write at least simple code, and the willingness to dedicate a little time to learning something new. If so, you will be amply rewarded.

The focus is on game programming, but Codea easily extends itself to simulations and other uses.

You need to know, or learn, a little bit about the Lua programming language, but that is really part of the fun here -Lua is a wonderful elegant language that all programmers should know a bit about.

Codea is stable, well documented, and supported by an enthusiastic community. Well worth the small cost, simply to experience the practical power of being able to program the iPad on itself, rather than indirectly (through Xcode).

Hope this is useful to those considering whether to take the plunge. Have fun!


9.3.5 has game hole inversion going on in craftkit. Here is your quat.
function Q.EulerToQuat(p, y, r,deg)
if deg then p,y,r=math.rad(p),math.rad(y),math.rad(r) end
-- compute all trigonometric values used to compute the quaternion
local cp = math.cos(p/2)
local cy = math.cos(y/2)
local cr = math.cos(r/2)

local sp = math.sin(p/2)
local sy = math.sin(y/2)
local sr = math.sin(r/2)

local cycr = cy * cr
local sysr = sy * sr

-- combine values to generate the vector and scalar for the quaternion
local w = cp * cycr + sp * sysr
local x = sp * cycr - cp * sysr
local y = cp * sy * cr + sp * cy * sr
local z = cp * cy * sr - sp * sy * cr
return vec4(w,x,y,z):normalize()

function Q.Multiply(q1,q2,dontNormalise)
local w1,x1,y1,z1=q1.x,q1.y,q1.z,q1.w
local w2,x2,y2,z2=q2.x,q2.y,q2.z,q2.w
local w = w1*w2 - x1*x2 - y1*y2 - z1*z2
local x = w1*x2 + x1*w2 + y1*z2 - z1*y2
local y = w1*y2 - x1*z2 + y1*w2 + z1*x2
local z = w1*z2 + x1*y2 - y1*x2 + z1*w2
local v=vec4(w,x,y,z)
if dontNormalise then return v else return v:normalize() end

function Q.QToMatrix(px,py,pz,q)
-- calculate coefficients used for building the matrix
local w,x,y,z=q.x,q.y,q.z,q.w
local x2,y2,z2 = x + x,y + y,z + z
local xx,xy,xz = x * x2,x * y2,x * z2
local yy,yz,zz = y * y2,y * z2,z * z2
local wx,wy,wz = w * x2,w * y2,w * z2
-- fill in matrix positions with them
return matrix(1-(yy+zz),xy-wz,xz+wy,0,

View in iTunes
  • $14.99
  • Category: Productivity
  • Updated:
  • Version: 2.5.1
  • Size: 139 MB
  • Languages: English, Catalan, Dutch, French, German, Italian, Japanese, Portuguese, Russian, Simplified Chinese, Slovak, Spanish
  • Seller:

Compatibility: Requires iOS 9.3 or later. Compatible with iPad.

Customer Ratings

Current Version:
All Versions: