写真を貼ったキューブを、暗い空間に並べる日記。

2025.11 個人制作

暗い空間に球面状に並ぶ写真のキューブ

CubeDiary

トップへ戻る

1 つのキューブに、写真が 6 枚。

写真を 6 面に貼ったキューブを、暗い空間に並べていく日記アプリです。

画像はブラウザ内で小さくしてから Supabase に保存し、React Three Fiber で描いています。

6面
1 つのキューブ
3種
並べ方
0.15MB
保存する画像の上限
CubeDiary の展開図と並べ方の図6 面の展開図と、キューブの 3 種類の並べ方。球面、螺旋、結び目。展開図面ごとに写真を割り当てる球面黄金角で置く螺旋順に巻いていく結び目線でつなぐ形
CubeDiary の展開図と並べ方の図6 面の展開図と、キューブの 3 種類の並べ方。球面、螺旋、結び目。展開図面ごとに写真を割り当てる球面黄金角で置く螺旋順に巻いていく結び目線でつなぐ形
球面は黄金角で計算しました。螺旋と結び目は並べ方の形を示す図で、作品のデータではありません。
真っ暗な部屋に、写真を貼った紙の立方体が糸で吊られている
生成した画像によるイメージです。

記録するまで

写真を選ぶ
キューブの展開図に、面ごとに写真を割り当てます。
小さくする
ブラウザの中で、長辺 1280px・0.15MB 以下の JPEG に圧縮します。
保存する
画像をストレージに上げ、その一覧を日記の記録に保存します。
並べる
これまでのキューブを、暗い空間に 3D で並べます。

作りの要点

空いた面も埋める
写真が 6 枚に満たないときは、写真の繰り返しか単色で残りの面を埋めます。
数が増えても見渡せる配置
並べ方は球面・螺旋・結び目の 3 種類です。球面は黄金角で配置します。キューブが増えても、広がりは対数で抑えます。
ログインせずに見られる
匿名のログインで見本の日記を閲覧できます。自分の日記は自分だけが読み書きできるように、行ごとのアクセス制御を掛けています。
フレームワーク
Next.js 16 React 19 Tailwind CSS 4
3D
three.js React Three Fiber drei
データ
Supabase(Auth・Database・Storage)
画像
browser-image-compression