SG-Lib

SG-Lib 2027 — Python への移行

このページは 2027 年に向けた方針を説明するもので、ダウンロードではありません。 現在のリリースは SG-Lib 5.6(2026) という MATLAB ツールボックスです — 最新リリース を参照してください。

次世代についての三つの方針:

  • SG-Lib 2027 は Python を基盤とします。
  • 引き続き MATLAB から利用できます。
  • Python で書く MATLAB コードは、現在の SG-Lib の MATLAB コードと同じように見えます。

2027 年から Python を使う理由

SG-Lib の開発と利用を MATLAB ではなく Python で行うことで、次が可能になります:

  • MATLAB のリリースから独立してパッケージのリリースを自由に選び、最新かつ最も不具合の少ない版を直ちに取り込む;
  • パッケージ開発者を知り、重大な不具合の修正が必要なときに直接連絡し、進行中の変更について情報を得る;
  • 多様な開発者による他のパッケージを迅速かつ直接に組み込む(とくに AI ネットワーク);
  • エージェント型 AI 開発シーンによる今後の変化をより良く理解し、備える;
  • IDE を自由に選ぶ(MATLAB R2024b によく似た Spyder、Visual Studio、その他の Python IDE);
  • IDE に静的に統合された「AI エージェント」製品に依存しない。そうした製品は AI 開発の速度に追随できない可能性がある;
  • curl のような透明なインターフェースを通じてエージェント型 AI(Claude、ChatGPT)をより良く使い、最新の AI API を直接利用する;
  • 機構設計や日常の自動化のためにメモリ消費を大幅に削減したプロセスを開発し、一台の計算機で多数の並列タスクを動かし続ける;
  • インストール済みの Python 環境(venv)を MATLAB のバージョンから独立して使う(R2024b なら 3.12 など);
  • Claude や ChatGPT のような AI エージェントに、日常業務でコードをより直接的に使わせる;
  • Claude や ChatGPT のような AI エージェントに、新しいコードの実装・検証・妥当性確認をより直接的に行わせる。

同じ部品を両方の環境で

MATLAB で描画した JACO フィンガー
MATLAB R2024b — SGreadSTL+SGplotalpha、現在の SG-Lib 5.6。
ClevePython ウィンドウで描画した JACO フィンガー
ClevePython — 同じ STL を Python ウィンドウ sgpyfigure で表示。同じ MATLAB 風のコードから駆動。

部品は JACO ロボットハンドの 3D プリントしたフィンガー(64 199 ファセット)です。同一の形状、同一の視点で、一方は MATLAB が、もう一方は SG-Lib 2027 を担う Python ウィンドウが描画しています。

メモリにとっての意味

本質的な違いはアーキテクチャにあります。MATLAB は一つのプロセスです。JVM、ツールボックス、グラフィックス、ワークスペースがすべて一体で、最初の計算の前にすでに約 1.5 GB を占めます。Python の世界は二つのプロセスです。小さな計算プロセスと、独立したウィンドウ。ウィンドウはワークスペースを失わずに閉じて再起動できますが、MATLAB では両者が同じプロセスに結び付いています。

プロセス実メモリ
Python、素のインタプリタ9 MB
Python+MATLAB コア+SG-Lib 関数70 MB
…テスト形状を読み込んだ状態201 MB
その形状を表示する Python グラフィックスウィンドウ518 MB
Python 合計:計算+ウィンドウ719 MB
MATLAB、起動直後、GUI なし1 473 MB
MATLAB デスクトップ(グラフィックスあり)4 490 MB

実際上:MATLAB のプールワーカーを五つ並列に動かすと今日では約 8.7 GB。Python の計算プロセス五つなら約 350 MB であり、ウィンドウは共有できます。

2026-10-27 に MATLAB R2024b、Mac Studio(M4 Max、128 GB、macOS 15.8.1)で測定。テスト形状は 3D プリントした JACO フィンガー、64 199 ファセット。メモリ値は OS が報告する Resident Set Size。