as the crow flies

This commit is contained in:
ethan merchant 2023-04-10 08:17:40 -04:00
parent f656e138a5
commit 3ff09cf907
47 changed files with 52 additions and 10 deletions

View file

@ -1,16 +1,16 @@
# oriels
*a °dof driven dev space*
<img src='zrc/markberg.png' width="50%">
<img src='_/markberg.png' width="50%">
**mapped out by:**
<a href='https://ethanmerchant.com'>@spatialfree</a> &times; <a href='https://twitter.com/opendegree'>@opendegree</a>
<a href='https://dofdev.org'>
<img src='zrc/channel-icon-tranparent.png' width="64px">
<img src='_/channel-icon-tranparent.png' width="64px">
</a>
<a href='https://stereokit.net'>
<img src='zrc/StereoKitLogoLight.svg' width="32px">
<img src='_/StereoKitLogoLight.svg' width="32px">
</a>
<br>

View file

Before

Width:  |  Height:  |  Size: 3 KiB

After

Width:  |  Height:  |  Size: 3 KiB

View file

Before

Width:  |  Height:  |  Size: 6.3 KiB

After

Width:  |  Height:  |  Size: 6.3 KiB

View file

Before

Width:  |  Height:  |  Size: 59 KiB

After

Width:  |  Height:  |  Size: 59 KiB

View file

Before

Width:  |  Height:  |  Size: 340 KiB

After

Width:  |  Height:  |  Size: 340 KiB

View file

Before

Width:  |  Height:  |  Size: 89 KiB

After

Width:  |  Height:  |  Size: 89 KiB

View file

Before

Width:  |  Height:  |  Size: 56 KiB

After

Width:  |  Height:  |  Size: 56 KiB

View file

@ -1,4 +1,4 @@
# 2018.10.06 -> 2022.10.04 ->
# 2018.10.06 -> 2023.04.10 ->
input
vTo
@ -9,10 +9,11 @@ data
cursor
frame
mag = (vTo - vFrom).mag
delta = vTo - vFrom
mag = delta.mag
stretch = max(mag - deadzone, 0)
dir = v3.dir(vTo, vFrom)
dir = nor(delta)
cursor = vTo + dir * stretch * strength
design

View file

@ -21,14 +21,14 @@ class WaveCursor : dof {
float fL = rig.Flexion(hand, FingerId.Little);
// Biased by finger length
float stretch = (fI + fI + fM + fM + fM + fR + fR + fL) / 8f;
float wave = (fI + fI + fM + fM + fM + fR + fR + fL) / 8f;
Vec3 to = hand.Get(FingerId.Index, JointId.Tip).position;
Vec3 from = hand.Get(FingerId.Index, JointId.KnuckleMajor).position;
Vec3 dir = PullRequest.Direction(to, from);
Vec3 dir = Vec3.Direction(to, from);
cursor.raw = to + dir * stretch * reach.value;
cursor.raw = to + dir * wave * crest.value;
Mesh.Sphere.Draw(Mono.inst.matHoloframe, Matrix.TRS(cursor.raw, Quat.Identity, 0.01f), new Color(1, 0, 0));
Mesh.Sphere.Draw(Mono.inst.matHoloframe, Matrix.TRS(cursor.pos, Quat.Identity, 0.01f), new Color(0, 1, 0));
@ -37,7 +37,7 @@ class WaveCursor : dof {
}
// design
public Design reach = new Design { str="1.0", term="0+m", min=0 };
public Design crest = new Design { str="1.0", term="0+m", min=0 };
// demo
@ -92,4 +92,18 @@ class WaveCursor : dof {
/*
COMMENTS
!uses a naive flexion method
that needs a refactor to
to both track for
finger & knuckle flexion
as they are intertwined at the intersection
in way that can't be ignored and must be derived!
in order to have a principled wave-cursor
(let alone a rolls-cursor)
sidetest: may be useful for interactions!
where you can use the finger flexion for grabbing
and knuckle flexion for cursor extension
*/

View file

@ -0,0 +1,27 @@
# 2022.10.01 -> 2023.04.10
# !draft
input
hand
data
cursor
frame
fI = hand.flexion(Index)
fM = hand.flexion(Middle)
fR = hand.flexion(Ring)
fL = hand.flexion(Little)
wave = (fI+fI + fM+fM+fM + fR+fR + fL) / 8
vTo = hand.IndexTip
vFrom = hand.KnuckleMajor
dir = nor(vTo - vFrom)
cursor = vTo + dir * wave * crest
design
crest = 1.0 [0+m]