Get OpenPLX
You can download OpenPLX Physics and start building physic simulations using the OpenPLX Language and the OpenPLX Physics bundles. To run OpenPLX in a simulation, you may use the reference implementation agx-openplx which depends on AGX Dynamics being installed. The next minor release of AGX Dynamics (2.40.0.0) will include OpenPLX.
Prerequisites
- Python 3.8 on Ubuntu 20.04
- Python 3.9 on Windows or OSX
- AGX Dynamics with version as below and an AGX Dynamics License
agx-openplx version | Required AGX Dynamics version |
---|---|
0.0.14 - 0.0.15 | 2.36.1.4 |
0.0.16 - 0.0.27 | 2.36.1.5 |
0.1.0 | 2.36.1.5 |
0.2.0 - 0.2.1 | 2.37.0.1 |
0.3.0 - 0.3.4 | 2.37.1.0 |
0.3.5 - 0.4.2 | 2.37.2.0 |
0.4.3 - 0.5.0 | 2.37.3.0 |
0.6.0 - 0.6.3 | 2.37.3.2 |
0.7.0 - 0.8.2 | 2.37.3.3 |
0.8.3 - 0.9.0 | 2.37.3.4 |
0.9.1 - 0.9.2 | 2.38.0.0 |
0.9.3 - 0.15.1 | 2.38.0.2 |
0.15.2- 0.15.7 | 2.39.0.1 |
0.15.8- 0.16.5 | 2.39.1.0 |
0.16.6- | 2.39.1.2 |
OpenPLX for python
To install the OpenPLX python package with a version compatible with your AGX Dynamics version
NOTE: Make sure you have a compatible pip version pip>=21.3 by running python3 -m pip install --upgrade pip
, pip older than 21.3 does not support editable installs with pyproject.toml and will fail.
on Windows do:
setup_env.bat
# Use `python -m pip` to ensure that the python bundled with AGX is used
python -m pip install -e %AGX_DATA_DIR%/agx-pypi
python -m pip install -U agx-openplx
on OSX or Linux do:
source setup_env.sh
pip3 install -e $AGX_DATA_DIR/agx-pypi
pip3 install -U agx-openplx
You should now try out a tutorial! (NOT AVAILABLE YET!)
See https://pypi.org/project/agx-openplx for more info on how to use agx-openplx and openplx_view
.
Offline installation
See Offline installation for instructions on how to install OpenPLX on a maching missing internet connection.
OpenPLX for C#
A C# nuget package is available as Algoryx.OpenPLX
OpenPLX for C++
OpenPLX is still under development, contact us for more info on how to build and link with C++.
VSCode extension
There is an unofficial vscode extension that adds support for syntax highlighting and limited intellisense for OpenPLX in visual studio code. It is not available as an official extension but can be installed by downloading a .vsix
file and installing it via the command line.
Download extension: openplx-0.3.3.vsix
To install run the following command in a command prompt:
code --install-extension openplx-0.3.3.vsix
Configure extension for use with OpenPLX Physics bundles
Usually you will want to configure the plugin with the path where you have installed your OpenPLX physics bundles. To configure this go to vscode settings and search for “openplx”, you will find a setting called “Bundle Path” (see image below) where you can put the path where the OpenPLX physics bundles are installed. If you have installed with pip they will usually be located under your pythons site-packages
in a folder called openplxbundles
, you can run pip show openplx-bundles
which should give you a hint as to where they are located.
OpenPLX Language for other domains than Physics
OpenPLX is still under development, contact us for more info on how to use OpenPLX to create your DSL.
Migration tool
There is a migration tool openplx_migrate
that helps with converting OpenPLX files when breaking changes occurs for OpenPLX bundles.
After installing OpenPLX, you may point openplx_migrate
to a file or directory and it will upgrade the corresponding OpenPLX files.
# To migrate all files in current directory and below from 0.9.3 to installed OpenPLX version do
openplx_migrate --from-version 0.9.3 .
# or
python -m openplx.migrate --from-version 0.9.3 .
Release log
0.16.10:
- Add OpenPlxBundles.cmake to bundles conan package
0.16.9:
- Rework python swig interface generation to use flexible macros
0.16.8:
- C# bindings: Rename % from macro name
- openplx_dev.py: Added --shared flag
- Change windows install path to bin/x64 and lib/x64
- Fix --addBundlePath flag bug in OpenPlxApplication
0.16.7:
- Fix SWIG warnings for C# operator overloading
- Fix SWIG C# module generation
- Support common install prefix
0.16.6:
- Use AGX 2.39.1.2
0.16.5:
- Bugfix: Snap would SIGSEGV when using Physics3D.Charges.World as MateConnector
0.16.4:
- Properly enable spdlog traces when building shared
0.16.3:
- Docs: Fix header styling
0.16.2:
- URDF
- Support import of branching urdf models
- Core API: Added getOpenPlxCoreVersion API methods
- Docs: Fix highlighting for newer syntax
0.16.1:
- DriveTrain
- Update the AutomaticClutch with an disengage duration, and signals for that.
- Rename engagement_time to engagement_duration for the AutomaticClutch.
0.16.0:
Bundles
- Non-backward compatible changes in Python API, all classes now has bundle name as part of class name,
e.g. Physics.Signals_AngularVelocity1DInput is now Physics.Physics_Signals_AngularVelocity1DInput.
The change is needed in preparation for providing OpenPLX python API in AGX Dynamics.
- URDF
- Bug fix for package path for visuals
0.15.22:
- Add title to documentation pages
- Use Click 0.5.6
- Add documentation to Object.h
- Physics Bundle:
- Bug fix for SNAP with multiple ranges for one DOF.
0.15.21:
- Split C# swig interfaces into module and non-module parts
0.15.20:
- Adapt documentation hyperlinks for openplx.org
0.15.19
- Fix several memory leaks
0.15.18
- Use weak_ptr for runtime object owner attribute to avoid memory leaks
0.15.17
- Fix null pointer dereference bug in OpenPlxContext::release
0.15.16
- Change Token::None to Token::Empty
0.15.15
- Change TokenType::None to TokenType::NoneType to avoid preprocessor collisions
0.15.14
- URDF
- Generate visuals for imported .urdf files.
- Suffix TokenType::True and False with Keyword to avoid preprocessor collisions
0.15.13:
- Backward compatibility with Big Sur OS and onward for bundles and urdf-plugin.
0.15.12:
- Fix workaround for custom spdlog logger
- Using Click 0.5.1
0.15.11:
- Add SPDLOG_FMT_EXTERNAL flag to all builds
- Install and package .pdb files for windows builds
0.15.10:
- Using Click 0.5.0
- Support Python 3.12 and Ubuntu 24.04
0.15.9:
- Change hash-library to a proper transitive dependency
0.15.8:
- Use AGX 2.39.1.0
0.15.7:
- Physics Bundle:
- Introduced
- EnabledInput
- EnabledOutput
- ActivateInput
- ActivatedOutput
- EngageInput
- EngagedOutput
- Interactions implements the EnabledInput and EnabledOutput traits
- Robotics Bundle:
- VacuumGripper uses ActivateInput, ActivatedOutput
- DriveTrain Bundle:
- Introduced
- TorqueConverterLockUpInput
- TorqueConverterLockedUpOutput
- EmpiricalTorqueConverter uses TorqueConverterLockUpInput, TorqueConverterLockedUpOutput
- AutomaticClutch uses EngageInput, EngagedOutput
- Backward compatibility apple-clang compiler 13.0 and Big Sur OS and onward.
- New bulldozer tutorial showing how to add shovels, tracks and a drivetrain to an agx model.
0.15.6:
- Fix memory leaks in openplx.core
- Add shared libraries to conan artifacts
0.15.5:
- Use $ORIGIN RPATH in deliverables
- Bugfix for openplx_view --debug-render-frames
- Support older OSX, from Big Sur (11) and onward.
0.15.4:
- Add debug binaries to release artifacts
0.15.3:
- Added hash-library dependency to deliverables
- Physics3D
- Bug fixes for SNAP regarding edge cases where SNAP would either do wrong or nothing.
- agx api: Fixed std::move issue in signal queues
0.15.2
- Physics3D Signals removed
- RigidBodyRPYOutput & RigidBodyPositionOutput replaced by RPYOutput & Position3DOutput
- HingeAngularVelocityOutput replaced by AngularVelocity1DOutput
- TorqueMotorInput replaced by Torque1DInput
- TorsionSpringAngleInput replaced by AngleInput
- LinearSpringPositionInput replaced by Position1DOutput
- Both AngularVelocityDriveTrain and TorqueDriveTrain replaced by FlexibleJointDriveTrain
- LinearVelocityMotorVelocityInput replaced by LinearVelocity1DInput
- RotationalVelocityMotorVelocityInput replaced by AngularVelocity1DInput
- Physics1D Signals removed
- RotationalVelocityMotor1DVelocityInput replaced by AngularVelocity1DInput
- RotationalBodyAngularVelocityOutput replaced by AngularVelocity1DOutput
- RotationalBodyAngleOutput replaced by AngleOutput
- Physics1D.Interactions.VelocityMotor.desired_speed -> VelocityMotor.target_speed
- Physics3D.Interactions.VelocityMotor.desired_speed -> VelocityMotor.target_speed
- Refactored signal handling to use non-singleton signal queues
0.15.1
- Add migration for 0.14.0 to 0.15.0 that renames .brick files to .openplx. Use openplx_migrate.
0.15.0
- Brick has been renamed to OpenPLX
- File extension is now .openplx
- All command line commands changed to openplx, e.g. brickview is now openplx_view etc
- Python module rebrick renamed to openplx
- Python package brickagx renamed to agx-openplx
- Python package brickbundles renamed to openplx-bundles and module to openplxbundles
- C# brick package Algoryx.Brick renamed to Algoryx.OpenPLX
- C++ namespace Brick renamed to openplx
- C++ namespace BrickAgx renamed to agxopenplx
- Physics
- ForceMotorForceInput replaced by Force1DInputTrait in ForceMotor
- Fixed bug when having duplicate model declarations
0.14.0
- Runtime tree now has UUIDv5 support
- BrickAgxApi changed, load_brick_string and load_brick_file now take OptParams with optional parameters.
- Brick Core API modified to suit Unreal better, returns references etc.
0.13.6
- BrickApplication added to help building Brick Applications in Python.
0.13.5
- Fix visuals when loading only RigidBody
- Added agx_debug_render_frame to MateConnector for viewing mateconnectors
0.13.4
- TerrainMaterials can be merged.
- Prototype visual material: TextureMaterial for textures for .obj files
- Fix bug when loading a RigidBody model
- Fix bug when using references in initializers
0.13.3
- DriveTrain
- Add missing Gear -> FlexibleGear migration
- Materials
- Physics.Charges.Material now has unique_name attribute in order to uniquely identify Materials.
- Materials from different sources can now be merged when they share the same unique_name and properties
- Terrain
- TerrainMaterial and TerrainMaterialLibrary are introduced.
- A Terrain can specify a TerrainMaterial
0.13.2
- Click: If no RobotOutput is present, then all signals will be sent with `--enable-click` argument.
- Include urdf_plugin dependencies in windows binary release package
- DriveTrain
- Introducing FlexibleGear and ViscousGear, the DriveTrain.Gear is now considered ideal.
0.13.1
- Core:
- Fix references semantics (fixes invalid cycle found error bug)
- Include conan dependencies in windows binary release package
- Click: Fall back to angle for unhandled Real and Int values, so that values with unsupported (by click) units are sent.
0.13.0
- Robotics
- CoupledJointDriveTrain, interconnection between one actuated joint and one mimic.
- DriveTrain
- Bug fix for AutomaticClutch
- Bug fix for PrismaticActuator
- ManualClutch has renamed attributes. Migration provided.
- AutomaticClutch has input and output so that it can be engaged and inspected
- Gear has ratio input and output
- BrickAgx: Fix AutomaticClutch so that it can be engaged.
- Physics
- Interaction.Dissipation.Friction types moved from Physics3D
- Introduced simple DryConstantNormalForceFriction and DryDepthScaledConstantNormalForceFriction
- Physics3D
- Replaced Oriented Friction Models with OrientedFrictionTraits
0.12.1
- Bundles
- Remove error-log "There is no origin in the system"
0.12.0
- Bundles
- Motion control possible to specify in RigidBody with is_dynamic. Replacing kinematically_controlled in Physics3D.System.
- Initial velocities for rigid bodies are now specified in the parent system frame.
- RigidBodyVelocityOutput is replaced with LinearVelocity3DOutput. Migration provided.
- Introducing a reference_body for Physics3D.System
- SNAP will use the reference_body as a starting point to assemble using mates.
- Fix bug in Python bindings when nullptr Brick::Core::Object was returned
0.11.0
- Bundle dependency handling
- Dependencies are now transitive --> transitive dependency listings are no longer needed
- Dependencies can be versioned so that the dependency system can warn when outdated dependencies are used.
- Bundles
- FlexibleHingeJoint removed, replaced by FlexibleJointTrait.
- Update ontology for Robotics
- FlexibleVelocityJoint -> FlexibleAngularVelocityJoint, breaking backward compatibility. Migration provided.
- DriveTrain bundle: GearBox added
- Removed Physics3D.Transform, replaced with Math.AffineTransform
- Added euler angle factory methods for Math::Quat
- Adds default true enabled flag to Signals.Output
- Physics3D.Signals.MateConnector.Velocity3DOutput changed name to LinearVelocity3DOutput. Migration provided.
- Adds initializer syntax for simple initializers: v is Math.Vec3: { 1.0, 2.0, 3.0 }
- ObserverFrames imported from AGX (as MateConnector) are created again by BrickAgx even if they are not used by Brick.
- brickview cmd arg renamed to --debug-render-frames without requiring an .obj file.
- --debug-render-frames using agxOSG::createAxis for mate connectors and rigid body model center.
- Fixed bug when referencing nested objects in externally created objects
0.10.3
- Adds include_in_mass_properties flag to Physics3D.Charges.ContactGeometry.
- Converts C++ exceptions to Python exceptions so they can be caught in Python code.
0.10.2
- brickmigrate bugfix, SWIG destructor warnings fixed.
0.10.1
- brickserialize python script for converting a brick file to json
0.10.0
- Function names refactored to conform to snake case in (use migrate tool to update!):
- Math.Vec2
- Math.Vec3
- Math.AffineTransform
- Math.Matrix3x3
- Math.Matrix4x4
- Physics.Signal.ValueOutputSignal
- Robotics.Signals.RobotInputSignal
- onInit refactored to conform to snake case on_init
- Added migrate command for migrating Brick files from one Bundle version to another.
- Torque1DOutput using Torque1DOutputTrait for all types with torque output.
0.9.3
- Use AGX 2.38.0.2
0.9.2
- New language feature: traits
- Fix bug where assignments in same model would take precedence over each other
0.9.1
- Use AGX 2.38.0.0
0.9.0
- Improved stability of AgxToBrickMapper
- support numbers as first characters
- support {}[]() in model names
- support colliding model names, for different types.
- Update ontology for Physics3D.Interaction
- Damping -> Dissipation
- Breakableness-> Toughness
- Deformation -> Flexibility
- Slack -> Clearance
- Friction is now part of the Dissipation namespace
- Update ontology for Robotics
- EndEffectors
- Deformation and elasticity has become flexibility.
- Damping has become dissipation.
- Joints
- Specific Elastic and DampedElastic Joints removed in favor of nested becomes.
- Physics3D.Interactions.Ball mapped from and to AGX
- Fix C# garbage collect issue when using InputSignalListener
0.8.10
- Bugfix: Error is now reported when MateConnector not in RigidBody or System (caused SIGSEGV before)
- Use Click 0.4.1 using protobuf 5.27.0
- Errors that now report name causing error: MethodNotFound, MemberNotFound, TypeNotFound
0.8.9
- Support geometries in systems, mapping both for AgxToBrick and BrickToAgx
- Fix bug with member accesses in nested declarations
- Improved Brick::Core::Object api with utility methods:
- getObject - finds a nested object by a '.' segmented path
- getNumber - finds a nested real/int by a '.' segmented path
- getBool - finds a nested bool by a '.' segmented path
- getString - find a nested string by a '.' segmented path
- toJson - serializes the object to json
- Allow pretty printing of Brick::Core::Object in python with `str(object)`
0.8.8
- Ignore error message for missing material when it is not required
0.8.7
- Use Click 0.4.0
- Fix protocol bug -> jointsensors list invalid
- Sends output as jointSensorsInOrder name
- Allows Force1D as Click Input
- RobotInputSignal now has only values: Value[] instead of angles, angleVelocities, torques
- Support nested annotations
- C# bindings
- Always copy .dlls in nuget config
- Expose AgxBrickErrorFormatter
0.8.6
- Return bool from ClickAdapter::manualPreFrame to allow busy wait for click input
0.8.5
- Map friction models from imported agx files
- Support for import of aagx files
- Support agx constraint solve types as .agx_solve_type annotation in Mates
- Support for nested declarations
- Bug fix for using debug-render-tnc
- Removes Vec3OutputSignal and RealOutputSignal which are not used anymore in favor of ValueOutputSignal
- ErrorHandling
- Name reported for VariableNotFound, SymbolAlreadyDefined, and ImportedFileNotFound errors.
0.8.4:
- Supports relative MateConnector.RPYOutput.
- SNAP - Assembling looped linked systems of crane arms with hydraulic cylinders and links.
- Implements ForceMotor and ForceMotorForceInput
0.8.3:
- Use AGX 2.37.3.4
0.8.2:
- Visuals:
- Fixes bug where visuals would collide
- Implements ConvexMesh visual
0.8.1:
- Math bundle:
- Move Utils to Functions
- Add square root
- C# bindings
- Bind InputSignalListener and OutputSignalListener
- Bind ClickAdapter
0.8.0:
- SNAP:
- Handles cylinder systems to be rotated and translated into place.
- agxtobrick:
- Maps agx material to brick
- Does not add AGX materials to visual geometries anymore
- RelativeTransform is no longer created (use the created MateConnector instead). Breaking change!
- Physics3D:
- MateConnector Outputs are renamed:
- DirectionalAccelerationOutput -> Acceleration3DOutput
- DirectionalAngularAccelerationOutput -> AngularAcceleration3DOutput
- DirectionalVelocityOutput -> Velocity3DOutput
- DirectionalAngularVelocityOutput -> AngularVelocity3DOutput
- Physics:
- InputOutputType.AngularVelocity -> InputOutputType.AngularVelocity1D
- InputOutputType.Torque -> InputOutputType.Torque1D
- InputOutputType.AngularVelocity -> InputOutputType.AngularVelocity1D
0.7.5:
- Brick syntax:
- Allow linebreak in expressions (inside parenthesis or brackets)
- Physics3D:
- Remove RelativeTransform - use MateConnector instead.
- Add MateConnector Outputs for position, rotation, acceleration, velocity, angular velocity and angular acceleration.
- Use Click 0.3.2
0.7.4:
- BRICK -> AGX mapping:
- No longer create extra constraints for locks
0.7.3:
- c# bindings
- Use /p:Platform=x64 when building nuget to ensure x64 dlls
0.7.2:
- No changes
0.7.1
- Fix for RedirectedMateConnectors, they affect track and suction cup modeling
- BRICK -> AGX mapping:
- No longer creates extra hinges for Prismatic and Cylindrical motors
- No longer create extra constraints for ranges
0.7.0:
- Removed unhelpful INFO log
- C# api:
- Makes it possible to use AGXPlugin by exposing AGXCache
- BRICK -> AGX mapping:
- No longer creates extra hinges for Hinge motors, appends new
TargetSpeedControllers as secondary constraints instead.
- NOTE: This means resulting AGX tree is different than before.
- Use AGX 2.37.3.3
0.6.3:
- .agx import:
- Preserve locked at zero speed settings in motor 1d
- Preserve motion control
- Fix constraint direction
0.6.2:
- Allow var declaration with same name as owning model declaration
- .agx import:
- MateConnector created from AGX ObserverFrames with a RigidBody
0.6.1:
- Add extended import syntax:
import @"file.agx" as MyNS.MyModel:
.discard_rigid_body_positions: true
.regenerate_shape_uuids: true
- import ... as will put the imported model in the specified namespace to avoid name collisions between AGX models.
- .discard_rigid_body_positions: true will discard the rigid body positions enabling SNAP on AGX bodies.
- .regenerate_shape_uuids: true will regenerate the shape uuids to avoid collisions between shapes from different AGX models.
- Negative annotations values support
- DriveTrain bundle: CombustionEngine added
- Tracks bundle: Add support for TrackProperties as annotations
- Physics3D bundle: LinearSpringPositionInput added
- Check and empty InputSignals and warn if not empty when adding InputSignalListener
- .agx import:
- Preserve damping parameters for Range1D and Lock1D
0.6.0:
- C# api:
- Add bindings for operator overloads
- .agx import:
- Preserve damping and compliance parameters for Hinge, Prismatic, Lock and Cylindrical
- Use AGX 2.37.3.2
- DriveTrain bundle: TorqueConverter added
- Vehicles bundle: Render track nodes when using visuals
- Physics3D bundle: Fix SNAP issue with redirected mate connector
0.5.0:
- All Outputs now have a type indicating what type of Signal they emit.
- Robotics breaking change:
- RobotOutput angle_sources, angular_velocity_sources and torque_sources are replaced by joint_sources
- This means joint_sources can be any Output, since resolution depends on Output.type rather that the type of the Output itself.
- .agx import
- Preserve collision groups
- Preserve secondary constraints into Brick interactions
0.4.6:
- .agx import
- Preserve enable collisions for imported geometries
- Fix bug with visual geometry transforms when importing .agx file in brickview.
0.4.5:
- Support for exponential syntax: 0.02e04, 242.1E-3, etc.
- Fix bug with visual geometry transforms when importing .agx file
- Minimal visuals bundle added in order to solve the bug.
- Boolean attributes for disabling physics and snap for mate's
- Boolean attribute for disabling collision for ContactGeometry
- VacuumGripper model with vacuum system and one or more deformable suction cups.
- Suction cups model with both collapsed and relaxed state.
- Friction models for free degrees of freedom for mates.
- Click:
- Support controlevents for suction cup
0.4.4:
- Remove OSG dependency from C# API
0.4.3:
- Use Click 0.3.1
- Renamed max/min_force to max/min_effort in Physics.Interactions.Interaction1DOF
- Support limits in URDF files
- Use AGX 2.37.3.0
0.4.2:
- Report error if the filename given to Brick does not exist
- URDF:
- Urdf.PackagePath can be used to define URDF packagepaths. See panda.brick for example.
- Physics3D.Charges.ObjGeometry is renamed to ExternalTriMeshGeometry
- Robotics.Links.RigidObjLink is renamed to RigidTriMeshLink
0.4.1:
- Add support for prismatic motors in AGX to brick mapper
- Reverted AGX renderdata bugfix because of unintended behaviour, i.e. AGX Shape groups again might lead to badly transformed graphics.
- Detect duplicate symbols across bundle when importing.
0.4.0:
- Import:
- Support import of URDF files.
- Greatly improved load time for big models, e.g. when importing AGX or URDF files.
- C# API
- Add Brick:: namespace prefix to all generated bundle classes
- This helps to avoid namespace collisions with Math in the C# bindings
- Click:
- Optional naming of Sensors and Inputs using attribute reference_id, allowing for short names in Click messages
- Breaking changes in Robotics bundle:
- RobotOutput.sensor_sources removed, use RobotOutput.sensors instead.
- Added RobotOutput.object_sources (Only Position and RPY supported in Click) and torques to be Click backward compatible
- Infers input ControlType if all inputs have same type, to be Click backward compatible.
- Importing agx files:
- Fixed bug for AGX renderdata, was not transformed correctly when AGX Geometry contained Shape groups.
0.3.11
- Introduce Tracks in the Vehicles bundle.
- Introduce RedirectedMateConnector, PlanarStructuralConnector and AdaptiveMateConnector.
- Introduce StructuralPlane, for modeling in a plane.
0.3.10
- Change default value for the inertia of the 1D rotational shaft that AGX creates for HingeActuators to 1E-4.
- still possible to override using .agx_actuator_internal_inertia
0.3.9
- LockLimitStressBreakablenessBreakableness renamed to LockLimitStressBreakableness
- Importing agx files:
- Added support for multiple instances of same name, by renaming to <name>_<uuid>
- Fix bug preventing use of uuid in arrays and constants, e.g. unnamed objects in charges array.
- Signals and Click:
- Fix bug in RobotInput targets, is now respecting order of Inputs wrt Click.
- Performance of brick.core:
- Caching namespace lookup
- Two models can have the same name in two different namespaces
0.3.8
- Mapping DriveTrain to AGX
- HingeActuator and PrismaticActuator gets internal inertia 1e-7, overridable using .agx_actuator_internal_inertia
0.3.7
- Add Physics3D.RelativeTransform
- Add Terrain.Shovel and Terrain.Terrain
- Fix multplication order bug in Snap
- Breaking backward compatibility:
- RobotInput now takes one targets array instead of multiple, each entry can be any type of input.
0.3.6
- Added TorqueMotor and TorqueHingeJoint
0.3.5
- Added KinematicLock that allows users to merge RigidBodies kinematically
- Use AGX 2.37.2.0
- Added AffineMatrix and fixes rowmajor/colmajor bug in Matrix4x4, AffineMatrix and Snap.
0.3.4
- Removes the 0.1.0 version solution for referencing AGX files.
- Adds AGX Plugin that enables referencing and extending AGX files from Brick files using `import @"agxfile.agx"`, see AGXBrick/examples directory for more.
- Snap:
- Added support for closing loops, see examples/triple_rod_loop.brick
- Bug fixes for hierarchal systems in systems
0.3.3
- Upload nuget package to nuget.org
0.3.2
- Publish nuget package for AgxBrick
0.3.1
- Fix bug where errors was not reported to command line (e.g. in AGXBrick, brickview)
0.3.0
- Refactor namespaces and update documentation for the Physics bundle.
- Joint and contact slack.
- Different types of friction.
- Mechanical damping, deformation and breakableness definitions for interactions.
- Use AGX 2.37.1.0
- DriveTrain Actuators now has a Mate attribute, instead of being Mates.
- Flexible Robotics Joints have a DriveTrain attribute
0.2.1
- Support Click Handshake, ResetMessage, ErrorMessage and SensorRequest.
- Implement Rigidbody RPY output signal
- Support Click Position and RPY outputs
0.2.0
- Use AGX 2.37.0.1
0.1.0
- Using ValueOutputSignals and support for multiple values per Sensor
- Click: supports multiple values per Sensor.
- Python API is more Pythonic, e.g. Python types returned and downcasts properly performed from C++
- Reference and extend AGX files from Brick files.
- AGXBrick and brickview infers mass inertia tensor and local center of mass transform.
0.0.27
- Click sends ResetMessage to client on scene reload
- Fixes Click stopping when reloading scene
- Bugfix: min_force and max_force in RotationalVelocityMotor were not applied
0.0.26
- Uses click 0.2.0 and requires click clients to use click 0.2.0 for Sensor Outputs
- Adds SensorValues to RobotOutput and RobotOutputSignals
- Adds Physics3D.Interactions.Lock
- Support for Lock and more primitive contact geometries in agxtobrick
- Adds signals for Physics1D signal outputs:
- RotationalBodyAngleOutput
- RotationalBodyAngularVelocityOutput
- RotationalVelocityMotor1DTorqueOutput
- GearTorqueOutput
0.0.25
- Update brick physics docs to show namespaces
- Implement sphere contact geometry
- Trimesh support in agxtobrick
- external inheritance prototype
0.0.24
- Refactor brick physics namespaces
- agxtobrick prototype
0.0.23
- RobotInput uses 1D Velocity input.
0.0.22
- Bugfix: Will not propagate corrupt evaluated tree to SNAP to prevent crashes
0.0.21
- Support Python 3.10 on Ubuntu 22.04
0.0.20
- Added Material documentation
0.0.19
- Fix bug in snap where frames would not be positioned
- Fix bug in arithmetic handling with mixed Int and Real
- Implement FlexibleVelocityJoint
- Fixed AGXBrick/examples, some did not work
- Better VSCode TestMate support
0.0.18
- Report error if trying to create a cyclic type
- Fix bug with empty models
- Updated developer documentation
- Update oriented coulomb friction
0.0.17
- Support Materials
- Bugfix DriveTrain
0.0.16
- Towards AGX 2.36.1.5
- --enable-click runs graphics in 60 Hz by default.
- ctrl-break works for brickview
- C# API
0.0.15
- Faster and more stable Automatic Continuous Integration
- brickview
- allows agx cmdline parameters
- fix --enable-click failing
- Fixes e keyboard press and -p cmdline flag with --enable-click
- Add --update-on-reload, --loglevel, --debug-render-tnc, --modelname
- AGXBrick
- Fixes e keyboard press and -p cmdline flag with --enable-click
0.0.14
- Add --version to brick, AGXBrick, brickview
- Windows: Fix python dll issue when using brickagx.
- brickagx depend on which AGX is installed.
0.0.13
- Add brickview cmd
0.0.12
- Autogenerated documentation for bundles
0.0.7
- brick.core
- Operator overloading
- @string-support
- MultiLine strings and DocStrings
- SWIG c# Bindings
- bundles
- Robotics
- Simulation
- Signals and filters
- DriveTrain
- Physics1D
- AGXBrick
- Signals and filters
- OBJ support
- Click support
0.0.3
- Basic Python API BrickAgx
- Basic geometries implemented
- Basic Simulation bundle including Signals
- Basic SNAP for hinge, prismatic, cylindrical
- MateFrame instead of local transform
0.0.2
- Last codebase with both AST and modeltree
0.0.1
- First release