baselode 0.1.5 → 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,24 +1,72 @@
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 (drillholes, assays, block models, structural measurements).
19
+ - **Data Loading:** Efficiently import and manage your exploration and mining data (drillholes, assays, geology/lithology, block models, structural measurements).
18
20
  - **Data Models:** Utilize predefined models to normalize and interpret your data (40+ column name variants, minimum-curvature desurveying).
19
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
 
24
+ ## Example
25
+
26
+ ```javascript
27
+ import { parseDrillholesCSV } from 'baselode';
28
+
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
+ ```
37
+
38
+ ---
39
+
40
+ ## Included in 0.1.0
41
+
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
48
+
49
+ ---
50
+
51
+ ## Design Principles
52
+
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
57
+
58
+ ---
59
+
60
+ ## Roadmap
61
+
62
+ Future releases may include:
63
+
64
+ - Geospatial helpers
65
+ - Interoperability with common mining formats
66
+ - Visualization adapters
67
+
68
+ ---
69
+
22
70
  ## 3D Scene Architecture
23
71
 
24
72
  `Baselode3DScene` is a thin orchestrator; rendering is handled by domain modules:
@@ -34,31 +82,12 @@ This is the javascript version of `baselode`. See also the python module.
34
82
 
35
83
  ## License
36
84
 
37
- `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.
38
-
39
- ## Obligations
85
+ GNU General Public License v3.0 or later (GPL-3.0-or-later).
40
86
 
41
- By using `baselode`, you agree to the following obligations:
87
+ See the `LICENSE` file in this repository for full details.
42
88
 
43
- - You must preserve the copyright notice and this list of conditions.
44
- - You must state any significant changes made to the original software.
45
- - You must distribute your modified source code under the GPL-3.0 license.
89
+ ---
46
90
 
47
- For any questions or contributions, contact form is at [darkmine.ai](http://darkmine.ai/)
91
+ ## Contributing
48
92
 
49
- ## NPM Release
50
-
51
- This package is configured to take its version from the git tag on the current commit.
52
-
53
- - Tag format: `vMAJOR.MINOR.PATCH` (example: `v0.1.0`)
54
- - On `npm pack` or `npm publish`, `prepack` runs `scripts/set-version-from-tag.mjs`
55
- - The script strips the leading `v` and updates `package.json` version before building
56
-
57
- Typical publish flow:
58
-
59
- ```bash
60
- git tag v0.1.0
61
- git push origin v0.1.0
62
- npm run pack:check
63
- npm run publish:npm
64
- ```
93
+ Contributions and issue reports are welcome via GitHub.