Dots

WEBアプリ




Searchlights

searchlights のゲーム画面

ボードゲーム「シティチェイス」をパクったブラウザゲーム。

犯人1人が街のビルに車を隠して逃げ、警察がヘリコプター3機で12ラウンド以内に見つけ出す。

1台の端末を2人で回す交代モード、相手をCPUが持つモード、ロビーでルームを立てるオンライン対戦がある。オンラインは1対1と、警察を3人で持つ4人形式。

フロントエンドはSolid.js + ViteでCloudflare Pagesに、APIはCloud Run + PostgreSQLで動かしている。


excess

excess の画面

excess — ブラウザで動くCSV/TSVビューア&エディタ。

ExcelなしでCSVファイルをサクッと開ける。大容量ファイルにも対応。

カラム幅を自動調整、フィルタリング、ソート、様々な形式へのエクスポートなど、いろいろできる。

サーバーサイドの処理はなく、全てブラウザ上で完結する。

ファイルもサーバーにアップロードせず、OPFSを使ってローカルで処理する。

ブラウザのタブを閉じてもファイルは消えないし、同じブラウザであれば別のタブからもアクセスできる。


soluid Components

soluid の画像light mode

solid.js 用のコンポーネントライブラリ。 package.json にインストールするのではなく、スタンドアロンで動作する。

npm package: https://www.npmjs.com/package/soluid

Soluid Components のコンポーネントカタログ兼デモページ。


AACHAT

aachatの画像

映像がアスキーアートに変換されて表示される簡易ビデオ通話ツール。

共通のキーワードを入力した2ユーザー間で、1−1の通話ができる。

ちなみに、普通に映像を表示するほうが、実装は簡単。無駄にテキストに変換していると言える。

WEBRTCを使うが、シグナリングに自前のPipingServerを使う。

シグナリング成功後はP2Pで直接通信するため、サーバーが不要というところが素晴らしい。

P2P接続できない場合は接続不可。(TURNサーバー無し)

ただ、ミュートやカメラオフなどの、実用的な必須機能がほとんど未実装。


Rufly

ruflyの画像

ウェブページを要約・翻訳するChrome拡張機能。


TILT.

TILT のゲーム画面

Playdate向けのゲーム。加速度センサーで本体を傾けてボールを転がし、ゴールを目指す。

Sideloadでインストール可能。

このゲームのBGMをYoutube にアップしてます。 TILTのサウンドトラック


PEERFACE

peerfaceのタイトル画面

WebRTCを使ったP2Pビデオ通話アプリ。

CloudFront + S3 + CloudRun + NeonDBで構成。 Nest.jsでAPIを書いて、Solid.jsでフロントエンドを書いている。


パスキーのデモ

passkeydemoのトップページ

パスキーのデモサイト。

パスキーを使って登録してログインすると、パスキーを更に登録したり、それらを使って認証をテストしたりできる。

Claude Code を試すために作ったので、無駄にi18n対応したり、無駄にデザインを切り替えられるようになっている。

APIはRustで書いてビルドしたバイナリを乗せた小さいLWA入りのイメージをLambdaにデプロイ。 フロントエンドはSolid.jsで書いて、S3にデプロイしている。

Pulumiでデプロイした。

Rust でAPIを書いて、Lambda に乗せてPulumiでデプロイする実験でもある。


PipingServer

piping server のデモ画面

AA電話のWebRTCで無理やりシグナリングに使っているPipingServer。

ブラウザでアクセスするとデモページが開くが、コマンドで利用できる。

本来の使い方としては、一方からテキストを送信して、他方で1回だけ受信できるサーバー。

/p/の後に適当な名前をつけて、そこにテキストをPUT methodで送信すると、別のシェルから同じURLにGET methodで受信できる。

送信側

echo "こんにちは。" | curl -T - https://ppng.urtell.com/p/sample-hoge

受信側(別のターミナル、別のPCで)

curl https://ppng.urtell.com/p/sample-hoge
こんにちは。

rusterd-demo

rusterd (ER図DSLコンパイラ) のデモページ。


NFC Writer

NFCタグにURLやテキストを書き込めるWebアプリ。


プロフィール画像生成ツール

適当なアバター画像やヘッダ画像を生成するツール。

PNG, WebP形式でダウンロード可能。


Favicon生成ツール

画像をアップロードしたらFavicon(.ico形式)が返ってくるツール。


Facial

face-api.js を使って、表情を検出できるかどうか試してみたページ。

いきなりカメラ起動するので怖いけど、何も記録してません。

表情を6種類の感情の割合で解釈してくれる。

人間の表情が6種類なわけないし、精度は微妙。

fearful を出すのが一番ムズい。


Braille Pattern Generator

画像をアップロードすると点字文字を使ったテキストを生成するツール。

CLIツールもある。