カテゴリー
お知らせ

リリースノートを書けば、日英のお知らせが自動で生える — 仕組みを公開しました

小さなコミュニティの発信には、独特のつらさがあります。書き手はいつも足りず、同じお知らせを日本語と英語の2本書く余裕はもっとない。結果、発信が細るか、どちらかの言語が置き去りになる——私たちも例外ではありませんでした。

私たちのサイトでは、GitHub で Release を1つ公開すると、日本語と英語のペア記事がサイトに自動で作成されます。人間がやるのは、リリースノートを決まった書式で書くことだけ。翻訳が書かれていないときは、機械が勝手に翻訳をでっち上げるのではなく、英語記事だけを公開して日本語は下書きで待つ——「翻訳を捏造しない」を原則にした設計です。

今日、この仕組みを手法ドキュメント+参照実装として GitHub で公開しました。

RumiCar-group/RumiCar-ReleaseNotes-Guide

仕組み自体は少し前から動いていたものです。これまで PhotoStrip、VideoLoop、AutoPost Guide と公開を重ねるうちに、自分たちの「やり方」を外に出すことに私たち自身が慣れてきました。それで、新しいものだけでなく、手元で静かに働いてきた過去の仕組みも順次公開していくことにしました。これはその第一弾です。

公開の動機はシンプルです。発信の手作業が仕組みで減れば、その時間は活動そのものに返ってきます。私たちと同じように少人数で回しているコミュニティが、この記録を踏み台にして、書くことと活動することに集中できるようになれば嬉しい。そして対象を限定するつもりはありません——学校でも、企業でも、営利活動でも、どなたでも自由に使ってください(MIT ライセンス、無保証の一例の記録です)。

ドキュメントは日英併記です。この仕組みが要らない世界のどこかの誰かにも、「小さなチームでも、仕組みを作れば多言語で発信し続けられる」という事実だけでも届けば、公開した甲斐があります。

カテゴリー
お知らせ

「記事を公開→トップ更新→Facebook投稿」の自動化手法を公開しました

このサイトでは、記事を1本公開すると、トップページの「What’s New」への掲載と、Facebookページへの投稿がどちらも自動で行われます。今日、その作り方を手法ドキュメント「AutoPost Guide」としてGitHubで公開しました。

PhotoStripVideoLoop がコードの公開だったのに対し、今回はやり方の公開です。WordPress標準のRSSフィードを接点に、外部のRSS→SNS連携サービスを組み合わせるだけ——ただし、実際に運用して初めて分かったことがいくつもありました。

  • 有効化した瞬間、フィードの最新記事が1回投稿される(手動投稿済みだと重複する)
  • 「パブリッシャー」の表記はページ管理者にしか見えない(一般には通常の投稿に見える)
  • 本当に投稿されたかは、自分のサーバーのアクセスログだけで確認できる
  • キャッシュ層があると、公開から投稿までは最大数十分遅れる

ガイドには、設定手順(2026年8月時点)とあわせて、こうした「動かして初めて分かること」を日英両方でまとめました。2026年8月時点で動いた一例の記録として、無保証・MITライセンスで公開しています。活動をサイトとSNSで発信しているコミュニティ・学校・企業の方の参考になれば幸いです。

▶ GitHub: RumiCar-group/RumiCar-AutoPost-Guide

ちなみに——この記事自体が、この自動パイプラインを通ってFacebookに投稿される最初の記事です。


追記(公開から約10分後): 公開後の実測です。8:23(日本時間)に dlvr.it がフィードの更新を検知して本記事を取得、8:24に Facebook のクローラが utm_source=dlvr.it 付きで本記事を読みに来ました——ガイドに書いたとおり、これが自動投稿成立の証拠です。公開から約10分で、この記事は人手ゼロで Facebook ページに届きました。

カテゴリー
お知らせ

動画ダイジェスト小窓「VideoLoop」をオープンソース公開しました

RumiCarのトップページで動いている「動画ダイジェストの小窓」の仕組みを、VideoLoop という名前のオープンソースソフトウェアとして公開しました。先日公開したPhotoStripの姉妹プロジェクトで、活動を動画で紹介したいコミュニティ・サークル・学校・団体はもちろん、企業サイトへの組み込みなど営利目的を含めて、どなたでも・どんな用途にも自由にお使いいただけます(MITライセンス)。

GitHub: RumiCar-group/RumiCar-VideoLoop(解説は日英両方あります)

解決したかった問題

私たちは活動のたびに動画を撮り、YouTubeチャンネルに約100本を公開してきました。トップページには代表動画を1本、再生ボタン付きで埋め込んでいましたが、再生ボタンはほとんど押されません。100本の活動記録が、実質誰にも見えていませんでした。

では自動再生のプレーヤーを埋め込めばよいかというと、今度はページを開いている間じゅう、見ていようがいまいが訪問者のデータ通信でストリーミングが続きます。PhotoStripで「訪問者が払う通信量は、見ることを選んだ時間のぶんだけ」という原則を作ったばかりで、それを動画で破りたくありませんでした。

どう解決したか

発想は「第一印象を事前レンダリングする」です。各動画から8秒・無音・小画面用のティーザークリップ(1本約230KB=写真2枚分)を自動生成して自サイトに置き、小さな固定サイズの窓で次々に、訪問のたびに違うランダム順で再生します。クリックするとYouTubeの本編へ飛ぶので、再生数は本来の場所で数えられます。

通信量は徹底して「見ている間だけ」です。小窓が画面に入るまでは1バイトも取得せず、スクロールで画面外に出るか、タブを切り替えると停止します。実測では、画面内で20秒眺めた場合の転送量は約700KB。OSの「視差効果を減らす」設定や省データモードの方には自動再生せず、ポスター画像と開始ボタンだけをお見せします。

新しい動画をチャンネルに公開すると、毎晩の自動処理が翌朝までにティーザーを追加します。逆に動画を非公開にすると、ティーザーも自動で消えます——非公開にしたはずの動画がサイトで流れ続けてはいけないからです。

失敗も含めて、READMEに全部書きました

今回もREADMEは仕様の羅列ではなく開発の思考過程を残しています。検討した4つの選択肢と捨てた理由、YouTube規約に関する正直な注意、そして実際に踏んだ罠——「エラーなら次へ」という一見正しい設計が、動画削除とキャッシュの組み合わせで404リクエストの無限連射になった話。タイムアウト1本で毎晩同じ場所がクラッシュし続ける話。CSSの詳細度でテーマに負けて「余白を詰めたつもり」が2度も嘘になった話。公開前に実施した3回の敵対的レビューが何を見つけたかは、RETROSPECTIVE(ふりかえり)として独立した文書にまとめました。

依存ライブラリはゼロ。JSとCSSを1つずつ読み込み、ティーザー生成ツール(Python)を動かすだけです。生成ツールは手元の動画ファイルからも、自分のYouTubeチャンネルからも作れます。環境別のレシピ(静的HTML/PHP/WordPress)も同梱しました。実際に動いている様子はこのサイトのトップページの紹介動画の下でご覧いただけます。

この開発はAI(Claude)が人間の監督・承認のもとで行いました。質問・提案はGitHubのIssueで日本語・英語どちらでも歓迎です。

カテゴリー
お知らせ

作者を最後の読者にしてはならない — AIと作った公開ツールから得た開発プロセスの教訓

先日オープンソース公開したPhotoStripには、続きの話があります。ツールそのものより役に立つかもしれない話——「どう作ったか」と「なぜ作者は見逃すのか」です。全文は振り返り文書(日英)としてGitHubで公開しました。この記事はその要約です。

何が起きたか

PhotoStrip v1.0.0 は、AI(Claude)が人間の監督のもとで書き、実ブラウザでテストし、通信量をKB単位まで計測してから公開しました。誠実に作ったつもりでした。それでも告知の前にもう一手──開発の経緯をまったく知らない、まっさらな状態の別のAIに「意地悪な利用者として壊してみせろ」とレビューさせたところ、21件の不具合が見つかりました。スマホで1回タップすると帯が止まったままになる。同じページに2つ置くと壊れる。持ち主が削除したはずの写真を公開し続ける。どれも、実際の利用者が最初に踏む種類の問題です。

なぜ見逃したのか

作者が書くテストは、作者が想像した世界しか検証できません。そして作者の想像力は、コードを書いたことそのものによって形が決まっています。「動いた」は「私が動かした場所では動いた」でしかなく、検証はいつも「初回の操作」に偏り、実際の保守作業は「2回目の操作」でできています。さらに、バグ修正は同じ土壌から新しいバグを生みます——今回も、タッチ端末の凍結バグを直した修正自体が、別経路で同じ凍結を再発させました(見つけられたのは、修正を「バグを見つけたのと同じ意地悪な条件」で再テストしたからです)。

人間とAIは、違うものを見逃す

この開発で誰が何を見つけたかを並べると、はっきりした役割分担が見えます。27MBの通信量問題や読み込みの暴走はAIの計測が見つけました。数字は想像力を必要としません。しかし「同じ写真がまた流れてきた——活動が浅く見える」という、どの計測値にも現れない核心的な問題は人間の知覚が見つけました。「『どなたでも使える』が文脈次第では非営利限定に読める」という指摘も人間のものです。そして21件の具体的な欠陥は、作者バイアスを持たないまっさらなレビュアーが見つけました。

AIと一緒に作る人への4行のレシピ

  1. AIには作らせて、計測させる(形容詞ではなく数字を要求する)
  2. 公開前に、文脈を持たない別のレビュアーに壊させる。作者の自己レビューで済ませない(AIは数分で「バイアスのない分身」を呼べます——人間にはできない芸当です)
  3. 知覚・価値観・優先順位の判断は人間がループに残る。計測値が全部緑でも「何かおかしい気がする」という声を聞く。むしろそのときこそ
  4. バグは家族ごと直し、見つけた条件で再テストする

結論は一行です: 作者を最後の読者にしてはならない。

振り返り全文(GitHub・日英) / PhotoStripのライブデモ / 同じ精神で書かれたシミュレータ開発の歩みもどうぞ。この記事もAI(Claude)が人間の監修のもとで執筆しています。

カテゴリー
お知らせ

通信量にやさしい写真ストリップ「PhotoStrip」をオープンソース公開しました

RumiCarのトップページで動いている「ゆっくり流れる写真の帯」の仕組みを、PhotoStrip という名前のオープンソースソフトウェアとして公開しました。活動を写真で紹介したいコミュニティ・サークル・学校・団体はもちろん、企業の製品・サービスへの組み込みなど営利目的を含めて、どなたでも・どんな用途にも自由にお使いいただけます(MITライセンス)。このロジックを土台に新しい機能やサービスが生まれるなら、それも公開の目的にかなうことだと考えています。

GitHub: RumiCar-group/RumiCar-PhotoStrip(解説は日英両方あります)

解決したかった問題

活動写真をループ表示で見せたいとき、素朴に作ると「たくさんの写真を一気に送ってしまう」実装になりがちです。私たちの場合、265枚の写真を並べた最初の実装は、実測で転送27MB・表示まで4秒かかりました。5秒で立ち去る訪問者のスマートフォンにも、同じ27MBが送られてしまいます。

かといって表示枚数を絞ると、今度は数分で同じ写真が再登場します。ページの文章を読みながら視界の隅で帯を眺めていた人ほど「あれ、さっきの写真だ。この団体、実はあまり活動していないのかな」と感じてしまう——見せたいはずの活動量を、ループが過小に見せてしまうのです。

どう解決したか

PhotoStripは、写真を「画面に流れ込む直前」に1枚ずつダウンロードします。10秒だけ眺めた訪問者の通信は数百KB。長く見てくれた訪問者には、その時間に応じて少しずつ流れます。見なかった写真のデータを、誰にも払わせません。そして写真のプール全体が一巡するまで同じ写真は再登場しないので、長く見るほど「次々に違う活動」が現れます。

同じ265枚での実測値は、初回888KB・表示0.5秒。視聴中の追加通信はおよそ9秒に小さな画像1枚です。

教材としても読めるREADMEにしました

RumiCarシミュレータと同じ方針で、READMEは仕様の羅列ではなく開発の思考過程を残しています。検討した4つの選択肢とそれぞれを捨てた理由、そして計測して初めて分かった落とし穴——例えば「横に流れるレイアウトではブラウザの遅延読み込み(loading=lazy)が効かず全画像が読み込まれる」「画像に寸法(width/height)を付け忘れると先読みが暴走して112枚を一気に取得する」など、私たちが実際に踏んだ罠を数値つきで書いてあります。同じものを作る方の近道になれば幸いです。

依存ライブラリはゼロ、JSファイル1つとCSSファイル1つをページに読み込むだけで動きます。WordPressでなくても使えます。また、サイトの保守が年に数回という方のために、環境別のレシピ(FTPだけの静的HTML/PHPが動くレンタルサーバー/WordPressミニプラグイン)と、写真フォルダから必要な一式を自動生成する変換ツールも同梱しました。実際に動いている様子はこのサイトのトップページの「RumiCarのある風景」でご覧いただけます。

この開発はAI(Claude)が人間の監督・承認のもとで行いました。質問・提案はGitHubのIssueで日本語・英語どちらでも歓迎です。

カテゴリー
イベント

イベント参加一覧 — これまでに参加したイベントと開催場所

RumiCarがこれまでに参加・出展・採用されてきたイベントの一覧です。RumiCar本体の活動だけでなく、パートナー企業やコミュニティによる展示・活用も含みます。各イベント名のリンクから、主催者の公式ページやRumiCarの紹介が掲載されているページをご覧いただけます。

開催場所を地図で見たい方は「イベント参加一覧(地図)」を、一覧への登録方法は「イベント参加一覧の説明」をご覧ください。この一覧は登録シートの更新に合わせて自動的に新しくなります。

全53件(新しい参加が上)

カテゴリー
お知らせ

RumiCarシミュレータ開発の歩み — 公開リリースノートとコミュニティ投稿から

RumiCarシミュレータは、ブラウザだけで自動運転アルゴリズムを書いて走らせられる開発環境です。実車のRumiCarと同じセンサー構成(前方3つのToF距離センサー+車輪エンコーダ)を模擬し、C / Python / JavaScript のプログラムをそのまま実行できます。この記事では、GitHubで公開されているリリースノートとコミュニティ投稿をもとに、開発の歩みを日付つきで振り返ります。

設計の柱

  • バイナリ資産ゼロ — 車体・コース・エフェクトはすべて実行時に手続き的に描画。画像ファイルは1枚もありません
  • 外部ライブラリ・CDN依存ゼロ — npmパッケージも不使用
  • 決定論 — 同じ入力から同じ結果がバイト単位で再現。52本の検証ゲートが同梱されており、誰でも node wf_run_all.mjs で自分の手で確かめられます
  • 実機互換 — シミュレータで書いたArduino C++のプログラムは、そのまま実機RumiCarで動きます

開発の歩み(公開記録より)

2026年6月14日 — 初の外部レビュー。ブラウザでシミュレータを操作したAI(Claude)による初見レビューが投稿されました。「物理が誠実」という評価とともに、センサーノイズの注入機能と摩擦円の可視化が提案され、のちに実装されています。

2026年7月5日 — 走行エンジン第3世代「精密動力学 v2」。4輪を個別に解く物理(輪ごとの荷重・デフ・回転)と、運動量の交換で解く接触モデルに全面刷新(開発報告 #28)。特徴的なのは「互換性は祈らず、毎回証明する」方針です。既定設定の物理はバイト単位で不変、過去のレース記録の検証ハッシュもそのまま——これを毎コミット機械検証しながらの刷新でした。「ドリフトはグリップに勝てるか」を20条件で実測して全条件NO(できなかったことも機序つきで公開)という、測定重視の開発スタイルもここで確立しています。

2026年7月13日 — v4.0.0: 性能と正しさの大改修。数値積分の解き方を変えて計算刻みを約9分の1に、坂道の重力を「見た目それらしい」実装から向きを持つ正しいモデルへ是正(舞台裏 #29)。実機のToFセンサー(VL53L0X)の更新レートや外れ値を再現する「実機らしさ」も選択制で入りました。既定の教材物理は不変のままです。

2026年8月2日 — GitHubで公開リポジトリを開設(v5.0.0)。ソースコード一式・検証ゲート・Docker構成を公開し、誰でもクローンして自分のサーバーで動かせるようになりました。

2026年8月5日 — v7.3.0。v5.1からv7.3までの進化をまとめたリリースノートを公開。主な内容:

  • 起動高速化(初回描画 700→608ms)とワイド画面レイアウト
  • C言語の配列対応と、上級サンプル2本のC移植(Python版と全12,863フレーム一致を機械確認)
  • 実機ToFの光学モデル・レインタイヤ・ギア比・サスペンション自由度・連続舵——すべて任意装備で、既定のままなら1バイトも変わりません
  • コースの横勾配(バンク)対応。バンク付きコーナーの限界速度が閉形式の理論値と10-16の精度で一致
  • チャンピオンシップ・言語別ランキング・チャレンジバッジ・セクタータイム比較などの「学んで伸びる」機能群

2026年8月7日 — 英語READMEを公開。海外の開発者にも全体像が伝わるようになりました。

この開発が大切にしていること

公開されている開発報告を通読すると、一貫した姿勢が見えてきます。互換性は「気をつける」ではなく「毎回証明する」(教材の物理はバイト単位で不変、記録はハッシュで再検証)。できなかったことも隠さない(「ドリフトは速くならない」を72条件の実測つきで公開)。体感より測定(機能の効果は源泉まで切り分けて実測してから採用)。この開発はAI(Claude)が人間の監督・承認のもとで進めており、その経緯自体もGitHub上で公開されています。

シミュレータはこちらからすぐ試せます(無料・インストール不要)。ソースコードはGitHubで公開中。質問・提案はIssueで日本語・英語どちらでも歓迎です。

カテゴリー
お知らせ

RumiCar-libがArduino IDEに正式採用されました

マイコン向けライブラリ「RumiCar-lib」が、Arduino IDEのライブラリマネージャに正式登録されました。Arduino IDEから直接検索してインストールできます。

インストール方法

  1. Arduino IDE を開く
  2. ライブラリマネージャを開く(スケッチ → ライブラリをインクルード → ライブラリを管理)
  3. 「RumiCar」で検索してインストール

RumiCar-lib は AVR・ESP32・Spresense など複数のマイコンに対応しており、同じスケッチで異なるハードウェアを動かせます。ソースコードは GitHub(RumiCar-group/RumiCar-lib)で公開しています。

実機をお持ちでない方は、ブラウザで動くRumiCarシミュレータから自動運転アルゴリズムの開発を体験できます。

カテゴリー
1号車と2号車

1号車と2号車 1

このサイトの仕組み (v1.4.0)

一部は GitHub で公開しています:

この仕組みを面白いと思った方へ — 本丸は、ブラウザで動く自動運転シミュレータです。
シミュレータを試す → / GitHub →