Viscrete API - Changelog
www.omarhesham.com/arslab/webviewer
Limitations:
No support yet for 4+ dimensional models.
No support yet for coupled model (multi-component) logs. It currently defaults to only view the first declared component.
No support yet for transitory state (superdense time) playback. Currently only shows the very last state within each time instance.
Need to implement time based recording instead of fps based (get variable timestep through WebM per-frame duration)
v 0.080
- Fixed: video recording works again for any number of "layout columns".
- Note: transparent pixels broke Whammy's compile(); so careful around calls like clearRect().
- Thanks to Augustin Ismael Montero and Ekambir Sidhu for reporting this issue.
- Fixed: video now records as fast as possible, not limited by webviewer's fps setting.
- Fixed: video preview panel ("watch" link) should no longer get blocked by ad/popup-blockers
- Added: option to show a timestamp in the recorded video.
v 0.075
- Fixed: output (Y) messages of the parent coupled model no longer halt the parsing of the simulation log.
- Thanks to Ifeoluwa Oyelowo for contributing to this fix.
v 0.074
- Fixed: Palette file (*.pal) loading is no longer whitespace-sensitive; more robust handling of .pal file format.
- Thanks to Victor Guida Silva for contributing to this fix.
v 0.073
- Fixed: in some cases, the component name in the log has a dash (-) in it, even though the declared name in the .ma file doesn't (e.g. "3dlife" in MA, but "3d-life" in LOG). That case is now detected properly.
- Todo: investigate this and other peculiarities from the engine docs (if available)
- Todo: fully support multiple components in a single log file.
v 0.070
- Added: full-frame periodic caching (default of 1 every 10 frames); similar in effect to storing I-frames in MPEG compression.
- Todo: allow user to selectively cache specific frames (not just periodic)
- Added: thanks to caching, we can implement backwards playback and random timeline seeking (to the nearest cache point)
- Added: parsing the 'components' list from the MA file; limited to visualizing the first component only
- Todo: fully support multiple components in a single log file.
v 0.065
- Added: last-frame caching. Allows redrawing the entire frame if view settings change (e.g. user unchecks 'show values'). Previously, the timeline had to be reset to 0 everytime (because we only store the incremental changes each frame; a necessary optimization for smooth playback of large grids and multiple layers). Now with last-frame caching, we fully store the most recent full-frame (and only that), so we can redraw it whenever the user changes any view settings.
v 0.060
- Added: support for layers (for classical 3D models)
- Added: support for ports (from lopez simulator). Watch the demo: youtu.be/2uWq1Rx5bqw
- Added: UI enhancements and a more official look
v 0.050
- Fixed: multiple bugs related to initial frame (frame 0) and differentiating between log sources (lopez, dcd++, spanish versions, etc.)
v 0.040
- Added: basic support for single-port ('out') lopez logs
v 0.030
- Added: exporting to video is now a button (with user-defined fps). Watch the demo: youtu.be/odaDOQC2-yQ
- Todo: allow user to customize recording range, resolution, etc.
v 0.020
- Added: loading log files in small chunks, allowing it to process gigabytes of log data in minutes. Watch the demo: youtu.be/sMOr1yHeJso
- Todo: we still run out of browser memory when the processed file is too big (>5GB). Need a purely stream-only mode that accesses disk whenever the live chunk needs updating. Or maybe set a dynamic live cache limit (instead of a small chunk).
v 0.010
- First prototype. Available here: www.omarhesham.com/arslab/testing/grid.htm
- Highlights: asynchronous data streaming; random timeline seeking; platform-independent (anything that runs Chrome, even mobile); and pure client-side JavaScript (doesn't require internet)
- Todo: separate the application from the core functions. Turn core into API.