高さわずか2ピクセル!驚きの超極小フォントTwo Sliceとは?
引用元:https://news.ycombinator.com/item?id=45236263
8x8より小さいフォントにはサブカルチャーがあって、小型LEDディスプレイとかで実用されてるよ。これはかなり極端だけどね。あと、https://stormgold.itch.io/picket-right-font も見てみて!
高さ1ピクセルのフォントなら思いつくよ。Samuel Morseが発明したやつで、読むのにちょっと練習がいるけどね笑
小型LEDディスプレイの話だけど、最高のDPIスクリーンは127,000 PPIだよ。1インチの高さに8x8テキストを14,000行以上表示できるんだ。一般的なモニターは140 PPI。物理的なサイズが問題なら、8x8以下にする必要はないと思うよ。
カラーを使う極小フォントってあるのかな?この2ピクセル幅のPicket Rightフォントは、サブピクセル機能を使えば理論上もっと細くできるかもね。2ピクセル高のTwo Sliceフォントもアンチエイリアシングがあればもっと読みやすくなるんじゃないかな。
あれは比較的読みやすいよね。普通のフォントを細かく切ったみたいに見えるからだと思うな。
Novation LaunchpadとかMystrix Proみたいなパッドグリッドコントローラーは8x8グリッドなんだ。最初はライトがなかったけど、パッドごとにRGB LEDが付くようになって、そのグリッド上でテキストやグラフィックを表示することになったんだよ。Mystrixはスクロール表示で理想的じゃないけど、ちゃんと機能してる。ディスプレイを別に用意するって話もあるけど、それはこのコメントが解決しようとしてる問題じゃないんだ。
あー、インターネットって、ちょっとした冗談を言うとすぐに何人もの人に「いや、実際はね」って言われちゃう場所だよね。
シェアありがとう!こういうクールなサブカルチャーを見るの楽しいよ。ハッカー精神を思い出させるね。
あと、https://stormgold.itch.io/two-slice もあるけど、これって同じ作者なの?
これフォントじゃないじゃん。…まあ、コードだよね。
じゃあこれ説明してみろよ! https://www.dafont.com/morse.font
あ! Redditユーザーのu/trampolinebearsのホバーボックスに”Fonts: stormgold.itch.io”って書いてあるじゃん。これで納得したわ。
俺はAPC Miniの8x8ライトグリッドに数字を表示するコード作ったんだよね。https://github.com/scottyeager/pressed/blob/main/controllers…古いモデルの3色使って、199までの数字を読みやすく表示できたよ。右の2桁は8x3、左の1桁は8x2。2ピクセル幅だと全ての数字を判読できるテキストにするのは無理ってすぐ諦めたから、2ピクセル幅のフルフォントは面白い驚きだね。Mystrixの情報ありがとう—良さそう!
これはタイプフェースというよりエンコーディングだよね。ASCIIやUnicodeみたいな。でも、バーコード生成フォントやLLM内蔵フォントが作れるなら、モールス符号でほとんどのASCII文字を表す1ピクセル高のフォントも設計できるだろうね。
3ピクセルのフォントってある?2ピクセルだとさすがにミニマルすぎな気がする(笑)
マジで85%くらいはすぐ読み取れたわ。リンク先のやつは全然読めないけど(笑)
これってエスペラント語をフォントだって主張してるようなもんだよね。
隙間があるから、実質的には3ピクセル幅なんだよね。基本的に1ピクセル削った3x5フォントって感じ。
一部のディスプレイだと、RGBを3つのサブピクセル(R、G、Bのストライプ)に分けられるじゃん。3x5ピクセルフォント(9x5サブピクセル)を代わりに6x5サブピクセルフォント(2x5ピクセルフォント)として描画できるんだよ。
どっちのフォントがいいかよくわかんないけど、このフォントはめっちゃ斜めから見ると読みやすい気がするんだよね。半分が欠けてないみたいに見えるからかな…って、まさか自分が「読みやすいはずだ」って思い込んでて、自己暗示にかけてるだけじゃないよね?
2ピクセルだけでグリフを表せるわけないって、わかってるよね?
私はハッカーじゃないけど、彼らの考え方には本当に共感するな。パンクみたいだよね。パンクでもないけど、命をかけてでも守り抜くよ。
https://news.ycombinator.com/item?id=45236312 でキルティングに関する情報があるよ。
あのフォントのカーニングが悪かったら、めちゃくちゃ問題になりそうだよね。
色だけで止まるなよ。すべての文字列に合字を追加して、アニメーションもサポートすれば、どんな英数字も1ピクセルでレンダリングできるフォントが完成するぞ。モールス信号の復習は必要になるけどね。
うん。主に3ピクセル高のフォントを扱ったMicro-Font Quilt(https://news.ycombinator.com/item?id=45236312)を見てみてよ。
書体って、テキストのピクセルエンコーディングの仕様そのものじゃない?テキストを投入したら、ピクセルデータが出てくるんだもん。
英語の単語や文章の「エントロピーの低さ」が可読性をかなり助けてると思うよ。一文字読めなくても、文脈からたいてい推測できるんだ。ランダムな文字列で試すと、そんなに読めないはず。
部分的に、俺たちが文字や単語を、個々の識別より「字形の全体像」で認識してるからだと思うんだ。2x2のグリッドは16パターンしか表現できないけど、俺たちは「単語」を認識しようとしてる。字形の連続性が十分な手掛かりになるんだ。汚い手書きを読むのと似てるよね。この2x2フォントを訓練なしで即座に読めるのは面白いし、単語認識の仕組みへの洞察を与えてくれるよ。
もっとコメントを表示(1)
ほとんどの文字は2x3ピクセルだよ。mは2x5ピクセルだし。それに、これって快適に読めるって感じじゃないな。読むっていうより、解読に近い感じだったよ。
確かにね。でも、そもそもこんなの早く解読できるのが面白いんだよ。視覚的な単語形式の「トップダウン予測」が、「ボトムアップの感覚入力」と出会う、人間の知覚の典型例みたいだね。俺たちは様々なフォントや手書き、照明なんかで十分経験を積んでるから、この程度の情報不足の入力でも大して問題にならないんだ。
部分的には、俺たちが傾いたものを読む経験があるからだと思うんだ。これはまるでテーブルの上で文字が後ろに傾いていて、俺がその水平線のすぐ上から覗き込んでるみたいに見える。読めるけど、快適じゃないね。
これ、8ビット時代を懐かしく思い出させるな。Tasword IIはSinclair ZX Spectrum用のワープロで、開発者たちはSpeccyの256x192という限られた画面解像度に対応するため、超極細フォントを使ったんだ。
https://spectrumcomputing.co.uk/entry/4000080/Timex/Tasword_… の下のスクリーンショットを見ると、3px幅のフォントっぽいのがわかるよ。でも、記事の2px幅は俺の好みにはちょっと極端すぎるけどね。
Commodore 64のVIP Termと似てるね。あれは80桁のテキストを表示するために、4x8のスペースに3x7のビットマップフォントを使っていたよ。ワープロがそういうことをしたかは知らないけど、プリンタプレビューモード以外で。
Pocket Writer(少なくともバージョン2は)。俺はそれでレポートを山ほど書いたよ。
昔のSpectrumエミュレータ(JPP?)はVGAテキストモードで2ピクセル高のフォントを使っていたんだって。各文字が自分自身の序数で、例えば65は01000001ピクセルが2列って感じ。これのおかげで、Spectrumみたいにバイト単位で各行を描画できたし、Yオフセットのビットシャッフルとカラークラッシュをごまかせたんだよ。
こういうフォントは文字の周りの空白が超重要だよ。このフォントは表示上は実質4x4、3x4だと読みにくいと思うな。物理的なディスプレイなら、各2x3ピクセルブロックをデッドスペースで囲んで最適化できるかもね。それでも1ドル以下のOLEDで16x32文字、3ドルの統合コンピューターで10x18文字表示できるのはすごい。小さいフォントを実用で使うなら、個人的には4x5(3x4+パディング)が読みやすく、これ以上小さいと頑張って読まなきゃいけない限界だと思うな。
グリフの間隔や行の高さはビットマップの一部じゃないんだよ。
それは分かるんだけど、実際にピクセルに置くとそこが問題になるんだよね。僕は実用での使い方を考えてるんだけど、ピクセルが限られた画面だとこういうフォントを使うことになるし。これはクールなハックだけど、僕みたいに実際に小さいフォントをデバイスで使う人間にはすごく興味深いよ。4x5(パディング込み)ならかなり読みやすいって分かったんだ。これより小さいと読むのに苦労するね。
この定義だと、すべてのNxNフォントは実質(N+1)x(N+1)になっちゃうよね。でもそれが慣習じゃないし、文字間に0ピクセルの垂直・水平間隔で表示されることはないよ。
8ビット時代を経験してないみたいだね(笑)。昔のコンピューターは文字間にスペースがなく、ROMのキャラクタマップから直接画面に描画してたんだ。メモリが少なかったから、ピクセルじゃなく文字を保存しててね。だから8x8フォントには空白行や列が組み込まれてることが多かったんだよ。組込み機器や、Linuxのブート時とか、今でもそういうフォントを見つけられるんだ。
マジでびっくりしたよ。こんなの不可能だって断言してたのに。素晴らしいね。ブラボー。
誰かこれが実用目的で使われるべきだって提案してると思う?
「バカげている」は言いすぎだと思うな。これは芸術作品でしょ、単にあなたの芸術の好みに合わないだけなんじゃない?
まさにそれだよ。俺のアートの趣味はバカげてるって言われるけど、それがどうしたって言うんだい! :)
誰かがこれを「超アーティスティック」って思って使いそうで心配だよ。こんなもの存在しない方がマシだね。
大文字のHはひどいね…ピクセルが繋がってないし、’ii’とか”II”と見分けがつかない。コンセプトは面白いけど、この一点だけは間違った選択だと思うよ。
このフォントで「HiGh sky buys The lies」を読んでみてよ。何て書いてあるか、かなり判別しにくいからさ…。
このフォントが読めるのは、ユーザーが文脈で単語を推測してるからだと思うな。もし普通の人が使わないような文章(特に大文字小文字を混ぜた場合)を書き始めたら、通用しないよ。でも、「普通の」使い方ならまだ面白いね。
俺がもっと心配なのは、V、X、Yが全部同じに見えることだよ。「waxy」なのか「wavy」なのか、どうやって判別するんだい?
言語のすべてと同じだよ、文脈さ。なぜ髪が80年代のシンセポップみたいだったり、ジャガイモが蜂蜜の副産物と関係したりするんだい?
髪はwaxyにもwavyにも、その両方にもなり得るよ。
彼女の長いブロンドのwaxyな髪が風になびいた。これこそ文脈さ。
彼女の「wa[]y」な髪は、美容師にとって難題だったんだ。
文脈で常に曖昧さが解消されるわけじゃないよ。完璧なフォントでも曖昧な文章はありえるからね。
裁判官が曖昧な判決(ambiguous sentence)を下したってさ。
「彼女の長く金色のワックスのような髪が風になびいていた」。GPと同じ質問だけど、waxy(ワックスのような)なのかwavy(波状の)なのか、どうやってわかるの?
文脈からだよ。風になびく長い髪は美しい髪の描写だよね。Wavy(波状の)髪は美しいけど、waxy(ワックスのような)髪はそうじゃない。これはほとんどの人にとってすごく明白だよ。
「ワックスみたいな髪を美しいと思う人もいるんだから、君の例は無効だし、僕はすごく賢いんだぞ」って言ってるような「:nerd:」なコメントだね。
もっとコメントを表示(2)
ところで、3x5フォントは実際には使えるんだよね。
小さなOLEDディスプレイには「Tom Thumb」が好きなんだ。
https://robey.lag.net/2010/01/23/tiny-monospace-font.html
これ用のAdaライブラリも作ったよ。
https://github.com/JeremyGrosser/tiny_text
PICO-8のコードエディタで使われていると思うよ。
そうそう、低解像度でもすごく読みやすいんだ。Master Of Orionは3x5フォントを使ってて、すごくクリアで読みやすいよ。
こういうフォントを読みやすくするには、読者が既に知ってる文章を例に使うのがコツだと思う。そうすれば、一文字ずつ認識しなくても、ところどころで全体を把握できるからね。一番読みやすい文字に集中するのも役立つよ。冗談はさておき、これは見事な成果だね。文字を横に引き伸ばすのは、判読性を大幅に向上させる素晴らしいアイデアだよ。(以前のアプローチは正方形を保とうとしてたけど、このサイズではうまくいかないんだ)
中国語の文字の最小解像度ってどのくらいだろう?2pxよりは絶対高いよね。
繁体字中国語のほとんどの文字は8x8みたいだよ: https://imgur.com/DBRSqIn
簡体字中国語やカタカナ/ひらがなはもっと小さいかもね。2x2じゃ”Two Slice”は絶対読めないだろうな。
中国語で8x8は大変だけど、英語の2pxフォントよりは推測じゃない分マシだよね。簡体字中国語が6px高だったらどうなるか気になるな。
日本語だと5x7(7x5)が一番小さいの見つけたけど、これは実際の中国語には向かないだろうね。
https://booth.pm/ja/items/1477300
いくつかあるよ。
https://github.com/Warren2060/ChillBitmap
https://github.com/scott0107000/BoutiqueBitmap7x7
すごく良いね!小文字の b と l と h が全部同じなのがポイントだね。
あのゼロの字形、すごく好き。ローマ数字じゃなくて、合字で数字の文字列をバイナリとして符号化できないかな?例えば42を010101みたいにね。(たまたま42を選んだけど、こんなに面白い文字列だとは知らなかったよ…Douglas Adamsはきっと知ってたんだろうな)
101010だね。君は知ってるだろうし、誰かが気づいて反応するまでどれくらいかかるか見たいんでしょ?
リトルエンディアンかビッグエンディアンか、だね。
それに、頭の中で計算しながら打ち出すとね。
42(偶数)→0、21(奇数)→1、10(偶数)→0、5(奇数)→1、2(偶数)→0、1(奇数)→1、だね。
バイナリ表記法について、ちゃんと読んだことないんだよね。パーティー芸(両手で1000まで数えるやつ)で知ってるくらいだわ。
ちなみに、JoeはLeaving Earthの作者でもあるよ: https://joefatula.com/#leavingearth
Microsoftの新しいEULAでこのフォントが使われるのを心待ちにしてるよ。
いくつかの文字や単語(特に”c”とか”can”)は、上半分が切り取られてて、脳が下半分を補完する感じだね。SandiskがSのロゴを再デザインしたのを思い出すな。これについて何か研究とかあるのかな?
xyv、bl、hiって大文字小文字問わず同じかほとんど見分けがつかないね。一番読めない文章を作ろうとしてるんだ。「Hi, THe czech’s bliss is exact」までできたよ。
去年、関連するサブピクセルフォントについてたくさんの議論があったスレッドだよ: Nanofont3x4: 小文字も読める最小の3x4フォント (2015) https://news.ycombinator.com/item?id=39735675
> きっと読めるよ、読みたくなくてもね。
うーん…いや、読めないな。いくつかの文字はわかるけど、ほとんど無理なんだ。この手のコンセプトやアートは好きだけど、私は読めない。** 目の神経に問題があって、ほとんどの場合は法的盲目じゃないんだけどね。
うん、多くの単語や文字は意味が通じたけど、読むのに推測が必要だったのは確かだね。興味深いし、この制約の中ではかなりすごいと思う。「たぶん」読めるっていうのは楽観的すぎるな。「もしかしたら」の方が現実的だろうね。
簡単じゃないけど、確かに読めたよ。続ける前に一語ずつ完全に読もうとしない方が楽だね。
うん、スキャン読みだと普通は各単語の最初と最後だけでいいんだけどね。でも、終わりがわからないから、単語全体が掴めないんだ。