# RubySketch - Graphics & Games — Enjoy coding with Processing!

> Mobile Ruby interpreter and graphics API for creative coding. (iPhone/iPad app by Noritaka Suzuki.)

- Source: https://appshunter.io/ios/app/rubysketch-graphics-and-games/id1491477639 (this page in markdown: same URL + `.md`)
- Developer: [Noritaka Suzuki](https://appshunter.io/developer/1491477638)
- Category: Developer Tools, Graphics & Design
- Price: Free with in-app purchases
- Rating: 4.70/5 from 24 App Store ratings · 11 written reviews indexed
- Age rating: 4+
- Requires: iOS 16.0 · 82 MB
- Languages: American English, Japanese
- Released: 2020-11-06
- Data updated: 2026-08-24
- Monetization: free with in-app purchases
- User reviews in markdown: https://appshunter.io/ios/app/rubysketch-graphics-and-games/id1491477639/reviews.md

## What is RubySketch?

This app includes Ruby language interpreter known as CRuby or MRI (Matz Ruby Implementation) and a simple text editor.
So you can edit and run a ruby script.

It also has an API that is almost compatible with Processing that is well known as a Creative Coding framework.
So you can enjoy graphics programming on your iPhone or iPad.

Key Features
- Built-in Ruby interpreter (CRuby / MRI)
- Processing-compatible graphics API with shaders available
- Built-in text editor that makes moving the cursor painless
- Physics-capable sprites
- Image input from camera
- Sound playback
- Includes many sample scripts, including simple games

This is a list of functions implemented to be compatible with the Processing API.
---
abs, acos, alpha, angleMode, applyMatrix, arc, asin, atan, atan2, background, beginContour, beginShape, bezier, bezierDetail, bezierPoint, bezierTangent, bezierVertex, blend, blendMode, blue, brightness, ceil, circle, clear, clip, color, colorMode, constrain, copy, cos, createCanvas, createCapture, createFont, createGraphics, createImage, createShader, createShape, createVector, curve, curveDetail, curvePoint, curveTangent, curveTightness, curveVertex, degrees, deltaTime, displayDensity, displayHeight, displayWidth, dist, doubleClicked, draw, ellipse, ellipseMode, endContour, endShape, exp, fill, filter, floor, focused, frameCount, frameRate, fullScreen, fullscreen, green, height, hue, image, imageMode, key, keyCode, keyIsDown, keyIsPressed, keyPressed, keyReleased, keyTyped, lerp, lerpColor, line, loadFont, loadImage, loadPixels, loadShader, log, loop, mag, map, max, min, motion, motionGravity, mouseButton, mouseClicked, mouseDragged, mouseMoved, mousePressed, mouseReleased, mouseWheel, mouseX, mouseY, noClip, noFill, noLoop, noSmooth, noStroke, noTint, noise, noiseDetail, noiseSeed, norm, pixelDensity, pixelHeight, pixelWidth, pixels, pmouseX, pmouseY, point, pop, popMatrix, popStyle, pow, printMatrix, push, pushMatrix, pushStyle, quad, quadraticVertex, radians, random, randomGaussian, randomSeed, rect, rectMode, red, redraw, renderMode, requestImage, resetMatrix, resetShader, rotate, rotateX, rotateY, rotateZ, round, saturation, save, scale, setTitle, setup, shader, shape, shapeMode, shearX, shearY, sin, size, smooth, sq, sqrt, square, stroke, strokeCap, strokeJoin, strokeWeight, tan, text, textAlign, textAscent, textDescent, textFont, textLeading, textSize, textWidth, texture, textureMode, textureWrap, tint, touchEnded, touchMoved, touchStarted, touches, translate, triangle, updatePixels, vertex, width, windowHeight, windowMove, windowMoved, windowOrientation, windowResizable, windowResize, windowResized, windowWidth, windowX, windowY

## Key features

- Built-in Ruby interpreter (CRuby/MRI)
- Processing-compatible graphics API
- Text editor with easy cursor movement
- Physics-capable sprites
- Image input from camera
- Sound playback
- Sample scripts and games

## Pricing and in-app purchases

Base price: Free.

**One-time purchases**

| Purchase | Price | Type |
| --- | --- | --- |
| Remove Ads | $9.99 | one-time |


## Recent user reviews (10 of 11)

All indexed reviews: https://appshunter.io/ios/app/rubysketch-graphics-and-games/id1491477639/reviews.md

### 4/5 — Good I guess :)

*2026-07-14*

So uhh I saw this app and it's a good idea it's just not letting me run the scripts before  show except the require 'ruby2d' after I do something and pls make graphics more fitting and add a dark mode

### 5/5 — This is great fun!!!

*2025-09-06*

Not only do I get to learn Ruby (finally after a gazillion years of putting it off), I can be creative with it. Yay developer!!

**Developer response:** Thanks a lot! I'm really glad you're having fun with the app!

### 5/5 — ポケットに収まるRuby学習環境として活用中です！

*2025-03-25*

タイトルの通りポケットに収まるRuby学習環境として活用させて頂いております。
文字サイズやエディタのテーマを選択できれば尚良いと思いました。
またpure rubyなgemをインストールできる仕組みがあれば活用の幅が広がると思います。

**Developer response:** nizuki926 さん、レビューありがとうございます！
v2.11 で文字サイズの変更に対応いたしましたのでぜひお試しください 😀

### 5/5 — 通勤電車の中でRubyが楽して嬉しいです

*2025-03-15*

PCが持ち歩かなくてもiPhoneでRubyを楽しめるのがとても嬉しいです。嬉しすぎて、逆に開発者さんで困っていることはないだろうかと思ったりします（非力ですけど）。
要望としては、エラーメッセとの戦いで、リストに行番号をオン、オフできればもっともっとありがたいと思っています。わがままごめんなさい。

**Developer response:** MIN0_MacBookPro さんレビューありがとうございます！
v2.11 で行番号表示に対応しましたのでぜひお試しください 😀

### 5/5 — サンプルが豊富で今後に期待

*2024-03-01*

テキストエディタ周りの機能に今後のアプデを期待しています。

特に行数表示やコードの補完が是非欲しいです。

あと、ソリティアのサンプルコードにjsonやyml、pngなどの画像があったのですが、自分のプロジェクトにそれらを配置するにはどうしたら良いでしょう💦

**Developer response:** ひーくん0909さん、レビューと要望ありがとうございます！
ご期待に応えられるよう、今後も機能追加や改修を続けてまいります！
（ですがなにぶんひとりで開発しているアプリですので、気長にお待ちいただけますとありがたいです）

ちなみに現バージョンでも、手間はかかりますが以下のスクリプトをアプリ内で実行すれば（ちょっと無理やりですが）それぞれのファイルを作成することはできますのでご参考まで。

.json ファイル
> require 'json'
> File.write('foo.json', {a: 1, b: 2}.to_json)

.yml ファイル
> require 'yaml'
> File.write('bar.yml', {x: 8, y: 9}.to_yaml)

.png ファイル
> icon = loadImage('https://xord.org/rubysketch/images/rubysketch128.png')
> icon.save('icon.png')

### 5/5 — Brilliant

*2023-07-23*

RubySketch is excellent! Really powerful, easy to use, with lots of helpful example programs to get you started. Ad free version is great, well worth the price.

**Developer response:** Thanks for your great review comment!
The full screen mode was made for you. We are glad you enjoyed it😁

PS: Ads can now be removed in version 2.7, please try it! 😄

### 5/5 — How do I get rid of ads?

*2023-05-27*

Couldn’t find any explanation of this. Is it possible? The ads spoil the visuals.

**Developer response:** Thank you for your review, we appreciate it!
We do have plans to add an in-app purchase feature to remove ads, but it will take a little longer to implement.
By the way, have you tried the full-screen button in the upper right corner of the execution screen? It maximizes the display and hides ads, so if you haven't tried it yet, using the full-screen button may meet your expectations 🙂

PS: Ads can now be removed in version 2.7, please try it! 😄

### 5/5 — 神アプリ

*2023-05-20*

こーゆーのが欲しかった。
今後の展開に大期待。

### 4/5 — Good for what it is, but so close to something greater

*2023-01-24*

The editor and canvas for doing ruby graphic programming is quite good, I haven't run into any issues with it...

What I wish is that it went a little further - If we could edit the markdown, and have the code update the page, it would be a really solid ruby programmers notebook akin to Carnets or Jupyter, something I have been eagerly searching for.

### 4/5 — Processingユーザーには馴染みやすいです

*2022-12-22*

Shaderサポートが待ち遠しいです

2022/12/22追記
Ver2.2でサポートされたとの事、試してみます！

**Developer response:** Sugarware さん、レビューありがとうございます！
バージョン 2.2 で Shader をサポートいたしましたので是非使ってみてください😁

## Frequently asked questions about RubySketch

### What is RubySketch?

RubySketch is a mobile application that includes a Ruby language interpreter (CRuby/MRI) and a text editor, enabling users to write and execute Ruby scripts. It also offers a graphics API similar to Processing for creative coding on iOS devices.

### Does RubySketch have ads?

Yes, RubySketch contains advertisements. As a free application with in-app purchases, ads are integrated to support its development and availability.

### What devices does RubySketch support?

RubySketch is supported on iPhone, iPad, and iPod devices. It is designed to run on iOS operating systems.

### How often is RubySketch updated?

RubySketch was last updated on May 19, 2026, with version 2.12. This indicates a history of updates, though the exact frequency can vary.

### Can I create games with RubySketch?

Yes, RubySketch includes features like physics-capable sprites and a graphics API that allow for the creation of simple games. It also comes with sample game scripts to get you started.

### What is the age rating for RubySketch?

RubySketch has an age rating of 4+. This suggests it is suitable for a wide range of users, including younger individuals, for educational and creative purposes.

### Is RubySketch free to use?

RubySketch is free to download and use. It offers in-app purchases, which may unlock additional features or content.

### What programming language does RubySketch use?

RubySketch primarily uses the Ruby programming language, also known as CRuby or MRI (Matz Ruby Implementation). It also provides an API compatible with Processing for graphics.

## Version history (last 5 releases)

### 2.12 — 2026-05-19

- Updated Ruby version to 4.0.4
- Significantly improved drawing performance
  - Up to 5x faster when drawing with a fixed texture or shader
- Added MML (Music Macro Language) support
  - Supports tempo, note length, octave, tone, loops, ties, portamento, transpose, detune, and more
  - Added Examples/Basics/19_MML.md
- Added mouse and keyboard event support on iOS/iPadOS
- Renamed Sprite#gravity_scale to Sprite#gravityScale
- Fixed an issue where the coordinates of touch UP events could be shifted
- Improved audio dropout prevention during Sound streaming playback

### 2.11 — 2025-07-12

- Added "Font Size" menu
- Added "Line Numbers" menu
- Added SpriteWorld class
- Added Vector#-@
- Added functions
  - keyIsRepeat
  - loadShape()
- Added methods to Shape class
  - stroke
  - setStroke
  - setStrokeWeight
  - setStrokeCap
  - setStrokeJoin
- Added methods to Sprite class
  - keyPressed
  - keyReleased
  - keyTyped
  - key
  - keyCode
  - keyIsPressed
  - keyIsDown
  - keyIsRepeated
  - capture=
  - capturing?
  - sensor=
  - sensor?
  - gravity_scale
- Updated Ruby version from 3.2.2 to 3.3.8
- ellipse() can take 3 parameters
- Rename the join type 'SQUARE' to 'BEVEL'
- createSprite can take 'klass' parameter
- Sprite#hide returns self
- Fixed the issue where Sprite#contactEnd is not working
- Fixed a bug in which the display magnification was fixed at 1x when the size specified by size() was different from the window size and the aspect ratio of both windows was the same
- Fixed that circle() and ellipse() had half diameters

### 2.10 — 2024-02-18

- With the support of the Ruby Association Development Grant, the following functions and class have been added
  - createShape()
  - shape()
  - shapeMode()
  - beginShape()
  - endShape()
  - beginContour()
  - endContour()
  - vertex()
  - curveVertex()
  - bezierVertex()
  - quadraticVertex()
  - texture()
  - textureMode()
  - textureWrap()
  - loadPixels()
  - updatePixels()
  - pixels()
  - textLeading()
  - createFont()
  - loadFont()
  - requestImage()
  - curveDetail()
  - curvePoint()
  - curveTangent()
  - curveTightness()
  - bezierDetail()
  - bezierPoint()
  - bezierTangent()
  - rotateX()
  - rotateY()
  - rotateZ()
  - shearX()
  - shearY()
  - applyMatrix()
  - printMatrix()
  - deltaTime
  - hue()
  - saturation()
  - brightness()
  - noiseSeed()
  - noiseDetail()
  - randomSeed()
  - randomGaussian()
  - fullscreen() (fullScreen())
  - smooth()
  - noSmooth()
  - keyIsDown()
  - keyIsPressed()
  - mouseWheel()
  - doubleClicked()
  - Font.list()
  - Graphics#clear()
  - Graphics#save()
  - Shape class
- Added links to the Processing/p5.js documentation in the class and method references
- Added Discord invite link for user support
- Reimplement the noise() for better compatibility
- scale() can take z parameter
- loadImage() raises Net::HTTPClientException instead of OpenURI::HTTPError
- Fixed that pushStyle()/popStyle() did not correctly manage colorMode, angleMode, and blendMode
- Fixed that Ruby documentation is in Japanese

### 2.9 — 2023-07-30

- require(), require_relative(), and load() support loading user-created script files
- Manage the folder containing the project.yml file as a project
- Added windowOrientation() function to limit screen rotation
- Added the entire source code of RubySolitaire, which is published as a stand-alone app in AppStore, to Apps/RubySolitaire
- Added Examples/Physics.rb

### 2.8.1 — 2023-07-26

- Fixed a bug that caused the app to crash when an exception occurred in a block set by the following Sprite class methods
  - update()
  - mousePressed()
  - mouseReleased()
  - mouseMoved()
  - mouseDragged()
  - mouseClicked()
  - touchStarted()
  - touchEnded()
  - touchMoved()
  - contact()
  - contact?()

## Apps similar to RubySketch

| App | Rating | Price | Category |
| --- | --- | --- | --- |
| [pythoni2.7-run python code](https://appshunter.io/ios/app/pythoni27-run-python-code/id576107879) | 4.4 (49) | Free | Developer Tools |
| [ChameleonTiny Manager](https://appshunter.io/ios/app/chameleontiny-manager/id1601341565) | 5.0 (3) | Free | Developer Tools |
| [Ruby IDE Fresh Edition](https://appshunter.io/ios/app/ruby-ide-fresh-edition/id1397407513) | 4.4 (16) | Free | Developer Tools |
| [ShaderVF](https://appshunter.io/ios/app/shadervf/id6455175455) | 5.0 (2) | Free | Developer Tools |
| [LispPad Go](https://appshunter.io/ios/app/lisppad-go/id1565747728) | 4.9 (36) | Free | Developer Tools |
| [Shaderly - GLSL Shader Editor](https://appshunter.io/ios/app/shaderly-glsl-shader-editor/id1629234249) | 4.4 (8) | Free | Developer Tools |

## More apps by Noritaka Suzuki

- [RubySolitaire - Klondike](https://appshunter.io/ios/app/rubysolitaire-klondike/id6450155271)

All apps by Noritaka Suzuki: https://appshunter.io/developer/1491477638

---

*Data collected daily from the US App Store and indexed by [AppsHunter](https://appshunter.io/). User reviews are verbatim App Store reviews. Ratings, prices and chart positions refresh continuously; this snapshot is from 2026-08-24.*
