What is VCSSL? - Features of VCSSL
Let's begin with an overview of VCSSL's basic features!
Sponsored Link
What is VCSSL?
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.
Originally Designed as a C-style Simple Scripting Language for Use within Applications
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".
Standardly Supported in RINEARN Products like RINEARN Graph 3D
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!
Of Course, Usable as a Standalone Programming Language!
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:
- Scripts for relatively light computations and graph plotting
- Scripts for processing files, e.g., statistical analysis for data files
- GUI Tools with simple interfaces
- Tools for displaying simple 2D or 3D figures
- Educational materials combining the above aspects
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.
Given its importance for calculator apps and graphing software, VCSSL offers relatively fast computational speeds, despite being focused on lightweight usage. Rest assured, it's not "too slow for numerical computations"; in fact, it's quite fast among scripting languages.
Examples of Programs Using VCSSL
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.
Plotting Files on 3D Graphs (Surface/Mesh Graph)
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.
Plotting Files on 2D Graphs
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.
Animation Display of a Circular Wave
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.
Animation Display of Interfering Circular Waves
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.
(Official Guide Sample) Generating and Placing 3D Models in Space
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.
Numerical Integration Using Simpson's Rule
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.
Angle Converter: Degrees to Radians and Vice Versa with Visualization
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.
Simple Tool to Make Conditionally Satisfied Colors Transparent
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.
Approximate Conversion Tool from Decimal (Floating-Point Numbers) to Fractions
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.
Calculation of Pi to 10,000 Digits (Gauss-Legendre Algorithm)
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.
Integration into Java™ Applications: Vnano
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.
» How we translated this page
- What is VCSSL? - Features of VCSSL
- Let's Get Started with VCSSL! - Setting Up the Environment
- Variables
- Data Types
- Arithmetic Operations
- Comparison Operations
- Logical Operations
- Scope
- Control Structures
- Arrays
- Vector Operations
- Functions
- "main" Function
- System Functions and Constants
- Standard File I/O