baselode 0.1.4 → 0.1.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,51 +1,93 @@
1
- # BASELODE
1
+ # Baselode (JavaScript)
2
2
 
3
- ## Free Tooling for the Exploration and Mining Industry
3
+ Baselode is an open-source JavaScript toolkit providing structured data models for exploration and mining applications.
4
4
 
5
- `baselode` is a free software project developed by Darkmine Pty Ltd.
5
+ Version 0.1.0 focuses on domain-aware data models and validation utilities for drillhole-style data. The goal is to provide a consistent foundation for analytics, visualization, and AI workflows.
6
6
 
7
- `baselode` is designed to support the exploration and mining industry, with an ever-growing suite of tools that enable data loading, data modeling, visualization, and common algorithms in one package that can be imported and leveraged without extensive customisation requirements (but is infinitely customizable). This tooling is useful to data scientists, app builders, geologists, mine planners, AI agents, and more.
7
+ ---
8
8
 
9
- Not all of `baselode` is custom - it pulls from and leverages many other open-source libraries and is designed to further their reach and utility.
9
+ ## Installation
10
10
 
11
- ## Languages
11
+ ```bash
12
+ npm install baselode
13
+ ```
12
14
 
13
- This is the javascript version of `baselode`. See also the python module.
15
+ **Requires:** Node.js 20+, React 18+
14
16
 
15
- ## Key Features
17
+ ---
16
18
 
17
- - **Data Loading:** Efficiently import and manage your exploration and mining data.
18
- - **Data Models:** Utilize predefined models to analyze and interpret your data.
19
- - **Data Visualization:** Create insightful visualizations to support decision-making.
19
+ - **Data Loading:** Efficiently import and manage your exploration and mining data (drillholes, assays, geology/lithology, block models, structural measurements).
20
+ - **Data Models:** Utilize predefined models to normalize and interpret your data (40+ column name variants, minimum-curvature desurveying).
21
+ - **Data Visualization:** Create insightful 2D strip logs (Plotly) and interactive 3D scenes (Three.js) with orbit/fly controls, assay coloring, structural disc rendering, and click-select glow.
20
22
  - **Common Algorithms:** Access a range of algorithms designed to solve common problems in the industry.
21
23
 
22
- ## License
24
+ ## Example
23
25
 
24
- `baselode` is licensed under the GNU General Public License v3.0 (GPL-3.0) and later. This means you are free to use, modify, and distribute the software, but you must adhere to the terms specified in the GPL-3.0 license. For more details, please refer to the [LICENSE](https://www.notion.so/LICENSE) file.
26
+ ```javascript
27
+ import { parseDrillholesCSV } from 'baselode';
25
28
 
26
- ## Obligations
29
+ // Example: file is a File object from an <input type="file" />
30
+ const file = /* your File object */;
31
+ file.text().then(csvText => {
32
+ const { holes } = parseDrillholesCSV(csvText);
33
+ // holes is an array of collar objects
34
+ console.log(holes);
35
+ });
36
+ ```
27
37
 
28
- By using `baselode`, you agree to the following obligations:
38
+ ---
29
39
 
30
- - You must preserve the copyright notice and this list of conditions.
31
- - You must state any significant changes made to the original software.
32
- - You must distribute your modified source code under the GPL-3.0 license.
40
+ ## Included in 0.1.0
33
41
 
34
- For any questions or contributions, contact form is at [darkmine.ai](http://darkmine.ai/)
42
+ - Drillhole collar, survey, assay, and geology/lithology models
43
+ - Downhole interval structures
44
+ - Basic validation utilities
45
+ - Strip log visualisations (numeric, categorical, geology)
46
+ - Map visualisations
47
+ - 3D visualisations
35
48
 
36
- ## NPM Release
49
+ ---
37
50
 
38
- This package is configured to take its version from the git tag on the current commit.
51
+ ## Design Principles
39
52
 
40
- - Tag format: `vMAJOR.MINOR.PATCH` (example: `v0.1.0`)
41
- - On `npm pack` or `npm publish`, `prepack` runs `scripts/set-version-from-tag.mjs`
42
- - The script strips the leading `v` and updates `package.json` version before building
53
+ - Explicit domain models (not generic tables)
54
+ - Minimal dependencies
55
+ - Visualisation tooling as key to data analysis
56
+ - Designed for integration with analytics, GIS, and AI systems
43
57
 
44
- Typical publish flow:
58
+ ---
45
59
 
46
- ```bash
47
- git tag v0.1.0
48
- git push origin v0.1.0
49
- npm run pack:check
50
- npm run publish:npm
51
- ```
60
+ ## Roadmap
61
+
62
+ Future releases may include:
63
+
64
+ - Geospatial helpers
65
+ - Interoperability with common mining formats
66
+ - Visualization adapters
67
+
68
+ ---
69
+
70
+ ## 3D Scene Architecture
71
+
72
+ `Baselode3DScene` is a thin orchestrator; rendering is handled by domain modules:
73
+
74
+ | Module | Responsibility |
75
+ |---|---|
76
+ | `drillholeScene.js` | Cylinder mesh building, assay coloring, camera fit |
77
+ | `blockModelScene.js` | Merged exterior-face block geometry, vertex colors |
78
+ | `structuralScene.js` | Structural disc meshes (dip/azimuth orientation) |
79
+ | `sceneClickHandler.js` | Canvas click/hover raycasting |
80
+ | `selectionGlow.js` | EffectComposer + OutlinePass per-object glow |
81
+ | `baselode3dCameraControls.js` | Orbit, fly, FOV, pan, dolly |
82
+
83
+ ## License
84
+
85
+ GNU General Public License v3.0 or later (GPL-3.0-or-later).
86
+
87
+ See the `LICENSE` file in this repository for full details.
88
+
89
+ ---
90
+
91
+ ## Contributing
92
+
93
+ Contributions and issue reports are welcome via GitHub.