This is a lightweight visualizer and tool for working with the physics definition files of BeamNG (called jbeam).
Install via the Visual Studio Code marketplace here
Project contributors, please read contributing.md!
Warning: this plugin is still very experimental and might crash. We are working on bugfixes and stability improvements
-
custom syntax for jbeam that ignores missing commas
-
Outline / Symbol provider: you can jump between parts and sections with the outline window
-
Custom Json / JBeam parsing that is very close to the actual used parer that provides more useful errors and warnings with ranges
-
Extensive hover information: the parsed object and a clickable breadcrumb
-
Documentation integration to lookup the value, key and path of the hovered item in the docs to provide useful information. Currently looks for the breadcrumb:
beams > optional
, the key of the hovered itembeams > id2
or the word itselfFLT_MAX
-
3D Preview of the JBeam
-
Node multi selection
-
Beam multi selection
-
Mesh multi selection
-
Flexmesh translation / rotation support
-
Mirror planes and symmetry detection (with error support)
-
Ground smart helper
-
visualize current part or all parts
-
triangle visualization
-
Settings shortcut in the top right corner:
-
Extensive settings, live updating the 3D scene as well:
-
BeamNG Log file syntax highlighter and parser included
- Mesh functions are a bit unstable still. Especially if you change tabs, etc while it loads the data.
-
JBeam beautifier: clean up the file, format everything nicely
-
autocomplete part names in PC files
-
make grid and ground plane being as big as the vehicle at least for big vehicles
-
mesh opacity user-setable
-
implementation of props
-
picking flexbodies in 3d space
-
working slot system: part chain loading support, part config (PC) loading
-
better support for sections: slidenodes, rails, triangles, wheels, refNodes, camera*, torsionbars
-
powertrain viz
-
trigger viz
-
variables debug UI
-
specific help for sections using proper error checking and links to documentation
-
Robustness and future-proofing: Add exception handling and error mitigation to the code so it will continue working in the future
-
zip mod loading?
-
convert all JS files to proper JS modules / remove hacks
-
implement more providers from here
-
use more icons throughout the UI: from here
-
multi-line selection of elements also working in 3d space
-
direction connection to BeamNG: sync/reload automatically
-
highlighting of scopes
-
dedicated data view
-
dedicated documentation view
-
walkthrough: https://code.visualstudio.com/api/references/contribution-points#contributes.walkthroughs
-
getting started page
None
If the file association does not work out of the box, pelase configure your setup:
-
Open a jbeam file. On the bottom right corner of the window, click on the language mode:
-
In the resulting popup, select
Configure File Association for '.jbeam'
: -
enter
jbeam
- It should look like this:
If all worked, it should show up like this now:
- Features:
-
Flexmesh translation / rotation support - now fits the visualization in the simulation
-
new 3D view toolbar - quick switches for most commonly used tools
-
Mirror planes and symmetry support - highlights nodes across any detected mirror planes
-
Symmetry error detection - detects where the symmetry across mirror planes seems to be broken
-
- Bugfixes:
- Duplicate beam detector now works pretty much like in game
- Bugfixes:
- Duplicate beam detector now works like in game
- Bugfixes:
- Fixed JBeam file/parts counter
- Fixed JBeam diagnostics clearing on closing file
- Tweaked diagnostic message for duplicate beams and degenerate triangles a bit
- Bugfixes:
- Fixed bug where "tableSchema" processing didn't happen due to even just JSON warnings existing, which isn't a problem to process.
- Features:
- added duplicate beam detection for current file
- added degenerate triangle detection
- Bugfixes:
- fixed jbeam being hidden under z=0 plane
- fixed node label resizing in perspective mode when rotating camera
- no longer rendering "virtual" jbeam objects as it can be confusing
- Features:
- added torsion bar visualization
- added a setting "Show Node IDs" to show node ids regardless of where your cursor is in the jbeam file
- "focus Selected JBeam" enabled by default and works with other JBeam objects
- Bugfixes:
- tweaked node sizing
- tweaked node label sizing in orthographic mode
- Bugfixes:
- fixed plugin not working under Linux
- Features:
- now mouse double click in order to select nodes
- added ability toggle focusing on selected nodes (off by default)
- Bugfixes:
- fixed bug with duplicate diagnoses, when the archivar processes all jbeam files, and then you open a jbeam file, and you modify it
- fixed showing nodes in 3D view from a different vehicle
- ignore processing "slotType" with "processTableWithSchemaDestructive"
- in 3D scene view, virtual nodes colored blue and have "(v)" appended to the node name
- fixed JBeam files parsed counter
- fixed parsing jbeam/sjson files that don't have an outer object
- more parsing bugs fixed
- fixed/updated jbeam/part config file icons thanks to Sopze92
- Bugfixes:
- fixed syntax checker not working in some cases
- fixed displaying duplicate diagnostics
- fixed JBeam file/part counter
- Features:
- added ability to detect duplicate dictionary keys
- Bugfixes:
- fixed tooltip textures not updating correctly
- improved label scaling
- improved error handling on sim sync
- fixed CTRL + SHIFT + P : "Sync with simulation"
- improved simconnection protocol to have message identifiers and lengths
- Bugfixes:
- fixed node selection scrolling the viewport when leaving and re-entering the 3D view
- Bugfixes:
- improved groundplane size for large models
- improved stability
- nodes are picked in 2d space for better accurancy
- exchanged left/right mouse button for pan/rotate
- fixed node sizes in orthographic view
- fixed json number parsing for numbers with a leading plus sign
- Features:
- completely new json parser with better and improved metadata support and improved error diagnostics
- added 3D line to mark the origin 0,0,0
- beamng.log parser
- triangles are not visible unless editing that section
- only show 3d meshes if in flexbodies section
- support for floating 3D labels. Used to display node names right now
- added simconnection: will connect to the simulation and interact with it (if running)
- added knowledge of all existing jbeam files for part finding reasons
- added partconfig parsing and completion basics - experimental
-
Bugfixes:
- fixed empty sections crashing the parser
- improved error handling sjson/table parsing
- improved stability with multiple webviews open
- improved stability with changing documents
- fixed memory leaks due to improper geometry/material management
- Fixed meshes disappearing: fixed normal and bounds calculation
-
Features:
- Added extension settings. Open with
Open Settings
on top right corner - Added new settings
- Enable/Disable hover
- Enable/Disable hover highlight with the breadCrumb
- Enable/Disable hover documentation
- Enable/Disable hover data
- Enable/Disable mesh default loading
- FPS Limit
- Load common folder
- Added extension settings. Open with
- fixed leaking
options
in the table parser - removed ground floor for now
- implemented
triangles
section visualizer
- Improved readme a bit
- Remove icon theme to not overwrite any user themes
- Fixed Mesh loading crashing when the opened file is outside the workspace. Enforcing a workspace now and showing an error message.
- fixed documentation a bit up
Initial release :)