v1.1.0
This minor release marks the first major Milestone release of Scenepic. This release addresses many of the long-standing issues in the v1.0.0 release and adds new features and functionality as well.
Features
- Text burning into individual video frames (for
VideoWriter
- Per-frame layer settings
- The dropdown menu visibility can be directly controlled via
UIParameters
- A
standalone
parameter has been added tosave_as_script
to enable the creation of standalone scripts. - The
status_bar_visibility
of aScene
can now be set (i.e. it is now possible to hide the status bar if desired.) - There is now a new camera control mode, "First Person", accessible by pressing Tab, which enables mouse-look and
wasdqe
movement controls. The old mode, now called "Focus", is still available as the default. - Font scale is now configurable on
VideoWriter
- There is now a "reset camera" button on the control bar so that users without a keyboard can reset camera position
- Can now update colors per frame for both meshes and instanced meshes
quaternion_multiply
adds the long-missing code to combine quaternion rotationsCamera.orbit
creates a sequence of orbiting cameras around a central point- Can specify text alignment and size for graph labels and values
- Can add vertical rules to separate out horizontal regions of the graph
save_html
can now separate out the script and library components (for easier testing of new Typescript library features)- Keyboard shortcuts for toggling layer visibility.
- Ability to pick the centroid of a mesh as a focus point by clicking on it while in focus point selection mode.
- Pan/zoom functionality to 2D canvases.
- Full pinch, zoom and rotate with two fingers is now supported
Improvements
- Added new
hello_scenepic.py
andhello_scenepic.cpp
example code - Added a clang-format pipeline and build targets
- Normalized C++ file format
- Stub files for all classes properly expose the docstrings in VS Code and other editors, thus making development in Python considerably easier.
- The missing methods for a variety of classes have been added to the python docs
- The version of pybind11 has been bumped to the latest release
- Notebooks that contain scenepic are now correctly displayed in Jupyter notebooks within VS Code
Bug Fixes
load_obj
now correctly loads normals when present in the OBJ fileMeshInfo
now exposes normals- C++ build typos now fixed
- Fixed erroneous pipeline triggers
- While transparent backgrounds were supported by the library, it was not exposed via the client APIs. This has been fixed via a 4D color parameter for
Shading
. - Coordinate axes bug
- Negative angle bug
- Mesh Update for instanced meshes
- Standalone scripts were missing a newline as a result of recent NPM changes. This is now added in manually in the script generation process.
- Dropdown menus will now correctly appear on top of canvases in the z-order
- Dropdown menus will align on the opposite side if not doing so would result appearing outside the viewbox
Deprecated
update_mesh_without_normals
has been deprecated in favor of the new methodupdate_mesh_positions