Quick verdict
- What it is
- Store information collected; independent summary not yet available.
- At a glance
-
- Free to download
- In-app purchases
Categories and search queries
Official categories
- Developer Tools
- Graphics & Design
AppCorpus categories
Key functions
| Function | Availability | Access | Scope | Evidence |
|---|---|---|---|---|
| Free app | Yes | Free | — | Store published |
| In-app purchases | Yes | Limited free | — | Store published |
Screens
App Store
6 store screenshots
Pricing & paywalls
App Store
- Remove Ads — $9.99
Ratings & reviews
App Store
-
5/5This is great fun!!!
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!!
Its That End User Again · 6 Aug 2026
-
4/5Good I guess :)
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
I am a ruby dev · 6 Aug 2026
-
5/5How do I get rid of ads?
Couldn’t find any explanation of this. Is it possible? The ads spoil the visuals.
dokoissho · 6 Aug 2026
-
4/5Good for what it is, but so close to something greater
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.
Kris Browne · 6 Aug 2026
Privacy & accessibility
App Store
Privacy
- Data Linked to You — Third-Party Advertising — Diagnostics — Performance Data Developer declared
- Data Linked to You — Third-Party Advertising — Identifiers — Device ID Developer declared
- Data Linked to You — Third-Party Advertising — Location — Coarse Location Developer declared
- Data Linked to You — Third-Party Advertising — Usage Data — Advertising Data Developer declared
- Data Linked to You — Third-Party Advertising — Usage Data — Product Interaction Developer declared
- Data Linked to You — Diagnostics Developer declared
- Data Linked to You — Identifiers Developer declared
- Data Linked to You — Location Developer declared
- Data Linked to You — Usage Data Developer declared
- Data Not Linked to You — Third-Party Advertising — Diagnostics — Crash Data Developer declared
- Data Not Linked to You — Diagnostics Developer declared
- Data Used to Track You — Diagnostics — Crash Data Developer declared
- Data Used to Track You — Diagnostics — Performance Data Developer declared
- Data Used to Track You — Diagnostics Developer declared
- Data Used to Track You — Identifiers — Device ID Developer declared
- Data Used to Track You — Identifiers Developer declared
- Data Used to Track You — Location — Coarse Location Developer declared
- Data Used to Track You — Location Developer declared
- Data Used to Track You — Usage Data — Advertising Data Developer declared
- Data Used to Track You — Usage Data — Product Interaction Developer declared
- Data Used to Track You — Usage Data Developer declared
Accessibility
No accessibility labels collected yet.
Versions
App Store
-
1.1
- add Capture class - add Examples/DelayCamera.rb
-
1.10
- The built-in CRuby interpreter has been updated to the latest version 3.1.2 - Changed script formatter from RuFo to RuboCop - Added RandomWalkTriangles.rb as a sample script - Fixed the black background of the title bar
-
1.2
- add size(), createCanvas() and pixelDensity() Processing functions - set strokeWeight to 1 by default for better compatibility with the Processing - add 'Feedback & Support' menu - add 'Rate This App' menu - fix error on loadImage()
-
1.3
- The version of the built-in Ruby interpreter has been updated from 2.6.6 to 2.7.2. New pattern-matching syntax is now available. Like this. ------------------- case {a: 1, b: 2} in {a:} p a #=> 1 end
-
1.4
- The version of the built-in Ruby interpreter has been updated from 2.7.2 to 3.0.1. Endless method definition is added. Like this. ------------------- def square(x) = x * x
-
1.5
- Added virtual game pad - Added keyPressed, keyTyped and keyReleased functions to receive virtual game pad inputs - Disable swipe back gesture on running script screen - Fix app launch crach on Apple Silicon Mac
-
1.6
- Added Shooter.rb (a shooting game) and SameGame.rb (a puzzle game) as sample scripts
-
1.7
- Added Flappy.rb (a FlappyBird clone game) as sample script - Improved the efficiency of the adjacent block acquisition process of SameGame.rb
-
1.8
- The built-in CRuby interpreter has been updated to the latest version 3.0.3 - Improved the operability of virtual keys (gamepad) - Fixed a bug that caused virtual keys to be held down in certain situations - Added MineSweeper.rb as a sample script
-
1.9
- The built-in CRuby interpreter has been updated to the latest version 3.1.0 - Added Solitaire.rb as a sample script
-
2.0
- Rebuilt all user interface with SwiftUI - Fixed many memory leaks # File List Screen - Added delete file(s) button - Added move file(s) button # Text Editor Screen - Added new caret moving interface - Added undo/redo buttons # Interpreter Screen - Added full-screen button - The console no longer hidden in landscape mode # App Menu - Added a link to the Ruby reference manual
-
2.1
Text Editor Screen - Improved stability of cursor operation - Added cut, copy, and paste buttons - Added button to start text selection - Hide undo, redo, cut, and copy buttons on iPad Processing compatible API - Added these functions: mouseClicked(), blendMode(), blend(), createImage(), save(), clip(), noClick(), tint(), noTint(), setTitle() - image() function is no longer affected by the value of fill() - circle() function is now affected by ellipseMode() - Changed how to draw point by point() function - strokeCap() and strokeJoin() initial values were changed to ROUND and MITER Others - Added Examples/BrightBrush.rb as an example of using blendMode() - The parent directory of the script file is now the current directory when the script is executed - Fixed a problem that consumed excessive memory when rotating the screen - Fixed a bug that could cause undo history to disappear when automatic script formatting was applied
-
2.10
- 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.11
- 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.12
· 19 May 2026
- 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.2
- Added Shader class - Added these functions - shader() - resetShader() - createShader() - loadShader() - filter() - Added Examples/Basics/13_Shader.md that briefly explains how to use Shader class - Added Examples/FilterCamera.rb sample script using filter() function - BUTT and SQUARE were reversed and have been corrected - Rename BUTT to PROJECT to match the original Processing - Improved text rendering quality - setUniform() can also take an array of numbers, a vector, and a texture image - pushStyle() manages states of textAlign, tint, and filter - Fixed a bug that pop/popMatrix/popStyle could not be called in certain situations when a block was passed to push/pushMatrix/pushStyle
-
2.3
- Fixed some issues when running on iOS 16
-
2.4
Ruby version updated from 3.1.2 to 3.1.3.
-
2.5
- Ruby version updated from 3.1.3 to 3.2.0 - GC.enable() is called when script execution completes - Added DuelystUnits.rb as sample script - Fixed a bug that prevented the API reference from being displayed
-
2.6
- Added Sprite class - Added 'Examples/Basics/14_Sprite.md' that briefly explains how to use Sprite class - Class list and method list are added to the menu - Ruby version updated from 3.2.0 to 3.2.2
-
2.7
- Added Examples/DrumPad.rb - Added docs for event handling to Examples/Basics/14_Sprite.md - Added Examples/Basics/15_Physics.md - Added Examples/Basics/16_Sound.md - Added a menu to create new markdown file - Added a menu for setting automatic source code formatting - Added In-App Purchase for removing ads - Added RubySolitaire link - Added functions - red() - green() - blue() - alpha() - color() - lerpColor() - loadSound() - focused() - windowResized() - Added Sound class - Added set() and get() to Image class - Added methods to Sprite class - draw() - mousePressed() - mouseReleased() - mouseMoved() - mouseDragged() - mouseClicked() - touchStarted() - touchEnded() - touchMoved() - show() - hide() - hidden?() - fixAngle() - angleFixed?() - clickCount() - fromScreen() - toScreen() - Added accessors to Sprite class - left - top - right - bottom - center - offset - angle - pivot - The execution screen hides the status bar when full screen - createGraphics() can take pixelDensity parameter - copy() and blend() now work with tint color - colorMode(), angleMode(), and blendMode() returns current mode value - pushMatrix(), pushStyle(), and push() return the result of the expression at the end of the block when a block given - pushStyle()/popStyle() do not manage filter state - mousePressed(), mouseReleased(), mouseMoved(), mouseDragged(), and mouseClicked() ignore multiple touches - Shader class can take shadertoy frament shader source - Fixed a case of crash during initialization process at app startup - Fixed that Vector.random2D() did not work correctly when angleMode() is set to DEGREES - Fixed that calling mousePressed() without block removes mousePressed block
-
2.7.1
- Fixed an issue where both the console background color and text color on the script execution screen were displayed in same white color when using dark mode - The borders of the Undo and other buttons on the text edit screen were making it difficult to see the body of the text, so they have been made translucent
-
2.8
- Added these functions - setTimeout() - setInterval() - clearTimer() - clearTimeout() (aliased to clearTimer()) - clearInterval() (aliased to clearTimer()) - animate() - animateValue() - Added a button to show/hide the console on the execution screen - Maximize button added to console on execution screen - Improved touch area for full screen cancel button - Added Examples/Basics/17_Timer.md - Added Examples/Basics/18_Animation.md
-
2.8.1
- 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?()
-
2.9
- 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
Alternatives
- Rubyist - Ruby Scripting — Same category + similar ratings
- Shaderly - GLSL Shader Editor — Same category + similar ratings
- LispPad Go — Same category + similar ratings
- Code Analyzer — Same category + similar ratings
- CodeMaster - Mobile Coding IDE — Same category + similar ratings
Availability by market
- US
Data quality & evidence
- Page completeness
- Live store listing
- Last verified
- 6 Aug 2026
- Sources
- App Store
- Independent summary has not been published yet.