制作物一覧

Deno

Deno, Deno Deploy, Deno KVなどを使用した作品です。
主にTypeScriptを使用しています。

ブログ

このブログは、DenoTypeScriptを用いて、サーバーサイドのロジックからフロントエンドの表示まで一貫して構築したWebアプリケーションです。フレームワークに依存せず、Denoの標準機能を最大限に活用しているのが特徴で、特にデータベースにはDeno KVを採用し、訪問者カウンターやBBS(掲示板)といった動的コンテンツを実現しました。
記事はMarkdownで管理し、サーバー側でHTMLに動的変換して配信しています。また、BBSのリアルタイム更新は、WebSocketの代わりにポーリングという手法を用いることで、実装の複雑さを抑えつつ実用的な機能を確保しました。
開発プロセスは、Deno Deployとの連携により、GitHubへのプッシュをトリガーとしたCI/CD(継続的インテグレーション/継続的デリバリー)を構築し、開発から公開までを自動化しています。SEO対策として、各ページに応じたOGPメタタグを動的に生成する機能も実装済みです。このプロジェクトは、Denoのポテンシャルを活かし、モダンなWeb開発技術を実践した成果物です。

→ ブログサイトを見る
スクリーンショット1 スクリーンショット2

Gemini API

Googleの提供するLLM(大規模言語モデル)である、GeminiのAPIを用いた作品です。

Discord Bot

Discordサーバー内でのコミュニケーションを支援する多機能Botです。
友人とのDiscordサーバーでの運用を想定して開発されており、「モザイク機能」では、NSFWな画像に対して一定数のリアクションが付くと、自動で画像をモザイク処理し、元画像を専用スレッドへ非通知で複製、元のメッセージを削除します。
「Starboard機能」では、特定のリアクション数を超えたメッセージを専用チャンネルへ自動転送し、注目メッセージを一覧できるようにしました。閾値やモザイク強度は管理者向けのスラッシュコマンドで柔軟に設定可能です。
さらに、Gemini APIを活用した画像説明機能も備えております、ただし、Geminiの利用規約では、NSFWなコンテンツの取り扱いを禁止しています。そのため、ユーザーがアップロードした画像をGeminiに送信する前に、nsfwjsというtensorflowのモデルを使用することで、画像が適切かどうかを判定して、不適切な画像を自動的にはじくようにしました。NSFW対策やAIとの連携、ユーザー権限管理など、実際の運用を想定した設計を重視しました。

→ リポジトリを見る
スクリーンショット1 スクリーンショット2
Gemini チャットアプリ

このデスクトップ向け多機能チャットアプリケーションは、Google Gemini API (gemini-2.0-flash) を活用し、ユーザーとAIの円滑な対話を可能にします。GUIフレームワークにはPyQt5を採用しており、直感的で洗練された操作性を提供します。また、現代のユーザーの好みに合わせ、ダークテーマにも対応しました。

主な特徴

UIの強化とユーザビリティの向上

従来のバージョンからUIを大幅に改善しました。開発当初はTkinterを利用していましたが、PyQt5への移行により、より表現力豊かなUIコンポーネントを活用できるようになりました。また、ダークテーマに対応したり、メッセージ本文やシステムインタラクションの複数行入力により、長文のもスムーズに入力できるようにしたりしたことで、全体的なユーザビリティが向上しています。

このアプリケーションは、ドキュメントの要約から画像や音声を含むマルチモーダルなやり取りまで、日常的な幅広い利用シーンを想定して開発されました。

→ リポジトリを見る
スクリーンショット1 スクリーンショット2 スクリーンショット3 スクリーンショット4

CUIシリーズ

CUI(Character User Interface)環境における表現力の限界に挑んだ作品です。
本シリーズでは、ANSIエスケープシーケンスによる文字色の変更やカーソル制御といった低レイヤ機能を駆使し、3D迷路やグラフ描画、ペイントソフトなど、GUIに匹敵する視覚体験をターミナル上で実現しています。
限られた手段の中でいかにインタラクティブ性や視認性を高めるか、アルゴリズムとデザインの両面から試行錯誤を重ねました。
CやC++で記述されたプログラムは、Raspberry Piなどの比較的低スペックな環境でも動作可能なことを目指し、標準出力によってグラフィックを表現しています。
当初は趣味としてペイントソフトやグラフ描画ツールの開発を行っていましたが、やがて学園祭のクラス展示『白黒世界からの脱出』のギミックの一つとして、3D迷路が採用されるに至りました。

CUI 3D迷路

Linuxのターミナル上で動作する、完全テキストベースの3D風迷路ゲームです。
学園祭のクラス展示企画「白黒世界からの脱出」に合わせて制作した作品です。
配色はモノクロに統一し、テーマに沿った世界観を構築しました。
迷路をクリアすると、宝箱が開き「パレットを手に入れた」という演出がアスキーアートのアニメーションで表示されます。
本作は、ANSIのエスケープシーケンスによる文字色の変更とカーソル位置の指定を使用しています。
これによって、CUI環境でも疑似的な3D表現を実現しています。
いわゆる『DOOM』のような、前後移動と左右の視点回転が可能です。

→ リポジトリを見る
スクリーンショット1 スクリーンショット2
CUI グラフ描画ツール

Linuxのターミナル上で動作する、完全テキストベースのグラフ描画ツールです。
ANSIのエスケープシーケンスを用いた文字色の変更により、複数のグラフの描画を可能にしています。
グラフは、曲線の太さが常に一定になるように描画します。単にy座標だけを引き伸ばすと、曲線の傾きによってグラフの太さが変わってきてしまいます。
そこで本作品では、微分や三角関数などの数学的な操作を用いることで、グラフの傾きによらず、一定の太さでグラフを描画する処理を実現しました。

→ リポジトリを見る
スクリーンショット1
CUI ペイントソフト

Linuxのターミナル上で動作する、完全テキストベースのペイントツールです。
ANSIのエスケープシーケンスにを用いた文字色と背景色の変更により、空白文字に色を付けた、ドット絵のような表現が可能です。
作成したイラストは、他のCUIソフトウェアに流用できるように、「printf関数」や「二次元配列」としてエクスポートできます。2枚目の画像は、制作したイラストを色番号の二次元配列として出力している様子です。
他にも、イラストのセーブとロードや左右反転など、自身にとってより使いやすいドット絵制作ソフトを追求しました。

→ リポジトリを見る
スクリーンショット1 スクリーンショット2
CUI イラスト3D表示

Linuxのターミナル上で動作する、完全テキストベースで疑似的に3D表示をするプログラムです。
CUI ペイントソフトで作成したイラストの上を飛び回るように見ることができ、作成したイラストを別の視点で体験できます。
単純な線形変換ではなく、三角関数などの数学的操作と座標計算によって、奥行きを感じられるような3D表示を実現しています。

→ リポジトリを見る
スクリーンショット1

ゲーム制作

過去のゲーム制作物です。主に2Dのアクションゲームを開発しております。
目的に沿ったアセットが見つからない場合は自分でドット絵を描くことで補填しています。
開発環境はGameMakerやUnityのほかに、Pyxelといった「ファンタジー・コンソール」の開発環境を使用することもあります。

I Wanna Be The Late Bloomer

高難易度アクションゲーム『I Wanna Be The Guy』のファンゲームとして制作した、オリジナルの「アイワナ」派生作品です。
本作は、GameMakerを用いて開発しています。
針の配置やトラップ、ステージギミックなど、プレイヤーの試行錯誤と成長を引き出すような、シンプルかつ高難易度なアクションゲームを設計しました。

スクリーンショット1 スクリーンショット2 スクリーンショット3
Unity

Unityのチュートリアルに沿って制作した2Dアクションゲームです。画面上のさくらんぼを回収するようにプレイヤーを操作します。
通常のジャンプの他に、2段ジャンプや壁キックの機能も搭載しており、ジャンプボタンを押下する長さに応じてジャンプの高さを調整することができます。
より直感的な操作ができることを目指して制作しました。

チーム制作

チームでの制作物です。

Treasure on Find

「スタンプラリー×クイズ」で学校・企業見学をサポートする、スマホ向けWebサイトです。
アプリの企画と、コンパスなどのUIのデザインを担当しました。
コンパスやマップを駆使して、現地のQRコードを探します。QRコードを読み取ることでポイント獲得、自動的に始まるクイズに正解するとさらにポイントが獲得できます。これらを繰り返すことで楽しく学校・企業見学をサポートできます。
本作品は、2023年度の日タイ高校生ICTフェアに向けた、2つ下の学年の後輩のサポートとして参加し、5人のチームで協力して最後まで開発を行いました。

→ リポジトリを見る
→ サイトを見る
スクリーンショット1

その他

その他の制作物やアカウントです。

dotpict

ドット絵の作品を投稿しているアカウントです。
制作したドット絵は、学校の数学自習会のポスターや、友人と出店したサークルの技術書の表紙に使用されました。

→ dotpictのアカウント
スクリーンショット1
コミックマーケット

コミックマーケット105に、サークル『MUHO』として友人と出店しました。
友人の執筆した本の表紙を担当した他、「Toki Pona」という人工言語の文法を解説する文法書を執筆いたしました。

→ 執筆した本(電子版の販売ページに飛びます。)
スクリーンショット1
Mathlog

数学系の記事を投稿しているアカウントです。
「ライツアウト」という有名なパズルについての数学的な考察など、より高度な内容の数学記事を投稿しております。

→ Mathlogのアカウント
きょうの数学

京都府高等学校数学研究会が発行しているフリーペーパー『きょうの数学』に記事を寄稿いたしました。

→ 記事を見る