Skip to main content

Seequent logo

PyPI - Version

Seequent Developer Portal • Seequent Community • Seequent website

Evo

Evo is a unified platform for geoscience teams. It enables access, connection, computation, and management of subsurface data. This empowers better decision-making, simplified collaboration, and accelerated innovation. Evo is built on open APIs, allowing developers to build custom integrations and applications. Our open schemas, code examples, and SDK are available for the community to use and extend.

Evo is powered by Seequent, a Bentley organisation.

Pre-requisites

  • Python virtual environment with Python 3.10, 3.11, or 3.12
  • Git

Installation

pip install evo-data-converters-obj

OBJ

The OBJ 3D mesh format is a legacy of Wavefront Technologies, but is now a common format for specifying polygon meshes, optionally with texture data (stored in a separate MTL file).

Implementations

The Python Trimesh package is used to work with OBJ files by default, for import and export. There is a second importer implementation that uses TinyOBJ. TinyOBJ might be more suitable for very large meshes.

To use TinyOBJ, it will have to be installed. Once it is installed, you can specify the TinyOBJ backend via a parameter to convert_obj(): convert_obj(..., implementation="tinyobj").

Installing tinyobjloader

The TinyOBJ library is good, but the PyPI release has unstable Python bindings. This version was found to work. You will have to do it after every uv sync:

uv pip install tinyobjloader@git+https://github.com/tinyobjloader/tinyobjloader.git#a4e519b0a0f29c790464fcfeadfe25a7f9fa15ff

Alternatively, you can edit packages/obj/pyproject.toml:

[project.optional-dependencies]
optional_parsers = [
    # v2 is not yet stable, the current release (2.0.0rc13) doesn't work
    "tinyobjloader@git+https://github.com/tinyobjloader/tinyobjloader.git#a4e519b0a0f29c790464fcfeadfe25a7f9fa15ff",
]

Then do uv sync --extra optional_parsers.

Publish geoscience objects from an OBJ file

The evo-sdk-common Python library can be used to sign in. After successfully signing in, the user can select an organisation, an Evo hub, and a workspace. Use evo-objects to get an ObjectAPIClient, and evo-data-converters-common to convert your file.

Have a look at the code-samples/publish-obj.ipynb Notebook for an example of how to publish an OBJ (and related) files.

Also see the code-samples/publish-obj-script.py example of using convert_obj() inside a python script.

Exporting Triangle Mesh objects to OBJ

To export Triangle Mesh objects from Evo to an OBJ file, call await export_obj() supplying an output file path and a list of EvoObjectMetadata containing the UUIDs of the Evo objects.

EvoObjectMetadata can also specify the version of each object to export. If not specified, so it will export the latest version.

See documentation on the ObjectAPIClient for listing objects and getting their IDs and versions.

You will need the same selection of organisation, Evo hub, and workspace that is needed for importing objects.

See the code-samples/export-obj.ipynb Notebook for an example of how to download a Evo Geoscience object to an OBJ.

Also see the code-samples/export-obj-script.py example of using export_obj() inside a python script.

Code of conduct

We rely on an open, friendly, inclusive environment. To help us ensure this remains possible, please familiarise yourself with our code of conduct.

License

Evo data converters are open source and licensed under the Apache 2.0 license.

Copyright © 2025 Bentley Systems, Incorporated.

Licensed under the Apache License, Version 2.0 (the "License"). You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Metadata

Release files for evo-data-converters-obj 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for evo-data-converters-obj 0.2.0
File Size Uploaded Provenance Actions
evo_data_converters_obj-0.2.0.tar.gz 15.0 kB With provenance Details for evo_data_converters_obj-0.2.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for evo-data-converters-obj 0.2.0
File Interpreter ABI Platform Actions
evo_data_converters_obj-0.2.0-py3-none-any.whl Python 3 none any Details for evo_data_converters_obj-0.2.0-py3-none-any.whl

Total release size: 37.6 kB

Release files / evo_data_converters_obj-0.2.0.tar.gz

Download URL evo_data_converters_obj-0.2.0.tar.gz
Size 15.0 kB
Tags Source
SHA-256 checksum
How to use checksums
c24adcf4b94f7d6ce2792f267acaa77b0800ccb9a1497dd5c5022da44aad4c17
BLAKE2b-256 checksum
How to use checksums
f15f7ea65df428d94de72ea75a264f93bbb5943efa993db82af704d58392f232
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 19, 2026.

Transparency log

Release files / evo_data_converters_obj-0.2.0-py3-none-any.whl

Download URL evo_data_converters_obj-0.2.0-py3-none-any.whl
Size 22.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e4bb994db8f78936092808c4f1ca7a0471ab94608dab9a67de1d04aceba96583
BLAKE2b-256 checksum
How to use checksums
df818559a8eee1ae75757c1f1c48555d0c9ab5dc085d2bc4b7d1812f3b085f43
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 19, 2026.

Transparency log

Security for evo-data-converters-obj 0.2.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for evo_data_converters_obj-0.2.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 19, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page