Macのデスクトップアプリに軽量ローカルLLMを組み込んでオフライン動作させてみた〜“端末の中で動くAI”をMacで〜
ネット接続なしで動くAIアプリをMacで自作。軽量LLM(Qwen2.5-3B・gguf)をllama-cpp-pythonでデスクトップアプリに直接組み込み、PySide6のGUIで文章生成・要約をオフライン実行。Apple SiliconのGPU(Metal)で約38トークン/秒。インストール・モデル・コード・設定値まで再現できるよう解説します。
プログラミングや3DCGで何か作りたいと思っているエンジニアがいます
ネット接続なしで動くAIアプリをMacで自作。軽量LLM(Qwen2.5-3B・gguf)をllama-cpp-pythonでデスクトップアプリに直接組み込み、PySide6のGUIで文章生成・要約をオフライン実行。Apple SiliconのGPU(Metal)で約38トークン/秒。インストール・モデル・コード・設定値まで再現できるよう解説します。
p928(Unityで丸の内を夜景化)のUnreal版。PLATEAUの丸の内を広域取り込み(約16,477コンポーネント=東京駅・皇居・堀込み)し、月明かり・星空・ビルの窓・街灯をUnreal流で制作。Lumen・MegaLights・Bloom・Volumetric Fogでリッチな夜景に。窓はプロシージャルEmissiveを5,179棟一括、街灯は3,721灯を自動配置。各機能の設定値とCPU/GPU/メモリ負荷まで実測し、『Unrealの夜景が重い本当の理由=街の物量(ドローコール)』も検証します。
p924でUnrealがMacで重かったのは“全部盛り”が原因。今回はUnreal(5.7)で同じ1シーンの描画設定(Lumen・Nanite・スケーラビリティ)を切り替え、見た目と重さ(GPU時間)がどう変わるかをWindows(RTX3060)で実測。LumenオフでGPUは約3倍軽く、Naniteは見た目そのままでプリミティブ218分の1、スケーラビリティはEpicに落とすだけで見た目ほぼ同じで約2倍速。「Unrealは重い」は誤解だと確かめます。
p929の宿題「Unityも上位パイプラインならUnrealとの差は縮む」を実証。同じシーンをビルトインRP・URP・HDRPの3つで作り、反射・ブルーム・光の回り込み・光芒の見た目と、GPU時間で測ったFPSを同一Windows(RTX3060)で比較。設定は画像+数値で再現でき、いちばん軽いのはURPだった意外な結果やHDRPの露出・ライト単位のクセも解説します。
p921〜923でUnityに取り込んだ丸の内(東京)を、今度はUnreal Engineに「PLATEAU SDK for Unreal」で直接インポート。Blender経由+手作業のUnityと、SDK直接取込を比較。画質(Lumen)は公平な土俵で並べ、同一Windows(RTX3060)で性能も実測しました。
p927で地面・道路・橋梁まで整備したPLATEAUの丸の内を、Unity(ビルトインRP)で夜景化。月明かり・街灯・ビルの窓の光の作り方、窓を計算で光らせる専用シェーダー(簡易版と本格版の比較)、Bloom有り/無しの比較まで、設定値つきで解説します。
建物だけで宙に浮いて見えたPLATEAUの丸の内(東京)に、地形(地面)・道路・橋梁を足して“本物の街並み”に整備。広域データを街の範囲に切り出すコツ、形だけの道路をアスファルト質感で道路らしくする方法、建物との座標・高さ合わせの注意点までUnityの画面付きで解説します。
落ちてくる玉をタップして得点する2Dミニゲームを、Unity(C#)とXcode(Swift/SpriteKit)で全く同じに作成。iPhoneシミュレータで動かし、見た目・操作感・アプリサイズ(164MB vs 240KB)・起動・開発の手間を徹底比較。ゲームエンジンとネイティブの使い分けを結論します。
天気アプリ風を iOS(Swift)・Android(Kotlin)・Flutter(Dart) で全く同じに作り、制作手順・コード・見た目を比較。各シミュレータで何が検証でき何が実機必須か(Bluetooth・カメラ・位置情報・通信)も早見表に。
UnityとUnreal Engineは何が違い、どちらを選ぶべきか。同じ3Dミニゲームを両方で作り、描画品質・物理・FPS・ビルドサイズ・学習コストを実測。Mac vs Windows(RTX3060)の実機FPS検証つき
前編・中編で用意したPLATEAUの東京・丸の内を、Unityで実際に歩き回れるゲームにします。CharacterControllerで一人称プレイヤーを配置し、当たり判定・地面・ライティングを整備。実寸大データのスケール自動調整やNavMeshの要否も解説する3部作完結編。
前編で読み込んだPLATEAUの東京・丸の内データをUnity向けに最適化します。約4万5千個のオブジェクトを1つに結合(Unity最大の軽量化)、デシメートでのポリゴン削減と見た目への影響、FBX/glTFの書き出し比較、そしてUnityで真っ白になったときのマテリアル再設定(テクスチャ抽出)まで、全3回シリーズの中編です。
国土交通省が無料公開する3D都市モデルPLATEAUを使い、東京駅・丸の内エリアのデータをダウンロードしてBlenderに読み込みました。FBX形式なら標準インポートだけでOK。データの選び方・読み込み手順から、地理座標で街が見つからないハマりや約4万5千オブジェクトという「重さ」の問題まで紹介する全3回シリーズの前編です。
BlenderのGeometry Nodesで広大なビル群を自動生成。グリッドに点を並べてビルを配置し、高さのランダム化・道路や空き地・窓のemissionまでノードで作成。最後は街を作り直さずローポリ昼→Cycles夜景へ変身させる手法と、窓表現の失敗や夜景の明るさ調整の試行錯誤まで紹介します。
Flutter 3.44.2でカウンターアプリを作り、iPhone 17 Pro(iOS 26.5)とPixel 7(Android 16)のシミュレータで動かしました。Dartの基本文法、Bundle ID等の設定値、ハマりポイント(CocoaPods・初回ビルド)、React Nativeとの比較まで実機検証で紹介します。
ComfyUIをMacのApple Silicon上で動かし、ノードベースで画像生成ワークフローを組んでみました。インストールから基本ワークフロー、実際の生成画像、img2imgでの作り変えまで実機で検証。WebUI(p914)との使い分けも紹介します。
OpenAI WhisperをMacのApple Silicon上で動かし、日本語音声を文字起こしするアプリを作りました。tiny/base/small/mediumの4モデルを実測比較。「AIが愛に誤変換される」など日本語特有のハマりポイントも紹介します。
Unity ML-Agentsを使って強化学習エージェントを育ててみました。環境構築のハマりポイント(Python 3.10.12固定・grpcio・protobuf競合)から、RollerBallシーンの作り方、PPO学習の実測ログまで一部始終を記録しています。
GitHub Actionsを使ってCI/CDパイプラインを構築してみました。コードをpushするだけでテストとデプロイが自動で走る仕組みは、開発体験を大きく変えてくれます。
GPUなし・クラウドなし。Apple M4のMPS機能を使ってStable Diffusion 1.5をMacで動かしました。セットアップの落とし穴(lzmaエラー・黒画像問題)から、ステップ数比較・ネガティブプロンプト・CFG Scaleの実測まで徹底的に検証します。
Dockerとは何か、仮想マシンとの違いをわかりやすく解説。コンテナの仕組みからDockerfileの書き方、ParallelsやUTMとの使い分けまで、組み込み系エンジニア目線で紹介します。
組み込み系エンジニアがRustに入門!AndroidカーネルやWindowsへの採用で注目のRustを、C言語使いの目線で解説。所有権・借用・ライフタイムの概念からC言語との文法比較まで。
RAG(Retrieval-Augmented Generation)とは、LLMが知らない情報を外部ドキュメントから検索して補う仕組みです。OllamaのローカルLLM(llama3.2:3b)とnumpyだけで最小構成のRAGを実装し、実際に動かしてみました。