Skip to content

Commit

Permalink
v1.5.5: Toolchain (benchmarking) and documentation update, no functio…
Browse files Browse the repository at this point in the history
…nal changes.
  • Loading branch information
shBLOCK committed May 11, 2024
1 parent 09f922d commit 28896d9
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 10 deletions.
17 changes: 8 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,22 +13,21 @@
[![Charts](https://github.com/shBLOCK/spatium/actions/workflows/charts.yml/badge.svg)](https://github.com/shBLOCK/spatium/actions/workflows/charts.yml)

## ⚙️Main features
- Fast Pure Cython Implementation
- ~***20x*** speedup from pure python(3.12) impl on average
- Based on custom code generation
- Almost all static dispatch
- **Fast** Pure Cython Implementation
- ~***16x*** faster than pure python(3.12) implementation
- Spatial Math
- [Vector](https://github.com/shBLOCK/spatium/wiki#vectors)
- Operators +, -, *, /, @(dot), ^(cross), |(distance) ...
- Fast (compile time) swizzling (e.g. `Vec3(1, 2, 3).zxy`)
- Fast (compile-time) swizzling (e.g. `Vec3(1, 2, 3).zxy`)
- Flexible constructor (e.g. `Vec3(Vec2(1, 2), 3)`)
- Iterating and unpacking (e.g. `x, y, z = Vec3(1, 2, 3)`)
- Works with other libraries (pygame, numpy, ...)
- Transform
- [Transform2D](https://github.com/shBLOCK/spatium/wiki#transform2d) & [Transform3D](https://github.com/shBLOCK/spatium/wiki#transform3d)
- All floats are double-precision
- Full pythonic interface & GLSL-like API
- Stubs for better IDE support
- Double-precision floats
- Pythonic & GLSL-like interface
- Custom code generation
- IDE-friendly stubs

Please refer to the [wiki](https://github.com/shBLOCK/spatium/wiki) for more details

Expand All @@ -41,7 +40,7 @@ Please refer to the [wiki](https://github.com/shBLOCK/spatium/wiki) for more det
Every swizzle pattern and constructor are implemented as individual methods and properties (For performance reasons).<br>
As a result, code generation is required so that I don't have to maintain 50,000+ lines of code by hand...<br>
Besides, it also handles vector classes of every dimension and type (e.g. Vec2 Vec3 Vec2i Vec3i) are generated from the same template, so a lot of repetitive code is avoided.<br>
There's also a stub generator.
There's also a stub generator that generates stub files from the cython code generated by codegen.

## Credits
- This library is partially inspired by [Godot](https://godotengine.org/)'s math library.
Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ requires = ["setuptools", "cython"]

[project]
name = "spatium"
version = "1.5.4"
version = "1.5.5"
description = "Spatium: a fast spatial math library"
readme = "README.md"
requires-python = ">= 3.9"
Expand Down

0 comments on commit 28896d9

Please sign in to comment.