動くことまでが、クオリティ。
LunaのSales Lensは共通26項目を通過しましたが、棒グラフの棒は非表示でした。Orbit Labにも公転の不具合が残っています。画面と操作を確かめることで、点数だけでは見えない差が分かります。
MODEL STUDY / 2026.09.23
今回の比較では、見た目の豊かさはClaude Opus 5.5に軍配。コストパフォーマンスとクオリティのバランスならGPT-6 Sol、3Dシミュレーションを速く構築するならGPT-6 Astraが光りました。GPT-6 Lunaは重量級では未完成で、中量級でもグラフ表示などに課題が残りました。
中量級・重量級の2課題合計で、初回提出までのAPI料金換算は Opus > Astra > Sol。Solを1とした比率は約3.54 : 2.85 : 1です。LunaはSolの約1/59(1/40以下)、合計約3.48円相当。今回の複雑な制作では完成度を満たせませんでしたが、費用面では有利でした。
課題別のLunaの費用は、Solに対して中量級で約1/32、重量級で約1/91。通常API単価・1ドル150円の参考換算で、実請求額ではありません。見た目の評価には主観を含みます。各課題1回の実測に基づくまとめです。
実際に投入した課題の依頼文です。4モデルで同じ文面を使用しました。アプリが付与するシステム指示やツール定義は含みません。
比較実験です。次の同一仕様のWeb作品を、あなたの作業ディレクトリに実装して完成させてください。名称は「Orbit Lab」。Three.js 0.186.0を使用し、同一バージョンの本体とOrbitControlsを読み込んでください(CDNのimport mapでもnpmでも可)。公開・デプロイは不要です。 要件: 1. 太陽・地球・月の3Dモデルを手続き的なジオメトリとマテリアルで表現。外部画像・3Dアセットは使わない。太陽を点光源とし、地球と月の明暗がカメラ操作で分かること。 2. 地球の公転と自転、地軸の傾き、月の公転をdelta timeで動かす。軌道面の傾きを視覚化し、地球と月の軌道線を表示する。スケールと速度は教育用の誇張でよい。 3. 恒星背景を再現可能な乱数で生成する。OrbitControlsで回転・ズーム。天体をクリックすると選択状態と説明パネルが切り替わる。 4. 再生/停止、速度スライダー、軌道線表示切替、太陽/地球/月へのカメラフォーカス、初期状態に戻すボタンを備える。キーボードでも再生/停止とリセットができる。 5. スマホ幅でも操作できる見た目、WebGL非対応時の案内、リサイズ対応、過剰な描画負荷を避けるピクセル比制限を入れる。 6. READMEに起動手順と操作方法を書く。可能なら実際に起動して動作確認し、できなければ理由を明記する。完了報告には作成ファイル、実装済み項目、確認結果を簡潔に書く。 途中で質問せず、合理的に判断して最後まで実装してください。
GPT-6 Astra・Sol・Lunaには共通の文面を投入。Opus版ではサンプルCSVの参照先を専用フォルダーへ変更し、Codex専用の権限回復手順を削除しました。機能要件と入力データは同じです。
掲載にあたり、個人のローカルパスだけを [共通サンプルCSVのパス] と [Playwrightの設置パス] に置換しています。その他の文面は原文どおりです。アプリが付与するシステム指示やツール定義は含みません。
中程度の制作課題として、CSV売上ダッシュボード「Sales Lens」を実装してください。作業は現在の専用フォルダー内だけで行い、他のモデルの成果物は参照しないでください。実装・必要な検証・README・最終報告まで、この1回の依頼で完了してください。別エージェントへの委譲や公開・デプロイは不要です。
【範囲】
HTML/CSS/素のJavaScriptによる日本語の1画面アプリ。バックエンド、外部CDN、外部ライブラリ、ネットワーク通信は不要です。CSV処理と集計を行う core.mjs、画面 index.html、CSS、UI用JavaScript、README を作ってください。端末だけで動くこと。見た目は自由ですが、読みやすいデスクトップ画面と幅390pxのモバイル対応、フォームのラベル、エラーと空状態を整えてください。外部の画像・フォントを取得しないでください。
【入力データ】
共通サンプルCSVを次の場所から読み、専用フォルダーの sales-sample.csv にコピーし、アプリにサンプルとして組み込んでください。
[共通サンプルCSVのパス]
初期表示はこのサンプルを読み込んだ状態。列は date,category,product,quantity,unit_price です。BOM、CRLF/LF、引用符内カンマ、改行、二重引用符のエスケープを扱ってください。サンプルには意図的に不正な日付と負の数量を含めています。不正な行は集計から除外し、理由を画面に表示。ヘッダー不足など入力全体のエラーも表示してください。
【実装要件】
1. CSVファイルの読込、サンプル復帰。日付は実在するYYYY-MM-DD、カテゴリ・商品名は空でない文字列、数量は正の安全な整数、単価は0以上の安全な整数として検証してください。数量×単価も安全な整数であること。
2. 期間(開始日・終了日、両端を含む)、カテゴリ(全件/個別)、商品名の部分一致でAND絞り込み。商品名検索は大文字小文字を区別しない。フィルター解除。
3. 絞り込み後の件数、数量合計、売上合計(数量×単価の合計)を表示。カテゴリ別売上の横棒グラフをCSSまたはSVGで表示し、金額も文字で読めること。
4. 明細表と売上金額の昇順・降順切替。0件でも壊れず、総額0と空状態を表示。
5. 表示対象の明細をCSVでダウンロード。列は元と同じ5列、CSVとして正しくエスケープし、再読込して同じデータになること。
6. READMEに起動方法、操作方法、実施した検証と未検証の範囲を記載してください。
【共通検証のための約束】
core.mjsはDOMなしでimport可能にし、次のnamed exportを提供してください。
- parseSalesCSV(text): {rows,errors}。rows各要素は {date,category,product,quantity,unitPrice,amount}。errorsは配列で各要素に人が読めるmessageを持たせる。
- filterSales(rows,{from,to,category,query}): rowsと同形式の配列。空文字は制約なし。
- summarizeSales(rows): {count,quantity,revenue,byCategory}。byCategoryはカテゴリ名をキー、売上合計を値とするオブジェクト。
- toSalesCSV(rows): 5列のヘッダー付きCSV文字列。
UIには以下のdata-testidを付けてください。
csv-file(file input)、load-sample(ボタン)、filter-from/filter-to(日付input)、filter-category(select、全件のvalueは空文字)、filter-query(検索input)、reset-filters(ボタン)、metric-count/metric-quantity/metric-revenue(値表示)、category-chart、sales-table(table)、sort-amount(ボタン)、export-csv(ボタン)、errors、empty-state。
フィルター変更は即反映。数値表示の単位や区切りは自由です。
【実行と検証】
最低限core.mjsの計算テストを実行し、可能ならブラウザーでも確認してください。新しいnpm依存のインストールは不要です。利用可能な既存環境は Node.js と Python、Edge です。ブラウザー検証用のPlaywrightは次の場所にあります(使うかどうかは自由)。
[Playwrightの設置パス]
Edge: C:/Program Files (x86)/Microsoft/Edge/Application/msedge.exe
このWindows環境でexec_commandが helper_unknown_error: apply deny-read ACLs で開始できない場合、同じ処理を繰り返すよりsandbox_permissions: require_escalatedで許可された実行経路を利用してください。検証用のサーバーやブラウザーは終了時に閉じてください。
中程度の制作課題として、CSV売上ダッシュボード「Sales Lens」を実装してください。作業は現在の専用フォルダー内だけで行い、他のモデルの成果物は参照しないでください。実装・必要な検証・README・最終報告まで、この1回の依頼で完了してください。別エージェントへの委譲や公開・デプロイは不要です。
【範囲】
HTML/CSS/素のJavaScriptによる日本語の1画面アプリ。バックエンド、外部CDN、外部ライブラリ、ネットワーク通信は不要です。CSV処理と集計を行う core.mjs、画面 index.html、CSS、UI用JavaScript、README を作ってください。端末だけで動くこと。見た目は自由ですが、読みやすいデスクトップ画面と幅390pxのモバイル対応、フォームのラベル、エラーと空状態を整えてください。外部の画像・フォントを取得しないでください。
【入力データ】
共通サンプルCSVを次の場所から読み、専用フォルダーの sales-sample.csv にコピーし、アプリにサンプルとして組み込んでください。
[共通サンプルCSVのパス]
初期表示はこのサンプルを読み込んだ状態。列は date,category,product,quantity,unit_price です。BOM、CRLF/LF、引用符内カンマ、改行、二重引用符のエスケープを扱ってください。サンプルには意図的に不正な日付と負の数量を含めています。不正な行は集計から除外し、理由を画面に表示。ヘッダー不足など入力全体のエラーも表示してください。
【実装要件】
1. CSVファイルの読込、サンプル復帰。日付は実在するYYYY-MM-DD、カテゴリ・商品名は空でない文字列、数量は正の安全な整数、単価は0以上の安全な整数として検証してください。数量×単価も安全な整数であること。
2. 期間(開始日・終了日、両端を含む)、カテゴリ(全件/個別)、商品名の部分一致でAND絞り込み。商品名検索は大文字小文字を区別しない。フィルター解除。
3. 絞り込み後の件数、数量合計、売上合計(数量×単価の合計)を表示。カテゴリ別売上の横棒グラフをCSSまたはSVGで表示し、金額も文字で読めること。
4. 明細表と売上金額の昇順・降順切替。0件でも壊れず、総額0と空状態を表示。
5. 表示対象の明細をCSVでダウンロード。列は元と同じ5列、CSVとして正しくエスケープし、再読込して同じデータになること。
6. READMEに起動方法、操作方法、実施した検証と未検証の範囲を記載してください。
【共通検証のための約束】
core.mjsはDOMなしでimport可能にし、次のnamed exportを提供してください。
- parseSalesCSV(text): {rows,errors}。rows各要素は {date,category,product,quantity,unitPrice,amount}。errorsは配列で各要素に人が読めるmessageを持たせる。
- filterSales(rows,{from,to,category,query}): rowsと同形式の配列。空文字は制約なし。
- summarizeSales(rows): {count,quantity,revenue,byCategory}。byCategoryはカテゴリ名をキー、売上合計を値とするオブジェクト。
- toSalesCSV(rows): 5列のヘッダー付きCSV文字列。
UIには以下のdata-testidを付けてください。
csv-file(file input)、load-sample(ボタン)、filter-from/filter-to(日付input)、filter-category(select、全件のvalueは空文字)、filter-query(検索input)、reset-filters(ボタン)、metric-count/metric-quantity/metric-revenue(値表示)、category-chart、sales-table(table)、sort-amount(ボタン)、export-csv(ボタン)、errors、empty-state。
フィルター変更は即反映。数値表示の単位や区切りは自由です。
【実行と検証】
最低限core.mjsの計算テストを実行し、可能ならブラウザーでも確認してください。新しいnpm依存のインストールは不要です。利用可能な既存環境は Node.js と Python、Edge です。ブラウザー検証用のPlaywrightは次の場所にあります(使うかどうかは自由)。
[Playwrightの設置パス]
Edge: C:/Program Files (x86)/Microsoft/Edge/Application/msedge.exe
検証用のサーバーやブラウザーは終了時に閉じてください。
作品内をクリックすると操作できます。拡大して試すときは「別タブで開く」をどうぞ。画面幅の切替時は初期状態から開き直します。
初回提出の作品を再表示して追加撮影。1440 × 1000でリセット・停止し、各作品の標準の「地球フォーカス」を操作しました。倍率・視点は各作品の設定のままで、明るさやカメラは補正していません。
標準フォーカスでは地球の夜側が大きく見える。昼夜の境界、地軸、月との位置関係を確認できる。
地表の模様と昼夜の境界を大きく表示。月の表面や軌道も同時に見られる。
地球へのフォーカスを操作しても、見える黄色い球は太陽。元の配置・注視先の不具合で地球を正しく表示できない。
地表・雲・大気を重ねた地球。地軸と月の軌道面の傾きを画面上で確認できる。
制作結果をそのまま比較するため、判明した不具合も残しています。数値は制作時の実測です。
同じ課題でも、使うトークンと完成までの道のりは違う。
環境準備・実装・自己検証を含む、初回提出までの時間です。
| モデル | 品質の確認 | 総トークン | 出力 | 所要時間 | 応答回数 | API料金換算 |
|---|
料金は通常API単価での参考換算。月額プランの実請求額ではありません。円換算は1ドル=150円の仮定です。
LunaのSales Lensは共通26項目を通過しましたが、棒グラフの棒は非表示でした。Orbit Labにも公転の不具合が残っています。画面と操作を確かめることで、点数だけでは見えない差が分かります。
Opusの中量級課題では、モバイル表示の改善、テストの修正、権限への対応が続きました。最初のブラウザーテスト成功後の区間が入力トークンの69.5%を占めます。すべてが新しい実装に使われたわけではありません。
入力・出力・キャッシュでは単価が違い、モデルごとの単価も異なります。まず必要な品質を満たすかを確かめ、そのうえで時間と料金を見比べるのが、この実験の読み方です。
HOW TO READ THIS STUDY
これは、制作アプリとツール環境を含む実務の比較です。モデル単体の性能順位を決める実験ではありません。
2026年9月23日に実施。GPT-6 Astra・Sol・LunaはCodex、Claude Opus 5.5はClaude Code 2.1.280で実行しました。推論設定はすべてmediumですが、同じ計算量を意味しません。制作中の人間からの改善指示は加えていません。
総トークンは、キャッシュ分を含む総入力と出力の合計です。思考トークンは出力の内数として扱い、再加算しません。応答回数はツールとのやりとりを含む内部のモデル応答数です。時間は制作・環境準備・自己検証を含み、提出後の外部評価は除外します。
OpenAI側とClaude側ではトークンの区切り方、会話履歴、標準ツールが異なります。キャッシュの温まり具合も制御していません。
単価は実測日確認の通常API料金。OpenAI公式料金 ↗ / Anthropic公式料金 ↗
Sales Lensは同じ計算15項目・画面11項目で検証し、棒の実表示を追加確認しました。Orbit Labは公転・停止・速度・フォーカス・リセット・スマホ表示・非対応時の案内などを確認しています。Opusの21項目は追加評価であり、過去3モデルに同じ点数を付けたものではありません。
Codex側にはWindowsのACLエラーがありました。Claude側では今回設定したアクセス制限でブラウザー探索や終了コマンドが拒否され、別の検証環境の準備が発生しました。こうした往復も数値に含まれます。各1回の結果のため、恒常的な順位とは解釈できません。
初回提出のコピーを収録しています。静的配信のため、Three.js 0.186.0の読み込み先をサイト内に統一し、LunaのVite用CSS読み込みをHTMLに移しました。アプリの計算や3Dの動作は修正していません。元作品の外部フォント指定は維持しており、ネットワーク状況によって代替フォントになることがあります。
一覧は実測時のスクリーンショットです。ライブ比較ではGPU負荷を抑えるため最大2作品を同時に表示します。配信用の変更記録 ↓