Skip to main content

An obj model loader for Python

Project description

PyObjLoader

An obj model loader for python. Ideal for 3D data and graphics.

Setup

Run the install command.

pip install pyobjloader

Import

Import the load function

from pyobjloader import load_model

Use

To get the numpy array of vertices, first place the .obj somewhere in your project file (example shown)

project
│ main.py
│ my_model_directory
└─── my_model.obj

Then pass the file path into the load function

model = load_model('my_model_directory/my_model.obj')
vertex_data = model.vertex_data

Examples for how to access more data from the model are in the github examples folder.

Format

The format of the vertex data for an obj is stored in the model:

# ModernGL Specifications
vertex_format = model.format  # ie. '3f 2f 3f'
vertex_attribs = model.attribs  # ie. ['in_position', 'in_uv', 'in_normal']

Possible attributes include ['in_position', 'in_uv', 'in_normal'] and ['in_position', 'in_normal'] (Normals are calculated if not given)

Example with ModernGL

Here is an example VAO made with ModernGL and PyObjLoader

# Make sure you have a context and shader program (see moderngl docs)
ctx = ...
program = ...

# Load the model using pyobjloader
model = load_model('my_model_directory/my_model')
vertex_data = model.vertex_data

# Make a vertex buffer object with the vertex data
vbo = ctx.buffer(vertex_data)

# Create a vertex array object
vao = ctx.vertex_data(program, [(vbo, model.format, *model.attribs)])

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyobjloader-0.0.6.tar.gz (5.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pyobjloader-0.0.6-py3-none-any.whl (5.4 kB view details)

Uploaded Python 3

File details

Details for the file pyobjloader-0.0.6.tar.gz.

File metadata

  • Download URL: pyobjloader-0.0.6.tar.gz
  • Upload date:
  • Size: 5.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.13.0

File hashes

Hashes for pyobjloader-0.0.6.tar.gz
Algorithm Hash digest
SHA256 973f7836f4b1db67e842cc4d566047eff842c7db6853cf6ff95516758a5a211b
MD5 e0f23f5ea3b857ea5098e9a82258a34a
BLAKE2b-256 9d956fa1ebd81eef4c7280145aedf58f264cc8d2be0e7b7c607ecbc5fc66c545

See more details on using hashes here.

File details

Details for the file pyobjloader-0.0.6-py3-none-any.whl.

File metadata

  • Download URL: pyobjloader-0.0.6-py3-none-any.whl
  • Upload date:
  • Size: 5.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.13.0

File hashes

Hashes for pyobjloader-0.0.6-py3-none-any.whl
Algorithm Hash digest
SHA256 b9feca500e7b1e039018e027712a09ee7110a10b9dde4e3a9140250bebb39c04
MD5 1834a94ae5a30d15dc621d024f8b6d6a
BLAKE2b-256 a6ad90b0b011cd589407df4c4ac8f14e102a04238790b5f6bf7c5e15367e7a29

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page