GeeXLab 0.37.0 Released (Windows, Linux, Raspberry Pi and macOS)

GeeXLab: scriptable proto-engine for Windows, Linux, Raspberry Pi and macOS



1 – Release Notes

This update of GeeXLab brings new Box2D functions to gh_box2d library in Lua and Python. It’s now possible to create more complex shapes with polygon shapes and chain shapes. Chain shapes are a very nice feature of Box2D engine. A demo will be available in the next article. I also quickly added at the last minute, the support of the distance joint. Other types of joints will be added later.

I added two new functions to the gh_gpu_program lib that can be handy in some situations, to pass a transformation matrix that is not linked to a particular object. Now you can build a transformation matrix from {position, rotation, scale} and pass it to the GPU program with uniform_transform_matrix_v1() or uniform_transform_matrix_v2():

pos_x = 0
pos_y = 10
pos_z = -4
rot_x = 0
rot_y = 0
rot_z = 30
scale = 1.0
transform_order = 0
gh_gpu_program.uniform_transform_matrix_v1(prog, "Transform0", 
                                           pos_x, pos_y, pos_z,
                                           rot_x, rot_y, rot_z,
                                           scale, scale, scale,

uniform_transform_matrix_v1() takes the Euler’s angles while uniform_transform_matrix_v2() takes a quaternion for the orientation.

I finally took the time to update the macOS version of GeeXLab. GeeXLab 0.37.0 for macOS has been compiled (Xcode 11.6 + clang 11.0.3) and tested on macOS Catalina 10.15.6. The clang compiler found some errors in my code that were not detected by other compilers (VS2017 or gcc/g++). Compiling time to time on all platforms can improve the code quality!

GeeXLab: scriptable proto-engine on macOS

For Windows 64-bit, I added a lite version of GeeXLab. The lite version is a fully operational GeeXLab but some folders are not shipped to reduce the download size: python2/, python3/, spirv/, mesa3d/ and most of the demos have been removed. Result: lite version: 79MB versus full version: 245MB! If you don’t plan to use Python, the lite version is perfect.


2 – Changelog

This changelog is intended for all versions of GeeXLab.

Full changelog from beginning of time is available HERE.

Version 0.37.0 - 2020.08.18
+ (2020.08.19) added distance joint support in Box2D plugin with new functions in
  gh_box2d lib: world_create_joint_distance(), joint_distance_set_stiffness()
  joint_distance_set_damping() and joint_distance_compute_linear_stiffness().
+ (2020.08.19) added functions to apply a force, torque and impulse to an physics actor
  in Box2D plugin. New functions in gh_box2d: actor_apply_force(), actor_apply_force_to_center()
  actor_apply_torque(), actor_apply_linear_impulse() and actor_apply_linear_impulse_to_center().
* (2020.08.18) fixed a minor bug in the title bar update on macOS version.
+ (2020.08.17) added uniform_transform_matrix_v1() and uniform_transform_matrix_v2()
  to gh_gpu_program library (lua, python).
+ (2020.08.17) added set_app_title_bar() and get_app_title_bar() to gh_utils.
+ (2020.08.17) [Windows] Spout functions available in gh_utils.
! (2020.08.17) [Windows 64-bit] updated built-in SQLite support 
  with latest version SQLite 3.33.0.
! (2020.08.15) updated macOS version of GeeXLab.
* (2020.08.15) fixed minor bugs in gxc_x{32|64} core library.
+ (2020.08.14) added new functions to gh_box2d to manage polygon and chain shapes
  and more: world_create_actor, actor_add_vertices, actor_chain_build, actor_polygon_build,
  actor_set_density, actor_set_friction, actor_set_restitution, actor_raycast, ...

GeeXLab: scriptable proto-engine on Linux

GeeXLab: scriptable proto-engine on Windows

Leave a Comment

Your email address will not be published. Required fields are marked *