GS - Shade [L1 ] is a 3D modeling and rendering software that is being developed for 20 years in Japan. Even if it is not very well known outside of its country, it gathers around 200000 users. Shade embeds Tcl scripting language since 1999 and it gives access to its API.
Here is a simple example that creates an UI to enter data and to render colored a sphere.
# Simple sphere demo with UI for Shade # Variables: radius, center coordinates, RGB color set r 600 set X 0 set Y 0 set Z 0 set R 1.0 set G 0.1 set B 0.1 # The UI starts here begin_dialog # Create a dialog box with 7 typed entries append_float_dialog_item "Radius" append_float_dialog_item "X center" append_float_dialog_item "Y center" append_float_dialog_item "Z center" append_float_dialog_item "Red value (0..1)" append_float_dialog_item "Green value (0..1)" append_float_dialog_item "Blue value (0..1)" # Initial values for items set_float_property_value 0 to $r set_float_property_value 1 to $X set_float_property_value 2 to $Y set_float_property_value 3 to $Z set_float_property_value 4 to $R set_float_property_value 5 to $G set_float_property_value 6 to $B # ask_dialog is true if we hit on OK button if [ask_dialog] { set r [get_float_property_value 0] set X [get_float_property_value 1] set Y [get_float_property_value 2] set Z [get_float_property_value 3] set R [get_float_property_value 4] set G [get_float_property_value 5] set B [get_float_property_value 6] if {$R > 1.0} {set R 1.0} if {$G > 1.0} {set G 1.0} if {$B > 1.0} {set B 1.0} end_dialog } else { end_dialog error cancel_dialog } # End of UI # Create a tagged sphere with radius r at <X,Y,Z> coordinates create_sphere at [list $X $Y $Z] r $r sphere_1 # set color to sphere_1 set base_color [list $R $G $B] # Render the result render
If you are curious and if you master a bit japanese language you can have a look to this script repository [L2 ].