Let's begin with an overview of VCSSL's basic features!
VCSSL, pronounced "Vee-See-Ess-Ess-Ell", is a programming language designed for relatively casual and lightweight applications. Although primarily used for 3D data visualization and computational tasks, VCSSL also boasts GUI and graphics capabilities, making it suitable for quickly creating small tools. VCSSL is available for free for both commercial and non-commercial purposes.
VCSSL originally emerged as a simple scripting language within RINEARN's calculator software, allowing users to define functions or perform sequential calculations.
Due to this background, VCSSL utilizes a conventional syntax reminiscent of the C language, making it accessible to those with prior programming experience. Below is a comparison of actual code snippets:
It looks quite similar to C, doesn't it? However, compared to the complete set of the C language, VCSSL has trimmed down some specifications and modified others for more concise usage. This is a common approach seen in other scripting languages as well.
In summary, the original VCSSL can be characterized as "a language with a C-like syntax, primarily designed for executing tasks within calculators and applications".
Today, many RINEARN applications support VCSSL for automation and customization purposes.
A prime example of this is "RINEARN Graph 3D," a 3D graphing software. With VCSSL scripting, users can automate various tasks, including opening and plotting data files, and batch processing numerous files, among others.
Given the considerable demand for RINEARN Graph 3D, it's likely that a majority of VCSSL users encountered and started using VCSSL for this purpose. If you're reading this page right now, chances are you might be one of them!
In addition to controlling certain apps, VCSSL can also be utilized as a standalone programming language. This means using it just like any regular programming language.
In standalone usage, emphasis is on lightweight and quick scripting, capitalizing on VCSSL's core design for simplicity and speed. While the standard library supports various features such as GUI and graphics, the design prioritizes simplicity over intricacy and sophistication.
Typical use cases include:
Shortly, we'll introduce many real-life examples.
Conversely, VCSSL is not suitable for tasks like "heavy numerical computations taking hours to complete" or "running realistic 3D CG like modern games." Such tasks are well covered by other major languages, so by igoring them, VCSSL is designed to maintain its simplicity-oriented nature.
Let's now explore a few examples of programs created with VCSSL!
You can download and run each program from the linked pages, which also offer detailed explanations. Feel encouraged to run, modify, and further explore them. They may serve as valuable references for various applications or spark new ideas.
This is a simple sample code that controls RINEARN Graph 3D to read a data file and plot its contents as a surface graph. The program also generates the data file to be plotted.
Additionally, enhanced version for animating the graph can be found here, which sequentially reads numbered data files for plotting.
This is the 2D graph version of the aforementioned program. It controls RINEARN Graph 2D to open a data file and plot its contents as a line graph.
Similarly, enhanced version for animating the graph can be found here, which sequentially reads numbered data files for plotting.
This is a slightly advanced example of 3D graph control. It calculates the shape of circular waves at a certain time, stores them in arrays, and pass them to RINEARN Graph 3D to plot. By repeating this process and gradually changing the time value, it displays the propagation of the circular wave in animation.
Additionally, it features a GUI window for manipulating wave parameters.
This is a more advanced program depicting the interference of two circular waves through animation. Rather than controlling RINEARN Graph 3D, this program leverages VCSSL's 3D graphics capabilities for a custom implementation of 3D visuals. It also embeds GUI components for manipulating wave parameters directly on the display window.
This program may be an example for creating stylish educational materials.
This is one of the sample codes in the official guide, creating a program to place simple 3D shapes in space. It also facilitates easy drawing of planes, points, and lines (see here). Additionally, colors can be applied as well.
The "Animation Display of Interfering Circular Waves" introduced just above utilizes these 3D drawing capabilities.
This program calculates numerical integrals using Simpson's Rule. It also displays the graph of the integrated function. The algorithm is explained across three installments, starting with the Rectangle Rule, followed by the Trapezoidal Rule, and concluding with this Simpson's Rule.
Confused between degrees and radians? This GUI tool converts between degrees and radians, providing visualizations for better understanding. The diagrams are drawn from scratch within the program using VCSSL's 2D graphics capabilities.
Here's a simple image processing tool example. It opens an image file and makes regions meeting specific conditions (e.g., "green component is below a certain threshold and blue component is above a certain threshold") transparent, and saves the result as a separate image file.
Image processing operations are implemented using VCSSL's 2D drawing capabilities. Since it can access and modify color components of individual pixels, creating such tools for image processing is quite straightforward, albeit memory-intensive.
Here's yet another simple tool example. Have you ever encountered a value like "21.33333333c" in old calculation notes and wondered, "What was this value divided by?" The correct answer is 64/3. This tool estimates such fraction representations.
This program was developed ad hoc by the author for such cases, resulting in somewhat haphazard programming (e.g., using an 'alert' function to display results). However, it might serve as an example of "impromptu use cases for VCSSL." It's a hastily written program without any attention to detail in the user interface or elsewhere.
Lastly, this program calculates the value of pi to 10,000 digits. VCSSL provides data types capable of handling long numbers (a remnant from its origins as a function of a calculator app), and this program is a demonstration using them.
Note that although there are many programs specialized in fast pi calculation, this one is significantly slower by comparison. It takes several hundred milliseconds to calculate about 10,000 digits.
Up to now, we've explored examples of common use cases. Now, let's look at another specialized use case: integrating into Java applications.
Beyond the standard VCSSL runtime environment, our project also offers Vnano (VCSSL nano), a compact scripting engine tailored for embedding within Java applications:
Vnano has reduced functionality compared to the full VCSSL. However, it offers significantly faster startup and processing speeds in return, making it advantageous for embedded use in apps.
Vnano is an open-source scripting engine, freely usable and distributable by anyone. Should you wish to add script-based control features to your Java applications, Vnano is well worth considering.