GeeXLab 0.25.0 released for all platforms – Bullet Physics support added

GeeXLab logo

Downloads | Forum thread (EN) | Forum thread (FR) | Changelog

The new GeeXLab is there and guys, this is a good release!

GeeXLab is available for all platforms (Windows 32/64-bit, Linux 64-bit, macOS, Raspberry Pi and its loving sibling the Tinker Board) and comes with an improved physics support: a new plugin based on Bullet Physics engine has been added and new functions have been added to NVIDIA PhysX plugin. But physics is not the only corner of GeeXLab that has been updated: the input library, the ImageMagick plugin, or ImGui support have been updated too.

And a french version of the GeeXLab website has been added. Il était temps!


1 – Release Highlights

1.1 – Bullet Physics plugin

Bullet Physics

GeeXLab brings the support of Bullet Physics. Bullet Physics is an open source physics engine and supports rigid + soft body collisions. The nice thing with Bullet is that GeeXLab has now a physics engine on all platforms: Windows, Linux, macOS, Raspberry Pi and Tinker Board. On Windows, Linux and macOS, a plugin for NVIDIA PhysX was already available, but Bullet allows to bring a nice physics simulation engine to SBCs (Single Board Computer) like the Raspberry Pi and the Tinker Board.

A new library for Lua and Python has been added: gh_bullet3. And to exploit this library, several codes samples are available:

The code sample in the learn pack is well commented and then it’s a good idea to start Bullet programming with it.

GeeXLab  + Bullet Physics engine - OpenGL
Bullet Physics demo on Windows platform

GeeXLab  + Bullet Physics engine + Raspberry Pi + OpenGL
Bullet Physics demo on Raspberry Pi platform


1.2 – ImGui Support

ImGui has been updated to version 1.62 WIP, one of the latest versions of ImGui. I also added two new handy functions to the gh_imgui to manage the displaying of very very large lists (with thousand of items): list_clipping_begin and list_clipping_end. A code sample that shows how to use these functions is available here:


1.3 – ImageMagick plugin

The ImageMagick plugin and the gh_imagemagick library have been updated with news functions to read EXIF information: file_exif_to_log, file_exif_get_num_properties and file_exif_get_property. I will publish a small demo that shows how to use these new functions.



1.4 – Input library

I added new functions to the gh_input library to set the position of the mouse on all platforms (useful if you want to code a FPS like camera) and to control a joystick. Currently, joystick functions are limited to Windows platform only and only basic joystick support has been added: 4 buttons + XYZ position. I quickly added the joystick support just before finalizing the release of GeeXLab, that’s why the support is minimal and only on Windows.


2 – Downloads

The latest version of GeeXLab as well as code sample packs can be downloaded from THIS PAGE.

For bug-reports or feedbacks, a thread on Geeks3D forums is available HERE. A thread in french is also available HERE.


3 – Changelog

Full changelog from beginning of time is available HERE.

Version - 2018.06.10
! updated ImageMagick plugin with auto-orientation of image at loading. 
* fixed a minor bug in PhysX cloth creation (actor.sceneid was not 
  initialized with scene id).
! [WINDOWS] updated the buffer size for the drag and drop operations.
+ added show_metrics_window() to gh_imgui lib (lua, python).

Version - 2018.06.07
+ added actor_update_mass(), update_material(), kill_material() 
  and actor_set_material() to gh_physx3 lib.
+ added actor_update_mass(), material_update() and actor_set_material()
  to gh_bullet3 lib.
! re-enabled the test to know if a version of GeeXLab can run a demo
  (required_version_major, required_version_minor, required_version_patch
  and required_version_build attributes in the XML root node).
* fixed a stupid crash in gh_imagemagick.file_exif_get_property().

Version - 2018.06.04
+ added Bullet Physics support via a new plugin and the gh_bullet3 library 
  for Lua and Python. The Bullet Physics plugin is available on all platforms.
+ added create_cylinder_xyz() to gh_mesh lib (lua, python).
+ added list_clipping_begin() and list_clipping_end() to gh_imgui lib (lua, python).
  Perfect to handle very very large lists.
+ [WINDOWS] added minimal joystick support with 4 new functions in gh_input lib:
  joystick_get_num_supported(), joystick_get_status(), joystick_get_button_state()
  and joystick_get_position().
+ added mouse_set_position() to gh_input for all platforms. 
! updated gh_input.mouse_show_cursor(): now available on all platforms.
+ added sound_get_open_state() and sound_spectrum_read_v2() to gh_audio lib (lua, python).
+ added collision contact reporting in the PhysX plugin (actor_get_contact_info() and
  scene_reset_all_contacts() in gh_physx3). 
+ added create_scene_broadphase_sap(), create_scene_broadphase_mbp(), 
  create_scene_broadphase_gpu(), actor_set_stabilization_threshold(), 
  actor_set_3d_object(), scene_sync_3d_objects(), actor_clear_forces(),
  actor_get_angular_velocity(), actor_get_angular_speed2(), actor_get_linear_velocity()
  and actor_get_linear_speed2() to gh_physx3 lib.
! added new parameter to actor_add_force() and actor_add_force_at_position()
  of gh_physx3 lib.
! improved the PhysX 3 plugin loading speed on Windows. There was a WMI routine 
  that slowed down the plugin initialization by trying to read some CPU data.
+ added file_exif_to_log(), file_exif_get_num_properties(), and file_exif_get_property()
  to gh_imagemagick lib (lua, python).
! updated ImGui / gh_imgui lib with latest version 1.62 WIP.
+ added mouse_get_position_v2() and mouse_set_position() to gh_input lib (lua, python).
- disabled imgui_tabs functions (broken with latest ImGui 1.62).
+ [TINKER BOARD / RASPBERRY PI] added trilinear filtering for OpenGL ES renderer.
* [LINUX] fixed a bug in the keyboard management (keycodes were treated as 8-bit
  while they are 16-bit in X11). Some keys like S or RIGHT arrow were the same key
  for GeeXLab. 
* fixed a crash in gh_sqlite3.db_column_get_text() in the Python plugin.

Leave a Comment

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