Skip to content

Instantly share code, notes, and snippets.

View mikedh's full-sized avatar

Michael Dawson-Haggerty mikedh

View GitHub Profile
mikedh@europa:example$ uv add trimesh "pyglet<2" "cascadio>=0.0.18rc5"
Resolved 5 packages in 0.51ms
Audited 4 packages in 0.04ms
mikedh@europa:example$ uv run python
Python 3.14.0 (main, Nov 19 2025, 22:48:15) [Clang 21.1.4 ] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import trimesh, cascadio
@mikedh
mikedh / sux
Last active March 7, 2026 23:35
#!/usr/bin/env python3
"""
sux - a less annoying tmux wrapper
Modes:
tmux `sux <name>` creates or attaches to a named tmux session.
`sux` with no args attaches to the most recent session.
docker `sux -d <name>` mounts the current directory into an isolated
Docker container with rust, uv, node, and claude-code.
@mikedh
mikedh / report.md
Last active January 17, 2025 21:36
Trimesh.load back-port accuracy

Running: python corpus.py -compare

  • Comparing 4.6.0 against 4.5.3
  • Return types matched 99.785% of the time
  • Loaded 758 vs Loaded 668
import os
cwd = os.path.abspath(os.path.expanduser(os.path.dirname(__file__)))
def backup(frag):
"""
Parse a string backwards to find the first value which can
be a variable name, parenthisized or bracked expression.
@mikedh
mikedh / cust16.glb.header.json
Created July 28, 2022 17:47
Byte alignment error
{
"scene": 0,
"scenes": [{ "nodes": [0] }],
"asset": {
"version": "2.0",
"generator": "https://github.com/mikedh/trimesh"
},
"accessors": [
{
"componentType": 5125,
import os
import time
import trimesh
import numpy as np
tol_norm = 1e-4
def test_align(align):
import os
import trimesh
import numpy as np
tol_norm = 1e-4
def test_align(align):
"""

robot-gltf

Summary

An effort to replace ROS packages describing a robot (a directory structure with URDF, SRDF, OBJ-MTL-STL-salad) with a single GLTF 2.0 GLB file including URDF and SRDF descriptions in the "extras" field of the GLTF header.

Proposed Robot-GLTF Format

  • All geometry is put into a GLTF 2.0 .GLB file.
  • Nodes in GLTF scene description are not used, but can be defined for visualization
  • The URDF and SRDF descriptions are stored in the extras field of the GLTF header.
  • Using the extras field keeps us completely compliant with the spec.
@mikedh
mikedh / arg.json
Created January 16, 2019 21:56
triangles error
{"vertices": [[11.0, 0.0], [10.995184726672196, -0.0980171403295605], [10.98078528040323, -0.19509032201612808], [10.95694033573221, -0.2902846772544621], [10.923879532511286, -0.3826834323650894], [10.881921264348355, -0.4713967368259972], [10.831469612302545, -0.5555702330196017], [10.773010453362737, -0.6343932841636449], [10.707106781186548, -0.7071067811865469], [10.634393284163647, -0.7730104533627363], [10.555570233019603, -0.8314696123025447], [10.471396736825998, -0.8819212643483545], [10.382683432365091, -0.9238795325112863], [10.290284677254464, -0.9569403357322085], [10.19509032201613, -0.9807852804032302], [10.098017140329562, -0.9951847266721967], [10.000000000000002, -1.0], [9.901982859670442, -0.995184726672197], [9.804909677983874, -0.9807852804032308], [9.70971532274554, -0.9569403357322094], [9.617316567634912, -0.9238795325112875], [9.528603263174004, -0.881921264348356], [9.444429766980399, -0.8314696123025463], [9.365606715836357, -0.7730104533627382], [9.292893218813454, -0.707106781186
# -*- coding: utf-8 -*-
"""
Simple coloring shader example.
Press any number key (not on the numpad) to change the triangle color
"""