SYSTEMS AND METHODS FOR DIGITALLY RECORDING STRUCTURAL DATA FROM ROCK SAMPLES

BR112025018797A2Pending Publication Date: 2026-09-08
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
BR112025018797
Authority / Receiving Office
BR · BR
Patent Type
Applications
Publication Date
2026-09-08

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader
Need to check novelty before this filing date? Find Prior Art

Description

1 / 61 SYSTEMS AND METHODS FOR DIGITALLY RECORDING STRUCTURAL DATA FROM ROCK SAMPLES CROSS-REFERENCE TO RELATED REQUEST

[0001] This application claims priority from U.S. Provisional Patent Application Serial No. 63 / 449,988, filed March 4, 2023, entitled SYSTEMS AND METHODS FOR DIGITALLY LOGGING STRUCTURAL DATA OF ROCK SPECIMENS, the contents of which are incorporated herein by reference. BACKGROUND OF THE DISCLOSURE

[0002] In mineral exploration, drilling is the critical and expensive operation of obtaining rock samples, such as core samples of a geological body. Once obtained, the rock samples are studied in various ways in search of indications that there may be valuable and recoverable mineral deposits in the geological body.

[0003] A large number of core samples are typically extracted from a specific geological body to provide useful indications of the mineral content contained within the body. Typically, a given core sample extracted from a geological body is initially an elongated, usually cylindrical, rock sample, a few centimeters in diameter and several centimeters in length. After extraction, the core sample is uniquely identified and is often further sampled by dividing the usually cylindrical core sample into, for example, several halves and / or quarters and / or three-quarters of a cylinder. Individual samples from an initial core sample are then distributed to one or more laboratories for geochemical and / or geometallurgical analysis, as well as to one or more geologists for geological and / or geophysical study and analysis.For example, structurally relevant core samples and their fragments form the basis of Structural Vectoring® — a process of understanding a mineral body using structural geological analysis. That is. Petition 870250089457, dated 10 / 01 / 2025, page 7 / 94 2 / 61 described, for example, on the website: https: / / vektore.com / structuralvectoring-in-mineral-exploration (Monteiro).

[0004] As a result of the analysis of individual samples, plotted maps / sections are created for a given core sample and / or a three-dimensional model is made of the core sample for visualization and statistical analysis. Geologists generate this information from various extracted core samples and use it to produce a mineral resource analysis for the geological body. Such analysis may include the configuration or design of mineral bodies within the overall geological body being investigated, as well as volume and grade distributions.

[0005] Because physical core samples incorporate a great deal of information, they serve as a significant resource for mining operations, especially for validation and auditing. Mining operations invest considerable resources in storing, preserving, and making core samples available during a given project and for future ventures. The extracted and analyzed core sample pieces that remain on-site, being essential for mineral resource analysis, are cataloged, physically stored in boxes, and stacked in core farms so that they can be physically accessed repeatedly for subsequent analyses and / or on-site audits. Regarding more in-depth analyses, geologists often overlook important geological features during an initial pass or even during a major logging phase of a project or audit.

[0006] Traditionally, if more work was needed with the core samples, geologists had to be physically present at the core farm to handle and study the samples in person. Many exploration sites Petition 870250089457, dated 10 / 01 / 2025, p. 8 / 94 3 / 61 are located in remote areas, and it can be expensive and time-consuming for geologists to be constantly present on site.

[0007] To reduce some of the effort, time, and expense for geologists who need to be physically on-site to study core samples, some mining operations have employed core sample scanners to digitally capture images of core samples. The digital images can then be shared electronically with geologists at different locations. An example of a commercially available core sample scanner is the CoreScan 3 offered by the DMT Group. The CoreScan 3, described on the website https: / / www.dmt-group.com / products / geo-measuringsystems / drill-core-scanner-dmt-corescan / dmt-corescan-3.html, is configured as a tabletop kiosk unit with an open lower tabletop portion and an upper imaging portion for imaging objects placed on the open tabletop portion. The tabletop portion can receive core samples for flat (two-dimensional) core sample scanning.For three-dimensional scanning, the table portion also includes mechanical rollers that can support and roll a heavy cylindrical core sample around a horizontal axis, while the imager portion captures image data from all sides of the core sample from above. A downstream processing unit is configured with appropriate software to process the captured image data to create a three-dimensional model of the cylindrical core sample for study and analysis. According to the published CoreScan 3 specifications, the unit is 1.36 meters long, 1.28 meters high, and weighs 128 kilograms.

[0008] Although the CoreScan 3 is a useful tool, its size and weight limit where and when it can be used. As explained in the publication entitled “A Portable Core Imaging Scanner (Kofman, Duerksen and Schmitt, University of Alberta, Petition 870250089457, dated 10 / 01 / 2025, page 9 / 94 4 / 61 Edmonton, Alberta, Canada — 2012), one reason why core imaging has not been more widely accepted is that the available equipment is relatively bulky, making its use generally impractical. Research sites are often remote and rugged, which can limit the amount and types of equipment researchers can bring to the site for data acquisition and analysis. The article by Kofman et al. proposes a similar roller-based core sample scanner to receive horizontally oriented cylindrical core samples, and states that constructing such a device using aluminum for some components would provide a better cost-benefit ratio and strength-to-weight ratio, thus making access to more remote and rugged sites less difficult.

[0009] The CoreScan 3 and the device proposed by the Kofman et al. article include several moving parts so that they can physically support and roll core samples for image generation. With high-volume core sample scanning operations, rollers, bearings, motors, and other moving parts exposed to dust, rock fragments, and frequent use are obviously subject to failure. If a scanner with these parts needs to be moved to a different location, the moving parts also run the risk of becoming misaligned. Thus, the maintenance costs of these physically complex units can be significant. In addition, components such as motors, bearings, and rollers suitable for physically supporting often heavy core samples will typically be constructed of steel. Therefore, they will contribute significantly to the overall weight, despite the weight savings provided by using lighter materials such as aluminum for other components.

[0010] In addition, core sample scanners that employ horizontal rollers to support and roll cylindrical core samples during image generation do not accommodate Petition 870250089457, dated 10 / 01 / 2025, page 10 / 94 5 / 61 easily scans non-cylindrical core samples, such as half-cylindrical, three-quarter-cylindrical, or quarter-cylindrical core samples, into which an originally cylindrical core sample can be divided. As one might expect, rolling a non-cylindrical core sample would essentially result in an uncontrolled drop of the core sample during the attempted rotation, making it very difficult to capture suitable images to form a useful three-dimensional model. Therefore, if a three-dimensional scan of a non-cylindrical core sample is required, the technician using the core sample scanner must be quite involved, manually manipulating the core sample instead of letting it drop freely. This manual manipulation tends to significantly increase scanning time, reducing the overall efficiency of the operation.

[0011] Several technologies are offered by other providers, such as the Reflex IQ-logger offered by Imdex Limited of Balcatta, Australia. The Reflex is a handheld, mouse-like device that can be rolled along the guideline of a core sample to record depth and structural measurements using laser alignment, and is designed to be used without removing the core sample from the tray in which it rests.

[0012] U.S. Patent No. 10,235,760 to Monteiro et al. discloses a device, system, and method for capturing digital images of a rock sample in a region of interest. The device includes an inner chamber with a wall surrounding the region of interest, the chamber having a sample support structure at the bottom of the region of interest and an open top opposite the sample support structure, the sample support structure sized to receive and support an elongated core sample in a vertical orientation within the region of interest. Petition 870250089457, dated 10 / 01 / 2025, page 11 / 94 6 / 61 interest. The device further includes a camera-associated imaging system comprising multiple digital imaging devices spaced around the region of interest, each digital imaging device oriented to have a respective field of view encompassing the region of interest. The device further includes a camera-associated lighting system switchable between a first and a second lighting state, comprising a plurality of lighting sources spaced around the region of interest, the lighting sources operable to direct intersecting lighting patterns toward the region of interest.The device additionally includes a control system that coordinates the image generation system and the lighting system to capture a first set of digital images during the first lighting state and a second set of images during the second lighting state.

[0013] Although the device and methods of Monteiro et al. are very useful, transporting electronic devices, small or large, across national borders and seeking regulatory approval for them can be a challenging problem. Furthermore, improvements in usability and accuracy are always desirable. SUMMARY OF THE DISCLOSURE

[0014] According to one aspect, a structural data recording system is provided comprising: a digital video camera; a display device; at least one user input device; and at least one processor in communication with at least the digital video camera and the display device, and configured to: receive video frames captured by the digital video camera; during the reception of the video frames: display the video frames on the display device; process the video frames to detect by Petition 870250089457, dated 10 / 01 / 2025, page 12 / 94 7 / 61 minus one predetermined machine-readable code; and in the event that at least one predetermined machine-readable code is detected: determine a pose of at least one machine-readable code; receive, using at least one user input device, one or more user selections corresponding to a respective pixel on the display device; based on at least the pose of at least one machine-readable code at the time each of the one or more user selections is received, calculate a respective 3D coordinate of a corresponding point within a digital 3D model of an object; and augment the digital 3D model with a respective feature at the 3D coordinate.

[0015] In one example, the calculation is additionally based on a scale of at least one predetermined machine-readable code.

[0016] In one example, the digital 3D model is a digital 3D model of a cylinder with a length and a radius.

[0017] In one example, at least one processor is configured to receive from a user, using at least one user input device, at least one radius value.

[0018] In one example, at least one processor is additionally configured to: generate a 2D visual representation of the 3D digital model based on the pose of at least one machine-readable code at the time of generation.

[0019] In one example, the 2D visual representation of the digital 3D model comprises portions that include at least: a wireframe portion representing an envelope of the digital 3D model; and a feature portion representing one or more features of the digital 3D model.

[0020] In one example, the portions additionally comprise: at least one resource label corresponding to a respective resource. Petition 870250089457, dated 10 / 01 / 2025, page 13 / 94 8 / 61

[0021] In one example, at least one processor is additionally configured to: display the 2D visual representation on the display device.

[0022] In one example, at least one processor is additionally configured to: display at least one selected portion of the 2D visual representation portions on the display device in response to a user instruction received using at least one user input device.

[0023] In one example, the respective resource is a 3D coordinate in the 3D model and at least one processor is further configured to: associate the 3D coordinate with one or more other 3D coordinates of the digital 3D model determined based on one or more previous user selections using at least one user input device, in order to augment the digital 3D model with a respective structure defined by multiple associated 3D coordinates.

[0024] In one example, the respective structure is one of: a line defined by at least two associated 3D coordinates representing a structural line; a plane defined by two associated 3D coordinates derived from a principal axis of a projected ellipse; and a plane defined by at least three associated 3D coordinates.

[0025] In one example, at least one processor is configured to: receive, using at least one user input device, first and second user selections corresponding to the respective pixels on the display device; based on at least the pose of at least one machine-readable code at a time when the first user selection is received, calculate a respective 3D position of a corresponding first provisional point within the digital 3D model; based on at least the pose of at least one machine-readable code at a time when the second user selection is received, Petition 870250089457, dated 10 / 01 / 2025, page 14 / 94 9 / 61 Calculate a corresponding 3D position of a second provisional point within the digital 3D model; generate a first vector passing through a 3D position of the digital video camera and the first provisional point; generate a second vector passing through a 3D position of the digital video camera and the second provisional point; calculate a corresponding 3D intersection position of the first vector and the second vector; and augment the digital 3D model with a corresponding feature at the 3D intersection position.

[0026] In one example, the 3D intersection position is one of: a 3D point that is common to the first vector and the second vector that intersect; and a 3D point along the shortest line between the first vector and the second vector.

[0027] In one example, the 3D point along the shortest line between the first vector and the second vector is the 3D point at the midpoint of the shortest line between the first vector and the second vector.

[0028] In one example, the structural data recording system further comprises: a hand tool with a rigid body that defines: an object receiving surface; and at least one code display surface, wherein the object receiving surface is sized to interact with a physical object for which structural data is to be recorded, and wherein the at least one code display surface displays a respective of at least one predetermined machine-readable code.

[0029] In one example, the hand tool is sized to be held by a user against a physical object while the hand tool is within the field of view of the digital video camera.

[0030] In one example, the hand tool is sized to be at least temporarily attached to a physical object while the hand tool is within the field of view of the digital video camera. Petition 870250089457, dated 10 / 01 / 2025, page 15 / 94 10 / 61

[0031] In one example, at least one predetermined machine-readable code is / are affixed or attached, at least temporarily, to the object.

[0032] In one example, the object receiving surface is dimensioned to interact with a drill core sample as the object, the object receiving surface comprising a vertical line to align the object receiving surface with a reference line of the drill core sample, and a horizontal extension to align the object receiving surface with specific positions along the length of the drill core sample.

[0033] In one example, the object receiving surface is dimensioned to interact with drill core samples with a range of radii.

[0034] In one example, at least one processor is configured to: receive from a user, using at least one user input device, at least one value corresponding to a current position along the length of the drill core sample, wherein the realignment by a user of the object receiving surface with a particular different position along the length of the drill core sample corresponds to a respective different position along the length of the digital 3D model.

[0035] In one example, at least one user input device comprises at least one of: a mouse; a keyboard; a touch-sensitive arrangement associated with the display device; a pointed tool with a predetermined machine-readable code captured in the video frames and processable by at least one processor to determine a pose of the pointed tool; and an eye-tracking device.

[0036] According to another aspect, a hand tool is provided for a structural data recording system, the hand tool comprising: a rigid body Petition 870250089457, dated 10 / 01 / 2025, page 16 / 94 11 / 61 which defines: an object receiving surface; and at least one code presentation surface, wherein the object receiving surface is sized to interact with a physical object for which structural data is to be registered, and wherein the at least one code presentation surface presents a corresponding code of at least one predetermined machine-readable code, the hand tool sized to be held by a user against a physical object while the hand tool is within the field of view of a digital video camera.

[0037] In one example, the object receiving surface is dimensioned to interact with a drill core sample as the object, the object receiving surface comprising a vertical line to align the object receiving surface with a top line of the drill core sample, and a horizontal extension to align the object receiving surface with specific positions along the length of the drill core sample.

[0038] In one example, the object receiving surface is dimensioned to interact with drill core samples with a range of radii.

[0039] According to another aspect, a computer-implemented method for recording structural data is provided, comprising: receiving video frames captured by a digital video camera; during the reception of the video frames: displaying the video frames on a display device; processing the video frames to detect at least one predetermined machine-readable code; in the event that at least one predetermined machine-readable code is detected: determining a pose of at least one machine-readable code; receiving, using at least one user input device, one or more user selections corresponding to a respective pixel on the display device; based on at least the pose of Petition 870250089457, dated 10 / 01 / 2025, page 17 / 94 12 / 61 at least one machine-readable code at a time that each of one or more user selections is received, calculate a respective 3D coordinate of a corresponding point within a digital 3D model of an object; and augment the digital 3D model with a respective feature in the 3D coordinate.

[0040] According to another aspect, a non-transient computer-readable means is provided that incorporates a computer program executable on a computer system for structural recording, the computer program comprising: computer program code for receiving video frames captured by a digital video camera; and computer program code for, during the receipt of the video frames: displaying the video frames on a display device; processing the video frames to detect at least one predetermined machine-readable code; in the event that at least one predetermined machine-readable code is detected: determining a pose of at least one machine-readable code; receiving, using at least one user input device, one or more user selections corresponding to a respective pixel on the display device;Based on at least the pose of at least one machine-readable code at a time that each of one or more user selections is received, calculate a respective 3D coordinate of a corresponding point within a digital 3D model of an object; and augment the digital 3D model with a respective feature in the 3D coordinate. BRIEF DESCRIPTION OF THE FIGURES

[0041] Examples will now be described with reference to the attached figures, in which: FIG. 1 is a combined schematic and conceptual diagram of a structural data recording system, according to an example; Petition 870250089457, dated 10 / 01 / 2025, page 18 / 94 13 / 61 FIG. 2 is a flowchart that describes a computer-implemented method for recording structural data, according to an example; FIG. 3 is a schematic diagram showing the hardware architecture of a computer system; FIG. 4 is a perspective view of a checkerboard pattern for calibrating a digital video camera; FIG. 5 is a perspective view of a hand tool for use in a structural data recording system for drill core samples, according to an example; FIG. 6A is a perspective view of a user holding a cylindrical core sample and the hand tool of FIG. 5 while the core sample is against an object receiving surface of the hand tool; FIG. 6B is a view of the content displayed on a screen of a display device as captured by a digital video camera, including the hand tool of FIG. 5 and a 2D representation of a 3D model; FIG. 7 is another view of the hand tool in FIG. 5 and a 2D representation of a 3D model; FIG. 8 is another view of the hand tool, not receiving any core sample and therefore isolated; FIG. 9 is another view of the hand tool in FIG. 5 and a 2D representation of a 3D model; FIG. 10A is a front elevation view of the hand tool in FIG. 5; FIG. 10B is a top plan view of the hand tool in FIG. 5; FIG. 10C is a side elevation view of the hand tool in FIG. 5; FIG. 10D is a front perspective view of the hand tool in FIG. 5; Petition 870250089457, dated 10 / 01 / 2025, page 19 / 94 14 / 61 FIG. 10E is a rear perspective view of the hand tool in FIG. 5; Figures 11A-11F illustrate six different machine-readable codes that can be affixed to the respective code-receiving surfaces of the hand tool in Figure 5; FIG. 12 is a combined schematic and conceptual diagram of a structural data recording system, according to an example; FIG. 13 is a combined schematic and conceptual diagram of a structural data recording system, according to an example; FIG. 14 is a combined schematic and conceptual diagram of a structural data recording system, according to an example; FIG. 15 is a combined schematic and conceptual diagram of a structural data recording system, according to an example; FIG. 16 is a combined schematic and conceptual diagram of a structural data recording system, according to an example; FIG. 17 is a combined schematic and conceptual diagram of a structural data recording system, according to an example; FIG. 18 is a view of a display device screen of a structural registration system during a user selection using a user input device from a first point on the display device during the registration of a resource; FIG. 19 is a view of a display device screen of a structural registration system during a user selection using a user input device from a second point on the display device during the registration of a resource; Petition 870250089457, dated 10 / 01 / 2025, page 20 / 94 15 / 61 FIG. 20 is a view of a display device screen of a structural registration system after a user selection using a first and second point user input device on the display device for registering a resource; FIG. 21 is a screen view of a structural registration system, similar to that shown in FIG. 20, but showing labels that define characteristics of a registered structure in association with a 3D model; FIG. 22 is a view of a display device screen from a structural registration system, showing multiple features that have been registered in association with a 3D model; Figures 23, 24, and 25 are 2D representations of a digital 3D model, with features registered as in Figure 22, in different poses as they would be shown on a display device; Figures 26, 27, and 28 are 2D representations of a digital 3D model, with features registered as in Figure 22, in additional different poses, as they would be shown on a display device; FIG. 29 is a 2D representation of the 3D digital model in FIG. 22, conceptually showing that the 3D features and coordinates can be exported to one or more electronic registration tables for further processing; FIG. 30 is a combined schematic and conceptual diagram of a structural data recording system, according to an example; FIG. 31 is a combined schematic and conceptual diagram of a structural data recording system, according to an example; FIG. 32 is a screen view of a display device for a structural registration system, showing a wireframe portion of a 2D representation of a 3D digital model of a Petition 870250089457, dated 10 / 01 / 2025, page 21 / 94 16 / 61 cylindrical drill core, as well as the actual physical drill core being a three-quarter cylinder, together forming a composite for display; FIG. 33 is a representation of the digital 3D model of FIG. 32 as it would be displayed on a screen, with a user using a user input device to identify a first provisional point on a first vector; FIG. 34 is a representation of the digital 3D model of FIG. 32 as it would be displayed on a screen, with a user using a user input device to identify a second provisional point on a second vector; FIG. 35A is a top view of a three-quarter borehole core sample, an outer envelope of a digital 3D model, and the first provisional point of FIG. 33; FIG. 35B is a top view of the three-quarter borehole core sample, the outer envelope of the digital 3D model, and the second provisional point of FIG. 34; FIG. 35C is a top view of the three-quarter borehole core sample, the outer envelope of the digital 3D model, the first and second provisional points of FIG. 34, and their respective vectors intersecting at a point corresponding to the outer surface of the three-quarter borehole core sample; FIG. 36A is a schematic and diagrammatic representation of a structural data recording system, based on an example; FIG. 36B is a view of a screen from a display device of the structural registration system of FIG. 36A after a user selection using a pen tool user input device from a 3D point to register a feature; FIG. 37A is a top plan view of the pen tool in FIG. 36B; Petition 870250089457, dated 10 / 01 / 2025, page 22 / 94 17 / 61 FIG. 37B is a front perspective view of the pen tool in FIG. 36B; FIG. 37C is a view of the distal end of the pen tool of FIG. 36B; FIG. 37D is a side elevation view of the pen tool in FIG. 36B; and FIG. 37E is a rear perspective view of the pen tool in FIG. 36B. DETAILED DESCRIPTION

[0042] The present application is directed to the recording of structural data using computer-implemented methods. FIG. 1 is a combined schematic and conceptual diagram of a structural data recording system 5, according to an example. In this example, the system 5 includes a digital video camera 14, a display device 12, and a user input device 11 – in this example, a computer keyboard. In the examples, the system 5 also includes another user input device which is a mouse (not shown in FIG. 1). The digital video camera 14, the display device 12, and the user input devices are integrated as part of the packaging of a laptop computer 10. The laptop computer 10 includes several components that would be known to a technician in the field of general-purpose computing, such as at least a processor and system memory, as will be described in more detail below.

[0043] However, in this example, at least one processor is additionally configured as a special-purpose computer for recording structure data in various ways, as will be described herein. In particular, and as will be described in more detail, at least one processor is in communication with the digital video camera 14, the display device 12, and any input devices, such as the user input device 11, and is Petition 870250089457, dated 10 / 01 / 2025, page 23 / 94 18 / 61 is configured to receive video frames captured by the digital video camera and, during the reception of the video frames, display the video frames on the display device 12. In addition, at least one processor is configured to process the video frames to detect at least one predetermined machine-readable code, such as code 30, which may have been captured in the region of interest 16 captured within the field of view of the digital video camera 14.At least one processor is also configured to, in the event that at least one predetermined machine-readable code 30 is detected, determine a pose (i.e., a position and orientation relative to, for example, a digital video camera 14) of at least one machine-readable code 30, and receive, via at least one user input device, such as user input device 11, one or more user selections corresponding to a respective pixel on the display device 12. Furthermore, at least one processor is configured to, based at least on the pose of at least one machine-readable code 30 at the time each of the one or more user selections is received, calculate a respective 3D coordinate of a corresponding point within a digital 3D model of an object. At least one processor is also configured to augment the digital 3D model with a respective feature in the 3D coordinate.

[0044] System 5 is provided to enable a user to visually record a representation of a digital 3D model of an object that is displayed on the display device 12 with a physical object in the region of interest that is captured by the digital video camera 14 and displayed together with the representation of the digital 3D model. As will be explained, the digital 3D model is not anchored to any object in the region of interest 16, except for at least one predetermined machine-readable code 30. If code 30 is not detected by System 5 in a video frame, no representation of the digital 3D model will be displayed. Petition 870250089457, dated 10 / 01 / 2025, page 24 / 94 19 / 61 even if the object 50 to which the digital 3D model should correspond is within the region of interest 16. Furthermore, even if the object 50 to which the digital 3D model should correspond is not within the region of interest 16, a representation of the digital 3D model can be displayed, provided that the predetermined machine-readable code 30 can be detected within the video frames. Anchoring the digital 3D model to the predetermined code 30 in this way provides a significant facilitation of video frame processing by system 5, because system 5 is only required to detect the predetermined machine-readable code 30 and determine its pose.

[0045] Also shown in FIG. 1 is an enlarged representation of what can be visualized on the display screen 12, depending on what is found within the region of interest 16 and the pose of the machine-readable code 30. In FIG. 1, as both an object 50 (in this example, a drill core sample) and the code 30 are captured by the digital video camera 14, the system 5 is able to process the code 30 to determine its pose and, based on the pose of the code 30 and additionally based on a scale of the code 30 as visualized by the digital video camera 14, define the pose / scale of a 2D representation 26 of the digital 3D model for use in overlaying the 2D representation 26 onto the content 22 captured by the digital video camera 14 (shown in isolation in 20) to produce a composite 13 for display on the display device 12.It will be appreciated that, in some implementations, elements 20 and 24 may represent the contents of two different frame buffers that are combined to produce a single video frame displayed on the display device 12.

[0046] The predetermined machine-readable code 30 is shown positioned relative to object 50 - a cylindrical object in this example - so as to align the 2D representation. Petition 870250089457, dated 10 / 01 / 2025, page 25 / 94 20 / 61 of the digital 3D model – also a cylinder of generally equal radius – with the object 50 as viewed through the display device 12. A user is then able to control the pose of the 2D representation 26 by controlling the pose of code 30 relative to the digital video camera 14. With the user having visually aligned the 2D representation 26 with the object 50 by physically aligning code 30 with the object 50, the user can insert pixel selections on the display device 12 at locations corresponding, in the user's view, to the actual points on the object 50.This can be done using an input device, such as the user input device 11, by viewing the region of interest 16 through the display device 12 – and having them processed, as will be described, as 3D coordinates of points in the digital 3D model itself, so that the 3D coordinates of the points can augment the digital 3D model to provide information in the digital 3D model corresponding to the observations that the user makes about the features of the object 50. In this way, data about the observed structures of the object 50 can be collected by a user in an intuitive and accurate way as part of the digital 3D model and then, if desired, subsequently provided in the form of a structural record table, spreadsheet, or other useful data storage for further analysis or other processes.

[0047] It is important to emphasize that technicians, engineers, and analysts present at a drilling site will likely need and probably be equipped with general-purpose computers, similarly equipped to computer 10. To provide these personnel with the capabilities described above and herein, this general-purpose computer may be provided as a special-purpose computer by downloading and installing software to configure at least one processing device of the general-purpose computer to have the unique capabilities and features described herein. These personnel may receive Petition 870250089457, dated 10 / 01 / 2025, page 26 / 94 21 / 61 one or more machine-readable codes 30, which may be displayed on a card, handheld tool, affixed in some manner to the object 50, if desired, or otherwise made available for physical placement in specific predefined ways (as will be described) with respect to an object 50, such as a drill core sample. In this way, no additional specialized electrical or electronic equipment, or other tools or equipment besides the software to provision at least one process and the machine-readable code(s) 30, need to be transported to a location to provide the useful functionality described herein. In this way, the system 5 can be easily put into operation.

[0048] When object 50 is a drill core sample or other rock sample, a user can visually study object 50, including its intrinsic attributes, and use the user input device to mark 3D coordinates on the digital 3D model of the core sample, for aspects of planes, lines, fold asymmetry, vergence and facing, along with fault kinematics to indicate in which direction a fault has moved. With the digital 3D model having been completed so as to complete a “virtual core,” it can be stored along with other virtual cores in a virtual core library and retrieved for further manipulation and analysis from any network-connected location, such as a 1000 computer station or a remote device accessible to a geologist, auditor, investor, etc.The digital 3D model can also be processed to export resource data to tables, spreadsheets, or other formats suitable for use by geologists, analysts, investors, and other stakeholders.

[0049] It is understood that other rock samples that are not considered elongated core samples, such as hand-sized pieces of rock not extracted by a drill, Petition 870250089457, dated 10 / 01 / 2025, page 27 / 94 22 / 61 witnesses can be placed in a region of interest and consequently captured by a digital video camera and aligned with a corresponding digital 3D model with an envelope shaped not of a cylinder, but of some other object. Variations are possible.

[0050] FIG. 2 is a flowchart describing a computer-implemented structural data recording method 90, according to an example. During method 90, video frames captured by a digital video camera are received (step 100) and, during the reception of the video frames, the video frames are displayed on a display device (step 200). The video frames are processed to detect at least one predetermined machine-readable code (step 300). If in step 300 no predetermined machine-readable code is detected in the video frame, method 90 proceeds to return to step 100 to receive and display another video frame on the display device. Conversely, if a predetermined machine-readable code or codes are detected in step 300, a pose of the machine-readable code(s) is then determined (step 400).Furthermore, it is determined whether one or more user selections corresponding to a respective pixel on the display device are received (step 500). If so, based on the pose, a 3D coordinate in a digital 3D model of an object is calculated (step 600) and the digital 3D model is augmented with a feature at the 3D coordinate (step 700). If, at step 600, no user selection corresponding to a respective pixel has been received, the method skips directly to step 800. At step 800, if the digital 3D model of the object is also displayed, a 2D representation of the 3D model (augmented as described above or not) is displayed along with the video frame (step 900). If, at step 800, the digital 3D model is not displayed, method 90 proceeds to return to... Petition 870250089457, dated 10 / 01 / 2025, page 28 / 94 Step 100 (23 / 61) to receive and display another video frame on the display device.

[0051] In this description, it is considered important to perform a calibration procedure before using the structural registration system, to ensure that there is a camera model for the digital video camera. In many implementations, the software used to provision end-user computer processors to conduct the structural registration steps described here will be installed on different types of computers produced by different manufacturers at different times, with different configurations. Even, for example, a digital video camera integrated into one Dell laptop model and a digital video camera integrated into another Dell laptop model, or another from the same Dell laptop model produced in a different year, may have different lenses and other imaging components. These differences may manifest as different positions, colors, and resolutions of the same region of interest.Thus, in this description, an end user may be called upon to conduct a simple calibration procedure to provide the system with information about the intrinsic parameters of the digital video camera that will be used as part of the structural recording system. It will be appreciated that, when a purpose-built system can be pre-configured before delivery, such calibration can be done at the factory. However, when a user is “bringing their own device to be provisioned as described herein for structural recording,” the user must conduct a calibration procedure to let the software know how the user’s digital video camera sees a scene.

[0052] Some intrinsic parameters include the focal length of digital cameras, the image sensor format, the principal point, and the lens distortion coefficients. Intrinsic parameters can be encoded in one or more Petition 870250089457, dated 10 / 01 / 2025, page 29 / 94 24 / 61 matrices usable by the processor to transform received pixel values, thus ensuring that the digital 3D model of the object is created and augmented according to user expectations. It will also be appreciated that variations between different user computers that may be used to conduct the structural recording of a series of witness samples at a given witness recording location need to be eliminated so that data recorded using different user computers, each potentially with very different digital video cameras, are normalized and therefore can be reliably interrelated as general location data.

[0053] In this example, the pose includes a position and orientation, and is used in conjunction with a scale of at least one predetermined machine-readable code. These aspects of the pose can be calculated by identifying the pixel boundaries of the code and certain points within the code, and processing these identified pixels to determine a transformation that represents the position and orientation relative to the calibrated digital video camera. It will be appreciated that several methods for determining the pose of a code in a digital video frame are available and can be used for this purpose. Several (different) predetermined machine-readable codes can be detected in a given video frame or series of video frames.This can occur in an implementation of a structural logging system according to the present description that requires / supports the use of a manual tool or other implement with multiple code display surfaces positioned in a fixed relationship to each other, with more than one of the code display surfaces being within the field of view of the digital video camera at the same time. Such an implementation can be useful to ensure that one of the various codes always, or almost always, has a chance to be "seen". Petition 870250089457, dated 10 / 01 / 2025, page 30 / 94 25 / 61 by the digital video camera, provided the implementation is within its field of view. This way, the user has great flexibility to manipulate the implementation in the manner they deem most appropriate to identify object features and ensure these features are recorded to enhance the digital 3D model of the object. A user can even hide some or all of the codes that could be seen, but other unhidden codes may still be available to be detected.

[0054] In the case of an implementation presenting multiple codes, different detection implementations can be used. For example, several codes can be detected sequentially or in parallel, and the various detected codes can be used to disambiguate each other's poses, thus increasing the system's confidence compared to determining the pose of only one of the codes. Alternatively, once the first of the codes is detected, the processor can simply use that code to determine the pose and stop searching for or determining the pose of any other codes that may be present in the video frame being processed. Variations are possible.

[0055] In one example, the object itself is a rock sample from a drill core sample. These drill core samples are usually cylindrical in shape due to the way they are extracted from the ground. The radius of a given drill core sample depends on the parameters of the machine used to extract the core sample from the ground. Different predetermined machine-readable codes can be provided for different cylinder radii, so that after detecting a specific machine-readable code in a digital video frame, the structural recording system may be able to associate that code with a specific radius. In such a situation, a user can Petition 870250089457, dated 10 / 01 / 2025, page 31 / 94 26 / 61 simply selecting an implementation that has the appropriate codes for the radius of the core sample being studied. However, it may be more useful to provide an implementation that is capable of interacting with core samples of different radii, and require the system user to provide the relevant radius to one or more processors, for example, via a drop-down list presented in a computer user interface and / or by typing a value into a data box in the user interface. The user can also provide information about the core sample, such as its length, an identifier, and other general information about the core sample that can be associated with its corresponding digital 3D model that the user is creating and enlarging.User-input of the radius allows the system to define parameters for the digital 3D model and present an appropriate 2D representation of the digital 3D model on the user's display device, so that the user can visually confirm that the correct radius of the digital 3D model for the core sample being studied is selected.

[0056] The system generates a 2D visual representation of the digital 3D model based on the pose of the machine-readable code(s) so that the 2D visual representation can be displayed on the screen along with the code. Provided the user has positioned the code(s) in the correct predetermined position (such as a reference line or top line of the witness sample) relative to the witness sample, the 2D visual representation should be visible to the user via the display device to properly align with the witness sample also being visible to the display device. The user can choose to display the 2D representation, but can choose to hide the 2D representation or portions of it for various reasons. This can be switched ON / OFF by Petition 870250089457, dated 10 / 01 / 2025, page 32 / 94 27 / 61 user via user interface device 11, for example.

[0057] The 2D visual representation can have several different portions that can be ON / OFF, if desired. For example, the 2D visual representation might include a wireframe portion representing an envelope of the digital 3D model. In the case of a cylinder, the wireframe portion might represent the outer limits of the cylinder of the appropriate radius. The 2D visual representation might include a feature portion representing one or more features of the digital 3D model. Depending on the implementation and the user's wishes, each of these can be ON / OFF. Different types of features, such as line features, can be ON, while other types of features, such as plane features, can be OFF. Individual features – a specific line – can be ON while other features of the same type – other lines – can be OFF.Resource labels can be provided, allowing a user to label 3D coordinates of points, and / or label the features of which those points are a part. These resource labels can also be turned ON / OFF depending on the implementation and the user's wishes. Variations are possible.

[0058] A given 3D coordinate resulting from a user selection can be associated with at least one other 3D coordinate resulting from another user selection, thus forming features such as lines and planes. The digital 3D model can be extended with the features themselves, as well as with the individual 3D coordinates that define the features, for example, allowing a user to name or characterize the feature.

[0059] In examples, a given digital 3D model may have an envelope that represents an ideal or “original” condition of the object, where the object being studied at a given moment does not exactly match the envelope. For example, a digital 3D model for a witness sample of Petition 870250089457, dated 10 / 01 / 2025, page 33 / 94 28 / 61 drilling may have a cylindrical envelope of a specific radius, while the drill core sample itself may be half a cylinder or a quarter cylinder, or it may have an even more irregular shape. In order for a user to specify 3D coordinates as digital markers at positions in the digital 3D model that correspond to the outer surface of the real object, but not to the envelope of the 3D model, the processor is configured to allow a user to specify two vectors for the desired 3D coordinate and to resolve the 3D coordinate as the intersection point of the two vectors, or the closest point in the 3D coordinate system between the two vectors if, due to user error or other factors, they are not actually determined to intersect. This allows the user to specify a point on the surface of the real object as a point within the envelope of the digital 3D model.The processor can display this internal point, and the user can review the positioning and determine if it is satisfactory or needs adjustment.

[0060] To accomplish this, in one example, the processor is configured to receive, via at least one user input device, first and second user selections corresponding to the respective pixels on the display device. The processor is also configured to, based on at least the pose of at least one machine-readable code at the time the first user selection is received, calculate a corresponding 3D position of a first provisional point within the digital 3D model. The processor is also configured to, based on at least the pose of at least one machine-readable code at the time the second user selection is received, calculate a corresponding 3D position of a second provisional point within the digital 3D model. The processor is also configured to generate a first vector passing through a 3D position of the video camera. Petition 870250089457, dated 10 / 01 / 2025, page 34 / 94 29 / 61 digital and the first provisional point. The processor is also configured to generate a second vector passing through a 3D position of the digital video camera and the second provisional point. The processor is also configured to calculate a respective 3D intersection position of the first vector and the second vector. The processor is also configured to augment the digital 3D model with a respective feature at the 3D intersection position.

[0061] In examples, the 3D intersection point is a 3D point that is common to the first vector and the second vector. However, if the first vector and the second vector are not considered mathematically to be intersecting, the system can compensate by calculating the 3D intersection point as a 3D point along the shortest line between the first vector and the second vector. The 3D intersection point is considered to be any point along this line, depending on the length of the line and other factors. However, it is preferable that the 3D intersection point be calculated as the 3D point at the midpoint of the shortest line between the first vector and the second vector.

[0062] In examples, machine-readable codes can be positioned at different predetermined positions along the length of the object, such as along the length of a cylindrical borehole core sample. As long as the user enters the corresponding position where the machine-readable code is currently positioned, the user can record features along various core sample regions in the same digital 3D model. Thus, if a given core sample is two (2) feet long, a user can start by positioning the machine-readable code near the bottom of the core sample (at 0.0 feet, for example) to align the bottom of the digital 3D model with the bottom of the core sample, so as to capture features from the lower 0.5-foot extent of the core. After having identified and recorded features in this lower extent of Petition 870250089457, dated 10 / 01 / 2025, page 35 / 94 30 / 61 At 0.5 feet, the user can slide the machine-readable code upwards to be positioned at the 0.5-foot mark, informing the system of the adjusted position to allow recording of features in the 0.5-foot to 1.0-foot range. This allows a user to record features for a core sample that is perhaps larger than can reasonably be seen within the field of view of the digital video camera, recording features for sub-portions sequentially.

[0063] Various user input devices can be used, such as a computer mouse, a computer keyboard, a touch-sensitive arrangement associated with the display device itself, or other user input devices. One contemplated user input device is a pen-based pointer tool with its own machine-readable code, visible by the digital video camera, as described in more detail here. With such a pointer tool, a user can simply touch features on the actual witness sample and have the position of the pointer tool's machine-readable code determined in a manner similar to that described here for the other machine-readable codes. Such a pointer tool might be an electronic device with a button that allows the user to send a signal when they want the pointer position to be recorded as a point.Alternatively, a pointer can simply be non-electronic, equipped with a machine-readable code so that the user, via another user input device, can send a signal when they want the pointer's position to be recorded as a point. In one example, it might be useful to equip the processor to detect that the pointer's machine-readable code has remained stationary for a predetermined period of time relative to the digital 3D model, in order to automatically record its stationary position as a selected point. Variations are possible. Petition 870250089457, dated 10 / 01 / 2025, page 36 / 94 31 / 61

[0064] Other user input methods may include eye-tracking systems that track a user's gaze and calculate gaze vectors that can, in turn, be calculated to intersect the digital 3D model at a respective point. A user can therefore simply look at one end of a feature in a witness sample (or other object whose structural data is being recorded) to identify that end as a 3D coordinate and then record it as part of the digital 3D model.

[0065] It should be noted that method 90 has been provided for ease of understanding, and that certain steps of method 90 can be performed in parallel. For example, it is contemplated in this description that a specific thread of a processing device, graphics processor, or similar may receive each video frame and, perhaps with some processing, direct each video frame to frame buffers for sequential display on the display device. Another processing thread may, in parallel, copy each video frame to a separate area of ​​graphics or system memory to be processed in parallel, for example, to process the frame copy to look for one or more machine-readable codes and conduct further processing on the frame copy as described above.Similarly, the receipt of any user selections of pixels (e.g., using a mouse) at this time can be detected and processed to augment the digital 3D model, once it is determined that one or more machine-readable codes have been detected. It will be appreciated that the digital 3D model can be stored in memory and processed by a different thread to generate a 2D representation of the digital 3D model that can be placed in another frame buffer to combine with / overlay the frame buffer containing the video frame to be displayed, thus displaying the 3D model together with the video frame (i.e., with the representation). Petition 870250089457, dated 10 / 01 / 2025, page 37 / 94 32 / 61 2D being an overlay that replaces corresponding pixels in the video frame with pixels from the 2D representation) if the user has decided to display the 3D model or only parts of it. The user may choose not to display the digital 3D model (i.e., a 2D representation of the digital 3D model), or may choose to display only portions of the digital 3D model. For example, a user may wish to display a wireframe portion of the digital 3D model, effectively displaying an envelope of the object represented by the digital 3D model. A user may wish not to display the wireframe portion and only display a feature portion, i.e., features of the 3D model that represent structures such as lines, planes, or their constituent points. A user may wish to display both or neither. Other portions of a 3D model may be provided and may or may not be displayed at the user's discretion.These other portions may include labels for features, labels for 3D feature coordinates, labels for the object, or other types of labels. Each of these labels may include label identifiers and / or dimensions or dimensional positions, angles, and the like, calculated after the 3D coordinates have been selected by a user.

[0066] A user, perhaps the same one who provided one or more user selections to identify 3D coordinates of points, or perhaps a different user, can augment a digital 3D model in other ways. For example, a user can retrieve a digital 3D model from a digital library and modify features of the 3D model that were defined by the user or another user. This can be done by selecting a feature that is already part of the digital 3D model, using a user input device, such as user input device 11, and modifying the feature and / or one or more 3D coordinates associated with the feature. For example, a user might want to increase the accuracy of a feature's representation, might want to label a feature in a different way, might want Petition 870250089457, dated 10 / 01 / 2025, page 38 / 94 33 / 61 To add new features to the digital 3D model, you may want to modify the 3D coordinates that define the feature, and so on. Furthermore, if the processor has been configured with a capability since the creation and expansion of a specific digital 3D model that was not available when the digital 3D model was first created and stored by a user, that user or another user may want to retrieve the digital 3D model and make use of that capability to further expand the digital 3D model.

[0067] FIG. 3 is a schematic diagram showing a hardware architecture of a computing system 1000. The computing system 1000 is suitable as a hardware platform for computer 5 or for another type of computing device configured as described herein to perform structural data recording, including a device such as a smartphone with a video capture device. In this description, the term digital image or frame may be used interchangeably to refer to the digital image or frame captured from the video capture device, as well as to a data structure representation or copy that may be stored and that contains numbers representing pixels of the captured digital frame or image.

[0068] A specific computing system 1000 can be specially configured with software applications and hardware components to enable the capture, editing, processing and display of media, such as digital video captured by a digital video camera, as well as encoding, decoding and / or transcoding the digital video according to various selected parameters, in order to compress, decompress, view and / or manipulate the digital media as desired or necessary for processing or storage.

[0069] The 1000 computing system includes a 1010 bus or other communication mechanism to communicate Petition 870250089457, dated 10 / 01 / 2025, page 39 / 94 34 / 61 information, and a processor 1018 coupled to bus 1010 to process the information. The computing system 1000 also includes a main memory 1004, such as random access memory (RAM) or another dynamic storage device (e.g., dynamic RAM (DRAM), static RAM (SRAM), and synchronous DRAM (SDRAM)), coupled to bus 1010 to store information and instructions to be executed by processor 1018. In addition, main memory 1004 can be used to store temporary variables or other intermediate information during the execution of instructions by processor 1018. Processor 1018 may include memory structures, such as registers, to store temporary variables or other intermediate information during the execution of instructions.The computing system 1000 additionally includes a read-only memory (ROM) 1006 or other static storage device (e.g., programmable ROM (PROM), erasable PROM (EPROM), and electrically erasable PROM (EEPROM)) coupled to the bus 1010 to store static information and instructions for the processor 1018.

[0070] The computing system 1000 also includes a disk controller 1008 coupled to the bus 1010 to control one or more storage devices for storing information and instructions, such as a magnetic hard disk 1022 and / or a solid-state drive (SSD) and / or a flash drive, and a removable media drive 1024 (e.g., solid-state drive, such as a USB (Universal Serial Bus) key or external hard disk, floppy disk drive, read-only compact disc drive, read / write compact disc drive, compact disc jukebox, tape drive, and removable magneto-optical drive). Storage devices can be added to the computing system 1000 using an appropriate device interface (e.g., Serial ATA (SATA), component interconnect). Petition 870250089457, dated 10 / 01 / 2025, page 40 / 94 35 / 61 peripherals (PCI), small computing system interface (SCSI), integrated device electronics (IDE), enhanced IDE (E-IDE), direct memory access (DMA), ultra-DMA, as well as cloud-based device interfaces).

[0071] The 1000 computing system may also include special-purpose logic devices (e.g., application-specific integrated circuits (ASICs)) or configurable logic devices (e.g., simple programmable logic devices (SPLDs), complex programmable logic devices (CPLDs), and field-programmable gate arrays (FPGAs)).

[0072] The computing system 1000 also includes a display controller 1002 coupled to the bus 1010 to control a display 1012, such as an LED (light-emitting diode) screen, an organic LED (OLED) screen, a liquid crystal display (LCD) screen, or some other device suitable for displaying information to a computer user. In examples, the display controller 1002 incorporates a dedicated graphics processing unit (GPU) to primarily handle graphics-intensive operations or other parallel operations. Such operations may include rendering by applying texturing, shading, and the like to wireframe objects, including polygons such as spheres and cubes, thus relieving the processor 1018 from the need to perform such intensive operations to the detriment of the overall performance of the computing system 1000.The GPU may incorporate dedicated graphics memory to store data generated during its operations, and includes a frame buffer RAM to store processing results such as bitmaps to be used to activate display pixels 1012. The GPU may be instructed to perform various operations by applications running on the computing system 1000 using a programming interface. Petition 870250089457, dated 10 / 01 / 2025, page 41 / 94 36 / 61 graphics-driven applications (APIs), such as OpenGL, DirectX 10, and similar.

[0073] The computing system 1000 includes user input devices, such as a keyboard 1014 and a pointing device 1016, to interact with a computer user and provide information to the processor 1018. The pointing device 1016, for example, may be a mouse, a trackball, or a pointing stick to communicate direction information and command selections to the processor 1018 and to control cursor movement on the display 1012. The computing system 1000 may employ a display device that is coupled to an input device, such as a touch screen.Other input devices may be employed, such as those that provide data to the computing system via wires or wirelessly, such as gesture detectors, including infrared detectors, gyroscopes, accelerometers, other types of input devices such as radar / sonar, image generation devices such as front and / or rear digital video capture devices and / or still images such as cameras, infrared sensors, ultrasonic sensors, LiDAR (Light Raising and Detecting) sensors, and other types of sensors.

[0074] A digital still image and / or digital video device may be integrated into the case of a laptop or desktop computer or other device, or it may be a separate device, such as a webcam, connected to such computer by means of a data and / or power cable via a USB port or other data / power port, and / or which may wirelessly interact with such computer, to provide the computer with digital video and images captured by the image-generating device.

[0075] The computing system 1000 performs a portion or all of the processing steps discussed here in response to the processor 1018 and / or GPU of the display controller 1002 executing one or more sequences of one or more instructions. Petition 870250089457, dated 10 / 01 / 2025, page 42 / 94 37 / 61 contained in a memory, such as main memory 1004. Such instructions can be read into main memory 1004 from another processor-readable medium, such as a hard disk 1022 or a removable media drive 1024. One or more processors in a multiprocessing arrangement, such as a computing system 1000 having a central processing unit and one or more graphics processing units, can also be employed to execute instruction sequences contained in main memory 1004 or in the dedicated graphics memory of the GPU. In alternative examples, hard-wired circuits can be used instead of or in combination with software instructions.

[0076] As stated above, the computing system 1000 includes at least one processor-readable medium or memory for storing programmed instructions in accordance with the teachings of the disclosure and for containing data structures, tables, records, or other data described herein. Examples of processor-readable media are solid-state drives (SSDs), flash drives, compact discs, hard disks, floppy disks, tapes, magneto-optical disks, PROMs (EPROM, EEPROM, flash EPROM), DRAM, SRAM, SDRAM, or any other magnetic medium, compact discs (e.g., CD-ROM) or any other optical medium, punched cards, paper tape or other physical medium with hole patterns, a carrier wave (described below), or any other medium from which a computer can read.

[0077] Stored on any one or a combination of processor-readable media is the software for controlling the computing system 1000, for activating one or more devices to perform the functions discussed herein, and for enabling the computing system 1000 to interact with a human user (e.g., to control the mixing of live audio, video, and other media streams). This software may include, but is not limited to, device drivers, operating systems, development tools, and Petition 870250089457, dated 10 / 01 / 2025, page 43 / 94 38 / 61 application software. This processor-readable media additionally includes the computer program product for performing all or a portion (if the processing is distributed) of the processing discussed herein.

[0078] The computer code devices discussed here can be any interpretable or executable code mechanism, including but not limited to scripts, interpretable programs, dynamic link libraries (DLLs), object-oriented programming (OOP) modules such as classes, and complete executable programs. Furthermore, parts of the processing can be distributed for better performance, reliability, and / or cost.

[0079] For example, the OpenCV (Open Source Computer Vision) and PCL (Point Cloud Library) libraries can be used for image analysis and point cloud generation. A visualization toolkit such as VTK (Visualization Toolkit), along with QT Enterprise, can be used to process the digital 3D model.

[0080] In addition, parts of the processing can be distributed for better performance, reliability and / or cost.

[0081] A processor-readable medium that provides instructions to a processor 1018 can take many forms, including, but not limited to, non-volatile media, volatile media, and transmission media. Non-volatile media include, for example, optical, magnetic, and magneto-optical disks, such as the hard disk drive 1022 or the removable media drive 1024. Volatile media includes dynamic memory, such as main memory 1004. Transmission media include coaxial cables, copper wires, and optical fibers, including the wires that make up the bus 1010. Transmission media can also take the form of acoustic or light waves, such as those generated during data communications by radio waves and infrared using various communication protocols. Petition 870250089457, dated 10 / 01 / 2025, page 44 / 94 39 / 61

[0082] Various forms of processor-readable media may be involved in the execution of one or more sequences of one or more instructions for processor 1018. For example, instructions may initially be ported to a magnetic disk from a remote computer. The remote computer may port the instructions to implement all or part of this disclosure remotely into dynamic memory and send the instructions via a wired or wireless connection using a modem. A local modem for computing system 1000 may receive the data via wired or wireless Ethernet via Wi-Fi and place the data on bus 1010. Bus 1010 ports the data to main memory 1004, from which processor 1018 retrieves and executes the instructions. Instructions received by main memory 1004 may optionally be stored in storage device 1022 or 1024 before or after execution by processor 1018.

[0083] The 1000 computing system also includes a 1020 communication interface coupled to the 1010 bus. The 1020 communication interface provides bidirectional data communication coupling to a network link that is connected to, for example, a 1500 local area network (LAN) or another 2000 communication network, such as the Internet. For example, the 1020 communication interface could be a network interface card for connecting to any packet-switched LAN. As another example, the 1020 communication interface could be an asymmetric digital subscriber line (ADSL) card, an integrated services digital network (ISDN) card, or a modem to provide a data communication connection to a corresponding type of communication line. Wireless links can also be implemented.In any such implementation, the 1020 communication interface sends and receives electrical, electromagnetic, or optical signals that carry digital data streams representing various types of information. Petition 870250089457, dated 10 / 01 / 2025, page 45 / 94 40 / 61

[0084] The network link typically provides data communication through one or more networks to other data devices, including, without limitation, enabling the flow of electronic information. For example, the network link may provide a connection to another computer through a local area network 1500 (e.g., a LAN) or through equipment operated by a service provider, which provides communication services through a communications network 2000. The local area network 1500 and the communications network 2000 use, for example, electrical, electromagnetic, or optical signals that carry digital data streams and the associated physical layer (e.g., CAT 5 cable, coaxial cable, fiber optics, etc.). The signals across the various networks and the signals on the network link and across the communication interface 1020, which carry the digital data to and from the computing system 1000, may be implemented in baseband signals or carrier wave-based signals.Baseband signals transmit digital data as unmodulated electrical pulses that describe a stream of digital data bits, where the term bits should be interpreted broadly to mean symbol, where each symbol transmits at least one or more bits of information. Digital data can also be used to modulate a carrier wave, such as with amplitude, phase, and / or frequency signals that are propagated through a conductive medium or transmitted as electromagnetic waves through a propagation medium. Thus, digital data can be sent as unmodulated baseband data through a wired communication channel and / or sent within a predetermined frequency band, different from the baseband, by modulating a carrier wave. The 1000 computing system can transmit and receive data, including program code, through the 1500 and 2000 network(s), the network link, and the 1020 communication interface.In addition, the network link can provide one. Petition 870250089457, dated 10 / 01 / 2025, page 46 / 94 41 / 61 connection via a LAN 1500 to a mobile device 1300, such as a laptop (PDA) or a mobile phone.

[0085] Alternative computer system configurations may be used to implement the systems and processes described herein.

[0086] The electronic data storage implemented in the database described herein may be one or more tables, an array, a database, a structured data file, an XML file, or some other functional data storage such as a 1022 hard disk or 1024 removable media.

[0087] FIG. 4 is a perspective view of a checkerboard pattern that may be useful for calibrating the digital video camera before using the system described herein. Methods for calibrating digital video cameras using checkerboard patterns to determine intrinsic parameters are known.

[0088] FIG. 5 is a perspective view of a hand tool 40 for use in a structural data recording system for drill core samples, according to an example. In this example, the hand tool 40 has a handle 43 in a fixed relationship with a rigid body 41. In this example, the handle 43 and the rigid body are integral. The rigid body 41 defines a fixed relationship between an object receiving surface 42 and each of the multiple code display surfaces 44A, 44B, 44C, 44D, 44E, 44F, each displaying a respective machine-readable code 30A, 30B, 30C, 30D, 30E, 30F (referred to collectively here as machine-readable code 30). In this example, each of the machine-readable 30A-F codes can be affixed to a card or sticker which, in turn, is affixed to one of the 44A-F code display surfaces.In this example, the receiving surface of object 42 is dimensioned to interact with fully cylindrical or partially cylindrical drill core samples. Petition 870250089457, dated 10 / 01 / 2025, page 47 / 94 42 / 61 cylindrical of different radii. A line 46 along the handle 43 is provided as a window through the handle 43 so that the user can align line 46 with a reference line marked on a physical drill core sample to be studied. The hand tool 40 is, in this example, sized to be held by the user with the object receiving surface 42 against – and thus receiving – the drill core sample, over a selected extent along the length of the drill core sample, while the hand tool 40, and in particular at least one of the machine-readable codes 30A-F, is within the field of view of the digital camera 14.In this example, the code presentation surfaces 44A-F are each in a respective position along the outer surface of the rigid body 41, at an angle of approximately 90 degrees relative to the object receiving surface, defining an arched line (passing through region 46 in the figure) that can be aligned with a corresponding extension along the length of the drill core sample, in order to record the extent of the digital 3D model with a corresponding extent of the drill core sample itself.This positioning using line 46 and the arched line at the interface between the object receiving surface 42 and the code display surface 44, as well as the position / orientation of the machine-readable code 30 on the code display surface, allows the user to position the hand tool 40 in a way that allows the digital 3D model to match in pose with the actual drill core sample (through the pose of code 30) for accurate structural data recording.

[0089] FIG. 6A is a perspective view of a user holding a cylindrical core sample 50 and a hand tool 40 while the core sample 50 is against the object receiving surface 42. Through the Petition 870250089457, dated 10 / 01 / 2025, page 48 / 94 In the window shown in line 46, 43 / 61, the cylindrical witness sample 50 can be seen, thus allowing its correct positioning in relation to the hand tool 40. FIG. 6B is a view of the content displayed on the screen of the display device 12 (the user's hand is not shown in FIG. 6B so as not to clutter the figure) as captured by the digital video camera 14. Also shown is a 2D representation 60 of a digital 3D model generated by the processor based on the pose of the hand tool 40 in the video frames, as determined by the poses of the machine-readable codes 30A-F. It should be noted that the digital 3D model, and consequently its 2D representation, are only anchored to the machine-readable code 30, and the system did not need to perform any processing to become aware of the presence of a real cylindrical object in the camera's field of view.Because of this, the processing of each video frame can be simplified compared to other solutions, as the processing only needs to identify a machine-readable code, such as code 30, and calculate its pose, before then presenting the 2D representation 60 appropriately as a correctly positioned overlay. To take structural data recording seriously, the user only needs to ensure that the machine-readable code 30 is correctly positioned relative to the actual drill core sample while recording is being done.

[0090] FIG. 7 is another view of the hand tool 40 and 2D representation 60. In this figure also, the hand tool 40 is partially along the length of the drill core sample and, as system 5 has been informed of this, system 5 can present a 2D representation accordingly, extending similarly in relation to the hand tool 40, just as the cylindrical core sample 50 is extending in relation to the hand tool 40. Petition 870250089457, dated 10 / 01 / 2025, page 49 / 94 44 / 61

[0091] FIG. 8 is another view of the hand tool 40, which does not receive any witness sample and is therefore isolated. FIG. 9 is another view of the hand tool 40 and 2D representation 60. It should be noted that FIGS. 7 to 9 are intended to show the physical relationships between the code display surfaces 44A-F, the object receiving surface 42, and the handle 43 of the hand tool 40.

[0092] FIG. 10A is a front elevation view, FIG. 10B is a top plan view, FIG. 10C is a side elevation view, FIG. 10D is a front perspective view and FIG. 10E is a rear perspective view of the isolated hand tool 40 and indicating the display surfaces of code 44A-F as well as the machine-readable codes 30A-F positioned respectively on it.

[0093] FIGS. 11A-11F illustrate six (6) different machine-readable codes 30A-F that can be affixed to the respective code-receiving surfaces 44A-F of the hand tool 40. Having different codes on different surfaces provides an opportunity for at least one of the codes to be seen at all times (provided the hand tool 40 is within the field of view of the digital video camera 14), regardless of the orientation or position of the hand tool. That is, for example, a specific machine-readable code 30A on a first code-receiving surface 44A may, if the code-receiving surface 44A is turned away from the digital video camera 14, not be captured in video frames. However, another machine-readable code 30D on the code-receiving surface 44D will likely, due to the configuration of the hand tool 40, be visible and available for processing to determine the pose.Furthermore, in many positions of the 40 hand tool, multiple display surfaces of 44A-F code, and therefore multiple machine-readable 30A-F codes, may be present. Petition 870250089457, dated 10 / 01 / 2025, page 50 / 94 45 / 61 captured in a single video frame simultaneously, providing the opportunity for disambiguation or fault tolerance in case any of the machine-readable codes 30A-F are obscured by the user, temporarily fall out of the field of view, or for some other reason are not processable. It will be appreciated that the machine-readable codes 30A-F should be distinguishable from each other by the system as unique, unless there is some other feature of the hand tool that can be used by the system to disambiguate the codes. For example, the handle position 43 in conjunction with the machine-readable codes 30A-F can be used to disambiguate the hand tool pose 40.

[0094] FIG. 12 is a combined schematic and conceptual diagram of system 5 and object 50 (in this figure, a drill core sample), but lacking any machine-readable code 30 recognizable by system 5. That is, in a state where no machine-readable code 30 has been detected in a video frame captured by the digital video camera 14, system 5 will not present any 2D representation of a 3D model on the display device 12 in conjunction with the content captured in the video frames. FIG. 12 shows an enlarged representation of what can be visualized on the display screen 12, depending on what is found within the region of interest 16, in the absence of machine-readable code 30. In FIG.12, like object 50, but with no machine-readable code 30, is captured by digital video camera 14, system 5 provides nothing visible in terms of a representation 26 in element 24, so that composite 13 displayed on display device 12, as a combination of content 22 and content 24, appears to be only content 22.

[0095] FIG. 13 is a combined schematic and conceptual diagram of system 5, according to an example. Similar to FIG. 1, in a state where the machine-readable code 30 was Petition 870250089457, dated 10 / 01 / 2025, page 51 / 94 46 / 61 detected in a video frame captured by digital video camera 14, system 5 presents the 2D representation 26 of the 3D model on the display device 12 together with the content 22 captured in the video frame. In this figure, the 2D representation 26 is depicted as a wireframe cylinder. Because the machine-readable code 30 was physically aligned by a user correctly with respect to the object 50 – a drill core sample – the 2D representation 26 is seen as aligned with the drill core sample on the display device 12 when elements 20 and 24 are displayed together to produce the composite 13 for display on the display device 12.

[0096] FIG. 14 is a combined schematic and conceptual diagram of system 5, according to an example. In this state, machine-readable code 30 has been detected in a video frame captured by digital video camera 14. Therefore, system 5 presents a 2D representation 26 of the 3D model on the display device 14 together with the content 22 captured in the video frame. However, it will be observed that there is no actual physical sample of the drilling testimony being captured in the video frame. Despite this, since machine-readable code 30 has been captured in the video frame, the 2D representation 26 is depicted as a wireframe cylinder. This figure is provided to demonstrate that the 2D representation 26 is anchored to the machine-readable code 30, as captured in the video frame, and not to any other feature captured in the video frame.As explained above, by focusing pose detection and calculation on machine-readable codes and away from what can be much richer and more detailed content captured in a video frame, the system is able to process video frames very efficiently, resulting in low latency and low processing consumption compared to alternative approaches. Petition 870250089457, dated 10 / 01 / 2025, page 52 / 94 47 / 61

[0097] FIG. 15 is a combined schematic and conceptual diagram of system 5, according to an example. In this state, the machine-readable code 30 has been detected in a video frame captured by the digital video camera 14. Therefore, system 5 presents a 2D representation 26 of the 3D model on the display device 14 together with the content 22 captured in the video frame. In this figure, the 2D representation 26 is described as a wireframe cylinder, and both the machine-readable code 30 and the object 50 – a drill core sample – are together, but in a different pose than that shown in FIG. 13.Since the machine-readable code 30 was physically aligned correctly by a user with respect to a drill core sample, the 2D representation 2 6 is seen as aligned with the drill core sample on the display device 12 when elements 20 and 24 are displayed together to produce the composite 13 for display on the display device 12, even in different poses.

[0098] FIG. 16 is a combined schematic and conceptual diagram of system 5, according to an example. In this state, machine-readable code 30 has been detected in a video frame captured by digital video camera 14. Therefore, system 5 presents a 2D representation 26 of the 3D model on the display device 14 together with the content 22 captured in the video frame. In this figure, the 2D representation 26 is depicted as a wireframe cylinder, but the machine-readable code 30 and the object 50 – a drill core sample – are not being positioned by the user in the correct position relative to each other. In particular, the machine-readable code 30 is in a pose similar to that shown in FIG. 15, but the drill core sample is in a pose similar to that shown in FIG. 13. Because the machine-readable code 30 has not been physically aligned by a user Petition 870250089457, dated 10 / 01 / 2025, page 53 / 94 48 / 61 correctly in relation to the drill core sample, the 2D representation 26 is seen as misaligned with the drill core sample on display device 12. Because the machine-readable code 30 was not physically aligned correctly by a user in relation to a drill core sample, the 2D representation 26 is not seen as aligned with the drill core sample on display device 12 when elements 20 and 24 are displayed together to produce the compound 13 for display on display device 12.Furthermore, due to the misalignment, if a user attempts to register structural features in the displayed drill core sample using input device 11, such registered features will relate to the 3D model in a way that is not correlated with how the actual features relate to the physical drill core sample as a whole, thus creating invalid registration data for that drill core sample.

[0099] FIG. 17 is a combined schematic and conceptual diagram of system 5, according to an example. Similar to FIG. 13, system 5 is in a state where machine-readable code 30 has been detected in a video frame captured by the digital video camera 14. However, due to a user preference selection via the user interface 11, system 5 does not display the 2D representation 26 of the 3D model on the display device 12 along with the content 22 captured in the video frame. In this figure, the 2D representation 26 is shown in dashed lines only to show the reader of this descriptive report that the 3D model is aligned with the object 50, even though this portion of the wireframe is selected by the user at this time not to be displayed.However, since the machine-readable code 30 was physically aligned correctly by a user in relation to object 50—a sample of drilling testimony—then, in case a user... Petition 870250089457, dated 10 / 01 / 2025, page 54 / 94 49 / 61 attempt to register structural features using input device 11; such registered features will relate to the 3D model in a way that is in fact correlated with how the actual features relate to the physical drill core sample as a whole, thus creating valid registration data for that drill core sample. The user can choose to display the wireframe portion during the initial engagement of the hand tool with the drill core sample, but then disable it so that only the subsequently registered features are displayed, as will be described. Generally, the user can enable or disable the wireframe portion as desired.

[00100] FIG. 18 is a view of a screen of the display device 12 of system 5 during a user selection using a user input device of a first point 17A on the display device 12 during the registration of a feature. In this figure, it can be observed that the digital 3D model “aligns with the drill core sample, as shown in FIG. 17, even though the wireframe portion is not being displayed to the user at the moment (i.e., it is shown in the figure as a dashed line only for ease of understanding). The user can use their user input device, in this figure a mouse (not shown) with an on-screen pointer 15, to identify the first point 17A on the display device 12 which can subsequently be used, based on the calibration of camera 14, to define a 3D coordinate for a feature in the 3D model.

[00101] FIG. 19 is a view of a screen of display device 12 of system 5 during a user selection using a user input device from a second point 17B on display device 12 during the registration of a feature. In this figure, it can be observed that the digital 3D model “aligns with the drill core sample, as Petition 870250089457, dated 10 / 01 / 2025, page 55 / 94 50 / 61 shown in FIG. 17, even though the wireframe portion is not currently being displayed to the user (i.e., it is shown in the figure as a dashed line only for ease of understanding). The user can use their user input device, in this figure a mouse (not shown) with on-screen pointer 15, to identify the second point 17B on the display device 12 which can subsequently be used, based on camera calibration 14, to define a 3D coordinate for a feature in the 3D model. It can also be seen that the user, as explained in connection with the previous figures, physically rotated the drill core sample and the machine-readable code 30 together as a single unit in order to correspondingly rotate the 3D model so that the identification of the second point 17B elsewhere on the surface of the drill core sample can be used accurately to specify the correct 3D coordinate in the digital 3D model.

[00102] FIG. 20 is a view of a screen of display device 12 of system 5 after selection of the first point 17A and the second point 17B in FIGS. 18 and 19. These selected points 17A and 17B were used to calculate 3D coordinates and, in turn, the 3D coordinates were connected as different points along a single feature, in this case a line 17C through the drill core sample.

[00103] FIG. 21 is a screen view of the system, similar to FIG. 20, but showing labels that define line 17C (or structure, as used in the drill core log), including a Top of Structure TOSa angle (label 18A) of 352 degrees, a Base of Structure BOSa angle (label 18B) of 88 degrees, and a Top of Structure TOSh height (label 18C) of 3.83 centimeters (cm). It will be appreciated that 3D coordinates and features 17A, 17B, 17C defined by them can be represented as such in a Cartesian coordinate system structure, a coordinate system structure Petition 870250089457, dated 10 / 01 / 2025, page 56 / 94 51 / 61 cylindrical, or some other coordinate system structure. Each of these angles and heights can be automatically calculated based on the calibration of the digital video camera 14, a user-selected radius, and the extent of the machine-readable code 30 along the length of the drill core sample. Although such calculations can be conducted by the processor, the user can choose whether or not to display the labels 18 A, 18B, and 18C on the display device 12 during use.

[00104] FIG. 22 is a view of a screen of display device 12 of system 5, showing multiple features (a line 17C recorded using two 3D points 17A, 17B; another line 17D recorded using two respective 3D points; and a plane 17E recorded using at least three respective 3D points) having been recorded as described herein to augment the digital 3D model of the corresponding drill core sample.

[00105] FIGS. 23, 24 and 25 are 2D representations of the digital 3D model of FIG. 22 in different poses, as they would be shown on display device 12, showing that as the wireframe portion of the digital 3D model is repositioned as a result of a user repositioning the machine-readable code 30 relative to the camera 14, the individual features (17A-E) that are part of the digital 3D model are also repositioned appropriately, giving the user the correct impression that features 17A-E are anchored to the wireframe portion and confirmation that the features are correctly defined. That is, that they correctly correlate with the actual features of the physical drill core sample.

[00106] FIGS. 26, 27 and 28 are representations of the digital 3D model of FIG. 22 in different poses, as they would be shown on display device 12, again showing that, as Petition 870250089457, dated 10 / 01 / 2025, page 57 / 94 52 / 61 the wireframe portion of the digital 3D model is repositioned as a result of a user repositioning the machine-readable code 30 relative to the camera 14, the individual features (17A-E) that are part of the digital 3D model are also repositioned appropriately, giving the user the correct impression that features 17A-E are anchored to the wireframe portion and confirmation that the features are correctly defined. That is, that they correctly correlate with the actual features of the physical drill core sample.

[00107] FIG. 29 is a 2D representation of the 3D digital model of FIG. 22 conceptually showing that the coordinates and 3D features defined as described herein can be exported to one or more electronic log tables for further processing by processors for analysis, visualizations, and the like.

[00108] FIG. 30 is a combined schematic and conceptual diagram of system 5, according to an example. Similar to FIG. 13, in a state where a machine-readable code 30 has been detected in a video frame captured by the digital video camera 14, system 5 presents the 2D representation 26 of the 3D model on the display device 12 together with the content 22 captured in the video frame. In this figure, the 2D representation 26 is depicted as a wireframe cylinder. Because the machine-readable code 30 has been physically aligned by a user correctly with respect to the object 50 – a drill core sample – the 2D representation 26 is seen as aligned with the drill core sample on the display device 12 when elements 20 and 24 are displayed together to produce the composite 13 for display on the display device 12. In this diagram, in contrast to FIG.13, the machine-readable code 30 was moved “up” on the drill core sample and is aligned. Petition 870250089457, dated 10 / 01 / 2025, page 58 / 94 53 / 61 correctly with the drill core sample. This causes the 3D model, and indeed the 2D representation 26 of the 3D model, to be moved upwards along the drill core sample, as seen through the display device 12. A user can therefore record features of a different segment of the drill core sample. A user must provide input to the system 5, via the user input device 11, for example, to record that the machine-readable code 30 is being moved to a different position along the same drill core sample, so as not to inadvertently record features / structures of one segment as if they were features / structures of a different segment.

[00109] The systems described and illustrated here can be used with objects that do not fill the entire envelope of the digital 3D model being used for structural feature registration. FIG. 31 is a combined schematic and conceptual diagram system 5 according to an example. Similar to FIG. 1, in a state where machine-readable code 30 has been detected in a video frame captured by digital video camera 14, system 5 presents the 2D representation 26 of the 3D model on the display device 12 together with the content 22 captured in the video frame. In this figure, the 2D representation 26 is depicted as a wireframe cylinder.Since the machine-readable code 30 was physically aligned correctly by a user with respect to object 51 – a three-quarter borehole core sample – the 2D representation 26 is seen as aligned with the three-quarter borehole core sample on display device 12 when elements 20 and 24 are displayed together to produce the composite 13 for display on display device 12.

[00110] Since object 51 is a three-quarter borehole core sample, it is not a complete cylinder. It will Petition 870250089457, dated 10 / 01 / 2025, page 59 / 94 54 / 61 appreciated that a given drill core sample (complete cylinder) can be divided into quarters, halves, or other portions, so that the different divided portions of the drill core sample can be used for different analysis or testing purposes. Furthermore, a given drill core sample may break or crumble, so that at the time of analysis using a system such as the one described here, it is not a perfect cylinder. As a user may wish to identify 3D coordinates and features that appear on the exterior of an incomplete or imperfect cylinder, in one example the processor is configured to allow a user to define a single 3D coordinate by choosing two different points along two different vectors that the user judges will intersect at the 3D coordinate within the envelope of the digital 3D model, as will be described.

[00111] FIG. 32 is a view of the display device 12 screen of system 5, showing a portion of the wireframe of a 2D representation of a 3D digital model of a cylindrical drill core, as well as the actual physical drill core being a three-quarter cylinder, together forming a composite 13 as described herein.

[00112] FIG. 33 is a representation of the digital 3D model of FIG. 32 as it would be shown on the screen of display device 12, with a user using a user input device (in this example, a mouse with on-screen pointer 15) to identify a first provisional point 19A in a first vector V1. The 3D location of the first provisional point 19A and the 3D location of the digital video camera 14 define the first vector V1. FIG. 34 is a representation of the digital 3D model of FIG. 32 as it would be shown on the screen of display device 12, with a user having rotated the machine-readable code 30 (along with the drill core sample) and having used the user input device (the mouse having the pointer 15) Petition 870250089457, dated 10 / 01 / 2025, pp. 60 / 94 55 / 61 on the screen) to identify a second provisional point 19B on a second vector V2. The 3D location of the second provisional point 19B and the 3D location of the digital video camera 14 define the second vector V2. With the first and second vectors V1, V2 having been defined, the system can calculate a 3D coordinate of the intersection point of the first and second vectors V2 (or infer a 3D coordinate based on the nearest location between the first and second vectors V1, V2), thus establishing the 3D coordinate of a feature point 17F on the surface of the three-quarter borehole core sample that the user intended to record.

[00113] FIG. 35 A is a top view of the three-quarter borehole core sample (solid lines), the outer (circular) envelope of the digital 3D model (dashed lines), and the first provisional point 19A. FIG. 35B is a top view of the three-quarter borehole core sample (solid lines), the outer (circular) envelope of the digital 3D model (dashed lines), and the second provisional point 19B. FIG 35C is a top view of the three-quarter borehole core sample (solid lines), the outer envelope (circular) of the digital 3D model (dashed lines), first and second vectors V1, V2 (dotted lines), each extending from the camera through a respective first and second provisional points 19A, 19B, and the intersection point of the first and second vectors V1, V2 (also shown as an X) which will serve as the 3D coordinate of the feature point 17F that the user intended to mark for a feature.It would be appreciated if defining an intersection point for vectors V1, V2 could be done by putting system 5 into a mode for handling objects that do not fill the entire envelope of the 3D model (such as a three-quarter cylinder sample in a 3D model of a complete cylinder) in which it could recognize that points 19A, 19B are not. Petition 870250089457, dated 10 / 01 / 2025, pp. 61 / 94 56 / 61 intended to correspond one-to-one with actual feature points on the surface of the physical core sample and therefore added to the 3D model, but are intended, as set out above, to be provisional points that a recorder can be processed together with the 3D camera location 14 to define such a feature point 17F.

[00114] FIG. 36A is a schematic diagram of a structural data recording system 500, according to an example. System 500 is similar to system 5. In particular, in this example, system 500 includes a digital video camera 14, a display device 12, and a user input device 11 – in this example, a computer keyboard. System 500 also includes an additional user input device 25, which takes the form of a pointer to which a machine-readable code 26 is affixed (see FIG. 36B). Device 25 has a proximal end on which the machine-readable code 26 is affixed, and a distal end at the opposite end of its body. Device 25 can be held by a user in a manner similar to a pen. Although machine-readable code 26, along with machine-readable code 30, is within the field of view 16 of camera 14, its distal end can be touched at selected locations on object 50.As the distal end of device 25 is moved, due to its fixed position (3D location; orientation) relative to the machine-readable code 26 at its proximal end, the machine-readable code 26 is also moved. Generally, a single pose in the field of view 16 of the distal end of device 25 will correspond to a single pose in the field of view 16 of the proximal end of device 25. Therefore, in each digital video frame captured by camera 14 that is processed, the machine-readable code 26 can be detected and its pose determined. This pose can be transformed into a pose of the distal end of device 25 and therefore, in the... Petition 870250089457, dated 10 / 01 / 2025, pp. 62 / 94 57 / 61 point in 3D space relative to the 3D model in which the distal end resides in the frame. As explained here, a user can hold device 25 in a desired position and signal system 500 to register the frame(s) being captured while device 25 is held in that desired position. In turn, system 500 processes the frame(s) to determine a pose of the machine-readable code 25 and thus can transform that pose into the pose of the distal end device 25. The pose of the distal end of device 25 can be registered as a feature 17A. In FIG. 36B, feature 17A – a 3D point – was registered after positioning device 25 to position the distal end of device 25 against a desired point on object 50, and signaling system 500 to capture that point.In some examples, this signaling can be done using an actuator in the device itself 25 that causes the electronic components in the device 25 to send a wireless or wired capture signal to the processor 12. In other examples, this signaling can be done using a foot pedal or other actuator that can communicate wirelessly or wired with the computer 10.

[00115] In examples, the 500 system also includes another user input device which is a mouse (not shown in FIG. 36A). The digital video camera 14, the display device 12 and some user input devices are integrated as part of the packaging of a laptop computer 10. The laptop computer 10 includes several components that would be known to a technician in the field of general-purpose computing, such as at least a processor and system memory, as described herein.

[00116] As in other examples, in this example, at least one processor is additionally configured as a special-purpose computer for recording structure data in various ways, as described herein. In particular, the at Petition 870250089457, dated 10 / 01 / 2025, pp. 63 / 94 58 / 61 minus one processor is in communication with the digital video camera 14, the display device 12, and any input devices, such as the user input device 11 and the user input device 25, and is configured to receive video frames captured by the digital video camera and, during the reception of the video frames, display the video frames on the display device 12. Furthermore, at least one processor is configured to process the video frames to detect at least one predetermined machine-readable code, such as code 30 and / or code 26, which may have been captured in the region of interest 16 captured within the field of view of the digital video camera 14.At least one processor is also configured to, in the event that at least one predetermined machine-readable code 30 is detected, determine a pose (i.e., a position and orientation relative to, for example, a digital video camera 14) of at least one machine-readable code 30, and receive, by means of at least one user input device, such as user input device 11 or user input device 25 (detected by camera 14 and the processor using machine-readable code 26), one or more user selections corresponding to a respective pixel on the display device 12. Furthermore, at least one processor is configured to, based on at least the pose of at least one machine-readable code 30 at the time each of the one or more user selections is received, calculate a respective 3D coordinate of a corresponding point within a digital 3D model of an object.At least one processor is also configured to augment the digital 3D model with a corresponding feature in 3D coordinate.

[00117] System 500 is provided to enable a user to visually record a representation of a digital 3D model of an object that is displayed on the display device 12 with a physical object in the region of interest that is captured by Petition 870250089457, dated 10 / 01 / 2025, pp. 64 / 94 59 / 61 digital video camera 14 and displayed together with the representation of the digital 3D model. As explained, the digital 3D model is not anchored to any object in the region of interest 16, except for at least one predetermined machine-readable code 30. If the code 30 is not detected by the system 500 in a video frame, no representation of the digital 3D model will be displayed, even if the object 50 to which the digital 3D model should correspond is within the region of interest 16. Furthermore, even if the object 50 to which the digital 3D model should correspond is not within the region of interest 16, a representation of the digital 3D model can be displayed, provided that the predetermined machine-readable code 30 can be detected within the video frames.Anchoring the digital 3D model to the predetermined code 30 in this way provides a significant facilitation of video frame processing by the system 500, because the system 500 is only required to detect the predetermined machine-readable code 30 and, if present, the machine-readable code 26, and to determine a respective pose.

[00118] FIG. 37A is a top plan view of the user input device 25, showing the machine-readable code 26 at a proximal end and a conical point at a distal end opposite the proximal end for precisely contacting specific locations on an object to identify feature points and / or provisional points. FIG. 37B is a front perspective view of the user input device 25. FIG. 37C is a distal end view of the user input device 25, looking from the distal end towards the proximal end. FIG. 37D is a side elevation view of the user input device 25. FIG. 37E is a rear perspective view of the user input device 25. It will be appreciated if the digital video camera 14 sees, within the field of view 16, the device of Petition 870250089457, dated 10 / 01 / 2025, pp. 65 / 94 60 / 61 input 25 in the pose shown in FIGS. 37C, 37D and 37E, then the machine-readable code 26 will not be captured, or sufficiently captured, within the video frames to allow the 500 system to determine the pose of the machine-readable code 26. Therefore, the user may want to keep this in mind when orienting and positioning the device 25 during use. Alternatively, multiple unique machine-readable codes can be affixed to the device 25 to allow the device 25 to be positioned more flexibly, while still allowing the 500 system to capture digital video frames with one or more machine-readable codes affixed.

[00119] Although examples have been described, those skilled in the art will recognize that variations and modifications may be made without departing from the spirit, scope, and purpose of the invention, as defined by the appended claims.

[00120] For example, although in the examples described here the objects may have a cylindrical or partially cylindrical shape, or at least generically correspond to (or logically fit within) a cylindrical envelope, there are possible alternatives in which more generic structural data can be extracted from non-essential rock samples, such as outcrops, underground openings, and other non-essential rock samples. In this case, the machine-readable code may not necessarily be hosted on a handheld tool like the one described here, but could be a plate with a machine-readable code and an object receiving surface on which the non-essential object can be placed for recording.A plane with a known spatial orientation can be defined by the board, and a plane with the maximum slope line drawn by the user, providing selection points within that line to determine the coordinate system relationship between the plane and the hand tool, can be used. Alternative examples are possible. Petition 870250089457, dated 10 / 01 / 2025, pp. 66 / 94 61 / 61

[00121] Furthermore, although in the examples described here the manual tool presents multiple code display surfaces, each having at least one corresponding machine-readable code, implementations are contemplated in which an alternative manual tool presents only one code display surface having only one machine-readable code. Petition 870250089457, dated 10 / 01 / 2025, pp. 67 / 94

Claims

1 / 8 CLAIMS 1. A structural data recording system, characterized in that it comprises: a digital video camera; a display device; at least one user input device; and at least one processor communicating with at least the digital video camera and the display device, and configured to: receive video frames captured by the digital video camera; during the reception of the video frames: display the video frames on the display device; process the video frames to detect at least one predetermined machine-readable code; and in the event that at least one predetermined machine-readable code is detected: determine a pose of at least one machine-readable code; receive, using at least one user input device, one or more user selections corresponding to a respective pixel on the display device;Based on at least the pose of at least one machine-readable code at a time that each of one or more user selections is received, calculate a respective three-dimensional (3D) coordinate of a corresponding point within a digital 3D model of an object; and augment the digital 3D model with a respective feature in the 3D coordinate.

2. Structural data recording system, according to claim 1, characterized in that the calculation is additionally based on a scale of at least one predetermined machine-readable code. Petition 870250079062, dated 04 / 09 / 2025, p. 20 / 28 2 / 8 3. Structural data recording system, according to claim 1, characterized in that the digital 3D model is a digital 3D model of a cylinder having a length and a radius.

4. A structural data recording system, according to claim 3, characterized in that at least one processor is configured to receive from a user, using at least one user input device, at least one radius value.

5. Structural data registration system, according to claim 1, characterized in that at least one processor is additionally configured to: generate a 2D visual representation of the 3D digital model based on the pose of at least one machine-readable code at one generation time.

6. A structural data recording system, according to claim 5, characterized in that the 2D visual representation of the digital 3D model comprises portions including at least: a wireframe portion representing an envelope of the digital 3D model; and a feature portion representing one or more features of the digital 3D model.

7. A structural data recording system according to claim 6, characterized in that the portions additionally comprise: at least one feature label corresponding to a respective feature.

8. Structural data recording system, according to claim 5, characterized in that at least one processor is additionally configured to: display the 2D visual representation on the display device.

9. Structural data recording system, according to Petition 870250079062, dated 04 / 09 / 2025, page 21 / 28 3 / 8, claim 6, characterized in that at least one processor is additionally configured to: display at least one selected portion of the 2D visual representation portions on the display device in response to a user instruction received using at least one user input device.

10. A structural data registration system, according to claim 1, characterized in that the respective feature is a 3D coordinate in the digital 3D model and at least one processor is additionally configured to: associate the 3D coordinate with one or more other 3D coordinates of the digital 3D model determined based on one or more previous user selections using at least one user input device, in order to augment the digital 3D model with a respective structure defined by multiple associated 3D coordinates.

11. A structural data recording system, according to claim 10, characterized in that the respective structure is one of: a line defined by at least two associated 3D coordinates representing a structural line; a plane defined by two associated 3D coordinates derived from a principal axis of a projected ellipse; and a plane defined by at least three associated 3D coordinates.

12. Structural data registration system, according to claim 1, characterized in that at least one processor is configured to: receive, using at least one user input device, first and second user selections corresponding to the respective pixels on the display device; based at least on the pose of at least one machine-readable code at the time the first user selection is received, calculate a respective 3D position of a corresponding first provisional point within the digital 3D model; Petition 870250079062, dated 04 / 09 / 2025, p.22 / 28 4 / 8 based at least on the pose of at least one machine-readable code at a time when the second user selection is received, calculate a respective 3D position of a corresponding second provisional point within the digital 3D model; generate a first vector passing through a 3D position of the digital video camera and the first provisional point; generate a second vector passing through a 3D position of the digital video camera and the second provisional point; calculate a respective 3D intersection position of the first vector and the second vector; and augment the digital 3D model with a respective feature at the 3D intersection position.

13. A structural data recording system according to claim 12, characterized in that the 3D intersection position is one of: a 3D point that is common to the first vector and the second vector that intersect; and a 3D point along the shortest line between the first vector and the second vector.

14. A structural data recording system according to claim 13, characterized in that the 3D point along the shortest line between the first vector and the second vector is the 3D point at a midpoint of the shortest line between the first vector and the second vector.

15. Structural data recording system, according to claim 1, characterized in that it further comprises: a hand tool having a rigid body that defines: an object receiving surface; and at least one code display surface, wherein the object receiving surface is dimensioned to interact with a physical object for which structural data is to be recorded, and wherein the at least one code display surface presents a respective predetermined machine-readable code.

16. Structural data recording system, according to claim 15, characterized in that the hand tool is sized to be held by a user against a physical object while the hand tool is within the field of view of the digital video camera.

17. Structural data recording system, according to claim 15, characterized in that the hand tool is designed to be at least temporarily attached to a physical object while the hand tool is within the field of view of the digital video camera.

18. Structural data recording system, according to claim 1, characterized in that at least one predetermined machine-readable code is / are affixed or attached, at least temporarily, to the object.

19. Structural data recording system, according to claim 15, characterized in that the object receiving surface is dimensioned to interact with a drill core sample as the object, the object receiving surface comprising a vertical line to align the object receiving surface with a reference line of the drill core sample, and a horizontal extension to align the object receiving surface with specific positions along a length of the drill core sample.

20. Structural data recording system, according to claim 19, characterized in that the object receiving surface is dimensioned to interact with drill core samples having a range of radii.

21. Structural data recording system, according to claim 19, characterized in that at least one processor is configured to: Petition 870250079062, dated 04 / 09 / 2025, page 24 / 28 6 / 8 receive from a user, using at least one user input device, at least one value corresponding to a current position along the length of the drill core sample, wherein the realignment by a user of the object receiving surface with a particular different position along the length of the drill core sample corresponds to a respective different position along the length of the digital 3D model.

22. A structural data recording system according to claim 1, characterized in that at least one user input device comprises at least one of: a mouse; a keyboard; a touch-sensitive arrangement associated with the display device; a pointed tool with a predetermined machine-readable code captured in the video frames and processable by at least one processor to determine a pose of the pointed tool; and an eye-tracking device.

23. A hand tool for a structural data recording system, the hand tool characterized in that it comprises: a rigid body defining: an object receiving surface; and at least one code display surface, wherein the object receiving surface is dimensioned to interact with a physical object for which structural data is to be recorded, and wherein the at least one code display surface presents a respective of at least one predetermined machine-readable code, the hand tool dimensioned to be held by a user against a physical object while the hand tool is within the field of view of a digital video camera.

24. Hand tool, according to claim 23, Petition 870250079062, dated 04 / 09 / 2025, page 25 / 28 7 / 8 characterized in that the object receiving surface is dimensioned to interact with a drill core sample as the object, the object receiving surface comprising a vertical line to align the object receiving surface with a top line of the drill core sample, and a horizontal extension to align the object receiving surface with specific positions along a length of the drill core sample.

25. A hand tool, according to claim 24, characterized in that the object-receiving surface is dimensioned to interact with drill core samples having a range of radii.

26. A computer-implemented method for recording structural data, characterized in that it comprises: receiving video frames captured by a digital video camera; during the reception of the video frames: displaying the video frames on a display device; processing the video frames to detect at least one predetermined machine-readable code; in the case of at least one predetermined machine-readable code being detected: determining a pose of at least one machine-readable code; receiving, using at least one user input device, one or more user selections corresponding to a respective pixel on the display device; based on at least the pose of at least one machine-readable code at the time each of the one or more user selections is received, calculating a respective three-dimensional (3D) coordinate of a corresponding point within a digital 3D model of an object;and Petition 870250079062, dated 04 / 09 / 2025, page 26 / 28 8 / 8 increase the digital 3D model with a respective resource in the 3D coordinate.; 27. Non-transient computer-readable medium, characterized in that it incorporates a computer program executable in a computer system for structural recording, the computer program comprising: computer program code for receiving video frames captured by a digital video camera; and computer program code for, during the reception of the video frames: displaying the video frames on a display device; processing the video frames to detect at least one predetermined machine-readable code; in the event that at least one predetermined machine-readable code is detected: determining a pose of at least one machine-readable code; receiving, using at least one user input device, one or more user selections corresponding to a respective pixel on the display device;based at least on the pose of at least one machine-readable code at a time that each of one or more user selections is received, calculate a respective dimensional (3D) coordinate of a corresponding point within a digital 3D model of an object; and augment the digital 3D model with a respective feature in the 3D coordinate. Petition 870250079062, dated 04 / 09 / 2025, pp. 27 / 28;