Changelog
Version 1.32
Headless mode added and various Linux fixes, read the BeamNG.tech 0.35 changelog for details.
Added an ‘Export to Python’ button to Sensor Configuration Editors.
Optimized Scenario.sync_scene.
Created optimized get_road_network, which replaces
get_roads
andget_road_edges
.New command-line arguments
-tcom
and-tport
are used to launch BeamNG, read the documentation for more details.Optimized the Mesh sensor message size.
The Camera and Lidar sensors were optimized to send RGB instead of RGBA data for colors.
Added the
integer_depth
parameter to theCamera
sensor which quantizes depth data to 1 byte per pixel on BeamNG side.Added the
density
parameter to theLidar
sensor used to control density of the point cloud.Updated examples to prefer disconnecting from the simulator over closing it.
Added the adaptive cruise control API AccApi. Example available at examples/acc_test.py.
Improved the Lidar tests.
Added BeamNGpy.system.get_environment_paths to get BeamNG environment paths at runtime. This is used to fill in the BeamNGpy.user and BeamNGpy.user_with_version fields after connecting to BeamNG.
Added the tools.TrafficConfig tool for loading traffic configurations. Example available at examples/traffic_configuration.py.
The Vehicle.get_part_config and Vehicle.set_part_config functions now use a tree of parts instead of a list. This is to conform with BeamNG’s changes of the part/slot system (check out the docs).
Deprecated Vehicle.get_part_options because of the part configuration tree change.
Fixed a bug where some levels (Johnson Valley) could not be loaded using BeamNGpy.scenario.load.
Version 1.31
Changed the default BeamNGpy TCP port to a non-ephemeral port 25252. This should fix the “permission denied” error while trying to open a BeamNGpy connection. Please update your scripts appropriately (you can keep using the previous default port 64256 without issues).
Various Linux fixes and a Docker template released, read the BeamNG.tech 0.34 changelog for details.
New version of RoadsSensor with:
spline interpolation for road width
filtered heading error
linear interpolation for curvature estimation
bugs fixed
new output added
numlane
(number of lanes in current travel direction)
Added Camera/Lidar/Radar outputs to the Tech Capture Player.
Fixed Radar sensor outputs on Vulkan.
Fixed captures on case-sensitive filesystems.
Fixed scenario loading on case-sensitive filesystems.
Fixed some issues related to blocking in the BeamNGpy protocol on Lua side.
Optimized TCP buffer copying on Lua side.
Fixed hanging caused by BeamNGpy.scenario.start() in some cases.
BeamNGpy.control.queue_lua_command and Vehicle.queue_lua_command now accept the
response
argument to get Lua responses from the simulator.BeamNGpy.open now loads the extensions specified in the
extensions
argument also in the case the simulator was already open.Fixed BeamNGpy examples which were using an invalid navigation waypoint on the
west_coast_usa
map.Fixed BeamNGpy.scenario.load when the scenario was located in a non-standard location.
Fixed the ai_line.py example to have an end.
Vehicle.set_license_plate now raises an error if the license plate cannot be set (when the “Dynamic license plates” option is disabled).
Fixed the beamngpyDissector.lua debug plugin to properly parse
GetScenarios
and other messages.Updated most BeamNGpy examples.
Fixed the warnings related to resources cleanup (shared memory, sockets, processes) on closing.
Known issues:
Some multi-sensor configurations on Vulkan can cause BeamNG to stop responding.
The annotation camera doesn’t update in some multi-sensor configurations.
Version 1.30
BeamNGpy sensors are supported on Vulkan and Linux now.
including shared memory
Known issues:
Radar
sensor doesn’t return any data on VulkanCamera
sensor doesn’t work correctly with annotations on
Added a new API for attaching and detaching couplers: CouplersApi.
Added a flag to disable RoadsSensor debug visualization.
Fixed BeamNGpy.scenario.restart breaking some keyboard shortcuts after calling it.
Fixed the set_part_config function losing the connection to the Vehicle object
Fixed Lidar with
is_streaming=True
.New tool for recording/replaying BeamNGpy protocol runs - Tech Capture Player.
New debugging tool for BeamNGpy communication - Wireshark plugin:
decodes all messages exchanged between BeamNGpy and BeamNG
included with instructions in the debug folder of the BeamNGpy repository
The
determine_userpath
function is skipped on LinuxRenamed the
crash_lua_on_error
argument of BeamNGpy todebug
, as the argument also changes other behavior (it starts recording the Tech Captures).
Version 1.29
Added documentation on the sensors output signals.
Added the
postprocess_depth
flag to the Camera sensor, which makes the distinction of the depth image clearer, but is computationally intensive (off by default)Added
time
as a field of the State sensor, represents the current simulation time (which is different from theTimer
sensor representing the time since the scenario start)Added new flag to automated sensors:
is_dir_world_space
False
by default; ifTrue
, then thedir
argument of the sensors represents the world space direction instead of the vehicle space direction vector
Updated change_settings.py example with setting a windowed mode resolution
Examples changed to use the new Tech Ground level (
tech_ground
) instead of the Smallgrid (smallgrid
). We encourage the users to use the Tech Ground level as the default flat level in BeamNG.tech for the improved support of annotations and materials.BeamNGpy.scenario.load does not resume the physics anymore
to pause the physics (BeamNGpy.control.pause()) and allow stepping (BeamNGpy.control.step()), it is preferred to call
BeamNGpy.control.pause()
beforeBeamNGpy.scenario.load()
)
Bugfixes
RADAR now works without shared memory.
Fixed
find_objects_class
when getting data from the simulator.Fixed IdealRADAR with
is_send_immediately=True
.Fixed
BeamNGpy.scenario.delete
not deleting the prefab file.BeamNGpy functions using the
cling=True
argument should behave more reasonably when finding the ground levelthe
cling=True
argument still does not work forScenario.add_vehicle
Removals/Deprecations
Removed the IMU sensor. The AdvancedIMU is a replacement with more features.
Removed examples which used the deprecated old IMU sensor.
Removed LidarVisualizer and the pyopengl dependency
Version 1.28
Functionality added to allow the import of heightmaps (from 2D Python arrays).
Optimized network communication by removing extra acknowledgement messages.
The way of launching BeamNG.tech from BeamNGpy has changed. If you are launching BeamNG.tech without BeamNGpy and want to connect BeamNGpy later, you should change the command-line arguments you are using to:
BeamNG.tech.x64.exe -console -nosteam -tcom-listen-ip 127.0.0.1 -lua extensions.load('tech/techCore');tech_techCore.openServer(64256)
Added scenarios on
IdealRADAR
sensor use, to plot radar data and track objects.Added scenario on road profile plotting.
Bugfixes
The Vehicle.logging module has been fixed and is usable again.
Fixed OpenStreetMap importer to manage mixed data as input in some cases.
Version 1.27.1
Camera sensor improvements
Added the Camera.stream function for easier retrieval of camera images being streamed through shared memory
Added the Camera.poll_raw and Camera.stream_raw functions for getting raw bytes from the simulator, the conversion to a bitmap image is skipped
Added the
camera_streaming.py
example to showcase these functions
Version 1.27
New features
GPS sensor added
check the documentation or the
GPS_trajectory.py
example script for more information on usage
RoadsSensor sensor added
IdealRadar sensor added
RADAR sensor now reads the Doppler velocity from vehicles in the simulation as well as static objects.
BeamNGpy now fully supports loading existing missions and Flowgraph scenarios. Look into the Scenario Control example notebook to learn more.
Beam stresses added as a mode to the
AdvancedIMU
sensor.Camera, Lidar, and Radar sensor readings can now be streamed directly to shared memory in BeamNGpy, using dedicated
stream()
functions now found in the respective BeamNGpy sensor classes. This represents an alternative to the polling method used previously.
BeamNGpy projects updated for latest BeamNG.tech version
Impactgen: A script to generate various vehicle impact scenarios and output surround views of the affected vehicle in color and semantically annotated images.
BeamNG.gym: A collection of Gymnasium environments that cover various driving tasks simulated in BeamNG.tech.
API changes
Relative camera interface changed to use vectors instead of quaternions.
Changed the input and output types of the
BeamNGpy.scenario.get_scenarios
function:the
levels
argument is now a list of level names or instances of the Level class to get scenarios forthe return value is now a dictionary where the keys are the level names, and the values are lists of scenarios for the given level
Removed the
level
argument ofBeamNGpy.scenario.get_current
, as the level information is now queried from the simulator.Function added to the
Vehicle
class to deflate vehicle tires, e.g. to simulate tire blowout.
Bugfixes
Fixed a bug where loading a BeamNGpy scenario could cause an infinite-loading screen glitch.
Fixed the
Mesh
sensor not working.Part annotations for vehicles are working again.
Bug fixed when using multiple ultrasonic sensors, where the first sensor would not update in simulator.
Bug fixed when using ultrasonic sensor, relating to failure to detect at some angles to surfaces
Bug fixed with ultrasonic sensor, relating to typos in parameter names, rendering some parameters unusable from BeamNGpy.
Bug fixed with
AdvancedIMU
sensor, when using gravity. Did not work from BeamNGpy before.Bug fixed with
AdvancedIMU
sensor, relating to the smoothing not working from BeamNGpy.Bug fixed with the relative camera, which was not operating correctly.
Miscellaneous
The physics update rate of BeamNG.tech launched from BeamNGpy is being changed from 4000 to 2000 times per second to be consistent with the default for the simulator. To change the physics update rate to a different value, you can pass the
-physicsfps <DESIRED_VALUE>
argument to the simulator binary.Scenarios created using BeamNGpy are now using the JSON format for prefab generation instead of the old TorqueScript format.
BeamNG.tech connection to the simulator is now by default listening on the local interface only (
127.0.0.1
). You can change it to listen on other IP addresses by using thelisten_ip
argument in theBeamNGpy.open
function, or the-tcom-listen-ip
command-line argument, if you are not launching BeamNG.tech using BeamNGpy.Optimized Python processing of the depth camera image (thanks for the contribution!)
Version 1.26.1
New features
OpenDrive (.xodr) importer added, and new example created in Examples folder.
OpenStreetMap (.osm) importer and exporter added, and new examples created in Examples folder.
Eclipse Sumo (.nod.xml and .edg.xml) importer and exporter added, and new examples created in Examples folder.
BeamNGpy fixes / improvements
Improved/added documentation
Scenario
class now has all parameters documented.BeamNGpy.debug
API methods are now documentedBeamNGpy.env
now contains more information about the ‘time of day’ objectAdded documentation for RADAR and Mesh sensors
Vehicle.set_part_config
now does not recreate the existing connection to the simulator, as it was not neededSmall refactor of unit tests, the automated sensor scripts are now also runnable under the
pytest
frameworkInvalid vehicle and scene object names produced error in the simulation, now the validation is done on BeamNGpy side
name cannot start with the
%
character or a digitname cannot contain the
/
character
Added new options to
BeamNGpy.scenario.load
calledconnect_player_vehicle
andconnect_existing_vehicles
connect_player_vehicle
isTrue
by default and it connects the player vehicle to the simulation after scenario loadconnect_existing_vehicles
isTrue
by default and it connects all the already existing vehicles to the simulation after scenario loadsetting these options to
False
can reduce the loading time by skipping the connection-establishing part, and these vehicles can still be connected manually usingVehicle.connect
Added
crash_lua_on_error
option to the BeamNGpy constructorbehaves in the same way as the option of the same name in
BeamNGpy.open
Version 1.26
RADAR sensor
Sensor currently works with static scenery but not vehicles. Will be added in later update.
Sensor comes with standard Lua API and BeamNGpy API.
Example scripts provided in BeamNGpy.
Vehicle meshes now available in BeamNGpy
Can provide data up to 2000 times per second.
Vehicle nodes and physics triangle data available in BeamNGpy, including for individual vehicle wheels.
Comes with standard Lua API and BeamNGpy API.
Post-processing written in BeamNGpy to compute mesh connectivity data and analyse the mesh data (position, mass, force, velocity).
Example scripts provided in BeamNGpy.
IMU sensor
Added ability to filter gyroscopic readings (as well as acceleration readings). Separate data filtering is used for each.
Sensor suite bug fixes
Fix: problem when changing the requested update times/priority parameters after various sensors were already created, sensor would not update correctly/quickly.
Fix: gravity vector was not being applied correctly in IMU sensor.
Fix: camera images from static sensors were being rendered upside down.
Fix: LiDAR sensor was not returning the whole point cloud in BeamNGpy
Export BeamNG maps as .xodr files (OpenDrive)
BeamNGpy now provides the option to export our map road networks as .xodr files (OpenDrive). The exported road networks contain elevation and road wideness data, along with junction connectivity. On top of this, BeamNGpy also includes a new class with which to analyse the road network data oneself, and process it as required.
BeamNGpy fixes / improvements
Optimized the speed of depth camera processing
Added new API:
BeamNGpy.env.get_tod
for getting the information about the time of dayBeamNGpy.env.set_tod
for setting the time-of-day information, allowing to control the day/night cycle from PythonBeamNGpy.env.get_gravity
for getting the current value of the strength of gravity in the simulator.Vehicle.get_center_of_gravity
for getting the center of gravity of a vehicle.
Added option to remove procedural meshes
Added new option to
BeamNGpy.open
calledcrash_lua_on_error
If
False
(the default), then Lua crashes in the simulator will not break the connection between BeamNG.tech and BeamNGpy. Set toTrue
for getting proper stacktraces and easier debugging.
Added new option to
BeamNGpy.scenario.load
calledprecompile_shaders
If
True
(the default), asynchronous shader compilation is disabled. That means the first loading of a map will take longer time, but all parts of the map will be preloaded. IfFalse
, the camera sensor can have issues shortly after starting the scenario.
Better handling of errors and crashes in the BeamNGpy TCP protocol.
Fixed
vehicle.control
with zero integer arguments being ignored.Re-added
BeamNGpy.scenario.get_vehicle
(removed by accident in the last release).BeamNGpy.settings.set_deterministic
andBeamNGpy.settings.set_steps_per_second
are not persistent anymore and are applied only for a single run of the simulation.
Version 1.25.1
fixed in BeamNG.tech v0.27.1.0: converted all vehicle rotations sent to BeamNGpy to be consistent with each other - if the rotation you are using is 180° rotated across the Y axis, you can use the
beamngpy.quat.flip_y_axis
function to flip itfixed
BeamNGpy.vehicles.replace
to respect vehicle color and license plate text
Version 1.25
Added type hints to the whole BeamNGpy codebase
Updated documentation to be more readable
Modularized BeamNGpy API
The functions on the BeamNGpy object are now split into modules for easier navigation:
BeamNGpy.camera
- configuring the in-game cameraBeamNGpy.control
- controlling the simulator state (pausing, stepping, quitting the simulator)BeamNGpy.debug
- drawing debug objectsBeamNGpy.env
- controlling the environment state (time of day, gravity)BeamNGpy.scenario
- loading/starting/stopping a BeamNG scenarioBeamNGpy.settings
- changing the simulator’s settingsBeamNGpy.system
- info about the host systemBeamNGpy.traffic
- controlling the trafficBeamNGpy.ui
- controlling the GUI elements of the simulatorBeamNGpy.vehicles
- controlling vehicles
Some of the functions on the
Vehicle
object are also moved into modules for easier navigation:Vehicle.ai
- controlling the AI of the vehicleVehicle.logging
- controlling the in-game logging
the previous, not modularized API is still available for backwards compatibility reasons
see more in the documentation
Advanced IMU sensor
replaces the accelerometer sensor from last release
improves upon the existing IMU sensor by using a more advanced algorithm, and provides readings at up to 2000 Hz
Powertrain sensor
new sensor for analysing powertrain properties at high frequency (up to 2000 Hz)
new test/demo scripts are available to show execution of this sensor
New BeamNGpy functionality
added support for a custom binary name in BeamNGpy constructor
BeamNGpy.traffic.spawn
to spawn traffic without a set of predefined vehiclesBeamNGpy.traffic.reset
to reset all traffic vehicles from the player (teleport them away).Vehicle.teleport
now supports changing rotation without resetting the vehicleBeamNGpy.open
now always tries to connect to already running simulator no matter the value of the launch argumentVehicle.switch
,Vehicle.focus
to switch the simulator’s focus to the selected vehicleBeamNGpy.vehicles.spawn
now has a new argumentconnect
to allow for not connecting the newly spawned vehicle to BeamNGpyVehicle.recover
to repair a vehicle and teleport it to a drivable positionBeamNGpy.vehicles.replace
to replace a vehicle with another one at the same positionbeamngpy.quat.quat_multiply
utility function to multiply two quaternionsoptimized the
Camera
sensor decoding to be fasterupdated the required Python packages to newer versions
Vehicle.set_license_plate
to set a license plate text for a vehicleVehicle.sensors.poll
now allows also polling only a specified list of sensor namesBeamNGpy.disconnect
to disconnect from the simulator without closing itchanged
Camera
sensor default parameters to not include annotation and depth data (for faster polling)added the optional
steps_per_second
parameter toBeamNGpy.settings.set_deterministic
BeamNGpy.control.return_to_main_menu
to exit the currently loaded scenarioadded the parameter
quit_on_close
to the BeamNGpy constructor. If set toFalse
,BeamNGpy.close
will keep the simulator running.
Bugfixes
Vehicle.state['rotation']
now returns vehicle rotation consistent with the rest of the simulator. Previously, this rotation was rotated 180° around the Y axis.⚠️ if you are using
Vehicle.state['rotation']
in your existing scripts, you may need to flip it back for your intended use. You can usebeamngpy.quat.quat_multiply((0, 0, 1, 0), <your_rotation>)
for that purpose.
fixed the issue with BeamNGpy scenarios sometimes resetting and not working properly after loading
fixed
Camera.extract_bounding_boxes
not to crash on non-Windows systemsfixed
beamng.scenario.start()
not working when the simulator was paused withbeamng.control.pause()
beforefixed vehicle color and license plate text not being applied to dynamically spawned vehicles
BeamNGpy protocol: added support for out-of-order protocol messages
Deprecations
the
remote
argument of theBeamNGpy
class is not used anymore
Version 1.24
Major changes to the protocol communicating between BeamNG.tech and BeamNGpy
Be aware that versions of BeamNG.tech older than 0.26 are not compatible with BeamNGpy 1.24 and older versions of BeamNGpy will not work with BeamNG.tech 0.26.
Major updates to BeamNGpy sensor suite and its API
The public API of the
Camera
,Lidar
andUltrasonic
sensors changed heavily, please see theexamples
folder to see their usage.
Accelerometer sensor now available
Add support for loading TrackBuilder tracks
Add support for loading Flowgraph scenarios
Fix: multiple vehicles now do not share color in instance annotations
Add
Vehicle.teleport
helper function which allows to teleport a vehicle directly through its instanceBeamNGpy.open
now tries to (re)connect to already running local instanceRemoved deprecated BeamNGpy functionality
setup_logging
(superseded byset_up_simple_logging
andconfig_logging
)rot
argument used for setting rotation of objects and vehicles in Euler angles, userot_quat
which expects quaternions (you can use the helper functionangle_to_quat
to convert Euler angles to quaternions)update_vehicle
function is removedthe
requests
argument inVehicle.poll_sensors
is removedpoll_sensors
now does not return a valuethe
deploy
argument ofBeamNGpy.open
is removed
Version 1.23.1
Add Feature Overview notebook
Add argument checking to the IMU sensor
Add support for Mesh Roads
Add option to log BeamNGpy protocol messages
Fix duplicate logging when calling
config_logging
multiple times
Version 1.23
Fix semantic annotations (supported maps are Italy and ECA)
Add option to teleport vehicle without resetting its physics state
Add option to set velocity of a vehicle by applying force to it
Support for updated ultrasonic sensor
New sensor API - LiDAR, ultrasonic sensor
Fix camera sensor creating three shared memories even when not needed
Add BeamNGpy feature overview example notebook
Remove research mod deployment and
setup-workspace
phase of setup(Experimental) Support for Linux BeamNG.tech servers
Version 1.22
Hide menu on a scenario start
Do not detach the state sensor on disconnecting a vehicle, as this disallows the reuse of vehicle objects
Fix camera sensor logging error
Fix ‘Using mods with BeamNGpy’ demo notebook
Version 1.21.1
Fix example notebooks
Version 1.21
Fix and restructure
logging
usageAdd more verbose logging
Fix message chunking in networking
Update examples/tests to address GridMap being gone
Improve handling of userpath discovery and mod deployment
Version 1.20
Adjust userpath handling according to changes in BeamNG.drive from 0.22 onwards
Overhaul documentation style and structure
Add function to set up userpath for BeamNG.tech usage
Add multicam test
Fix issue when multiple functions are waiting in researchGE.lua
Fix instance annotations always being rendered even when not desired
Version 1.19.1
Swap client/server model to allow multiple BeamNGpy instances to connect to one running simulator simultaneously
Add
Level
class representing a level in the simulationChange
Scenario
class to point toLevel
it is inAdd
get_levels
,get_scenarios
,get_level_scenarios
,get_levels_and_scenarios
methods toBeamNGpy
class to query available contentAdd
get_current_scenario
method toBeamNGpy
class to query running scenarioAdd
get_current_vehicles
method toBeamNGpy
class to query active vehiclesAdd
SceneObject
class to thescenario
module as a basis for the various types of objects in a scene in BeamNG.tech, currently includingDecalRoad
Add
get_scenetree
andget_scene_object
methods toBeamNGpy
class to enable querying objects in the active sceneAdd
add_debug_spheres
,add_debug_polyline
,add_debug_cylinder
,add_debug_triangle
,add_debug_rectangle
,add_debug_text
,add_debug_square_prism
methods toBeamNGpy
class to visualize 3D gizmos in the simulatorAdd Inertial Measurement Unit sensors
Add Ultrasonic Distance Measurement sensor
Add noise module to randomize sensor data for cameras and lidars
Add instance annotation option to
Camera
sensor including methods toextract_bboxes
,export_bbox_xml
, anddraw_bboxes
for bounding-box-related operations based on semantic and instance annotations (limited to vehicles right now)Add options to use only socket-based communication for
Camera
andLidar
sensorAdd methods to configure BeamNG.tech’s Vehicle Stats Logger from BeamNGpy
Add FAQ to README
Add Contributor License Agreement and guidelines
Fix stray dependency on PyScaffold
Fix lidar points being visible in camera sensor images
Version 1.18
Add function to switch current viewport to the relative camera mode with options to control the position of the camera
Add function to display debug lines in the environment
Add function to send Lua commands to be executed inside the simulation
Version 1.17.1
Fix deterministic mode ignoring user-defined steps per second
Version 1.17
Add
change_setting
andapply_graphics_setting
methods including a usage exampleAdd option to specify rotations as quaternions where appropriate
Add example for querying the road network
Version 1.16.5
Fix prefab compilation
Version 1.16.4
Add
teleport_scenario_object
method toBeamNGpy
classUpdate vehicle state example
Fix decal road positioning
Fix
spawn_vehicle
not setting color and license plate correctlyFix
spawn_vehicle
rotation in degrees
Version 1.16.3
Fix lidar visualizer using wrong buffer types in newer PyOpenGL version
Version 1.16.2
Update values of Electrics sensor not following our naming conventions
Fix camera orientation issue
Add example for using the Camera sensor like a multishot camera
Version 1.16.1
Fix spaces in vehicle names breaking the scenario prefab
Version 1.16
Make BeamNGpy ship required Lua files and deploy them as a mod on launch
Add traffic controls
Add option to specify additional Lua extensions to load per vehicle
Add
set_lights
method to vehicle classAdd test for setting lights
Add test for vehicle bounding box
Add
over_objects
field toRoad
classFix lack of __version__
Fix electrics sensor not returning values directly
Fix ai_set_script teleporting vehicle
Version 1.15
Add option to pass additional Lua extensions to be loaded on startup
Fix waiting for vehicle spawn after changing parts to hang infinitely
Version 1.13
Add option to disable node interpolation on roads
Add get_bbox() method to Vehicle class
Version 1.12
Add option to specify road ID for placed DecalRoads
Version 1.11
Add
StaticObject
class to scenario module that allows placement of static meshesAdd option for visualization to the Lidar sensor
Add helper functions to query scenario for certain objects in the world
Add example notebook showcasing procedural mesh and static mesh placement including a scenario camera
Fix vehicle state not being synchronized properly
Fix scenario unloading glitch
Fix
ai_drive_in_lane
not updating GUI state correctlyFix camera sensor showing residual head-/taillight flare
Version 1.10
Add functions to spawn/despawn vehicles during a scenario
Add script AI function to vehicle and update AI line example accordingly
Add function to change AI aggression
Add functions to place procedurally generated primitives in the environment
Add unit tests for sensors, scenarios, and vehicles
Fix scenario not being cleared when BeamNG instance is closed
Version 1.9.1
Make scenario generation & loading respect user path setting
Version 1.9
Add function to switch active vehicle
Add function to set position & orientation of the ingame camera
Version 1.8
Add vehicle teleporting function to
BeamNGpy
classAdd time of day control
Add function to switch weather presets
Add function to await vehicle spawns
Expose part configuration options of vehicles
Expose current part configuration of vehicles
Add function to change part configuration of vehicles
Add function to change vehicle colour
Add more documentation
Version 1.7.1
Make ai methods switch to appropriate modes
Version 1.7
Add manual gear control
Add shift mode control
Version 1.6
Add option to set target waypoint for builtin vehicle AI
Make shmem handle unique OS-wide
Version 1.5
Add
get_gamestate()
toBeamNGpy
classMake vehicle state being synched upon initial connection
Fix vehicle state not being updated on poll if only gameengine-specific sensors were attached.
Version 1.4
Add vehicle-level state updates
Rework code to work with existing scenarios/vehicles
Version 1.3
Add support to specify polyline with per-vertex speed to the AI
Version 1.2
Add wait option to step function in
beamng.py
Version 1.1
Add basic Lidar point cloud visualiser
Add AI control to vehicles
Add option to attach cameras to scenarios to render frames relative to world space
Version 1.0
Restructure code to offer modular sensor model
Implement scenario class to specify and generate BeamNG scenarios
Implement vehicle class that offers control over vehicles and ways to dynamically de-/attach sensors
Implement shared memory communication to boost performance
Add Camera sensor with colour, depth, and annotation data
Add multi-cam support
Add lidar sensor
Add G-Force sensor
Add damage sensor
Add electrics sensor
Add control over simulation timescale and stepping through simulation at fixed rates
Add example code demonstrating scenario specification with control of a vehicle that has various sensors attached
Version 0.4
Add
move_vehicle()
method.
Version 0.3.6
Pass configured host and port to BeamNG.drive process.
Version 0.3.5
Fix
close()
inBeamNGPy
not checking if there’s even a process to be killed.
Version 0.3.4
Fix messages being split incorrectly when the message happened to contain a newline through msgpack encoding.
Version 0.3.3
Make
BeamNGPy
class take**options
and addconsole
as one to allow running BeamNG.drive with the console flag.
Version 0.3.2
Make BeamNGpy assume a running instance if binary is set to
None
Add option to change vehicle cursor
Version 0.3.1
Add
restart_scenario
method to restart a running scenario
Version 0.3
Add method to pause simulation
Add method to resume simulation
Version 0.2
Add option to specify image size when requesting vehicle state
Add blocking method to get vehicle state
Add method to set relative camera
Add methods to hide/show HUD
Default to realistic gearbox behaviour
Add
gear
property to vehicle stateAdd
gear
as an option to vehicle input representing the gear the vehicle is supposed to shift to.
Version 0.1.2
Remove fstrings from documentation
Add option to override BeamNG.drive binary being called
Version 0.1
Basic IPC and example functions