4 ポイント 投稿者 GN⁺ 2025-12-01 | 1件のコメント | WhatsAppで共有
  • ウェブページは、ユーザーがマウスでバネに取り付けられたボールを引いて離す動作を行うたびに、「boing」回数を記録するシンプルなインタラクティブなサービスです。
  • ボールとバネは角度に合わせて物理的に動きます。
  • 各ユーザーには**「you've boinged 0 times」**という文言で現在の使用回数を表示します。
  • 世界中で累積された総boing回数も併せて表示します。
  • 最低限のインターフェースで参加型ウェブ実験の性質を持つプロジェクトです

1件のコメント

 
GN⁺ 2025-12-01
Hacker Newsの意見
  • これ、本当に気に入った。ちょっとしたチートコードを使ってマウスを自動で動かすようにした

    • 誰かがこれでStar Wars Imperial Marchを再現するコードを書く日を待っている(YouTubeリンク
    • boing.playcode.ioで直接試せる
    • 実際にはマウスを動かす必要はなくて、ボールの内側を少しオフセンタークリックするだけでいい
    • もう少しで諦めるところだったが、ついに音階再生スクリプトを完成させた。各音程に合わせてスプリングを引いて離す方式で自動演奏を実現した
    • 「アップボートを持っていけ」という反応が出るくらい面白かった
  • 面白いのは、これが完璧な物理シミュレーションではないからこそむしろ現実的に感じられることだ
    完璧なフックの法則で実装すると硬すぎて偽物っぽく見えるが、少しのゆるさと減衰を入れるとより自然になる。いわば「制御された粗さ」だ

    • 「完璧な物理」が現実を完璧に模倣するという意味ではないのか? フックの法則が非現実的だという話なのか、それとも実際のスプリングシミュレーターが非現実的だという意味なのか、少し混乱した
    • 昔のゲームElasto Maniaはこの原理を極端に活用していた。オートバイの誇張された物理のおかげで、奇妙だが見事なスタントができた(elastomania.com
    • フックの法則は理想的なスプリングモデルにすぎず、実際のスプリングには減衰と摩擦がある。より現実的なモデルは、減衰項を加えた質量-ばね-ダンパーモデルだ(Wikipediaリンク
    • フックの法則はスプリングが及ぼす力だけを考慮し、スプリング自体の質量分布や運動量の変化は無視している。現実世界ははるかに複雑なので、フックの法則は一次近似にすぎない
    • 昔のプラットフォームゲームも同じで、本物の物理エンジンを使うとかえって操作感が悪くなっていた
  • 以前、友人に赤ちゃんが生まれたとき、おもちゃが多すぎてリビングが障害物コースのようになっていた。ところが子どもは結局ドアスプリングだけで遊んでいた。そのシンプルなスプリングをいじるのが妙に癒やしだった

  • ついに来た! 今こそこれで古典的ミーム動画を再現するときだ(YouTube Shortsリンク

  • こういうのを見ると、昔のシンプルなウェブトイがなぜあれほど満足感があったのか思い出す
    ログインも、オンボーディングも、「プロにアップグレード」もなく、ただ一つの機能だけをうまくこなす純粋なおもちゃだった。
    世界中のカウンターは付いているが、過剰なゲーミフィケーションがなくてすっきりしている

  • 「これをソーシャル機能にしてみたらどうだろう?」という提案もあった。たとえば、自分の作った「Boing」を姉に送って、自分の腕前を評価してもらうような形だ

    • 「最後に送ったBoing」? 「ループ再生されるBoing」? そんなふうにも実装できそうで、真剣に検討している :-)
  • もしElon Muskだったら、「これは世界シミュレーターの初期アルファ版で、1年以内に天気と株式市場を完璧に予測するだろう」と言っていた気がする

  • 非圧縮コードを公開するつもりがあるのか気になった。コードを読んでみたかったが、難読化されていて残念だった。ざっと見た感じではhowler.jsがベースで、コアロジックはモバイルテンプレートの下のほうにある

    • もちろん公開している! GitHubリポジトリ
    • オンラインのunminifierで展開してみるのはどう? (unminify2.com
    • 構造を見ると、指数減衰ベースのスプリングシミュレーションrequestAnimationFrame で実装しているようだ。AIが作ったバージョンもある(jsfiddleリンク
  • これを正確にシミュレーションしたバージョンも見てみたい。たとえば engine-sim.parts のようなスタイルで

  • 世界中の人が作ったBoingの総計カウンターがあったらいいのに

    • いいアイデアだったので、すぐにWorld Boingカウンターを実装した
    • ここにBoingヒートマップも追加したら面白そうだ