Skip to main content

.obj to vertex data

pypi version python versions python package passing

A spinning blahaj
The above spinning blahaj was rendered in a browser with typescript, see at alternyxx.com/blahaj! The model can be found here.

Intended Usage

The program aims to make .obj files with triangle data, for example,

v 1 0 0
v 0 1 0
v 0 0 1

vn 0.577 0.577 0.577

f 1//1 2//2 3//3

to

1, 0, 0, 0.5777, 0.5777, 0.5777,
0, 1, 0, 0.5777, 0.5777, 0.5777,
0, 0, 1, 0.5777, 0.5777, 0.5777,

This is for parsing obj files to be suitable to feed to a vertex buffer. For most cases, it'd be better to just use an index buffer though. If your .obj file has faces with quads, which is usually the case, eg.

f 1/1/1 2/1/1 3/1/1 4/1/1

Then, you could change your vertex buffer accordingly to have 4 vertex coordinates in the case the graphics api you're using supports quads. Else, you can triangulate when exporting from blender or github.com/StefanJohnsen/TriangulateOBJ-App to triangulate quads in a .obj file which is what I did for the blahaj!

Installation

pip

Make sure Python and pip is installed. Python version needs to be >= 3.10. Then run

pip install vertexdata

Build

You can also simply clone the repository and build from scratch. This should be especially trivial as the project has 0 dependancies.

git clone https://github.com/alternyxx/vertexdata
cd vertexdata
pip install .

Command Line Usage

Once installed, you can run

vertexdata obj_file {target_file}

to get vertex data in the target_file. By default, the program will generate all given vertex data, positions, textures and normals if given. To override this, you can pass in

vertexdata obj_file {target_file} -n -t

to only generate the positions of the vertices. For more information, run

vertexdata --help

Library

If you want to parse the vertices in this way in a python project, you can

import vertexdata as vtd

def main():
    vertex_parser = vtd.VertexParser(
        source, target_file, read_file
    )
    vertex_parser.parse()
    your_vertices_data = vertexparser.output()

source can either be a file or a string that youve already read, which then, you would specify read_file as false.
There's also flags to not handle certain data

from vertexdata import VertexParser, NONORMALDATA, NOTEXTUREDATA

vertexparser = VertexParser(
    source, target_file, False, NONORMALDATA, NOTEXTUREDATA
)

Download files

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

Source Distribution

vertexdata-1.0.4.tar.gz (310.9 kB view details)

Uploaded Source

Built Distribution

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

vertexdata-1.0.4-py3-none-any.whl (399.7 kB view details)

Uploaded Python 3

File details

Details for the file vertexdata-1.0.4.tar.gz.

File metadata

  • Download URL: vertexdata-1.0.4.tar.gz
  • Upload date:
  • Size: 310.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.0.1 CPython/3.13.0 Windows/11

File hashes

Hashes for vertexdata-1.0.4.tar.gz
Algorithm Hash digest
SHA256 a2d1fde9a552c360ae77e42238c49a15cfdb7d69af81ea25b984d1fb44a17b7c
MD5 c91df8d51d4d7615ce6908eb88d3a0de
BLAKE2b-256 d79b4567ab8acc536719d30856f9bbacc4ceb88c6f609f2b9aa7a71dc61a0d59

See more details on using hashes here.

File details

Details for the file vertexdata-1.0.4-py3-none-any.whl.

File metadata

  • Download URL: vertexdata-1.0.4-py3-none-any.whl
  • Upload date:
  • Size: 399.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.0.1 CPython/3.13.0 Windows/11

File hashes

Hashes for vertexdata-1.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 e329928224c34a6d08c3d36db121e0f837d67c6f3ed29fd770ec545ebf25bd1a
MD5 94c0d93885e3b706b3211a4584483a8d
BLAKE2b-256 e6a38f839ec746fa62561d1b5845b8258625c187d85f14b6535a55cb54354694

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

1.0.4 This release

2 files

1.0.3

2 files

1.0.1

2 files

1.0.0

2 files

0.0.3

2 files

0.0.2

2 files

0.0.1

2 files

Supported by

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