taigrr / trophy
Terminal 3D Model Viewer - View 3D model files in your terminal
AI Architecture Analysis
This repository is indexed by RepoMind. By analyzing taigrr/trophy in our AI interface, you can instantly generate complete architecture diagrams, visualize control flows, and perform automated security audits across the entire codebase.
Our Agentic Context Augmented Generation (Agentic CAG) engine loads full source files into context on-demand, avoiding the fragmentation of traditional RAG systems. Ask questions about the architecture, dependencies, or specific features to see it in action.
Repository Overview (README excerpt)
Crawler viewTrophy 🏆 Terminal 3D Model Viewer - View OBJ, GLB, and STL files directly in your terminal. Features • **OBJ, GLB & STL Support** - Load standard 3D model formats • **Embedded Textures** - Automatically extracts and applies GLB textures • **Interactive Controls** - Rotate, zoom, and spin models with mouse/keyboard • **Software Rendering** - No GPU required, works over SSH • **Springy Physics** - Smooth, satisfying rotation with momentum Installation Usage Controls | Input | Action | | ------------ | --------------------- | | Mouse drag | Rotate model | | Scroll wheel | Zoom in/out | | W/S | Pitch up/down | | A/D | Yaw left/right | | Q/E | Roll | | Space | Toggle spin mode | | +/- | Zoom | | R | Reset view | | T | Toggle texture | | X | Toggle wireframe | | B | Toggle backface cull | | L | Position light | | ? | Toggle HUD overlay | | Esc | Quit | Lighting Press to enter lighting mode and drag to reposition the light source in real-time: Library Usage Trophy's rendering packages can be used as a library: Packages • - 3D math (Vec2, Vec3, Vec4, Mat4) • - Model loaders (OBJ, GLB/GLTF, STL) • - Software rasterizer, camera, textures Benchmarks Run with Math (pkg/math3d) | Benchmark | ns/op | B/op | allocs/op | | -------------- | ----: | ---: | --------: | | Mat4Mul | 74.86 | 0 | 0 | | Mat4MulVec4 | 6.84 | 0 | 0 | | Mat4MulVec3 | 8.24 | 0 | 0 | | Mat4Inverse | 62.13 | 0 | 0 | | Vec3Normalize | 7.41 | 0 | 0 | | Vec3Cross | 2.47 | 0 | 0 | | Vec3Dot | 2.48 | 0 | 0 | | Perspective | 24.15 | 0 | 0 | | LookAt | 33.66 | 0 | 0 | | ViewProjection | 71.32 | 0 | 0 | Rendering (pkg/render) | Benchmark | ns/op | B/op | allocs/op | | -------------------------- | -----: | ---: | --------: | | FrustumExtract | 37.03 | 0 | 0 | | AABBIntersection (visible) | 9.96 | 0 | 0 | | AABBIntersection (culled) | 7.76 | 0 | 0 | | TransformAABB | 125.8 | 0 | 0 | | FrustumIntersectAABB | 7.31 | 0 | 0 | | FrustumIntersectsSphere | 4.91 | 0 | 0 | | DrawTriangleGouraud | 4858 | 0 | 0 | | DrawTriangleGouraudOpt | 3981 | 0 | 0 | | DrawMeshGouraud | 55741 | 0 | 0 | | DrawMeshGouraudOpt | 27868 | 0 | 0 | Culling Performance | Benchmark | ns/op | B/op | allocs/op | | ------------------------------- | -----: | ---: | --------: | | MeshRendering (with culling) | 115793 | 0 | 0 | | MeshRendering (without culling) | 141766 | 0 | 0 | The optimized rasterizer ( variants) uses incremental edge functions instead of per-pixel barycentric recomputation, yielding **~18% speedup** on triangles and **~50% speedup** on full mesh rendering. _Benchmarks run on AMD EPYC 7642 48-Core, linux/amd64_ Credits Built with Ultraviolet for terminal rendering.