DDD
𝕏
DENSITY · DAILY · DESIGN

Five tasks.
Then rest.

5つの密度。
それで今日は、十分。

A pixel-matrix task ritual. Name five things. Time-box each one with a real-world Time Timer. When the red pie hits zero, it's done. A year of your density is drawn as a single dot grid. No account, no cloud, one HTML file.

ピクセルマトリクスのタスク儀式。5つに絞って名前を付け、Time Timer の赤い扇が消えるまで向き合う。 ゼロになった瞬間、そのタスクは完了。1年分のあなたの「密度」は1枚のドットグリッドになる。 アカウントもクラウドもなし、HTML一枚で完結。

LOCAL-FIRST · SINGLE FILE · NO TRACKING ローカル完結 · HTML1枚 · 計測なし
WHY FIVE / なぜ5つ

Control is what broke every to-do app before.

「自分で操作できすぎる」のが、いままでのToDoの敗因。

In DDD you cannot check a task off. The only way to complete one is to start its timer and let it reach zero. No shortcuts, no self-forgiveness, no lying to the grid. The grid tells the truth for a whole year.

DDD ではタスクにチェックを入れられません。完了の唯一の経路は、タイマーを走らせて0までたどり着くこと。 近道も、甘やかしも、グリッドへの嘘もなし。1年単位の密度グリッドが、あなたの本当を描きます。

LOG · FOCUS · TIMER

Three surfaces, one ritual.

3画面、1つの儀式。

2026
YEARLY DENSITY LOG (0-5)
LOG
TODAY 2026-04-21
1. Read book
2.Code 1 hour
3.Gym
4.Plan tomorrow
5.Sleep
FOCUS
CURRENT TASK
Read book
60 45 30 15
TASK: Read book · 25 MIN
TIMER
FEATURES / 仕様

Built small on purpose.

小さく保ってこその、毎日。

5-task ceiling

1日5タスク上限

Five is the point. Extra ambition has nowhere to go but tomorrow.

5つで十分。余った野心は、明日に回す。

Sequential unlock

直列アンロック

Task 2 stays locked until Task 1's timer hits zero. You can't skip ahead.

タスク1のタイマーが0になるまで、タスク2はロック。先回りは不可。

Physical Time Timer

物理Time Timer再現

A red pie shrinks in real time. Zero = the only path to done.

赤い扇がリアルタイムで縮む。0になった時だけ完了。

Yearly density grid

365日密度グリッド

365 dots. Each brightens 0→5 by your day's finished count.

365個のドット。その日の完了数で0→5段階に光る。

Command terminal

コマンドターミナル

Floating, draggable panel. Type task 1 Read · start · stats.

フローティング・ドラッグ可能。task 1 Readstartstats などで操作。

No account, no cloud

アカウント不要・クラウド不要

Everything lives in localStorage. Wipe the browser, wipe the ritual.

すべては localStorage の中。ブラウザを消せば、儀式も消える。

Procedural BGM

プロシージャル BGM

Three in-tab loops: bgm 1 ambient pad · bgm 2 lo-fi beat · bgm 3 rainfall. Rendered offline as WAV → plays through a real <audio> element so it keeps going when the screen locks on mobile.

3種のループ: bgm 1 アンビエント・パッド / bgm 2 ロウファイビート / bgm 3 雨音+ベル。オフライン合成→ <audio> 要素再生なので、モバイルで画面を消しても鳴り続ける

TIMER audio cues

TIMER 音声キュー

A soft 2-tone bell marks every 15 min so long sessions don't vanish into the void. The final 10 seconds tick down with short square-wave pips — you feel zero approaching without looking.

15分経過ごとに優しい2音ベルが鳴り、長いセッションが意識から抜け落ちるのを防ぎます。最後の10秒は短い「ピッ」音のカウントダウン — 画面を見なくてもゼロが近づくのが分かります。

Weekday pixel rotation

曜日ピクセル循環

The small icon under LOG cycles through 7 pixel creatures — flower on MON, tulip TUE, sunflower WED, rose THU, then cat · bird · fish toward the weekend. A tiny calendar you feel rather than read.

LOG下部の小さなアイコンが7種を循環。月=花、火=チューリップ、水=向日葵、木=薔薇、そして週末に向け 猫・鳥・魚。読まずに感じる、ささやかな曜日感覚。

Seasonal layers

季節のレイヤー

Sakura drifts in spring. Rain lines in June. Fireflies on summer nights. Red & gold maples in fall. Snow in winter. A sunrise glow for Jan 1-3. Six quiet atmospheres, all pure CSS — no images.

春は桜、6月は雨、夏の夜は蛍、秋は紅葉、冬は雪、元日〜3日は初日の出の赤い光。6つの静かな空気、すべて純 CSS で画像は使いません。

Streak milestones

連続記録マイルストーン

At 7 consecutive days small sparks scatter under the icon. At 30, a warm glow joins them. Set your birthday with birthday 12-25 and confetti rains that single day.

7日連続でアイコン下に小さな火花、30日で暖色のグローが加わります。birthday 12-25 で誕生日を設定すれば、当日だけ紙吹雪が舞います。

LOG DECOR / 季節装飾

Time makes the pixels change.

時が経つと、ピクセルは変わる。

The tiny icon at the bottom of LOG is layered. A weekday base · a seasonal particle layer · a time-of-day mood · a milestone reward. All pure CSS — roughly 20 DOM nodes per layer. Open the app on different days and you'll meet different quiet weathers.

LOG下部の小さなアイコンはレイヤー構造。曜日ベース × 季節の粒子 × 時刻のムード × 連続記録のご褒美。すべて純 CSS、各レイヤーわずか20ノード程度。日を変えてアプリを開くたびに、違う静かな天気に出会います。

A. WEEKDAY BASE / 曜日のベース
flower
MON
tulip
TUE
sunflower
WED
rose
THU
cat
FRI
bird
SAT
fish
SUN
B. SEASONAL / 季節の演出
SAKURA03-04月
Pink petals drift diagonally — the soft chaos of spring.桜の花びらが斜めに舞い落ちる。春の標準演出。
RAIN06月
Thin vertical lines. The rainy season, silent.梅雨の細い雨が垂直に降る。音は無し。
FIREFLY07-08月 夜
Fireflies blink softly. Summer nights only.蛍が柔らかく明滅。夏の夜のみ発動。
MAPLE10-11月
Red, amber, gold leaves sway down.紅葉(赤・橙・金)が揺れながら舞い落ちる。
SNOW12-02月
White pixels drift on a slow diagonal.白いピクセルがゆっくり斜めに降る。
SUNRISE01/01-03
Red dawn glow for the first three days of the year.初日の出の赤い光がゆっくり脈打つ。正月3日間限定。
C. TIME OF DAY / 時刻
DAWN05-08時
Warm gradient from the top — early-morning quiet.暖色のグラデが上から薄くかかる。朝の静けさ。
NIGHT22-05時
Dim sky overlay with moon + twinkling stars.上空が暗くなり、月と星がまたたく。
D. MILESTONES / 記念日
STREAK 77日連続
Small radial sparks. A week of showing up.小さな火花が控えめに散る。週の継続を祝う。
STREAK 3030日連続
A warm glow pulses; larger sparks drift outward.暖色グローが脈打ち、大きめの火花が外側へ。
BIRTHDAY誕生日
5-color confetti spirals down. One day only.5色の紙吹雪が螺旋を描いて落ちる。当日のみ。
TERMINAL / ターミナル

Keyboard-first by design.

キーボードで走らせる。

TERMINAL · ≡ drag ↘ resize
>help
log / focus / timer switch view
task <n> <text> set task
start / stop timer control
dur <min> 15 / 25 / 45 / 60
stats today + history
bgm 1 / 2 / 3 pad · lo-fi beat · rainfall (on/off)
birthday MM-DD confetti on that day
>task 1 Read book
TASK 1 = "Read book"
>dur 25
DURATION = 25 MIN
>bgm 2
BGM 2 PLAYING · lo-fi beat · bgm off to stop
>start
FAQ

Honest answers.

正直な答え。

What if I genuinely need to mark a task done without the timer? タイマー無しでどうしても完了マークを付けたい場合は?

There is no such path by design. If the day went sideways, use RESET to clear today and start fresh tomorrow. The density grid respects that honesty.

設計上その経路はありません。うまくいかなかった日は RESET で今日をクリアして、明日やり直しましょう。密度グリッドはその正直さを尊びます。

Does data leave my browser? データは外に出ますか?

No. DDD is a single static HTML file. All state is in localStorage. No analytics, no telemetry, no API.

出ません。DDD は1枚の静的HTMLで、状態は全て localStorage に保存されます。アナリティクスもテレメトリも通信先もなし。

Can I use it offline? オフラインで使えますか?

Yes. After the first load, fonts and Tailwind are cached — you can disconnect and keep going.

はい。初回読み込み後はフォントとTailwindがキャッシュされるので、ネットを切ったまま使えます。

What about rest days? 休む日はどうなりますか?

The grid shows a dim dot — which is the truth. A year of truth is more useful than a year of self-flattery.

グリッドにはほの暗いドットが残ります — それが真実。1年分の真実は、1年分の自己美化よりずっと役に立ちます。

What is BGM and how do I start it? BGM って何?どう起動する?

Type bgm 1 (ambient pad), bgm 2 (lo-fi beat), or bgm 3 (rainfall + bells) in the terminal. bgm on resumes the last track, bgm off fades it out. All three are generated by the browser itself — no files are downloaded. First play renders a 20-second loop (a few hundred ms); subsequent plays are instant.

ターミナルに bgm 1(アンビエントパッド)/ bgm 2(ロウファイビート)/ bgm 3(雨音+ベル)と入力。bgm on で前回のトラックを再開、bgm off でフェードアウト停止。3種類ともブラウザが自前で合成していて、外部ファイルのダウンロードは一切ありません。初回だけ 20 秒のループを焼くのに数百ミリ秒、2 回目以降は瞬時に再生。

Does BGM keep playing when I lock my phone? スマホの画面を消しても BGM は鳴り続ける?

Yes. The audio is rendered to a WAV blob and played through a real <audio> element, so iOS and Android treat it like any media app — it survives the lock screen, tab switch, and even silent scroll in another app. MediaSession metadata shows "DDD · BGM" on the lock screen with a play / pause control.

はい。音声は WAV Blob にレンダリングされ、本物の <audio> 要素で再生されるため、iOS・Android ともに通常のメディアアプリと同じ扱い — ロック画面、タブ切替、他アプリ利用中でも鳴り続けます。ロック画面には MediaSession のメタデータで「DDD · BGM」と再生/一時停止が表示されます。

Can I change the five tasks once I've named them? 1日5タスクの名前はあとから変更できる?

Yes — tap any task row in FOCUS and edit the text. The locked rows (tasks you haven't reached yet) and the currently-active task are both editable. Completed tasks are frozen.

できます。FOCUS のタスク行をタップして直接書き換え可能。現在アクティブな行と、まだ到達していないロック中の行は編集できます。完了済み行は凍結されます。

Can I plan tomorrow — or a week ahead? 明日や来週のタスクを事前に仕込める?

Yes. Tap the date line at the top of FOCUS to open a calendar and pick any future day. The 5 slots become a "planning" draft saved against that date; when the day arrives, they auto-load into your live FOCUS. Past days are read-only — the grid already recorded what happened.

はい。FOCUS 上部の日付をタップするとカレンダーが開き、未来の日を選べます。選んだ日の5枠は「計画」として保存され、当日になると自動で FOCUS にロードされます。過去の日は閲覧のみ — グリッドに記録された真実は動かせません。

Can I customize the four timer durations? タイマー長(15/25/45/60)はカスタマイズできる?

Any 1–180 minute value via the terminal: dur 20, dur 90, etc. The four preset pills (15 / 25 / 45 / 60) are just the common cases. The clock face stays a 60-minute dial regardless — a 20-minute run renders as a wedge from 12 to the "20" position.

1〜180分の任意値をターミナルで指定できます: dur 20, dur 90 など。4 つのプリセット(15/25/45/60)はよくある値を置いているだけ。クロックフェースは常に 60 分ダイヤルで、20 分ならば 12 時から「20」位置までの扇として描画されます。

What does the pulsing red dot next to the active task mean? アクティブタスクの横で点滅する赤いドットは?

It's the "in progress" marker — visual confirmation that this is the task the TIMER will operate on. Only the first unchecked task shows it; all others show either a lock (future) or a check mark (done).

「実行中」マーカーです — タイマーがこのタスクを対象にしていることの目印。最初の未完了タスクにだけ点き、それ以外は鍵(未来)かチェック(完了)のいずれかが表示されます。

What exactly does the TIMER play in audio? TIMER からはどんな音が鳴る?

Two things. (1) A soft 2-tone bell marks every 15-minute milestone — 15, 30, 45 — so a 60-minute session has three checkpoints. (2) The final 10 seconds tick down with short square-wave pips (one per second, from 10 to 1). The 0-second instant itself is silent; the task-complete toast takes over. If a 15-min boundary coincides with completion, the chime is suppressed to avoid double-feedback.

2種類です。(1) 15分ごとに優しい2音ベル(15 / 30 / 45 分)— 60分セッションなら3回のチェックポイント。(2) 最後の10秒は短いピッ音のカウントダウン(10→1 を毎秒1回)。0秒ジャストは無音で、完了トーストに譲ります。15分境界がタイマー終了と一致する場合、チャイムは省略されて重複を回避します。

Do the TIMER sounds work when my screen is off? 画面が消えていても TIMER 音は鳴りますか?

Foreground only. The chime/countdown are driven by setInterval, which iOS and Android throttle heavily (sometimes to once per minute) when the tab is backgrounded. The BGM still plays through the lock screen — but for crisp timer alerts, keep the DDD tab visible. Primary use: start a session, leave DDD frontmost on a second monitor or your phone propped up.

フォアグラウンドのみです。チャイムとカウントダウンは setInterval 駆動で、タブがバックグラウンドに行くと iOS・Android は大幅に間引きます(時には1分に1回まで)。BGM はロック画面越しでも鳴り続けますが、タイマーの音は DDD を前面に出しておくのがおすすめ。サブディスプレイやスマホ立て掛けなどで可視化しておく用途が基本です。

What are the icons that appear under LOG? LOG下部に現れるアイコンは何?

A weekday pixel creature, layered with seasonal / time-of-day / milestone effects. MON flower → TUE tulip → WED sunflower → THU rose → FRI cat → SAT bird → SUN fish. On top: sakura (Mar-Apr), rain (Jun), fireflies (Jul-Aug nights), maple (Oct-Nov), snow (Dec-Feb), sunrise glow (Jan 1-3). Plus night sky (22-05h), dawn warmth (05-08h), streak sparks (≥7 days), streak glow (≥30 days), birthday confetti. See the LOG DECOR section above for the full live catalog.

曜日のピクセルクリーチャーに、季節 / 時刻 / 記念日のレイヤーが重なっています。月:花 → 火:チューリップ → 水:向日葵 → 木:薔薇 → 金:猫 → 土:鳥 → 日:魚。その上に: 桜(3-4月)、雨(6月)、蛍(7-8月の夜)、紅葉(10-11月)、雪(12-2月)、初日の出(1/1-3)。さらに夜空(22-5時)、朝焼け(5-8時)、連続記録の火花(7日〜)、グロー(30日〜)、誕生日の紙吹雪も。上の LOG DECOR セクションにフルカタログあり。

How is my streak counted, and how do I set my birthday? 連続記録はどう数える?誕生日はどう設定?

The streak is the longest unbroken chain of days where at least one task was completed, counting back from today. Miss a day and it resets. For the birthday confetti, type birthday 12-25 (MM-DD) in the terminal — stored in localStorage only, never sent anywhere. Use birthday off to clear it.

連続記録は「今日からさかのぼって、1タスク以上完了した日が連続で続いた最長の日数」です。1日でも空けるとリセット。誕生日の紙吹雪は、ターミナルに birthday 12-25(MM-DD)と入力すれば設定完了 — localStorage のみに保存、外部送信は一切なし。解除は birthday off

Name five things. Start one.

5つに名前を付けて、1つ目を始めよう。