Repository navigation
Support the new .vrtx project format (Studio v0.2.1) - #18
Merged
Merged
Conversation
Studio v0.2.1 saves projects as .vrtx, not JSON: a "VRTX" magic and a version byte, then zstd-compressed bincode of ProjectData (with a leading inner schema byte). New resources/js/studio/vrtx.js is a small bincode codec for that schema — it decompresses with fzstd and, having no bincode compressor to hand, writes the zstd payload as a valid raw-block frame the Studio's decoder accepts. Verified against a file the real Studio wrote: our inner bincode is byte-identical. - Download now writes .vrtx by default; .json stays as a legacy option. - Import (upload and the start screen) sniffs the VRTX magic and reads either format. - The sun direction (sun_rotation) is a field of the format as of v0.2.1, so it rides in the document now instead of only in the map. Breaking format change, so a major bump to 3.0.0. Refs #17
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Studio v0.2.1 stopped saving projects as JSON. A
.vrtxfile is the ASCII magicVRTX, a container version byte, then a zstd frame that decompresses to a one-byte inner schema version followed by theProjectDatastruct in bincode (classic little-endian, fixed-int). The old JSON still opens in Studio.Changes
resources/js/studio/vrtx.js— a small bincode codec for theProjectDataschema. Decompresses withfzstd; with no bincode compressor on hand it writes the zstd payload as a valid raw-block frame, which the reference zstd decoder (and so the Studio) accepts..vrtxby default;.jsonstays as a legacy menu item.VRTXmagic and reads either format.sun_rotationis a field of the format as of v0.2.1, so it now rides in the document (both formats) rather than only in the map.Verification
Reverse-engineered under the developer's consent (
VortexStuff/docs/CONSENT.md), then checked against a file the real Studio wrote:.vrtxand matches its JSON twin field-for-field, including the enum orders (noteSmoothis material index 0).zstd -t.npm test), including a newscripts/vrtx.test.mjsthat keeps the codec pinned to a committed real-Studio sample.npm run buildis clean.Closes #17