PageSourceSearch

https://docs-vrgeo-version3.netlify.app/assets/js/f71d1ad7.5002179c.js

js docs-vrgeo-version3.netlify.app collected 2026-10-03 10:39:43 UTC 36,949 bytes, 1 lines download raw bytes

1"use strict";(globalThis.webpackChunkvrgs_docs_v_3_1=globalThis.webpackChunkvrgs_docs_v_3_1||[]).push([[168],{41880(e,n,t){t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>o,default:()=>c,frontMatter:()=>a,metadata:()=>s,toc:()=>h});const s=JSON.parse('{"id":"release-notes/r3-4-notes","title":"Release Notes 3.4","description":"What changed across VRGS 3.4, from 3.4.1 to 3.4.7: Vulkan as the default renderer, a quality grade on every plane fit, flight paths that build themselves from points of interest, narrated tours exported as video, RTK GNSS field navigation, analysis reports, stratigraphy on the objects you interpret, and much faster saving.","source":"@site/versioned_docs/version-3.4/release-notes/r3-4-notes.md","sourceDirName":"release-notes","slug":"/release-notes/r3-4-notes","permalink":"/docs/release-notes/r3-4-notes","draft":false,"unlisted":false,"editUrl":"https://github.com/vrgeoscience/vrgs_docs_v3/tree/master/versioned_docs/version-3.4/release-notes/r3-4-notes.md","tags":[],"version":"3.4","sidebarPosition":1,"frontMatter":{"title":"Release Notes 3.4","description":"What changed across VRGS 3.4, from 3.4.1 to 3.4.7: Vulkan as the default renderer, a quality grade on every plane fit, flight paths that build themselves from points of interest, narrated tours exported as video, RTK GNSS field navigation, analysis reports, stratigraphy on the objects you interpret, and much faster saving.","metaTitle":"ReleaseNotes34","metaDescription":"Release notes for VRGS version 3.4","sidebar_position":1},"sidebar":"docs","previous":{"title":"Seismic Volumes","permalink":"/docs/properties/properties-seismic-volumes"},"next":{"title":"Release Notes 3.3","permalink":"/docs/release-notes/r3-3-notes"}}');var r=t(74848),i=t(28453);const a={title:"Release Notes 3.4",description:"What changed across VRGS 3.4, from 3.4.1 to 3.4.7: Vulkan as the default renderer, a quality grade on every plane fit, flight paths that build themselves from points of interest, narrated tours exported as video, RTK GNSS field navigation, analysis reports, stratigraphy on the objects you interpret, and much faster saving.",metaTitle:"ReleaseNotes34",metaDescription:"Release notes for VRGS version 3.4",sidebar_position:1},o=void 0,l={},h=[{value:"In development, after 3.4.7",id:"in-development-after-347",level:2},{value:"VRGS 3.4.4 \u2013 3.4.7 \u2013 Trust, Tours and the Field",id:"vrgs-344--347--trust-tours-and-the-field",level:2},{value:"August \u2013 September 2026",id:"august--september-2026",level:3},{value:"\u2728 New & Enhanced Features",id:"-new--enhanced-features",level:3},{value:"\ud83d\udc1b Fixes",id:"-fixes",level:3},{value:"VRGS 3.4.1 \u2013 3.4.3 \u2013 Vulkan by Default",id:"vrgs-341--343--vulkan-by-default",level:2},{value:"August 2026",id:"august-2026",level:3},{value:"\u2728 New & Enhanced Features",id:"-new--enhanced-features-1",level:3},{value:"\ud83d\udc1b Fixes",id:"-fixes-1",level:3}];function d(e){const n={a:"a",admonition:"admonition",code:"code",em:"em",h2:"h2",h3:"h3",hr:"hr",img:"img",li:"li",p:"p",strong:"strong",ul:"ul",...(0,i.R)(),...e.components},{Head:s}=n;return s||function(e,n){throw new Error("Expected "+(n?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}("Head",!0),(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(s,{children:[(0,r.jsx)("meta",{property:"og:url",content:"https://docs.vrgeoscience.com/docs/release-notes/r3-4-notes"}),(0,r.jsx)("meta",{property:"twitter:url",content:"https://docs.vrgeoscience.com/docs/release-notes/r3-4-notes"}),(0,r.jsx)("meta",{property:"og:author",content:"VRGeoscience Limited"}),(0,r.jsx)("meta",{property:"og:description",content:"Release notes for VRGS. Make sure your up to date."}),(0,r.jsx)("meta",{name:"twitter:description",content:"Release notes for VRGS. Make sure your up to date."}),(0,r.jsx)("meta",{name:"twitter:title",content:"Release notes for VRGS 3.4"})]}),"\n",(0,r.jsx)(n.h2,{id:"in-development-after-347",children:"In development, after 3.4.7"}),"\n",(0,r.jsx)(n.p,{children:"These arrive in the build after 3.4.7."}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Virtual field trips"})}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Green screen and virtual backgrounds"})," on your camera tile, alongside the existing blur. With a real green screen you can be cut out on colour alone, which works on machines where the segmentation runtime was never installed and gives cleaner edges around hair. A flat colour background is also the cheapest option to send, so more of the tile's bandwidth reaches your face. See ",(0,r.jsx)(n.a,{href:"/docs/general/viewing-collaboration/multiuser-vft",children:"Multiuser Virtual Field Trips"}),"."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Video keeps up on a slow connection."})," Frames are now dropped rather than queued, so viewers see a current picture instead of a smooth stream of increasingly old ones, and recover quickly when the link frees up."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Voice is closer to real time"}),", and a large trip scales further: someone following the leader's camera no longer republishes that camera to everyone else."]}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Also"})}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Labels are hidden behind the model in recordings"}),", matching what you see in the live view. They previously drew through foreground geometry in captures and recorded flights."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Clearer messages when Athos cannot reach the service"}),", telling you whether it is a permissions problem, a rate limit or an outage, and sign-in refreshes so a long session no longer drops."]}),"\n"]}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsxs)(n.h2,{id:"vrgs-344--347--trust-tours-and-the-field",children:[(0,r.jsx)(n.img,{alt:"VRGS",src:t(96233).A+"",width:"16",height:"19"})," 3.4.4 \u2013 3.4.7 \u2013 Trust, Tours and the Field"]}),"\n",(0,r.jsx)(n.h3,{id:"august--september-2026",children:"August \u2013 September 2026"}),"\n",(0,r.jsx)(n.p,{children:"Measurements now tell you how much they deserve to be believed, flight paths build\nthemselves from the places you care about, and VRGS goes into the field with an RTK\nreceiver."}),"\n",(0,r.jsx)(n.h3,{id:"-new--enhanced-features",children:"\u2728 New & Enhanced Features"}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"How good is that pick?"})}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Every plane fit carries a grade"})," \u2014 ",(0,r.jsx)(n.code,{children:"excellent"}),", ",(0,r.jsx)(n.code,{children:"good"})," or ",(0,r.jsx)(n.code,{children:"rejected"})," \u2014 against the benchmarks published by Tavani et al. (2024). It is a ",(0,r.jsx)(n.strong,{children:"label, not a veto"}),": a rejected pick is still made, plotted and exported, so you can sort your measurements by how much to trust them instead of finding the weak ones later on a stereonet. See ",(0,r.jsx)(n.a,{href:"/docs/general/interpretation/basic-interpretation#how-good-is-the-pick",children:"How good is the pick?"}),"."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"The grade appears next to the cursor while you digitise"}),", not once the trace is finished. It counts up to the eight-node floor, then names the test holding the grade back, so you know 
1whether to add nodes, spread them off the straight line, or give up on that piece of the face."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"The interpretation spreadsheet has fit-quality columns"})," and sorts by any of them, across the orientation, polyline, fault, geopolygon, measurement and scanline sheets. See ",(0,r.jsx)(n.a,{href:"/docs/general/interpretation/spreadsheet-view",children:"The Interpretation Spreadsheet"}),"."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"The same grading runs across a whole mesh or point cloud"})," as an attribute, with plane scatter, RMS residual, linearity and planarity. See ",(0,r.jsx)(n.a,{href:"/docs/general/meshes-point-clouds/attributes#plane-fit-quality",children:"Plane fit quality"}),"."]}),"\n",(0,r.jsxs)(n.li,{children:["A three-point pick is no longer waved through regardless of how collinear the clicks are, and the ",(0,r.jsx)(n.strong,{children:"Error"})," column reports real scatter instead of a constant zero."]}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Flight paths build themselves"})}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Mark the places you want a tour to show and press Auto Generate."})," VRGS works out where to stand the camera, which way to face and how long to take, following bays and noses in the face rather than orbiting a bounding box, and checking the line of sight against the real geometry. Choose a waypoint tour, an orbit of every point, or a face-on traverse."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Check Path"})," walks the whole flight and finds where the camera passes through the outcrop \u2014 the curve, not just the keyframes \u2014 then offers to nudge the surrounding viewpoints clear."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Constant Speed"})," re-paces a path from the distance actually flown, without changing the total duration, so narration timed against it stays put."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Ease-in/out works."})," The ",(0,r.jsx)(n.strong,{children:"SmoothStep"})," tick on a viewpoint had been in the properties for years doing nothing."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Reorder, reverse and hold."})," Move viewpoints up and down, insert one midway, reverse the whole path, and ",(0,r.jsx)(n.strong,{children:"Hold Here"})," to stop the camera at a viewpoint while recording. Each keeps the segment timing correct."]}),"\n",(0,r.jsxs)(n.li,{children:["See the ",(0,r.jsx)(n.a,{href:"/docs/general/viewing-collaboration/flight-path-user-guide",children:"Flight Path User Guide"}),"."]}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Narrated tours export as video"})}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["A guided tour records to ",(0,r.jsx)(n.strong,{children:"MP4 with its commentary"})," mixed down into one soundtrack, and stop-and-talk holds become real frames so the video pauses where the tour does. A field guide authored in VRGS can be handed to someone who does not have VRGS. Tour audio needs the Vulkan renderer."]}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"GNSS field navigation, rebuilt"})}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"RTK receivers and multi-constellation receivers"})," are supported, and a panel in the status bar shows your live fix, so a drop from centimetre to half-metre accuracy is visible while it happens."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Navigate To"})," takes any point you pick on the outcrop and gives you distance, bearing, height difference, how far you have drifted off the line and roughly how long the walk will take."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Record an orientation, waypoint or sample where you are standing"}),", each stamped with the survey quality it was taken at."]}),"\n",(0,r.jsxs)(n.li,{children:["See ",(0,r.jsx)(n.a,{href:"/docs/general/setup-system/gnss-field-navigation",children:"GNSS Field Navigation"}),"."]}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Analysis reports"})}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["A new document that collects stereonet statistics, DFN results, charts and views of your model into one page you can export as a PDF and send on. Text can be written by you or drafted by Athos, with every suggestion shown before it is applied. See ",(0,r.jsx)(n.a,{href:"/docs/general/viewing-collaboration/report-view",children:"Analysis Reports"}),"."]}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Cross sections edit through their pillars"})}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["With ",(0,r.jsx)(n.strong,{children:"3D Translate"})," armed, each bend in a section line carries a handle at mid-height on the curtain, where you can reach it. Drag it sideways to re-route the bend, or up and down to move the whole section. Every drag is a single ",(0,r.jsx)(n.strong,{children:"Undo"}),". See ",(0,r.jsx)(n.a,{href:"/docs/general/interpretation/cross-sections-guide#adjusting-a-section-in-3d",children:"Cross Sections"}),"."]}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Field guide viewpoints can take the scene with them"})}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["Tick ",(0,r.jsx)(n.strong,{children:"Visible objects"})," before ",(0,r.jsx)(n.strong,{children:"Get Viewpoint"})," and the link records what is on display \u2014 models, scale bars, terrain and imagery \u2014 as well as where the camera is. The editor and the reader now agree on text styling, and blank lines between paragraphs survive a save. See the ",(0,r.jsx)(n.a,{href:"/docs/general/viewing-collaboration/field-guide-editor",children:"Virtual Field Guide Editor"}),"."]}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Also new"})}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Live coordinates in the status bar"}),", updating as you move the mouse across the model rather than only when you click."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"A quieter messages panel, on request."})," Right-click the panel and tick ",(0,r.jsx)(n.strong,{children:"Hide Non-Essential Messages"}),". The choice is remembered, and everything still reaches the log file."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"The installer asks where to put VRGS"}),", and shows the licence agreement."]}),"\n"]}),"\n",(0,r.jsx)(n.h3,{id:"-fixes",children:"\ud83d\udc1b Fixes"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"VR is much faster on a large interpretation."})," A project with many polylines could pin the headset at a few frames a second. Showing and hiding objects in the tree now reaches the headset, and VR no longer fails to start on some hardware."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"The rotation centre updates again."})," In the Vulkan view, rotating could pivot about a stale point rather than the geometry under the cursor."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Imagery attribution draws in the Vulkan view."})," Cesium ion, Bing and Google credits were missing, a provider supplying its credit as a logo was dropped, and a long credit line ran off the edge."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Gamepad navigation is easier to control."})," Movement and look speeds are re-tuned, resting triggers no longer creep the camera, and a wireless controller that drops out no longer sends the view flying on its last frozen reading."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Dragging a vertex on a cross 
1section"})," no longer moves the whole section after a section handle has been used earlier in the same session."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Polylines shown as ribbons pick where you click on them."})," The ",(0,r.jsx)(n.strong,{children:"Edge Smoothing"})," option, which had no effect in either renderer, has been removed."]}),"\n",(0,r.jsx)(n.li,{children:"A double-click that finishes a tool no longer leaves a stray point behind."}),"\n"]}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsxs)(n.h2,{id:"vrgs-341--343--vulkan-by-default",children:[(0,r.jsx)(n.img,{alt:"VRGS",src:t(96233).A+"",width:"16",height:"19"})," 3.4.1 \u2013 3.4.3 \u2013 Vulkan by Default"]}),"\n",(0,r.jsx)(n.h3,{id:"august-2026",children:"August 2026"}),"\n",(0,r.jsx)(n.p,{children:"Everyone moves onto the Vulkan renderer in this release, stratigraphy now belongs to the\nobjects you interpret rather than to a single mesh, and large projects save and open a\ngreat deal faster."}),"\n",(0,r.jsx)(n.h3,{id:"-new--enhanced-features-1",children:"\u2728 New & Enhanced Features"}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Vulkan is now the default renderer"})}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"VRGS starts in Vulkan for everyone."})," It is no longer a licensed extra, and your existing licence needs no changes."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"You can have several 3D views open at once"})," \u2014 separate model windows side by side, and the splitter panes that show other people's views during a ",(0,r.jsx)(n.a,{href:"/docs/general/viewing-collaboration/multiuser-vft",children:"multiuser field trip"}),"."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Selection is easier to see."})," Selected objects are drawn with an outline, and polylines hidden behind the outcrop show as ghosted lines that fade out with distance, so a busy interpretation stays readable."]}),"\n",(0,r.jsx)(n.li,{children:"Ortho panels, geobody centre lines, scale rings and edit handles, and stratigraphic zones all draw in Vulkan. An ortho panel keeps its image when you reopen a project, instead of coming back blank."}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Palaeocurrents on a geobody"})," can be drawn as a rose diagram or as a fan of arrows with the mean direction highlighted \u2014 a new option in the group's display properties."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Move and rotate an object with on-screen handles."})," Drag an axis arrow to translate a mesh or point cloud, a ring to rotate it, with the object previewed in place as you drag and the change committed when you let go. The rotate handles had no rings in earlier builds, which made rotate mode impossible to use at all."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Touch and pen input"}),", for Surface-class field hardware."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Painting respects what is in front of what"}),", so a facies stroke no longer paints through an occluding wall onto the surface behind it."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"More object types draw in Vulkan"})," \u2014 mesh graph networks, voxel model slices and ortho images. A project containing a type the view still cannot draw now says so in the messages panel instead of silently omitting it."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Captures and recordings include Gaussian splats"}),", which were previously missing from saved images and video."]}),"\n",(0,r.jsx)(n.li,{children:"Flight path presentations show their overlay, and the transport controls drive the Vulkan view."}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Picking works where it used to fail."})," A mesh you have just imported can be picked straight away, without saving and reopening the project first. Ortho panels are picked in front of the rock behind them. Sticky Interp is honoured when you place orientations, faults and scanlines, and when you extend a polyline."]}),"\n",(0,r.jsx)(n.li,{children:"Clicking a surface reports the position of the point you clicked in the status bar."}),"\n",(0,r.jsx)(n.li,{children:"Scale bar labels let you choose how many decimal places to 
1show."}),"\n",(0,r.jsxs)(n.li,{children:["To compare against the old renderer, clear ",(0,r.jsx)(n.strong,{children:"Use Vulkan Renderer"})," under ",(0,r.jsx)(n.em,{children:"Advanced & Diagnostics"})," in the ",(0,r.jsx)(n.a,{href:"/docs/general/setup-system/project-properties",children:"project properties"})," and restart VRGS, or start it with ",(0,r.jsx)(n.code,{children:"-opengl"}),"."]}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Stratigraphy across the project"})}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"A rebuilt stratigraphic column."})," Work at System, Series or Stage level, zoom with the mouse wheel, scroll through geological time with Shift and the wheel, and see your project's own age range rather than the whole geological record. The column highlights the stratigraphy of whatever you pick in the model."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Objects carry their own stratigraphy"})," \u2014 ICS units, your own group, formation and member names, and measured ages where you have them. It belongs to the object, not to a range on a mesh."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Stratigraphic markers"})," are new: a point in the model with an age attached, for a measured horizon, a dated sample or a picked contact. You place, drag and delete them like any other waypoint. See ",(0,r.jsx)(n.a,{href:"/docs/trees/data/stratigraphic-markers",children:"Stratigraphic Markers"}),"."]}),"\n",(0,r.jsxs)(n.li,{children:["More in ",(0,r.jsx)(n.a,{href:"/docs/general/fractures-structure/stratigraphy",children:"Stratigraphy & the Stratigraphic Column"}),"."]}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Surfaces"})}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Conformable stacks."})," Choose several polyline groups when you build an implicit surface and VRGS solves them together, so the horizons share every fold and can never cross one another. See ",(0,r.jsx)(n.a,{href:"/docs/general/fractures-structure/implicit-surfaces",children:"Implicit Surfaces"}),"."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Faults on gridded surfaces."})," As well as the existing barrier trace, you can now define a fault as a ",(0,r.jsx)(n.strong,{children:"map gap"})," \u2014 a hangingwall and a footwall cutoff, with the ground between them left blank \u2014 or as a ",(0,r.jsx)(n.strong,{children:"fault plane polygon"}),", which pins the throw at the fault instead of smoothing the offset away across it. See ",(0,r.jsx)(n.a,{href:"/docs/general/fractures-structure/surface-gridding",children:"Gridding Surfaces"}),"."]}),"\n",(0,r.jsx)(n.li,{children:"Implicit surfaces no longer curve back towards the regional trend at the edge of your data."}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Discrete element modelling"})}),"\n",(0,r.jsx)(n.admonition,{title:"Requires the DFN licence feature",type:"info",children:(0,r.jsxs)(n.p,{children:["The ",(0,r.jsx)(n.strong,{children:"DFN"})," and ",(0,r.jsx)(n.strong,{children:"Discrete Element Model"})," branches appear in the Interpretation tree only when your licence includes the DFN feature."]})}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Grow Elements now grows the pack."})," Every step after the first used to report the same numbers, so the model never densified; it now grows towards the porosity you asked for, and tells you plainly when growing cannot reach it."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Packs settle instead of bouncing"}),", so a model comes to rest rather than oscillating."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Porosity is now worth watching."})," It is measured against the settled pack rather than a box that is mostly air, so it changes as the model compacts \u2014 which is what it is for."]}),"\n",(0,r.jsx)(n.li,{children:"Adding elements to a large model is much faster."}),"\n",(0,r.jsx)(n.li,{children:"Discrete element volumes survive a save and reload, and the model's domain box is drawn in the view and can frame it."}),"\n",(0,r.jsxs)(n.li,{children:["See the ",(0,r.jsx)(n.a,{href:"/docs/general/fractures-structure/dem-user-guide",children:"Discrete Element Model User Guide"}),"."]}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Terrain, globe and VR"})}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Satellite terrain now works in the headset."})," Cesium and Google 3D Tiles stream and draw while you are in VR, terrain masking included; previously the imagery froze the moment you put the headset on. See the ",(0,r.jsx)(n.a,{href:"/docs/general/viewing-collaboration/vr-user-guide",children:"VR User Guide"}),"."]}
1),"\n",(0,r.jsx)(n.li,{children:"Terrain masking is tighter, and is included when you capture an image."}),"\n",(0,r.jsx)(n.li,{children:"Starting VRGS without a headset connected no longer reports an error."}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Billboards and multimedia"})}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["Billboards have a ",(0,r.jsx)(n.strong,{children:"header bar"}),": drag the board itself by its top edge, with the video controls moved up there and clear of the content. The header and its controls appear on the board you have selected, so an unselected board stays clean."]}),"\n",(0,r.jsx)(n.li,{children:"The navigation and playback buttons are the same size, give feedback when pressed, and shrink together on a narrow board."}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Rewind"})," replaces the second stop button, ",(0,r.jsx)(n.strong,{children:"repeat"})," now loops the clip, and images and video keep their aspect ratio on presentation billboards."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Maintain Size"})," is honoured by multimedia objects and by sample, waypoint and marker labels."]}),"\n",(0,r.jsx)(n.li,{children:"Video no longer sticks when a clip runs longer than the view it is playing in."}),"\n",(0,r.jsxs)(n.li,{children:["See ",(0,r.jsx)(n.a,{href:"/docs/trees/data/billboards",children:"Billboards"}),"."]}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Field guides"})}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"The field guide map now appears in the reader"}),", not just while you are editing."]}),"\n",(0,r.jsx)(n.li,{children:"The map in the editor groups nearby markers together and zooms with the mouse."}),"\n",(0,r.jsx)(n.li,{children:"A contents list on a Day page no longer breaks the editor, and a shared menu saves as a menu."}),"\n",(0,r.jsxs)(n.li,{children:["See the ",(0,r.jsx)(n.a,{href:"/docs/general/viewing-collaboration/field-guide-editor",children:"Virtual Field Guide Editor"}),"."]}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"The AI assistant (Athos)"})}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Athos can segment a photograph for you."})," Describe the feature \u2014 ",(0,r.jsx)(n.em,{children:'"outline the sandstone bed in the middle of this photo"'})," \u2014 and it places the Segment Anything prompts and runs the segmentation. The result arrives as the ordinary ",(0,r.jsx)(n.strong,{children:"mask preview"}),", and ",(0,r.jsx)(n.strong,{children:"you"})," commit it with ",(0,r.jsx)(n.strong,{children:"Label from Segments"}),", exactly as with a mask you drew yourself: Athos proposes, and never writes to your project. Tell it what is wrong and it refines from the previous mask rather than starting over. See ",(0,r.jsx)(n.a,{href:"/docs/general/viewing-collaboration/athos-ai-assistant#segmenting-a-photograph",children:"Segmenting a photograph"}),"."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"A local Ollama model can now see."})," Screenshots are sent to a local server too, so ",(0,r.jsx)(n.em,{children:'"what am I looking at?"'})," no longer needs a hosted provider \u2014 it needs a vision-capable model, and the default ",(0,r.jsx)(n.code,{children:"qwen3-vl:8b"})," is one. A text-only model still gets the scene description, with no image. See ",(0,r.jsx)(n.a,{href:"/docs/general/setup-system/ollama-setup#images-and-vision-models",children:"Images and vision models"}),"."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Answers stream, and Athos shows its working."})," The final answer arrives as it is written rather than all at once, and while Athos is running a query, taking a look at the view or segmenting, it narrates what it is doing instead of leaving you with a spinner."]}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Coordinate systems"})}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"ODN \u2013 Newlyn (EPSG:5701)"})," joins EGM2008 and EGM96 as a ",(0,r.jsx)(n.strong,{children:"Vertical Datum"}),". This is the datum Ordnance Survey heights and UK levelling are quoted against, so a British National Grid project can produce heights that agree with the map rather than sitting tens of metres off on the ellipsoid."]}),"\n",(0,r.jsxs)(n.li,{children:["The vertical datum settings are now ",(0,r.jsx)(n.a,{href:"/docs/general/setup-system/project-properties#vertical-datum-and-orthometric-height",children:"documented in full"}),", including the one that catches people out: if the geoid grid cannot be downloaded, heights pass through ",(0,r.jsx)(n.strong,{children:"uncorrected"}
1)," and nothing on screen says so."]}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Photogrammetry"})}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"A re-run no longer undoes its own camera calibration."})," A calibration accepted on measured evidence was re-judged without that evidence by the next run, demoted, re-solved to the same answer and then refused \u2014 costing a full re-registration on ",(0,r.jsx)(n.em,{children:"every"})," subsequent run of the project. The evidence now travels with the calibration."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Texture bakes unwrap far faster."})," Chart packing was single-threaded \u2014 a 27-million-triangle bake spent 43 minutes packing on one core while the rest of the machine idled, then silently repeated the whole pack when it ran out of texture pages, which read as a hang. Packing is now parallel, the texture density is fitted to a measured chart count before the first attempt so the repeat is usually avoided, and any repeat is reported rather than hidden."]}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Import and export"})}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["GeoJSON export and import now carry your ",(0,r.jsx)(n.strong,{children:"group structure"})," and bring the interpretation tree back the way it went out. See ",(0,r.jsx)(n.a,{href:"/docs/general/viewing-collaboration/geojson-export",children:"GeoJSON Project Export"})," and ",(0,r.jsx)(n.a,{href:"/docs/general/data-exchange/import-export",children:"Getting Data In and Out"}),"."]}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Speed and project safety"})}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Saving is much faster on large projects."})," Only the data you have actually changed is written."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Projects open faster"}),", particularly those with many objects."]}),"\n",(0,r.jsx)(n.li,{children:"Building a mesh from a point cloud sizes the job to your data and your machine rather than running out of memory."}),"\n",(0,r.jsxs)(n.li,{children:["Upgrading a project to a new version takes a full backup first. See ",(0,r.jsx)(n.a,{href:"/docs/general/setup-system/large-models",children:"Working with Large Models"}),"."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Two 3D views no longer fight each other."})," With a second view open, the caches for Cesium tiles, seismic panels and volumes, and ortho panels were evicting each other's uploads every frame; they now hold data long enough for both views to use it."]}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"A quieter messages panel"})}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"The panel now shows what you need to read. Years of internal reporting have moved to the log file, and timings never appear in the panel at all."}),"\n",(0,r.jsx)(n.li,{children:"Progress bars show the time actually remaining."}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Commands that did nothing have been removed"})," from the ribbon and menus, including a depth-shading mode, a colour-classification mode and several superseded painting entries. Each was either unimplemented or unreachable, and their presence implied capabilities VRGS did not have."]}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Updates"})}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"Update notices now name the version correctly. An update already downloaded and waiting used to show as version 0.0.0.0, and reinstalling the version you are already running could produce a pointless notification."}),"\n"]}),"\n",(0,r.jsx)(n.h3,{id:"-fixes-1",children:"\ud83d\udc1b Fixes"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"Deleting a group of orientations now deletes the orientations inside it, rather than leaving them behind in the project."}),"\n",(0,r.jsx)(n.li,{children:"Navigating no longer stalls every few seconds after a region fill fails to classify."}),"\n",(0,r.jsx)(n.li,{children:"The flight path controls no longer restart playback when you pause, and the duplicate set of controls has gone."}),"\n",(0,r.jsx)(n.li,{children:"The spreadsheet view opens the right interpretation object."}),"\n",(0,r.jsx)(n.li,{children:"The voice control on a multiuser field trip no longer triggers on typing, and the camera tile has a blurred background."}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Athos failed to start"})," on some systems, reporting only ",(0,r.jsx)(n.em,{children:'"Failed to initialize MCP integration"'}),". A single tool whose parameters were declared as optional could bring the assistant's start-up down, and the real reason was discarded before it reached you. Both the panel and the log now name the actual cause."]}
1),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Follow the leader"})," on a field trip arrived very nearly level when following someone with any tilt or heading, because camera orientation was being sent in the wrong units between the two renderers."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"The Fill button on the Voxel Model tab commits the region"})," picked with ",(0,r.jsx)(n.strong,{children:"Select"})," into the persistent Segmentation layer \u2014 the step the ",(0,r.jsx)(n.a,{href:"/docs/general/wells-seismic/voxel-volumes#segmentation-workflow",children:"segmentation workflow"})," describes. Successive fills accumulate as distinct labels."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Project backups are named consistently."})," Pre-recovery backups were stamped in local time while every other backup used UTC, and backups made on a single-digit day of the month sorted by file date rather than by the time in their name. Older backups still list correctly."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Coordinate handling."})," Start-up diagnostics for the projection database and datum grids reached neither the messages panel nor the log, so a missing ",(0,r.jsx)(n.code,{children:"proj.db"})," or grid was invisible. A failed coordinate-transform set-up could also leave the previous transform armed, quietly applying the wrong height conversion to the next import."]}),"\n"]})]})}function c(e={}){const{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(d,{...e})}):d(e)}},96233(e,n,t){t.d(n,{A:()=>s});const s=t.p+"assets/images/logo-c0e6a4a126a3223e5ece63096424acd1.svg"},28453(e,n,t){t.d(n,{R:()=>a,x:()=>o});var s=t(96540);const r={},i=s.createContext(r);function a(e){const n=s.useContext(i);return s.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:a(e.components),s.createElement(i.Provider,{value:n},e.children)}}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.