AppCorpus
Market US

RubySketch - Graphics & Games

by Noritaka Suzuki

iPhone · iPad

Active Last checked 6 Aug 2026

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

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

RubySketch - Graphics & Games ipad screenshot 1
RubySketch - Graphics & Games ipad screenshot 2
RubySketch - Graphics & Games ipad screenshot 3
RubySketch - Graphics & Games ipad screenshot 4

Pricing & paywalls

App Store

  • Remove Ads — $9.99

Ratings & reviews

App Store

4.7 24 ratings · App Store

  1. 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

  2. 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

  3. 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. 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

Availability by market

Data quality & evidence

Page completeness
Live store listing
Last verified
6 Aug 2026
Sources
App Store

Report a correction