|
1 |
| - |
2 |
| -## What's New: GemPy v3 Pre-release! |
| 1 | +## **What's New: GemPy v3 Release!** |
3 | 2 |
|
4 |
| -**Introducing GemPy Version 3: A Leap Froward in Geomodeling Software** |
| 3 | +**Introducing GemPy Version 3: Future-Proofing GemPy and its Role in the Open-Source Geoscience Ecosystem** |
5 | 4 |
|
6 |
| -Welcome to the era of GemPy v3! We are thrilled to announce the release of the latest version, a product of meticulous planning, redesign, and rigorous testing. While the core essence remains intact, v3 brings significant enhancements and novelties that promise to revolutionize your geomodeling experience. |
| 5 | +We are excited to announce the release of GemPy v3, which has been meticulously reworked to enhance robustness, reliability, and ease of installation. With this release, we aim to strengthen GemPy’s position as one of the cornerstones in the open-source geoscience ecosystem. Our ongoing commitment is to develop and provide a reliable and essential tool that promotes transparency and openness in geological modeling and beyond - thereby empowering users to realize their projects and implement novel scientific approaches. |
7 | 6 |
|
8 |
| -**1. Transition from GemPy v2 to v3: The Legacy Lives On** |
| 7 | +**1. Transition from GemPy v2 to v3: Significant Changes** |
9 | 8 |
|
10 |
| -The journey from GemPy v2 to v3 has been transformative. To ensure that our users don't lose out on any previous functionalities, we've shifted v2 to a package named [gempy_legacy](https://github.com/gempy-project/gempy_legacy). While the core team will not develop any new features for this version, we'll continue maintaining it based on community requests. |
| 9 | +While the core essence of GemPy remains unchanged, the upgrade from v2 to v3 introduces substantial changes to workflow steps and function names, potentially affecting familiar processes. To ensure that our users retain full access to previous functionalities and can continue running their existing GemPy v2-based projects, we have transitioned v2 to a package named [gempy_legacy](https://github.com/gempy-project/gempy_legacy). |
11 | 10 |
|
12 |
| -**2. A More Streamlined API** |
| 11 | +We have updated our documentation and tutorials to reflect the changes in GemPy v3 and are preparing additional support materials, including short videos that showcase key functionalities of the new version. |
13 | 12 |
|
14 |
| -GemPy v3 promises a cleaner, sleeker, and more intuitive API. With a clear end-goal in mind, we've redesigned the API and data classes to optimize utility, minimize code repetition, and boost performance. |
| 13 | +Although the core GemPy team will not develop new features for the legacy version, we are committed to maintaining it based on community requests. |
15 | 14 |
|
16 |
| -**3. Parting Ways with Theano/Aesara** |
| 15 | +**2. Refined API** |
17 | 16 |
|
18 |
| -One significant shift is our departure from Theano/Aesara. Although these technologies served us well in the past, it's time to evolve. Ensuring the long-term viability of GemPy, v3 incorporates a flexible tensor library. Currently, it supports `numpy` and has optional dependencies on `PyTorch`. Furthermore, TensorFlow's integration is in the pipeline. Impressively, with the new abstractions the PyTorch implementation took just a day! |
| 17 | +The GemPy API has been extensively reworked to increase robustness and readiness for production environments. We've redesigned the API and data classes to optimize utility, minimize code repetition, and boost performance. |
19 | 18 |
|
20 |
| -**4. Comprehensive Refactoring for Greater Robustness** |
| 19 | +**3. Transitioning from Theano/Aesara to NumPy & PyTorch** |
21 | 20 |
|
22 |
| -We've overhauled the foundation of GemPy to ensure: |
| 21 | +Due to discontinued support and frequent dependency issues with Theano/Aesara, we have decisively moved away from using these frameworks in GemPy (this transition also means that PyMC is no longer supported). Instead, to ensure GemPy's future-proofness, v3 incorporates a flexible tensor library framework that currently utilizes **`numpy`** and has optional dependencies on **`PyTorch`**. Our restructured code makes it easy to integrate additional tensor libraries in the backend. Additionally, similar functionalities to those provided by PyMC will be part of the upcoming **`gempy_probability`** module, which will enhance GemPy’s capabilities in probabilistic modeling. |
23 | 22 |
|
24 |
| -- **Enhanced State Management:** By employing properties, we ensure a consistently valid state, irrespective of data modifications. |
25 |
| -- **Optimized Dependency Management:** The handling of dependencies is now more efficient and streamlined. Plus, most of them are optional. |
26 |
| -- **Modular Design:** We've divided GemPy into multiple libraries to enhance its adaptability and ease-of-use: |
27 |
| - - `gempy_engine` [here](https://github.com/gempy-project/gempy_engine) |
28 |
| - - `gempy_viewer` [here](https://github.com/gempy-project/gempy_viewer) |
29 |
| - - `gempy_plugins`[here](https://github.com/gempy-project/gempy_plugins) |
30 |
| - - `gempy_probability` (Stay tuned for this!) |
31 |
| - - `gempy` (Leaner and meaner, focused mainly on documentation and the API) |
| 23 | +**4. General Refactoring for Greater Robustness** |
32 | 24 |
|
33 |
| -**5. Octree Implementation for Faster Computation** |
| 25 | +We've undertaken a refactoring of GemPy to enhance its robustness and reliability. Key improvements include: |
| 26 | + |
| 27 | +- **Enhanced State Management:** We’ve made improvements to ensure consistently valid states in GemPy. Before, invalid states could arise during data adjustments. |
| 28 | +- **Optimized Dependency Management:** We've streamlined the handling of dependencies. Most dependencies are now optional, which simplifies setup and integration for users. |
| 29 | +- **Modular Design:** We've divided GemPy into several distinct libraries. This modular approach allows users to leverage specific functionalities according to their needs: |
| 30 | + - **`gempy_engine`** [here](https://github.com/gempy-project/gempy_engine): Handles core computational algorithms. |
| 31 | + - **`gempy_viewer`** [here](https://github.com/gempy-project/gempy_viewer): Provides visualization capabilities. |
| 32 | + - **`gempy_plugins`** [here](https://github.com/gempy-project/gempy_plugins): Supports additional functionalities through plugins. |
| 33 | + - **`gempy_probability`**: Focuses on probabilistic modeling and uncertainty analysis (Coming soon). |
| 34 | + - **`gempy`**: Now leaner and primarily focused on documentation and managing the API. |
| 35 | + |
| 36 | +**5. Octree Implementation for Efficient Model Computation** |
| 37 | + |
| 38 | +We have introduced an octree-based approach in GemPy v3 to optimize model computation and iteration times. |
34 | 39 |
|
35 | 40 | **6. Dual Contouring for High-Quality Meshing**
|
36 | 41 |
|
37 |
| -**7. First steps LiquidEarth Integration** |
| 42 | +To ensure compatibility with our new octree approach, we have implemented dual contouring in GemPy v3. This method guarantees high-quality mesh generation, enhancing both the precision and visual appeal of 3D geological models. |
38 | 43 |
|
39 |
| -**And Much More!** |
| 44 | +**7. Initial Steps in LiquidEarth Integration** |
40 | 45 |
|
41 |
| ---- |
| 46 | +We have begun integrating GemPy with the LiquidEarth app to significantly extend GemPy's applicability in practical scenarios, enhancing workflow integration and data visualization capabilities. LiquidEarth, developed by the same main developers as GemPy, is a commercial, cloud-based software solution. It empowers experts to visualize, edit, and communicate geological data and models in intuitive 3D, facilitating real-time collaboration across multiple devices, independent of location. |
42 | 47 |
|
43 |
| -**In Conclusion** |
| 48 | +This integration aims to leverage LiquidEarth's commercial platform, which utilizes emerging technologies to provide novel environments for working with 3D geoscience data and focuses on ease of use and on offering a low entry barrier. Simultaneously, GemPy will continue to serve as a completely free and open-source tool, offering a flexible, reliable, and transparent solution for 3D geological modeling. Together, this direct integration between GemPy and LiquidEarth is designed to maximize the strengths of both systems: enhancing the visual representation of 3D geoscience projects, connecting them to the broader open-source geoscience ecosystem, and enhancing the utility of GemPy for companies and industry applications. |
44 | 49 |
|
45 |
| -GemPy v3 is not just an upgrade; it's a transformation that ensures longevity, adaptability, and cutting-edge functionalities. We're confident that this version will redefine geomodeling standards, and we're eager to see the fantastic work you'll accomplish with it! |
| 50 | +1. **Other Changes, Prototypes, and Future Developments** |
46 | 51 |
|
47 |
| -Stay tuned for more updates and tutorials to help you transition smoothly to GemPy v3. Your feedback, as always, is invaluable to us. So, dive into the new version and let us know your thoughts! |
| 52 | +GemPy v3 introduces numerous other smaller changes and feature prototypes. These include optimizations to the nugget effect for improved model stability, the inclusion of external implicit functions for modeling features such as dykes, and a prototype to accommodate fault zone thickness. Additionally, improved caching mechanisms have been implemented to enhance performance. One of the most requested features, which we plan to address in the near future, is the implementation of finite faults. Stay tuned for future updates as we continue to expand the GemPy documentation, publish additional examples, and progress with developments. |
| 53 | + |
| 54 | +--- |
| 55 | + |
| 56 | +**In Conclusion** |
48 | 57 |
|
| 58 | +With the release of v3, we are reinforcing the role of GemPy as a key contributing piece within the larger open-source geoscience ecosystem. This update not only improves core functionalities but also introduces important integrations and enhancements that make it more robust and pave the way for future developments. Dedicated to advancing GemPy as a valuable tool for both academic research and industry applications, our team values your ongoing support and feedback. We invite you to explore the new features and join us in shaping the future of open-source geosciences. Looking forward to the results and innovative applications you achieve with this new version of GemPy! |
0 commit comments