SIMU1
レシピコードの形式
バージョン 1 · 最終更新:2026年10月8日
Simu コードは、フィルムレシピ 1 つ、または 7 つのカスタム登録からなるキット 1 つをまるごと収めた短い文字列です。サーバー、アカウント、ネットワークは必要ありません。
秋影流光 · Classic Chrome · DR200
SIMU102KQY54AEMG0TN3B
このページは形式をすべて記載しており、誰でも自分のサイト、スクリプト、カメラアプリから、許可を求めずに Simu コードを作れます。暗号化も隠された部分もありません。文字列が短いのは、20 の設定が約 11 バイトに収まるためです。
構造
SIMU1 02KQY54AEMG0TN3B
│ └── ペイロードの Crockford base32
└──────── "SIMU" + 形式のバージョン(数字 1 桁)
ペイロード = [フラグ: 8] [本体 …] [バイト境界までの埋め] [CRC-8: 8]
知っているより新しいバージョンのコードを見つけた読み取り側は、内容を推測せず、そのコードを拒否しなければなりません。
フラグバイト
| 値 | 意味 |
|---|---|
0 | レシピ 1 つ。本体は 1 つのレコード |
1 | キット。本体は [件数−1: 3]、続いてその件数分の [登録番号−1: 3][レコード] |
登録番号は 1〜7 で、キットは 1〜7 件を含みます。キットに含まれないカスタム登録はコードにないだけで、空という意味ではありません。カメラのその登録はそのまま残ります。
レコード
まず 18 ビットの存在マスクが、最上位ビットから、下の表のフィールド順に並びます。続いて、1 のビットごとに同じ順で、そのフィールドの値をそのフィールドのビット幅で書きます。ビットが 0 のフィールドには何も書きません。
この形式が 20 個の数値の並びでない理由は、このマスクにあります。シャドウに触れていないレシピは、シャドウ 0 を求めるレシピではありません。この 2 つを区別できない形式では、誰も選んでいない値が受け取る側のカメラに渡ります。
フィールド
| # | フィールド | ビット | 値(インデックス順) |
|---|---|---|---|
| 0 | フィルムシミュレーション | 5 | Provia, Velvia, Astia, PRO Neg. Hi, PRO Neg. Std, Monochrome, Monochrome + Yellow, Monochrome + Red, Monochrome + Green, Sepia, Classic Chrome, Acros, Acros + Yellow, Acros + Red, Acros + Green, Eterna, Classic Neg., Eterna Bleach Bypass, Nostalgic Neg., Reala Ace |
| 1 | Dレンジ優先 | 2 | Off, Weak, Strong, Auto |
| 2 | ダイナミックレンジ | 2 | DR100, DR200, DR400, DR Auto |
| 3 | モノクロカラー(暖・寒) | 6 | −18 … +18、刻み 1 |
| 4 | モノクロカラー(マゼンタ・グリーン) | 6 | −18 … +18、刻み 1 |
| 5 | グレイン・エフェクト | 3 | Off, Weak / Small, Strong / Small, Weak / Large, Strong / Large |
| 6 | カラークローム・エフェクト | 2 | Off, Weak, Strong |
| 7 | カラークローム ブルー | 2 | Off, Weak, Strong |
| 8 | スムーススキン・エフェクト | 2 | Off, Weak, Strong |
| 9 | ホワイトバランス | 4 (+11) | 下記参照 |
| 10 | ホワイトバランスシフト 赤 | 5 | −9 … +9、刻み 1 |
| 11 | ホワイトバランスシフト 青 | 5 | −9 … +9、刻み 1 |
| 12 | ハイライト | 4 | −2 … +4、刻み 0.5 |
| 13 | シャドウ | 4 | −2 … +4、刻み 0.5 |
| 14 | カラー | 4 | −4 … +4、刻み 1 |
| 15 | シャープネス | 4 | −4 … +4、刻み 1 |
| 16 | 高感度ノイズ低減 | 4 | −4 … +4、刻み 1 |
| 17 | 明瞭度 | 4 | −5 … +5、刻み 1 |
値は英語名で記載しています。デコーダーが使う名前と同じです。
数値フィールドのインデックスは (値 − 最小値) / 刻み です。
この順番は変わりません。新しい設定は末尾に追加し、バージョンを上げます。既存のフィールドは動かしません。動かすと、すでに出回っているすべてのコードの意味が気づかれないまま変わるためです。
ホワイトバランス
インデックス 0〜12 は次のとおりです:Auto, Daylight, Incandescent, Underwater, Fluorescent 1, Fluorescent 2, Fluorescent 3, Shade, Custom 1, Custom 2, Custom 3, Auto White Priority, Auto Ambience Priority。
インデックス 13 は色温度を表し、この形式で後ろに続きがある唯一の値です。さらに 11 ビットで (kelvin − 2000) / 10 を保持します。そのため 6300K は一覧の近い値に丸められず、正確に保たれます。
含まれないもの
ISO と露出補正。実際には「ISO 6400 まで」のような自由記述で、カメラに書き込まれることもありません。これらを入れると、短さに価値がある形式に可変長の文字列が入ることになります。この 2 つは読める行のほうに書きます。
チェックサム
CRC-8/ATM:多項式 0x07、初期値 0、最終 XOR なし。それより前のすべてのバイトに対して計算します。
省略はできません。メッセージアプリは改行を入れたり途中で切ったりします。末尾が欠けても一見正しいレシピに解読されるコードは、拒否されるコードより悪い結果になります。解読されれば、正しくても誤っていても、20 の設定が誰かのカメラに書き込まれます。
文字セット
Crockford base32。1 文字 5 ビット、最上位ビットから並べ、末尾はゼロで埋めます:
0123456789ABCDEFGHJKMNPQRSTVWXYZ
I・L・O・U は含みません。コードは写真から手で書き写されるため、読み取り側は小文字も受け付け、I と L を 1、O を 0 として読みます。出力は大文字のままにします。QR コードは英大文字と数字をより密なモードで符号化でき、テーブル越しに読み取れるかどうかはこれで決まります。
リンク
simu://r/<コード>?n=<レシピ名>
simu://k/<コード>?n=<キット名>&r=<登録 1 の名前>&r=<登録 2 の名前>…
同じコードはブラウザでも開け、アプリを持っていない人も読めます。コードはフラグメント(# の後ろ)にあり、ブラウザの中で読み取られ、サーバーには届きません:
https://simurecipes.com/r#<コード>&n=<レシピ名>
2026年10月より前に作られたリンクは https://hayamayama.github.io/Simu-Support/r.html を指しており、フラグメントを保ったままこのアドレスに転送されます。
名前はペイロードの外に置きます。中国語や日本語の名前をコードに入れると長さが倍になり、QR コードは密な符号化を使えなくなります。名前は、読めること自体が目的のフィールドです。キットでは登録ごとに r が 1 つずつ、コード内の登録と同じ順で並びます。
前後に文章があってもコードはコードです。メッセージ全体が貼り付けられるため、読み取り側は SIMU、数字 1 桁、続く 8 文字以上の文字セットの文字を探します。
送り方
2 行で足り、1 行目が大切です。Simu を持っていない人には、コードだけでは何も伝わりません。
秋影流光 · Classic Chrome · DR200
SIMU102KQY54AEMG0TN3B
質問、または Simu コードのデコーダーを作ってここにリンクを載せたい場合: developer@simurecipes.com