プロジェクト名: bl_crash_profiler
バージョン: 0.1.0
開発期間: 3-6ヶ月
目的: Blenderクラッシュの自動監視・分析・報告システムの構築
本MVPは小規模な個人開発を想定し、サーバー・クラウドストレージ等の運用を前提とせず、ローカル完結型のデスクトップアプリとして設計します。将来的なスケールアップ(WebUI/サーバー化)も見据えた構成とします。
- Blenderのクラッシュ原因の特定に時間がかかる
- 特定のアドオンや操作によるクラッシュパターンが見えない
- 手動でのクラッシュレポート作成が非効率
- 開発者とユーザー間でのクラッシュ情報共有が困難
- クラッシュの自動検出と情報収集
- AI/LLMによるクラッシュ原因の自動分析
- クラッシュパターンの学習と予測
- 構造化されたバグレポートの自動生成
- 予防的警告システムの構築
- サーバー・クラウドストレージ不要、すべてローカルPC内で完結
- デスクトップアプリ(Electron + React)を中心に設計
- Pythonスクリプトでクラッシュ監視・収集、SQLiteファイルDBでデータ管理
- Electron⇔Python間はREST風APIで通信(将来FastAPI等に置換しやすい)
- データ構造・API設計は将来的なサーバー化・WebUI化を意識
flowchart LR
A["Blender<br/>(監視対象)"]
B["Crash Monitor<br/>(Pythonスクリプト)"]
C["SQLite DB<br/>(ローカル)"]
D["Electron UI<br/>(React)"]
A <--> B
B <--> C
D <--> C
D <--> B
flowchart LR
A["Blender<br/>(監視対象)"]
B["Crash Monitor<br/>(ログ収集)"]
C["Analysis Engine<br/>(LLM解析)"]
D["Report Generator<br/>(レポート生成)"]
E["Pattern Learning<br/>(パターン学習)"]
A <--> B
B <--> C
B --> D
C --> E
- ファイル監視:
*.crash.txtファイルの自動検出 - プロセス監視: Blenderプロセスの異常終了監視
- ログ収集: システムログ、ミニダンプファイルの収集
- メタデータ抽出: クラッシュ発生時の環境情報収集
- LLM統合: OpenAI GPT-4 または ローカルLLM (Ollama)
- スタックトレース解析: 関数呼び出し階層の分析
- 原因分類: メモリ不足、GPU関連、アドオン起因等の自動分類
- 重要度判定: クラッシュの緊急度レベル判定
- クラッシュパターンDB: 過去のクラッシュデータの蓄積
- 統計分析: アドオン別、操作別のクラッシュ頻度分析
- 予測モデル: 危険な操作パターンの事前検出
- 相関分析: 環境設定とクラッシュ発生率の相関
- 自動レポート: 構造化されたクラッシュレポートの生成
- 可視化: グラフ・チャートによるクラッシュ傾向の表示
- エクスポート: GitHub Issues、Blender DevTalk形式での出力
- フィルタリング: 日付、原因、重要度による絞り込み
- UI: Electron + React + TypeScript + Tailwind CSS
- バックエンド: Python 3.11+(単体スクリプト or ローカルAPIサーバー)
- データベース: SQLite(ローカルファイル)
- 監視: watchdog, psutil
- ログ管理: structlog
- 設定管理: pydantic-settings
- WebUI(React)/ FastAPI / PostgreSQL / クラウド連携 など
目標: 最小限のローカル完結型クラッシュ監視・収集システム
- クラッシュファイル監視機能
- 基本的なログ収集
- Electron+React UI
- SQLite データベース設計
- 基本的なAPI設計
- ルールベースの簡易分析
成果物:
- クラッシュ発生時の自動通知
- 基本的なクラッシュログ一覧表示
- 手動でのクラッシュレポート作成
目標: AI による自動分析機能
- OpenAI API統合
- スタックトレース解析ロジック
- 原因分類アルゴリズム
- 分析結果の構造化保存
- 分析精度の評価システム
成果物:
- クラッシュ原因の自動分析
- 解決策の提案機能
- 重要度レベルの自動判定
目標: クラッシュパターンの自動学習
- クラッシュパターンの統計分析
- アドオン別リスク分析
- 操作シーケンス分析
- 予測モデルの構築
- 警告システムの実装
成果物:
- 危険な操作パターンの事前警告
- アドオン別安定性レポート
- 環境設定の最適化提案
目標: 必要に応じてサーバー化・WebUI化・外部連携を段階的に実装
- FastAPI等によるAPIサーバー化
- WebUI(React)への切り出し
- クラウドストレージ/外部API連携
- 高度な可視化・統計分析
- GitHub Issues自動作成
- Blender DevTalk投稿機能
- 他のクラッシュレポートツールとの連携
- パフォーマンス最適化
成果物:
- 完全自動化されたバグレポート
- 高度な分析ダッシュボード
- 外部サービス連携
- 拡張性の高い分析・可視化
# 監視対象ディレクトリ
MONITOR_PATHS = {
"windows": os.getenv("TEMP"),
"linux": "/tmp",
"macos": "/tmp"
}
# 監視ファイルパターン
CRASH_PATTERNS = [
"*.crash.txt",
"blender*.log",
"*.dmp"
]# 分析カテゴリ
ANALYSIS_CATEGORIES = {
"memory": ["out_of_memory", "memory_leak", "heap_corruption"],
"gpu": ["driver_crash", "opengl_error", "cuda_error"],
"addon": ["python_error", "addon_conflict", "api_misuse"],
"system": ["disk_full", "permission_error", "system_instability"]
}
# 重要度レベル
SEVERITY_LEVELS = {
"critical": "データ損失の可能性",
"high": "作業中断",
"medium": "機能制限",
"low": "軽微な影響"
}# レポート形式
REPORT_FORMATS = {
"json": "構造化データ",
"markdown": "GitHub Issues用",
"html": "Web表示用",
"pdf": "印刷用"
}-- クラッシュレポート
CREATE TABLE crash_reports (
id UUID PRIMARY KEY,
timestamp DATETIME,
blender_version VARCHAR(50),
os_info TEXT,
crash_type VARCHAR(100),
severity_level VARCHAR(20),
raw_log TEXT,
analysis_result JSON,
file_path TEXT,
created_at DATETIME
);
-- 分析結果
CREATE TABLE analysis_results (
id UUID PRIMARY KEY,
crash_report_id UUID REFERENCES crash_reports(id),
llm_provider VARCHAR(50),
analysis_type VARCHAR(100),
confidence_score FLOAT,
suggested_solutions TEXT,
related_issues TEXT,
created_at DATETIME
);
-- パターン学習
CREATE TABLE crash_patterns (
id UUID PRIMARY KEY,
pattern_type VARCHAR(100),
pattern_data JSON,
frequency INTEGER,
first_seen DATETIME,
last_seen DATETIME,
related_addons TEXT[]
);- 開発者: 1名
- 作業時間: 週10-20時間
- 開発環境: Python開発環境、LLM API アクセス
- LLM分析精度: 誤分析による誤った解決策提案
- パフォーマンス: 大量のクラッシュログ処理時の性能問題
- プライバシー: ユーザーのクラッシュログに含まれる個人情報
- 分析精度向上: 複数のLLMモデルでの検証、人間によるレビュー
- パフォーマンス対策: 非同期処理、バッチ処理、キャッシュ活用
- プライバシー保護: ログの匿名化、オプトイン方式
- クラッシュ検出率: 95%以上
- 分析精度: 80%以上
- レスポンス時間: 5秒以内
- ユーザー満足度: 4.0/5.0以上
- Blenderコミュニティでの認知度向上
- 開発者からのフィードバック獲得
- オープンソースプロジェクトとしての発展
- 基本機能の完成とリリース
- 限定的なベータテスト
- コミュニティフィードバック収集
- 機能拡張と安定性向上
- 他の3DCGソフトウェアへの対応検討
- 商用版の検討
- AI主導の予防的メンテナンス
- リアルタイム最適化提案
- 業界標準ツールとしての地位確立
bl_crash_profilerは、Blenderユーザーの作業効率向上と開発者の品質向上を同時に実現する革新的なツールです。LLMの力を活用した自動分析と機械学習によるパターン認識により、従来の手動作業を大幅に削減し、より迅速で正確なクラッシュ対応を可能にします。
このプロジェクトの成功により、Blenderエコシステム全体の安定性向上に貢献し、3DCG制作ワークフローの信頼性を大幅に向上させることができます。