[ 前へ | 目次 | 次へ ]
2023/09/04
Japanese English

リニアングラフ3Dをアップデート、
次期版(Ver.6)の開発もスタート!

RINEARNでは先日、リニアングラフ3Dの最新版 Ver.5.6.34 をリリースいたしました。

今回のアップデートは、先行開発版の ADV-20230722 の内容を反映させ、加えてメモリー使用量の再設定スクリプトのバグを修正した、比較的小規模な更新です。 この記事では、まずその内容をお知らせします。

また、本記事後半では、最近開発がスタートした、リニアングラフ3Dの次期メジャーバージョン(Ver.6系)についての情報も少しご紹介します!

Ver.5.6.34 での更新内容

グラフの6面に画像を貼り付け可能に

従来も、グラフの底面に画像を貼り付ける事はできました。今回は、その機能を少し拡張し、6面全てに画像を貼り付け可能になりました。各面に、それぞれ別な画像を貼り付ける事ができます。

実はこの機能は、数年前にも一度、先行開発版に入った事があるのですが、当時は正式リリース版には入らず流れてしまいました

※ 確か当時は、とりあえず実装したものの、「各面の画像がどういう向きになるべきか( 数学的に整った規則性 vs 実用性 )」という仕様の最終決定に悩み、結局決めきれずに塩漬けになってしまった記憶があります。

しかし今回、改めて同機能のリクエストを(当時とは別の方から)いただいたため、「今度こそ」という事でやっと正式リリース版にも反映した、という流れです。

通常の正式リリース版は、新機能が数個溜まってからまとめて反映&リリースする事が多いのですが、上記の経緯があるため、今回は機能的には単発での追加になっています。

今回リクエストをお寄せいただいた方には、この場をお借りして改めて御礼申し上げます。 …と同時に、当時せっかくリクエストいただいた方には、正式版への反映がかなり遅れてしまい、申し訳ありませんでした…!

バグ修正

今回のアップデートでは、1件のバグ修正を含んでいます。

リニアングラフ3Dでは、初回起動時にメモリ使用量の上限を設定するステップがありますが、その値を再設定するためのスクリプト(バッチファイル)として「 メモリー容量設定.bat 」が同梱されています。

このスクリプトに、少し前のバージョンからバグが混入してしまい、最近は機能しなくなっていました。そのため、今回のリリースで修正版に差し替えました。

最近のPCでは、デフォルト設定のままで困る場面はほぼ無くなったのですが、非常に重いデータファイルを開いてなんとかプロットしたい場面など、まだ有用な場面もたまにあると思います(バグっていてすみません…)。

なお、上限をラフに上げ過ぎた状態で、重いファイルを開き、PCのメモリを全て食い尽くしてしまった場合、PC全体の動作が非常に重くなります(昔のPCでよくあったような状態です)。なので、必要が無ければデフォルト設定のままがおすすめです。

次期版(Ver.6系)の開発がスタート!

今回のアップデート内容は以上の通りです。

ここからは、本記事後半のトピックに入りましょう。 冒頭でも少し触れましたが、リニアングラフ3Dの次期メジャーバージョン(Ver.6系)の開発がスタートしました。

個々の特徴についての詳しい内容は、また追い追い別記事でお伝えしていく予定です。今回は、全体像をざっと眺めるような形で見てみましょう!

Ver.5.0 からは既に13年が経過
− 次期版では基礎からリフレッシュへ

まずは背景についてです。

リニアングラフ3Dの現行版は Ver.5.6.x ですが、その土台になっている Ver.5.0 は2010年のリリースで、今から13年前になります。そこから拡張を重ねた現行の Ver.5.6 でも、既に5年が経っています。

ソフトウェアやアプリは、同じ土台を使いまわして、最初に想定していなかった「建て増し」的な拡張を重ねると、次第に限界が見えてきます。

例えば、「こうするなら土台はもっと別の構造の方が綺麗にできたな、しかし今更なので仕方ない…」といった箇所が蓄積してきたり、 「あの機能を入れるには土台の構造から変えないと無理だ」と保留にする案が増えてきたり、といった具合です。

そこで、たまに土台からリフレッシュして造り直したくなる時があります。 「どれくらいの頻度でそれをやるか or やらないか」は、人や会社やソフトウェアの種類(堅さ)や採算性にもよると思いますが、RINEARNではフリーウェア類では結構やります。 色々と自由ですからね。

例えばリニアングラフ3Dでは、バージョン番号の先頭の数字が変わる時がそうなのですが、現在は「5」なので、過去4回あった事になります。そして、次期版となる Ver.6.0 もそのターンになります。

実際に Ver.6.0 は、コードベースではほぼゼロからの最実装となります。

次期版からはオープンソース化

で、「せっかくゼロから再実装するなら、次は外から見える所で、なるべく綺麗に書こう」という自戒の気持ちを込めて、オープンソース化する事にしました。 既に以下の場所にリポジトリもあり、実際に開発を始めています:

次期版リニアングラフ3Dのソースコードリポジトリ(GitHub)
https://github.com/RINEARN/rinearn-graph-3d

オープンソース化する理由はもう一つあります。それは、Ver.5.6 からサポートしたJava言語用APIによる、「 グラフ描画ライブラリとしての用途 」を後押しするためです。

というのも、単体で使うアプリ用途と比べて、ライブラリとしての用途では、ライセンス面や開発形態のオープンさがより意識される(気にされる)ように思えるからです。 実際、私個人が何かライブラリを探す際にも、明らかにそのあたりは気にします。

その点では、メジャーなオープンソースライセンスを採用し、GitHub上で開発するのがベストそうに思えたので、Ver.6 系ではそうする事にしました。

3D描画エンジンを換装可能に
− その気になれば自作も可能

次期版リニアングラフ3Dでは、アプリ本体と3D描画エンジンとの間が、オープンなAPIによって完全に区切られます。 そして、そのAPI仕様を満たす3D描画エンジンを、アプリ側から読み込んで使用できるようになります。

これにより例えば、「従来からの互換性を重視した描画エンジン」や、 「画質を少し妥協する代わりに非常に高速化された描画エンジン」、 「特殊な用途に特化してカスタマイズされた描画エンジン」などを、 用途に応じて換装して使用できるようになります。

また、その気になれば、ユーザー自身やサードパーティーの組織/企業が、独自の描画エンジンを自作して組み込む事も可能になります。 ゼロから自作しなくても、既存の描画エンジンを改造して使う事もできるため、標準のAPIでカバーできないような細かいニーズに対応しやすくなると思います。

高速なスクリプトエンジン搭載によるデータ変換など

RINEARNでは、アプリ内への組み込み用スクリプトエンジン「 Vnano 」も開発しています。次期版リニアングラフ3Dでは、このスクリプトエンジンを搭載する予定です。 これにより、プロット対象のデータに対して、複雑な変換や加工処理を、プログラマブル(ユーザー定義可能)な形で行う事ができます。

なお、Vnanoの処理速度は、倍精度スカラ演算で概ね1GFLOPS(10億回演算/秒)程度、配列同士の演算では10GFLOPS以上を発揮可能(共に上限値)で、これはスクリプトエンジンとしては結構高速な水準です。

そのため、複雑な数式や方程式を使うような、かなり重い変換処理でも、軽快にこなせる事が期待できます。

操作性やAPI互換性は維持、現行の Ver.5 系も当面は続投

と、ここまでは変更点ばかりを追ってきましたが、最後は「変わらない点(保ちたい点)」についてです。

まず、今回の刷新で根本的にテコ入れしたいのは内部構造なので、逆に表面的な部分はあまり変わりません。特に、画面デザインや操作性については、なるべく大きな変化を避けて、Ver.5 系とほぼ同じ感覚で扱えるようにしたいと思っています。 とにかく移行時の違和感を減らす事を重視するつもりです。

また、ライブラリとして使う際のAPI互換性も確保します。これは将来的にも、よほどの事がない限り壊さないと思います(仕様がまずかった等で、非推奨化するAPIはたまに出てしまうとは思いますが)。

それでも、現行版の Ver.5 系は13年間に渡って公開してきたバージョンなので、いきなり次期版に移行するのも怖いですし、 Ver.6 系の中盤あたり(6.3くらい?)までは Ver.5 系も平行して更新していこうかなと思っています。 その方が、作る側としても落ち着いて作れますからね。

今回のお知らせは以上の通りです。次期版リニアングラフ3Dの情報は、また改めて何回かの記事にまとめて、このコーナーで詳しくお伝えしていく予定です!


Japanese English
[ 前へ | 目次 | 次へ ]

スクリプトエンジン Vnano の Ver.1.1 を公開、同じ内容の反復実行が劇的に高速化
2023/12/22 - スクリプトエンジン Vnano の最新版を公開しました。同じ計算式やスクリプトを反復実行する速さが、大幅に向上しました。次期版リニアングラフ3D内での活用例を交えつつ、詳しく解説します。

リニアングラフ3Dをアップデート、次期版(Ver.6)の開発もスタート!
2023/09/04 - リニアングラフ3Dのアップデート版をリリースしました。また、次期メジャーバージョンである Ver.6 系の開発も開始しました。それぞれについて解説します。

AIの補助により、英語版ドキュメントを大幅拡充へ - 作業の舞台裏も紹介!
2023/05/28 - RINEARNでは今後、ChatGPT等のAIの補助により、英語版ドキュメントを大幅に拡充していく方針です。既に行った英訳作業の様子なども紹介しつつ、詳しく解説します。

リニアングラフ3Dをアップデート、API関連機能などを拡充
2023/05/18 - リニアングラフ3Dのアップデート版をリリースしました。主に、Java言語やVCSSLでの制御機能などを拡充しました。更新内容をそれぞれ詳しく解説します。

この階層の目次
新しいお知らせ

各ソフトウェアをアップデート、リニアングラフのコマンド拡張やVCSSLの英語対応など
2024/02/05 - 各ソフトの一斉アップデートの内容をお知らせします。今回は、リニアングラフのコマンド機能を大幅拡張したのがメインです。また、VCSSLのメッセージ類の英語対応も行いました。

Vnano の Ver.1.1 で実装した反復計算高速化の内側
2024/01/17 - 前回のお知らせ記事の続編です。スクリプトエンジン Vnano の Ver.1.1 において実施した高速化を、エンジン内部の実装面から掘り下げて解説します。

スクリプトエンジン Vnano の Ver.1.1 を公開、同じ内容の反復実行が劇的に高速化
2023/12/22 - スクリプトエンジン Vnano の最新版を公開しました。同じ計算式やスクリプトを反復実行する速さが、大幅に向上しました。次期版リニアングラフ3D内での活用例を交えつつ、詳しく解説します。

コードアーカイブ新着
[公式ガイドサンプル] 各種の図形や画像を描画する

「VCSSL 2DCG開発ガイド」内のサンプルコードです。図形や画像などを描画します。
2022/12/16
角度の「度」とラジアンとを相互変換し、図示もするツール

45度などの「度」の値と、ラジアンの値とを相互に変換できるツールです。対応する角度の図示もできます。
2022/11/22
[公式ガイドサンプル] 立体モデルを回転させるアニメーション

「VCSSL 3DCG開発ガイド」内のサンプルコードです。立体モデルを、アニメーションで回転させ続けます
2022/11/18
[公式ガイドサンプル] 立体モデルを回転させる

「VCSSL 3DCG開発ガイド」内のサンプルコードです。立体モデルを、指定した角度だけ回転させます。
2022/11/17
[公式ガイドサンプル] 四則演算の計算順序や、カッコを使った順序指定

「VCSSLスタートアップガイド」内のサンプルコードです。四則演算が計算される順序や、カッコを使って順序を指定する方法を例示します。
2022/10/31