Baltor Get started

Gallery / Mesh algorithms

Rotation-minimizing frames by double reflection

In your harnessMesh algorithmMIT

Compute twist-free frames along a sampled curve with the double reflection method, compare them with Frenet frames and close loops without a jump. Use it for sweeps, ribbons, rails and camera roll.

Render of Rotation-minimizing frames by double reflection
The render its check recorded in Godot 4.7.2, 256 by 256 pixels.

What it takes and gives

Entry points
double_reflection_frames, frenet_frames, frame_normals, closing_twist, twist_between, demo_curve, ribbon, build and 1 more
Parameters
curve, width, samples
Complexity
O(n) for n samples
Axes
+Y up, metres

Limits. Frames are only as good as the sampling: the method is fourth-order accurate between samples but cannot recover detail the samples miss. Tangents from central differences are used when none are given. A closed curve generally does not return to its starting frame; ribbon() spreads that angle evenly.

Details

Kind
Mesh algorithm
Engine
Python 3.10 or later
Files
10 files, 225.2 KB
Licence
MIT
Declared effects
reads files, runs commands, writes files
Checked with
Godot 4.7.2, gl_compatibility, OpenGL 3 driver, Mesa llvmpipe under Xvfb
Checks
generator runs system python, generator runs verifier python, gltf strict structure, interpreters agree, example matches generator, godot headless gltf load, godot compatibility render
Techniques
Double reflection method (Wang, Juttler, Zheng and Liu 2008), Frenet-Serret frames, Holonomy correction for closed curves
Tags
rotation minimizing frame, double reflection, frenet, sweep, ribbon, parallel transport
Identity
library.supply.creative_originals.9cecd739d88b59bcb69b3661.f9667821d3053b28
Version
f9667821d3053b284e321e9cd0a00db5de28e220947864ff8d61e0d004bc47cb

The version is the SHA-256 of the item your harness downloads; every file in it names its own checksum.

Something wrong with this item, its rights or its safety? Report it on the support page, or from your harness after a download.