AI Coding Remote Desktop  
AI Coding Remote Desktop

AI Coding Remote Desktop

AI Coding Remote Desktop
AIRD
リポジトリ
https://github.com/mmgames/AICodingRemoteDesktop

サーバー


クライアント


概要
ABOUT
AI Coding Remote Desktop は、最低限の機能に絞って実装されたリモートデスクトップアプリです。
本アプリのコーディング作業は 100% AI のみで行われています。

実装されている機能は必要最小限ですが、
パフォーマンスは現段階ですでに実用レベルに到達しています。
動作環境
SPEC
サーバー(操作される側)
・Windows11

クライアント(操作する側)
・モダンウェブブラウザ(PC及びスマートフォン)
使用方法
HOW TO USE
本アプリは シングルバイナリ で動作します。
Releases からダウンロードし、RemoteDesktop.exe を起動してください。

クライアント(ビューアー)にはウェブブラウザを使用します。
別のデバイスから以下のURLにアクセスしてください。
例:http://192.168.xxx.xxx:8090/

※ 192.168.xxx.xxx には、RemoteDesktop.exe を起動したデバイスの プライベートIPアドレス を指定します。
本アプリは AIコーディングの検証 を主目的として作成したものです。
セキュリティを考慮した実装にはなっていません。
必ず安全なネットワーク内でのテスト用途のみに使用してください。
知識が不十分なユーザーによる誤使用や、外部からの意図しない接続を防ぐため、
プライベートIPアドレス(192.168.x.x)からの接続のみ を許可する実装になっています。
この制限は変更できません。
パフォーマンス
PERFORMANCE
素朴な実装にもかかわらず、
本アプリのパフォーマンスは 実用レベル に達しています。

体感的には、Chrome リモート デスクトップや
一般的な商用リモートデスクトップアプリと比べても遜色はありません。
非アクションゲームであればゲームもプレイ可能でした。

AMD Ryzen 7 5800H(3.2GHz)環境において、
1920×1080 の画面転送を 1フレームあたり約25ミリ秒で処理できています。

さらなる高速化を目指して改良してみたい人がいましたら、
まずはJPEGエンコーダーをより高速な実装に差し替えることをおすすめします。
起動オプション
OPTION
-port : ポート番号 (デフォルト: 8090)
-scale 0.1-1.0 : 画面縮小率 (デフォルト: 自動または0.7)
-quality 0.1-1.0 : JPEG品質 (デフォルト: 0.7)
-password : パスワード設定(BASIC認証)
-bmp : BMP形式を使用 (帯域幅を消費します)
-gray : グレースケールモード

※BASIC認証は、安全なネットワーク内での使用を前提とした簡易的な認証方式です。

使用例
RemoteDesktop.exe -port 8080 -scale 0.5
開発環境
STACK
・言語:C++
・開発環境:Microsoft Visual C++ 2026
・フレームワーク:Native WindowsAPI
・AI コーディング IDE:Google Antigravity
・AIモデル:Gemini 3 Pro (High)

いわゆる「バイブコーディング」ではあまり採用されない技術スタックですが、
リモートデスクトップアプリという特性上、遅延を可能な限り抑えることを最優先し、
C++ と Native Windows API を選択しました。
開発手法
METHODOLOGY
Antigravity を使用し、日本語プロンプトによる指示のみで実装しています。
コーディング作業は 100% AIのみで行いました。
プロンプト
PROMPT
プロンプト自体に特別なテクニックは用いていませんが、
要求はできるだけ具体的に記述しないとパフォーマンスが出ませんでした。

例えば、
「デスクトップ画面全体をキャプチャしてください」
という曖昧な指示でも実装は行われますが、
その場合、Windows 95 時代の古い API が使用されてしまい、
パフォーマンスが極めて劣悪で実用にはなりませんでした。

そのため
Windows Graphics Capture API を使用してデスクトップ画面全体をキャプチャしてください。
Windows Graphics Capture API に非対応の環境は一切考慮する必要はありません。
といった、使用するAPIを明示した具体的なプロンプト を与えています。

型あり言語なのでエラーがすぐにわかる
TYPE
静的型付け言語である C++ を使用しているため、
エラー箇所が簡単にわかるので、AIへの修正指示が容易でした。

開発中もっともエラーが頻発したのは、
Network.h 内に埋め込まれている HTML の ダブルクオーテーション 対応ミスでしたが、
これは当然コンパイルエラーになるので、該当行を指定するだけで修正できました。

動的型付け言語だと、コンパイルエラーを出してくれないため、
AIの出力する大量のコードを読み取ってエラー箇所を特定するのは大変そうです。
AIは外部ライブラリを追加してくれない
LIBRARY
AIに外部ライブラリのインストールを指示しても、追加できませんと言われてしまいました。
C++はライブラリのパッケージシステムが整備されていないので、難しいのでしょう。
そのため、WindowsAPIのみで実装しました。

ライブラリのパッケージシステムが整備されている言語であれば、問題はないでしょう。
生成コードはスパゲッティだが絶望的でもない
CODE QUALITY
AIが生成してくれるコードはやはりかなりスパゲッティ(整頓されていない)コードです。
ですが、絶望的というほどでもなく、後からちゃんと整理することはできそうなレベルです。

「Capture.h」「Network.h」という大枠の単位ではファイルに分割されており、
その中の実装もある程度はメソッドに分割されています。

なぜかヘッダーファイルしか追加しない(.cppファイルを追加しない)、
埋め込みHTMLを外部化してくれない、1メソッドに詰め込みがち、
などの問題はあるものの、想定していたよりは読めるコードになっています。
バイブコーディングなら素人でもアプリ開発できるのか?
VIBECODING
・ 画面全体をキャプチャする
・ ブラウザに画像を連続転送する
・ ブラウザ上のマウス操作を送信して同じ位置で再現する

のような具体的な仕様を日本語プロンプトで指定するだけで、
実際のコーディングに関わることは一切指示することなく実装が行えました。

パフォーマンスのために API名 を指示するなど、技術的な知識も多少は必要になりますが、
C++に関する知識は全く不要だったと言って問題ありませんでした。

全く知識がない人が自分の欲しい仕様を備えたアプリを開発するのは難しそうですが、
大雑把なロジックは思いつくけれども、プログラミング言語で表現できない、
という人であってもアプリを完成させることができそうだと感じました。
リモートデスクトップ、意外と普通に作れる
REMOTEDESKTOP
バイブコーディングの検証が元々の目的だったのですが、
実装後の印象としては、
簡素な作りでも意外と普通に動くリモートデスクトップアプリ作れるじゃん
というほうが印象に残った結果となりました。

ある程度動作するリモートデスクトップアプリを作るには、
GPUドライバレベルで画面をキャプチャして、
専用にカリカリにチューニングされた動画エンコーダーで圧縮して、
パケットの同期を取るために緻密な制御を行って・・・

といった相当に高度な実装をしないと遅すぎて全くお話にならない
というイメージを持っていたため、簡素な実装で意外に動くことに驚きです。

これは実際に実装して見なければわからなかったことであり、
こういった思いつきをサクッと形にして確認できる
というのは、バイブコーディングの可能性を感じるポイントです。

MMGamesについて

ゲームやアプリの開発に
情熱を燃やし続けるプログラマー
代表作はC言語入門サイトの決定版
「苦しんで覚えるC言語」


コメントシステムを読込中・・・