RINEARN Graph 3D Updated and Next Version (Ver.6) Development Has Begun!

Recently, we released the latest version of RINEARN Graph 3D, Ver.5.6.34.

This update is a relatively minor one, incorporating the features from the pre-release version "ADV-20230722", along with bug fixes for one configuration script. In this article, we will first introduce the details of this update.

Additionally, in the latter part of this article, we will also provide some information about the next major version of RINEARN Graph 3D (Ver.6) that has recently entered development!

- Table of Contents -

Updates in Ver.5.6.34

Now You Can Attach Images to All Six Sides of the Graph

Previously, it was possible to attach an image to the bottom surface of the graph. With this update, we have expanded this feature. Now, you can attach images to all six sides of the graph, allowing for different images on each face.

Interestingly, this feature was once included in a pre-release version a few years ago. However, at that time, there were some difficulties finalizing the specification of this feature, and it ultimately did not make it into the official release. It had been pending for a few years.

However, about two months ago, we received a request for this feature again (from someone different than before), and thought, "Let's finally get this into the official release."

Therefore, it has finally been officially released this time.

Typically, new features are accumulated (as pre-release versions) and released together in the official release when several have been developed. However, this official release incorporates only the above feature. This is because we didn't want to delay this feature any longer, given its history as mentioned above.

Bug Fix

This update includes one bug fix.

In RINEARN Graph 3D, there is a step to configure the memory usage upper limit during the initial startup. To reconfigure this value, a batch file named "SetMemorySize.bat" is included with the software.

Unfortunately, a bug had crept into this script starting from a few versions ago, causing it to become nonfunctional recently. Therefore, in this release, we have replaced it with a corrected version.

Given the capabilities of modern PCs, there are hardly any situations where you would need to adjust the default settings. ] However, there are still occasional instances where this configuration tool can be useful, such as when dealing with extremely heavy data files. We apologize for the inconvenience caused by the bug.

Development of the Next Major Version (Ver.6) Has Begun!

That wraps up the details for this update.

Now, let's dive into the next topic for the latter half of this article. As mentioned briefly in the beginning, we have initiated the development of the next major version of RINEARN Graph 3D, the Version 6!

Details for each specific feature will be provided in separate articles in the future. For now, let's take a quick glance at the overall picture!

13 Years Since Ver.5.0
---- A Complete Refresh for the Next Major Version

First, let's talk about the background.

The current version of RINEARN Graph 3D is Ver.5.6.x. The foundation for it, Ver.5.0, was released in 2010, which means it's been 13 years! Even with the currently extended version 5.6, a whole 5 years have already passed.

Software and apps tend to reach their design limitations gradually, when continuously extended on the same architecture in a "patchwork" manner, with functionalities not initially planned.

For example, accumulated thoughts like "Had I known we were going to do this, I would have designed the structure of this part differently, but it's too late now..." Or, there may be increasing cases where you say, "To add that feature, we would need to change the architecture from the ground, so let's put it on hold."

That's when the desire to refresh the architecture and rewrite the code from the ground up becomes appealing. How often one opts for such a refresh depends on various factors like the individual, the company, the type of software, and its profitability. However, with RINEARN's freeware, it happens relatively often.

For instance, in RINEARN Graph 3D, when the first digit of the version number changes, it's such a time. Currently, it's "5," so this kind of refresh has happened four times in the past. The next version, Ver.6.0, will mark another one of those times.

In reality, Ver.6.0 will be a reimplementation entirely from scratch.

Open-Sourcing

Furthermore, as a form of self-discipline with the thought of "If we're going to reimplement from scratch, let's try to write it as cleanly as possible," we have decided to open-source RINEARN Graph 3D starting with the next major version, Ver.6.

Repository for the Next Major Version of RINEARN Graph 3D (GitHub)
https://github.com/RINEARN/rinearn-graph-3d

There's another reason for open-sourcing. It's to further encourage the usage of RINEARN Graph 3D as a "graph drawing library" through the Java language API we introduced in Ver.5.6.

In the context of library usage, openness in terms of licensing and development approach seems to be more important compared to standalone applications. In fact, when I personally search for a library, I always consider these aspects.

Given the above, adopting a well-established open-source license and developing on GitHub would be the best approach, and that's what we've decided to do with Ver.6.

Swappable 3D Rendering Engine ---- Customization Also Possible if Desired

In the next major version of RINEARN Graph 3D, the application itself and the 3D rendering engine will be completely decoupled, and they will communicate through an public API. This means you can load and use any 3D rendering engine that complies with this API specification from the application side.

As a result, you'll have the flexibility to swap out rendering engines according to your needs. For instance, you can opt for a "compatibility-focused rendering engine," an "engine that compromises on graphics quality for significantly increased speed," or a "customized rendering engine tailored for specific use cases."

Furthermore, if you're determined, users themselves or third-party organizations/companies can develop and incorporate their own rendering engines. You don't necessarily have to start from scratch; modifying an existing engine is also an option. This will make it possible to meet more fine-grained, specific needs that cannot be covered by the API.

Fast and Flexible Data Transformation with a New Scripting Engine

At RINEARN, we have also developed an embedded scripting engine called "Vnano". The next major version of RINEARN Graph 3D will feature this scripting engine.

This integration allows for flexible transformations and processing of the data used for plotting, in a programmable (user-definable) manner.

It's worth noting that the processing speed of Vnano is quite impressive for a scripting engine. It reaches approximately 1 GFLOPS (1 billion operations per second) for double-precision scalar operations and exceeds 10 GFLOPS for array-to-array operations (both are maximum values).

Therefore, even for heavy data transformations involving complex equations and formulas, Vnano will be capable of handling them swiftly.

Maintaining Usability and API Compatibility, and Current Ver.5 Will Continue for the Time Being

So far, we've focused on the changes coming with the new version. Now let's talk about what will remain unchanged - the aspects we aim to preserve.

First, with this revamp, our primary focus is on refreshing the internal structure, so superficial aspects won't change significantly. Particularly, when it comes to UI design and usability, we aim to avoid major alterations, allowing users to operate the software with a similar feel to the current Ver.5. Minimizing the discomfort during the transition is one of the top priorities for us.

Furthermore, we will ensure API compatibility when using it as a library. Unless there's a compelling reason to do otherwise, we do not plan to break this compatibility (although deprecated APIs may occasionally appear if they prove problematic).

However, considering that the current Ver.5 has been available for 13 years, making an abrupt transition to the next version could be daunting. Therefore, we're thinking of continuing updates for Ver.5 in parallel at least until around the mid-point of the Ver.6 (likely around 6.3). This will provide a sense of stability for both users and developers.

----

That concludes our announcement for this time. We will share more detailed information on the next major version of RINEARN Graph 3D in a series of upcoming articles right here in this "News" section!

Acknowledgement: We greatly appreciate the cooperation of two ChatGPT AIs in translating this article!
» How we translated this article