RubySketch - Processing互換の開発環‪境‬ 4+

Ruby でプログラミングを楽しも‪う‬

Noritaka Suzuki

iPad対応

    • 無料
    • アプリ内課金があります

スクリーンショット

説明

RubySketch はフクオカRuby大賞2022にて優秀賞を受賞した、手軽にグラフィックスプログラミングを楽しむためのアプリです。

アプリにフルセットの Ruby インタプリター(CRuby)と簡単なテキストエディターを含んでいますので、Ruby スクリプトを編集して直接実行することができます。

またクリエイティブコーディング環境として有名な Processing とほぼ互換の API も組み込んでありますので、iPhone や iPad でいつでもどこでも気軽にグラフィックスプログラミングをすることができます。

主要な機能
- 組み込みの Ruby インタープリター(CRuby / MRI)
- シェーダーも利用可能な Processing 互換のグラフィックス API
- カーソル移動が苦にならない組み込みのテキストエディター
- 物理演算可能なスプライト機能
- カメラからの画像入力
- サウンドの再生
- 簡単なゲームも含めた多数のサンプルスクリプトを同梱

以下は、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

新機能

バージョン 2.10

- Rubyアソシエーション開発助成金の支援を受け、以下の関数とクラスを追加しました
- 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 クラス
- クラスやメソッドのリファレンスに Processing/p5.js の同ドキュメントへのリンクを追加しました
- 互換性向上のため noise() を再実装しました
- scale() に第3引数として z を渡せるようになりました
- loadImage() がエラー時に OpenURI::HTTPError ではなく Net::HTTPClientException を raise するようになりました
- pushStyle()/popStyle() が colorMode、angleMode、blendMode を正しく管理できていなかったので修正しました

評価とレビュー

4.8/5
123件の評価

123件の評価

ひーくん0909

サンプルが豊富で今後に期待

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

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

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

デベロッパの回答

ひーくん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')

空豆マン

神アプリ

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

Sugarware

Processingユーザーには馴染みやすいです

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

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

デベロッパの回答

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

アプリのプライバシー

デベロッパである"Noritaka Suzuki"は、アプリのプライバシー慣行に、以下のデータの取り扱いが含まれる可能性があることを示しました。詳しくは、デベロッパプライバシーポリシーを参照してください。

ユーザのトラッキングに使用されるデータ

次のデータは、他社のアプリやWebサイト間でユーザをトラッキングする目的で使用される場合があります:

  • 位置情報
  • ID
  • 使用状況データ
  • 診断

ユーザに関連付けられたデータ

次のデータは収集され、ユーザの識別情報に関連付けられる場合があります:

  • 位置情報
  • ID
  • 使用状況データ
  • 診断

ユーザに関連付けられないデータ

次のデータは収集される場合がありますが、ユーザの識別情報には関連付けられません:

  • 診断

プライバシー慣行は、ご利用の機能やお客様の年齢などに応じて異なる場合があります。詳しい情報

このデベロッパのその他のアプリ

他のおすすめ

Rubyist - Ruby Scripting
開発ツール
Processing & p5.js iCompiler
開発ツール
LispPad Go
開発ツール
Flutter大学
開発ツール
ZIGCAM
開発ツール
C++ Recipes
開発ツール