SIMU1
配方代碼格式
第 1 版 · 最後更新:2026 年 10 月 8 日
Simu 代碼是一段短字串,裝著一整份底片配方,或一整個七組自訂設定的套組。不需要伺服器、帳號或網路。
秋影流光 · Classic Chrome · DR200
SIMU102KQY54AEMG0TN3B
本頁完整記載這個格式,任何人都能從自己的網站、程式或相機 app 產生 Simu 代碼,不必事先詢問。內容沒有加密,也沒有隱藏;字串很短,是因為二十項設定只佔大約十一個位元組。
結構
SIMU1 02KQY54AEMG0TN3B
│ └── 酬載的 Crockford base32
└──────── "SIMU" + 格式版本(一位數字)
酬載 = [旗標: 8] [主體 …] [補齊至整數位元組] [CRC-8: 8]
讀取端遇到比自己認得的版本更高的代碼,必須直接拒絕,不可猜測內容。
旗標位元組
| 值 | 意義 |
|---|---|
0 | 一份配方:主體是一筆紀錄 |
1 | 一個套組:主體是 [數量−1: 3],接著是該數量的 [自訂設定編號−1: 3][紀錄] |
自訂設定編號為 1–7,一個套組含 1–7 組。套組沒提到的自訂設定只是不在代碼裡,不代表空白:相機上的這些自訂設定保持不動。
一筆紀錄
先是 18 位元的存在遮罩,最高位元在前,依照下表的欄位順序。接著,對每個為 1 的位元,依相同順序寫入該欄位的值,寬度為該欄位的位元數。位元為 0 的欄位不寫入任何內容。
這個格式不是二十個數字的列表,原因就在遮罩。從沒提到陰影的配方,並不是要求陰影 0 的配方。無法區分兩者的格式,會把一個沒有人選過的值交給接收端的相機。
欄位
| # | 欄位 | 位元 | 值(依索引順序) |
|---|---|---|---|
| 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 | 高ISO降噪 | 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」),也從不寫入相機;放進代碼,等於在以短為價值的格式裡塞進長度不定的字串。這兩項寫在可讀的那一行。
校驗碼
CRC-8/ATM:多項式 0x07,初始值 0,不做最終 XOR,計算範圍是它之前的每一個位元組。
校驗碼不可省略。聊天 app 會換行和截斷,末尾遺失卻仍能解出看似合理配方的代碼,比被拒絕的代碼更糟:一旦解出來,不論對錯,二十項設定都會寫進某人的相機。
字母表
Crockford base32,每個字元 5 位元,最高位元在前,結尾補零:
0123456789ABCDEFGHJKMNPQRSTVWXYZ
不含 I、L、O、U。讀取端應接受小寫,並把 I 和 L 讀成 1、O 讀成 0,因為代碼會被人從照片上手抄。輸出時保持大寫:QR code 以較密的模式編碼大寫英數字,這決定了代碼能否隔著桌子掃到。
連結
simu://r/<代碼>?n=<配方名稱>
simu://k/<代碼>?n=<套組名稱>&r=<第 1 組名稱>&r=<第 2 組名稱>…
同一段代碼也能在瀏覽器開啟,給沒有 app 的人使用。代碼位於片段(# 之後),在瀏覽器裡讀取,不會送到伺服器:
https://simurecipes.com/r#<代碼>&n=<配方名稱>
2026 年 10 月以前產生的連結指向 https://hayamayama.github.io/Simu-Support/r.html,會帶著片段轉到這個網址。
名稱放在酬載之外。中文或日文名稱放進代碼會讓長度加倍,QR code 也會失去密集編碼;名稱正是需要讓人讀懂的那一欄。套組的每一組自訂設定各有一個 r,順序與代碼中自訂設定的順序相同。
夾在其他文字裡的代碼仍然是代碼:讀取端應搜尋 SIMU、一位數字,再接八個以上字母表中的字元,因為整段訊息常被直接貼上。
傳送方式
兩行就夠,第一行很重要。沒有 Simu 的人看不懂單獨一段代碼。
秋影流光 · Classic Chrome · DR200
SIMU102KQY54AEMG0TN3B
問題,或想在這裡附上自己寫的 Simu 代碼解碼程式: developer@simurecipes.com