AIアプリケーションエンジニア

小嶋 明 Akira Kojima

研究・CGの自力実装から,
AI活用アプリの設計・検証まで.

研究・CGは生成AIを使わず自力実装.現在の受託・OSSでは要件・設計判断と評価・検証を担当し,実装はAIエージェントへ委任しています.

プロフィール

学歴
東京大学 工学部卒
同大学院 修士課程修了
現在
フリーランス(2026年4月〜)
資格
基本情報技術者 取得(2026年8月)
G検定 取得(2026年9月)
AWS Certified AI Practitioner 取得(2026年9月)↗
GitHub Foundations 取得(2026年10月)
AtCoder
水色・最高1541/上位4.24%2026年10月時点,レーティング1541
経歴・担当技術の詳細へ ↓

BETA · ASK ABOUT MY WORK & ME

AIに作品・経歴・小嶋明について質問する

β版・品質検証中です.研究・作品・経歴に加え,公開資料にある経験・活動・開発の考え方も質問できます.資料にないことや私的な情報は対象外です.担当範囲や実績の説明にも誤りがあり得るため,必ず参照元をご確認ください.質問によっては回答できない場合もあります.

質問欄の表示にはJavaScriptが必要です.作品の詳細は各項目のリンクからもご覧いただけます.

この質問機能の設計・安全対策・検証は作品紹介で説明しています.

01 / RESEARCH

研究 — 触覚を測り,分布を再構成する

EIT(電気インピーダンストモグラフィ)触覚センサの計測・再構成.解析・シミュレーションのコードは,生成AIを使わず本人が実装しました.

CNNによる触覚分布の再構成

電極で測った信号から接触分布を推定する逆問題に,シミュレーションデータで学習したCNN(Keras)を適用.1点接触シミュレーションで,空間分解能指標・位置誤差を従来法の約21%まで低減しました.

160mm角モデルでの比較.IROS 2022ワークショップ・SI2022でポスター発表.

電極配置の最適化 — 査読付き筆頭論文

16電極のシミュレーションで,最悪領域の空間分解能指標(HWHM)を等間隔配置比で19.2%低減.構想・設計・実験は共同で行い,結果の解析と論文初稿の執筆を担当しました.

筆頭論文を読む ↗

A. Kojima et al.,Frontiers in Robotics and AI(2023)

CNNによる再構成で,空間分解能指標と位置誤差が線形手法の約21%まで低減した比較グラフ
1点接触:空間分解能指標・位置誤差
2点接触の再構成比較.接触点の注記と導電率カラーバー付き.線形手法ではにじむ接触点がCNNでは分離されている
2点接触:再構成画像の比較

画像をクリックして拡大

研究の測定条件・発表資料

CNN再構成の1点接触シミュレーションでは,空間分解能指標RESは48.1% → 10.2%,位置誤差は13.0mm → 2.8mm.電極配置の研究では,16電極シミュレーションの最悪領域19.2%低減とは別に,64電極の試作基板の中央領域でHWHMを19.5%低減しました.

EIT触覚センサのCNN再構成をまとめたSI2022ポスター全体

SI2022ポスター.画像をクリックして拡大できます.

02 / CLIENT WORK

受託案件 — 要件整理から評価・改善まで

美容クリニック向けLINE応答AI

受託開発・本番導入前

LINE公式アカウントの問い合わせを,FAQ回答・予約フォーム案内・スタッフへの引き継ぎに分岐するシステムです.

  • 本人の担当:2026年4月から本人1名の開発体制で,要件整理・設計と検証方針・レビュー・定例会での報告と提案を担当.実装はAIエージェントへ委任しています.提案3件のうち2件を実装に反映しました.
  • 安全設計:予約確定・診断などは対象外として顧客に説明.有人対応中・状態不明時はAI返信を見送り,障害時は料金等を含まない定型文で電話窓口のみ案内します.
  • 検証状況:開発者PC上の試作環境で稼働・検証中.応答検証は全体で74種類・延べ約200回,pytestはプロジェクト全体で395件です.
LINE応答AIの構成.LINEからFastAPIへ届いた問い合わせを,Dify・RAGとOpenAI Responses APIで処理.FAQ回答・予約フォーム案内・スタッフ引き継ぎに分岐し,有人対応中はAIが返信しない.受信時にWebhook署名を検証し,必要時は公式サイト検索へ切り替える
システム構成と回答の3分岐 — 横にスクロール/クリックして拡大

改善手法:FAQ検索で回答生成に渡す検索結果の上限(Top-K)を4件 → 10件へ増加.FAQ自体と,公式サイト検索への切替条件は変更していません.

回答網羅率50% → 81%

参照する関連情報を増やし,回答が満たした確認項目は13/26 → 21/26に増加.

平均応答時間12.4秒 → 6.5秒

公式サイトへの追加検索が7問中3問 → 0問に減少.追加検索を省けたことが短縮の要因と考えられます.

同じ7設問・26確認項目を変更前後で各1回比較(2026年8月2日,開発段階).他の設問でも同じ改善を保証するものではありません.

匿名化処理・安全設計・検証の詳細

個人情報の扱い:過去の応対14,051会話に対し,開発者PC上で正規表現とローカルLLMの多段検査による匿名化処理を実施.12,853件が機械検査を通過しました.見つかった置換漏れを型分類し,前処理ルールへ反映しています.

処理の改善:初回検査でNGとなった会話も,ローカルLLMで残った個人情報を特定・補修して再検査し,2,788件を回収.置換漏れの型を8種の正規表現ルールとして前処理に追加しました.機械検査の通過件数であり,完全な匿名化を保証する数値ではありません.

評価の補足:上記7設問の比較では,最大応答時間も28.8秒 → 9.0秒に短縮.この比較を含む応答検証全体が74種類・延べ約200回です.別途行った公式サイト全64ページとの照合では,プラン名の取り違え等を修正しました.このナレッジ修正を,上記数値の改善理由には含めていません.

対応範囲:予約確定・診断・登録外情報の推測回答・LINE上での個人情報収集は実装しないと仕様化.運用ログの利用者IDをハッシュ化し,Webhook署名検証を既定で有効にしています.関連動作をpytestで確認しています(395件はプロジェクト全体).

構成技術:Python / FastAPI / Dify / RAG / LINE Messaging API / OpenAI Responses API.クリニック側にデモ用アカウントでの試用・確認を依頼中です.

施設を特定しない範囲で掲載許可を取得.顧客名・画面・利用者データは公開していません.

03 / HAND-CODED GRAPHICS

自力実装 — コンピュータグラフィクス

生成AIを使わず,描画の仕組みから実装した3作品です.Python版2作品はCGライブラリを使わずフルスクラッチで実装.GLSL版はC++/OpenGL上でフラグメントシェーダを記述しました.

Pythonで自力実装したレイトレーシングの出力.球面への反射・屈折を表現

Python / 生成AI不使用

レイトレーシング

光線を追跡して画像を生成する方式.レイと球の交差判定,材質,反射・屈折の再帰計算を自力実装しました.

Pythonで自力実装したシャドウマッピングの出力.光源と物体の位置に応じた影を描画

Python / 生成AI不使用

シャドウマッピング

光源から見た深さを比較して影を判定する方式.深度マップによる描画と,影の縞模様や浮きを抑えるバイアス調整を実装しました.

GLSLのフラグメントシェーダで,CSGで組み合わせた形状をレイトレーシング描画した画面

C++ / OpenGL / GLSL / 生成AI不使用

レイトレーシング+CSG

光線追跡に,CSG(立体の和・差・積で形状を構成)を組み合わせ,反射・屈折・透過を含む描画をフラグメントシェーダで実装しました.

このほか,制御・画像処理などの自力実装作品もその他の作品に掲載しています.

04 / AI-ASSISTED DEVELOPMENT

AIエージェントを活用した個人開発・OSS

本人は企画・仕様・設計判断,レビューと実環境での検証・採否判断を担当.実装はAIエージェントへ委任しています.レビューは主に仕様・画面・動作を対象とし,必要に応じ一部のコード・ファイルを確認しています.

LINE × WEB / 公開プロトタイプ

Trivium

読む・書く・論理の3分野から各1問,1日3問をLINEで学ぶサービス.出題・ヒント・講評と学習記録を,LINEとWebで共有します.

  • 本人の担当:企画・到達レベルと出題難易度の仕様・検証基準を決定し,統合レビューと本番検証を担当.実装はAIエージェントへ委任.
  • 設計判断:学習指標の集計は決定論,LLMは解釈・生成に限定.生成問題はコード実行や別AIによる解き直しで検証し,基準を満たしたものだけ採用.
  • 検証と公開:初回コミットから約21時間でLINE・Web・本番デプロイまで完成.単体テスト226件とCIを備え,VPSで稼働しています.

Next.js / TypeScript / PostgreSQL / LINE / Docker

TriviumのLINE画面例.3分野の到達レベル,Webへの導線,6項目の操作メニュー
LINE:到達レベルと操作メニュー
TriviumのLINE画面.担当AIが段階的なヒントを返している
LINE:問題から段階的ヒントへ
検証基準・サービス構成・追加画面

生成問題の採否:Python問題はコード実行で解答を照合.選択式は正解を伏せた別のAIが解き直して一致を確認しました.計画250スロットのうち246問を採用し,最大3回で基準を満たさなかった4スロットは不採用.課題は手書き63問を含む計309問です.

品質確認:DB・APIキー不要の単体テスト226件.CIで型検査・lint・テスト・ビルドを実行し,Dockerワークフローでは本番と同じDockerfileのビルド,PostgreSQLへのマイグレーション,ヘルスチェックを確認します.

設計:LINEには先に短い返信を返し,生成後にプッシュ配信.学習レベルの昇格・降格にはしきい値差を設けています.4人格の担当AI,Googleログイン,教材カタログ145件,実績バッジ61種,設定時刻のリマインドを備えます.初回デプロイまで105コミット,MIT Licenseで公開.

React / Prisma / OpenAI API(Dify経由も選択可)/ GitHub Actions

PYTHON × FFMPEG / OSS

ScriptVEdit

Pythonコードでタイムラインを記述し,FFmpegコマンドへ変換して映像を生成する動画編集DSL.掲載している解説動画も,このDSLで制作しました.

  • 本人の担当:記法・素材キャッシュ・アンカー解決・区間並列レンダリングの仕様をAIと相談して決定.実装はAIエージェントへ委任し,映像の品質は本人が目視で評価.
  • レンダリング時間:自作解説動画(2分56秒)で,当時の非効率を含む逐次経路1012秒 → 8分割並列106秒.

2026年7月,87オブジェクト・20論理コアPCでの計測.純粋な並列化だけの効果を示す比較ではありません.

ScriptVEditの解説動画.左のPythonコードと,右の生成映像を対応させて表示
左:Pythonコード/右:そのコードから生成した映像
実装分担・別条件の性能改善

実装分担:上記の仕組みを含む実装全般,テスト生成,スクリーンショットでの出力確認はAIエージェントへ委任.本人は仕様と各機構の仕組みをほぼ決定し,映像の品質を目視で評価しています.

別ベンチでの改善:2026年8月,AIエージェントを併用した全体監査で逐次経路のO(N²)処理を特定.可視区間trimで解消し,合成ベンチ(N=40)で約68秒 → 約5秒,回帰テスト10件で固定しました.上記の解説動画とは異なる条件の計測です.

自作解説動画のレンダリング時間1012秒と106秒を比較する場面
解説動画自体のレンダリング時間
演算子でタイムラインを記述するScriptVEditの構文解説
演算子によるタイムラインの記述

MULTI-LLM × FLUTTER / 公開ベータ

Clage Cook

Claude・Gemini・ChatGPT・Grokへ同じ質問を送り,回答の比較・相互批評・統合までを1画面で行うアプリ.利用者自身のAPIキーを使います(BYOK).

  • 本人の担当:仕様・アーキテクチャの決定,生成物への修正指示,Windows/Android実機での確認.実装はAIエージェントへ委任.
  • 設計判断:4社で異なるAPIを共通化.一部が失敗しても完了した回答で統合へ進み,途中で切れた回答は統合に含めません.
  • 保存:APIキーはOSのセキュアストレージへ.Direct接続時は履歴を端末内だけに保存.

Flutter / Dart / 各社公式API / FastAPI(開発用)

GitHub・CIを確認 ↗
Clage CookのWindows画面.4社AIの回答と統合回答を一覧表示
Windows実画面.DIRECT · LOCALは各社APIへの直接接続
設計・実装分担・Android実機画面

Flutter/DartのUI,開発用FastAPIサーバー,テストを含む実装はAIエージェントへ委任しました.進行状況は共通イベントでUIへ配信し,サーバー経由時はSSEを使用.途中で切れた回答は表示・保存しつつ統合の材料からは除外します.Direct接続と開発用reference serverは分離しています.

生成物をレビューし,画面仕様・挙動・エラー処理の修正方針を指示.WindowsとAndroid実機で確認しています.MIT Licenseの公開ベータで,本番運用向けサポート・後方互換性は未保証です.

Clage CookのAndroid版.各AIの回答状況と統合回答を一覧表示
各AIの回答と統合回答
相互批評の後も初回回答を保持して表示するAndroid画面
初回回答の保持
開発背景:非公開版の日常運用から公式API版へ

各社AIの比較・統合をAndroidから日常的に使う非公開システムを運用し,生成の継続・再接続後の復帰・使用量ウィジェットを設計してきました.その会議フローを各社公式APIで再実装したものが公開版です.

非公開版はKotlin/Jetpack Compose・Python/FastAPI・Glance widgetで構成.会議操作コマンド,失敗時も完了済み回答を残す流れ,JSON/ZIPでほかのAIへ引き継ぐ連携を備えています.

非公開版で各AIの回答カードを表示するチャット画面
非公開版の回答カード
Androidのホーム画面に置いた使用量ウィジェット
使用量ウィジェット

RAG × AWS / β・品質検証中

portfolio-assistant — このサイトのAI質問機能

このポートフォリオに組み込んだ質問応答AI(β・品質検証中).公開資料と,公開用に承認した本人回答だけを検索し,出典付きで回答します.出典は,公開資料を番号付きリンク,本人提供情報をURLなしの注記として区別します.

  • 本人の担当:要件・回答範囲・安全方針の決定,安全面と最低限の回答品質を先に確かめる優先順位付け,AWS操作・公開・費用の承認,生成物のレビューと検証結果に基づく採否判断,回答ナレッジ用の本人回答の提供.実装はAIエージェント(Codex CLI・Claude Code)へ委任.
  • 設計判断(安全・費用):APIキーはブラウザに渡さず,サーバー側で専用の暗号化パラメーターから読み込みます.利用回数は全モデル共通で1日40回/IP.IPはHMACで仮名化し,期限付きで保存.Lambdaの予約同時実行数を停止手段とし,モデル障害時も別モデルへ自動で切り替えません.
  • 設計判断(回答品質):根拠や引用のない回答は後処理で安全な定型文へ置き換え,禁止表現も検査します.本人とAIの担当範囲を取り違えないよう,ナレッジ側で自力実装とAIへの実装委任を区別して記述しています.私的な情報には答えません.
  • モデル:5モデルから選択(既定はQwen3 235B).Qwen3・GLM 5・Kimi K2.5はAmazon Bedrock,GPT-5.6 TerraはOpenAI,Claude Sonnet 5はAnthropicのAPIで生成し,検索は共通のBedrockナレッジベースで行います.

2026年9月19日に開発を始め,9月29日にβ公開.9月30日に会話履歴8往復・次の質問候補・回答ナレッジ34文書へ更新しました.回答の誤りや未回答があり得ます.

Amazon Bedrock(Knowledge Bases / S3 Vectors)/ AWS Lambda(Python)/ API Gateway / DynamoDB / Vanilla JavaScript

質問欄で試す ↑
公開サイトの質問欄を開いた画面.回答モデルにQwen3 235Bを選択し,初回案内と質問例3件を表示
公開サイトの質問欄.モデル選択と初回案内(質問は未送信)
構成・運用と検証の範囲
  1. ブラウザ(このサイト)
  2. API Gateway
  3. AWS Lambda(Python)
  • ナレッジ検索Amazon Bedrock Knowledge Bases(S3 Vectors)
  • 利用回数DynamoDB(全モデル共通40回/IP/日)
  • 回答生成選択したモデルに応じてBedrock・OpenAI・Anthropic
構成の概要.APIキーはサーバー側だけで扱います

運用:工程ごとに権限を分けたIAMロールで操作.AWSを変更するスクリプトは既定で無通信とし,書込みの前後に状態を読み戻し,自動再試行はしません.ナレッジの更新は差分だけを条件付きで同期します.

検証:自動テストは,外部サービスを模擬してPython 1,164件・Node 43件(2026年10月3日時点).本番のデータベースでも,検証用の記録に対して日次上限の40回目までの成功と41回目以降の拒否を確認しました.

状態:β・品質検証中です.上記は限られた条件での確認で,包括的な品質保証ではありません.回答は参照元とあわせてご確認ください.リポジトリは非公開のため,リンクは掲載していません.

補足作品:ChromiumforA — AndroidブラウザーへのAI機能統合

Android版Chromiumを改造し,Google検索の結果へAIの評価コメントと再評価後の並び順を提示.ページ要約・選択文へのAI処理・Wikipediaの閲覧補助も統合した,非公開の個人検証用プロトタイプです.

本人の担当:機能のアイデアを考案.Chromium本体への組み込みを含む実装はほぼAIエージェントへ委任しています.開発中に認証情報の扱いの問題が再現テストで見つかり,構造を変更して同条件で再検証しました.

▶ 操作動画を見る(2倍速)
通常の「人工知能」Google検索結果.人工知能学会・FPTソフトウェア・IBMの順に表示
通常の検索結果
AI評価後の検索結果.IBM・Wikipedia・人工知能学会の順になり,緑色の評価コメントを挿入
AIによる評価コメントと順位変更
Wikipedia上でページ要約・翻訳などのメニューを開いたAndroid画面
操作メニュー
Wikipediaの人工知能ページを要約したAndroid画面
ページの要約

05 / BACKGROUND

経歴・資格・担当技術

学歴・職歴

2018.04–2022.03東京大学 工学部 精密工学科 卒業 2022.04–2024.09東京大学大学院 新領域創成科学研究科 人間環境学専攻 修士課程 修了 2024.10–2026.03同博士後期課程でEIT触覚センサを研究(退学) 2026.04–現在フリーランス・AIアプリケーション開発

TA:東京大学大学院の有限要素法・物理シミュレーションの演習指導(2023年11月〜2024年1月,2024年11月〜2025年1月).

AWS Certified AI Practitionerの認定バッジ.Credlyで検証 G検定 合格ロゴ(2026年 第5回)

資格:基本情報技術者 取得(2026年8月),G検定 取得(2026年9月),AWS Certified AI Practitioner 取得(2026年9月),GitHub Foundations 取得(2026年10月).

プログラミング実績:AtCoder 水色(最高レーティング1541.2026年10月時点1541,上位4.24%).paizaスキルチェック Sランク(最高レーティング1920).

技術と担当範囲

  • Python / C++本人の実装経験:研究の解析・シミュレーション,CG,制御,競技プログラミング
  • Keras / GLSL本人の実装経験:CNN再構成,フラグメントシェーダでのレイトレーシング・CSG
  • 設計・評価現在の受託・OSS:要件・仕様・設計判断,生成物のレビュー,実環境での検証と採否判断
  • 製品の構成技術FastAPI / Dify / Next.js / PostgreSQL / Flutter / FFmpegなど.実装はAIへ委任しており,本人の習得技術とは区別しています

研究・自力実装と,現在のAIエージェントを活用する開発を区別して掲載しています.生成物をそのまま採用せず,検証できる仕様・評価基準を定めることを重視しています.

06 / ACTIVITIES

サークル活動・発表

遊びや運営上の課題を数理・情報科学で考察し,実装へつなげる活動にも取り組みました.

東京大学キムワイプ卓球会(UT-KTT)

キムワイプの箱をラケットにして卓球を楽しみ,論文や研究会といった科学界の文化も取り入れる「サイエンティフィック・スポーツ」のサークルです.競技や多彩なテーマの発表を通じ,文理・専門分野を越えた交流を大切にしています.

2019・2020年の2年間,会長を担当.駒場祭の体験会・大会運営,参加時間や連続勤務に配慮したシフト調整,学園祭運営との交渉,スポンサーとの連絡・報告,取材対応を行いました.

合成データから入力インターフェースへ

2022年の発表では,箱の3Dモデルから合成学習データを作り,既存のYOLOv5を転移学習.カメラで検出した位置・大きさをUnity内の操作へ反映する入力インターフェースを試作しました.

本人の担当:Blenderでの撮影スクリプト,合成画像生成のPythonスクリプト,Unity連携を自作.学習にはYOLOv5の既存機能を利用しています.

試作範囲は検出・入力連携までで,卓球ゲーム全体・オンライン対戦は未完成です.

サークル研究会での発表・予稿(5題)

2018〜2022年に4回の研究会で発表.2018〜2020年の4題は主に理論的考察,2022年は検出システムの試作です.

その他の作品

上に掲載したCG3作品以外の,制御・画像処理・AIクライアントなどの制作記録です.

その他の作品を開く(7件)

生成AI不使用の自力実装(4作品)

手の傾きと開閉で赤い車を運転する3Dデモ

ハンドドライブ

JavaScript / Three.js

Webカメラで捉えた手の傾きと開閉を,ステアリング・アクセル・ブレーキへ変換する3D運転デモ.

▶ 動画を見る
倒立振子が障害物を避けて移動するシミュレーション

倒立振子

C++ / ODE

PID制御で倒立姿勢を保ちながら,障害物を避けてゴールへ移動するシミュレーション.

▶ 動画を見る
伝播する波と放物面の変形をワイヤーフレームで可視化した画面

波と放物面のアニメーション

Python

既存の描画基盤を再利用し,伝播する波と放物面の変形をワイヤーフレームで可視化.

▶ 動画を見る

Canny法(エッジ抽出)

Python

ライブラリに頼らず,Canny法のエッジ抽出処理を一から実装.左が入力,右が出力です.

その他のアプリ・ツール(3作品)

ChatGPT-Windowsで会話とストリーミング回答を表示する画面

ChatGPT-Windows

Python / PySide6(Qt6)/ MIT

翻訳・補完・要約をホットキーとクリップボードから呼び出すWindows常駐クライアント.ストリーミング表示とWindows資格情報マネージャーへのAPIキー保存に対応.

ChatGPT-Webで入力文の続きをゴーストテキストとして表示

ChatGPT-Web

JavaScript / 単一HTML / MIT

入力の続きをゴーストテキストで提案するプロトタイプ.Tabと矢印キーで全体・1文字単位を確定します.ローカル検証用.

CalcpyのREPL画面.数式入力と結果,フリック入力用の関数パレット

Calcpy

Android / Kotlin・Compose / CPython・SymPy / 非公開

電卓の操作感にSymPyの厳密計算とPython REPLを統合したAndroid試作.4方向フリック入力と,Python実行の別プロセス隔離を設計しました.

CONTACT

連絡先・資料

研究・自力実装の経験と,AI活用アプリの設計・検証に取り組んでいます.ご連絡はメールへお願いします.

© 2026 Akira Kojima. All rights reserved.