Upgrade to Pro — share decks privately, control downloads, hide ads and more …

p5.jsを使ったクリエイティブコーディングに機械学習やデバイス連携などを組み合わせている話 / Creative Coding作品の周辺を語る会 03

p5.jsを使ったクリエイティブコーディングに機械学習やデバイス連携などを組み合わせている話 / Creative Coding作品の周辺を語る会 03

you(@youtoy)

December 18, 2022
Tweet

More Decks by you(@youtoy)

Other Decks in Technology

Transcript

  1. p5.jsを使ったクリエイティブコーディングに
    機械学習やデバイス連携などを組み合わせている話
    2022年12月18日 (日)
    Creative Coding作品の周辺を語る会 03 @オンライン
    豊田陽介( )
    @youtoy

    View Slide

  2. 自己紹介
    豊田陽介( )
    @youtoy
    ・IT系イベント主催、登壇や運営なども
    ・子ども向けの活動いろいろ
    ・ Microsoft MVP(2021/10 から)
    プライベートでの活動
    ・ガジェット大好き
    ・今年、本2冊出したり、メーカーフェア出展3回
    好きなことなど
    3月発売
    (共著)
    7月発売
    (単著)

    View Slide

  3. p5.js と組み合わせている、
    p5.js以外のライブラリやモノ

    View Slide

  4. 「画面の中」と「画面の外」
    がつながる話

    View Slide

  5. 自己紹介に出てきたものでも機械学習の話が
    豊田陽介( )
    @youtoy
    ・IT系イベント主催、登壇や運営なども
    ・子ども向けの活動いろいろ
    ・ Microsoft MVP(2021/10 から)
    プライベートでの活動
    ・ガジェット大好き
    ・今年、本2冊出したり、メーカーフェア出展3回
    好きなことなど
    3月発売
    (共著)
    7月発売
    (単著)
    ブラウザ上でできる機械学習
    と「p5.js」の話など
    ビジュアルプログラミング
    + IoT の作例を執筆

    View Slide

  6. 自己紹介に出てきたものでモノとつながる話
    豊田陽介( )
    @youtoy
    ・IT系イベント主催、登壇や運営なども
    ・子ども向けの活動いろいろ
    ・ Microsoft MVP(2021/10 から)
    プライベートでの活動
    ・ガジェット大好き
    ・今年、本2冊出したり、メーカーフェア出展3回
    好きなことなど
    3月発売
    (共著)
    7月発売
    (単著)
    仙台での展示(途中):
    センサー + ロボットトイ
    +α の組み合わせ
    最終的には、画面描
    画でなくマット上に
    プロジェクション

    View Slide

  7. p5.jsの描画に人・ロボットトイの動きが影響
    p5.js公式サンプルの
    「Kaleidoscope」の
    入力や描画の色などを
    変更
    ■ マウス操作の軌跡
      を入力にする部分
    ⇒ ランダムに動く
     ロボットトイの軌跡に
    (センサーで手が近づく
     のを認識して、動き
     の規則を変えたりも)

    View Slide

  8. 大垣のイベント出展の際に
    「透明マント・光学迷彩の人
    ですよね」と言われる

    View Slide

  9. 画面内の描画と画面外の人の動きがつながる
    p5.js の描画に「MediaPipe Hands」という仕組みを組み合わせ

    View Slide

  10. 思いついたことを
    作って試すのが好きです
    (そして SNS などで共有したり)

    View Slide

  11. p5.js を使おうと思ったきっかけ:
    とある機械学習の仕組みの
    サンプルコードで出てきた

    View Slide

  12. つくばでのイベント出展準備で触れた技術
    ブラウザ上で「画像・音・ポーズ(人の姿勢)」
    を対象にした機械学習モデルが作成できたりする
    「Teachable Machine」
    の公式実装サンプルの中で登場

    View Slide

  13. 描画ではない部分でp5.js(+α)が使われる形
    ■制作途中のものの動画
    異なる音色・音の鳴らし方
    を学習(鳴らす楽器類は
    ダイソーで安く仕入れた)
    機械学習モデルを使い、
    音によってロボットトイの
    動きを変える仕組みを作成

    View Slide

  14. この時も大人から子どもまでを対象に
    物品選定や体験を設計、小さい子にも楽しんでもらえた!

    View Slide

  15. この後も技術の話ではなく
    事例集的な話が続きます

    View Slide

  16. ハーフミラーを使った
    スマートミラー的なもの

    View Slide

  17. ハーフミラーの後ろでp5.jsの描画
    ハーフミラーの後ろに
    モバイルディスプレイなど
    を置いて描画を出力
    黒背景の部分は鏡になって
    明るい色の部分は鏡の上で
    描画内容が見える

    View Slide

  18. 100均の透明下敷きで
    擬似ホログラム

    View Slide

  19. ペッパーズ・ゴーストと呼ばれるものを
    透明下敷きで逆さまのピラ
    ミッドのようなものを作成
    画面(iPad)の 4箇所に同
    じ内容の方向違いの描画を
    表示させて透明ピラミッド
    にうつす

    View Slide

  20. デバイスの間をIoTの通信
    でつなげてみる

    View Slide

  21. 2台のスマホ上のキャンバスをつなぐ
    2台のスマホに別々に
    p5.js のキャンバスを用意
    デバイス間で跳ね回る
    ボールの位置座標を IoT の
    通信(MQTT)で共有
    ※ 画面のつながりを縦 or
      横方向に変える仕組み
      も入れてみた

    View Slide

  22. ブラウザでできるマーカーを
    使うARとの組み合わせ

    View Slide

  23. WebARのマーカー上に描画を重ねる
    専用マーカーを使うARの
    ブラウザで動くものを利用
    ボールが跳ねる描画をして
    いるキャンバスをARマー
    カーに重ねる
    (マーカーが回転すると
     重力の方向も回転)

    View Slide

  24. しゃべった内容を文字にして
    画面の中で落下させてみる

    View Slide

  25. しゃべった声が実体化して落下する
    ブラウザ内蔵の音声認識を
    連続稼働させたり、文字に
    対して物理演算を適用
    声の大きさを文字の大きさ
    に反映させたりも

    View Slide

  26. 画面上の描画の動き・速度が
    LEDの点灯状態に連動

    View Slide

  27. p5.jsで計算した位置・速度をLEDに反映
    p5.jsで描画した動く円の
    位置・速度を、USB接続し
    たデバイス(micro:bit)
    に送信
    USB経由で受けとった数字
    を元に LED の点灯位置を
    変える

    View Slide

  28. デバイス上のLEDの点灯位置と
    p5.jsでの図形描画位置が連動

    View Slide

  29. 傾きで移動するLEDの点灯位置を使った描画
    micro:bit の傾き具合に
    よって LED の点灯位置を
    変更
    USB経由で受けとった点灯
    位置の情報を使ってp5.js
    でブラウザ上の描画を実行

    View Slide

  30. MIDIコントローラーでの操作を
    描画に反映

    View Slide

  31. スライダー・ノブの操作で色などを変える
    USB接続のMIDIコントロー
    ラーの操作結果をブラウザ
    で取得
    取得した数値データを
    p5.jsの描画に反映させる

    View Slide

  32. 引き続き
    お試しを続けていきたい!

    View Slide

  33. 今日の話の中で使っていた技術の抜粋
    ブラウザの API や JavaScriptライブラリ
     ・Web Serial
     ・Web Bluetooth
     ・Web MIDI
     ・Teachable Machine
     ・MediaPipe
    シリアル通信
     
    BLE
     
    MIDIデバイス
    機械学習
    (他にもいろいろ便利なものがあります!)

    View Slide

  34. 終わり!

    View Slide

  35. ゲームのコントローラーや
    電子工作ができるボードを
    組み合わせてみる

    View Slide

  36. 2台のスマホ上のキャンバスをつなぐ

    View Slide