ABOUT THIS PAGE:
The is a list of utilities developed either as a hobby, or as a learning experience, or to solve a problem as the need arose during some project or another at Rayflectar. The Rhino scripts and Windows utilities (originally in Visual Basic 6) are now dated (as of 2016), but are still kept here as a historical account or archive. Being a programming enthousiast I chose to develop those solutions from scratch rather then purchase ready made ones. Some of the more recent work like the MathMoth (in Javascript) and the Rubik's cube (in C++ using OpenGL) was done as a learning experience during some computer science coursework in college.
Javascript 3D Geometry Engine - Rubik's cube on Javascript using WebGL
This is an object oriented Javascript geometry and graphical framework (see github) developed (and then open-sourced) by ThomasAn from the ground up without the use of any external libraries or other frameworks. It is intented to handle both (and abstruct away from) webGL and the canvas2D contexts. Implements scene, camera, lights, curves, surfaces, primitives, vector algebra, matrix, and other objects. The Rubik's cube game itself is interactive and built on top of this framework as a showcase. It is fully modeled in Rhino3D and imported as an OBJ file (with a hand made OBJ loader) sent to the webGL painter object.
This cube features textures on each face (multiple textures per draw call), giving orientation to all six center pieces, which makes it a lot harder to solve since the center pieces must be handled too. The framework also implements a barycentric method of showing mesh wires.
Completed On:
HTML/CSS/Javascript on Notepad++ text editor using the Rayflectar/ThomasAn Javascript 3D-Geometry engine
MATHmoth Odyssey Game - Math practice online game
This is an educational game with the goal to practice math speed. The premise is to navigate a moth caterpilar through a labyringth and the only way to do so is by solving one of four math expressions that appear around the moth's head. You cannot control the speed of the moth so it will keep moving unless you think fast enough solving an expression helping it turn before it hits a wall. Each time you hit, you loose a segment.
At the first release the game is a single level labyrinth requiring basic addition and subtraction to navigate the moth. In future releases (hopefully) the math will become more challenging and it will be possible to shift to more advanced levels of labyrinth; as well as discover power-ups along the way and doors to other sections (all requiring ever more difficult math to solve on the fly in order to unlock them).
Completed On:
HTML/CSS/Javascript using the ThomasAn Javascript 3D-Geometry engine
Gear Generator - Involute Gear Generator
This includes both a RhinoScript and a Python script that create involute gear tooth-profiles (including bevel gears) around any circle in any viewport and any orientation. It will treat the circle you pick as the 'pitch circle' and it will draw the gear teeth around it. You can specify the gear either by number of teeth, or by its module
Suggested Alias: GearGen, or GearFromCircle
Requires: RhinoScript or Python
for Rhino V5, V6, or higher
Harmony - Manipulate clusters of objects
This is a VB script to distribute various transformation aspects to any number (cluster) of objects, such as distribution of:
Instructions for the Harmony script are found in the enclosed files.
Suggested Alias: Harmony
Requires: RhinoScript
20050218 or higher for Rhino V3
20060906 or higher for Rhino V4
IsoMatch - Parallel projection view match
This is a Rhino script for figuring out an unknown projection of a printed image. It can also be used for setting Isometric, Dimetric, Trimetric, or any custom angle views in Rhino. For figuring out unknown projections, the user can trace over a bitmap any two planar lines representing the X and Y-axis of that drawing and the script will convert a perspective viewport to a parallel view with corresponding camera angle. If the user constructs the XY guides with a specific angle (eg 30-30) then the result will be an isometric view.
Please see attached PDF for details.
Suggested Alias: IsoMatch
Requires: RhinoScript
20050207 or higher for Rhino V3
20060906 or higher for Rhino V4
MinBox - Minimum Bounding Box
This is a RhinoScript to generate the minimum bounding box of any 3D object (or objects) including planar objects.
The script uses a brute force spatial iteration method and may take a long time to compute (several minutes) depending on the complexity of the render meshes. When the script first runs you may see the "Creating render meshes" message as Rhino uses them for the bounding box function. Planar geometry will compute much faster.
Suggested Alias: MinBox
Requires: RhinoScript
20041110 or higher for Rhino V3
20060906 or higher for Rhino V4
CameraLine - Manipulate Camera-Target
This simple Rhino script fits the current camera-target to any line segment. It is possible to either extract a line representing the current camera-target, or assign the camera to a new line. This is also a good way to have a number of lines (as a visual cue) of several possible camera locations. Use this tool to fine-tune focal distances (accurate adjustment of Depth-of-Field) for render engines such as Maxwell.
Suggested Alias: CameraLine
Requires: RhinoScript
20050218 or higher for Rhino V3
20060906 or higher for Rhino V4
INSTALLATION INSTRUCTIONS for these RhinoScripts
Units Converter Tool - Calculate conversions between units
This is a free utility that helps in conversion of multiple units at once.
Compatibility: This app was tested on Windows XP SP2, but it should also run on Vista and Win2k
Project Timers - Automatic tracking of project time.
This is a free utility that helps keep track of time spent on documents for various tasks/projects while working on the computer. It works on a very simple principle: You create a timer and provide it with a keyword to sniff/detect. As such, each time you work on a document whose titlebar contains that keyword the corresponding timer will start counting. For example you can create a timer and have it sniff the keyword "Firefox" and this will keep track of time you spend using Mozilla Firefox. If your work is organized so that each project you work on has a docket number (or a database serial) appearing in the filename of each related document, then if you create a timer to sniff that serial you essentially keep track of time spent on that project.
Compatibility: This app was tested on Windows XP SP2, but it should also run on Vista and Win2k
Countdown Timer - with audible alarm.
This is a free utility that counts down to a target date (up to 1000 hours in the future), or counts down by a specific amount of time.
Audible signals will sound in the last ten seconds. The utility uses three sound "*.wav" files (timer_01, Timer_02, and Timer_03.wav found in the program folder). The user can replace these files with their own sounds (if deleted or renamed, then no sound will occur). The first sound occurs between the 10th and 4th seconds. The second sound occurs in the last three seconds and the last sound occurs when the countdown is complete.
Once the timer is stopped, it is possible to zero the display by double-clicking it. Hovering over the labels "hh", "mm", etc will turn them red. Clicking on them will synchronize that attribute to the system time/date. In the countdown mode there is an option to loop back to the beginning after the target is reached. Also, once the timer is going, it is possible to be adjusted on the fly by changing any of the input fields (notice when you hover over the input fields the countdown digits turn red).
Compatibility: This app was tested on Windows XP SP2, but it should also run on Vista and Win2k
INSTALLATION INSTRUCTIONS for these Windows Utilities