From f7a25fead01bc0a3c4b9285570ac97220fa1fa2b Mon Sep 17 00:00:00 2001 From: "Randall C. O'Reilly" Date: Tue, 21 Apr 2026 16:29:39 +0200 Subject: [PATCH 1/3] joint: physics joints enforce limits --- physics/builder/joint.go | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/physics/builder/joint.go b/physics/builder/joint.go index 9f7797d2..820a0e29 100644 --- a/physics/builder/joint.go +++ b/physics/builder/joint.go @@ -352,7 +352,7 @@ func (jd *Joint) PoseFromPhysics() { // this joint in the physics model. Records into [DoF.Current]. func (jd *Joint) SetTargetVel(dof int32, vel, damp float32) { d := jd.DoF(int(dof)) - d.Current.Vel = vel + d.Current.Vel = d.Limit.ClampValue(vel) d.Current.Damp = damp physics.SetJointTargetVel(jd.JointIndex, dof, vel, damp) } @@ -361,7 +361,7 @@ func (jd *Joint) SetTargetVel(dof int32, vel, damp float32) { // this joint in the physics model. Records into [DoF.Current]. func (jd *Joint) SetTargetPos(dof int32, pos, stiff float32) { d := jd.DoF(int(dof)) - d.Current.Pos = pos + d.Current.Pos = d.Limit.ClampValue(pos) d.Current.Stiff = stiff physics.SetJointTargetPos(jd.JointIndex, dof, pos, stiff) } @@ -370,7 +370,7 @@ func (jd *Joint) SetTargetPos(dof int32, pos, stiff float32) { // this joint in the physics model, setting stiffness. func (jd *Joint) AddTargetPos(dof int32, pos, stiff float32) { d := jd.DoF(int(dof)) - d.Current.Pos += pos + d.Current.Pos = d.Limit.ClampValue(d.Current.Pos + pos) d.Current.Stiff = stiff physics.SetJointTargetPos(jd.JointIndex, dof, d.Current.Pos, stiff) } @@ -383,12 +383,10 @@ func (jd *Joint) AddTargetPos(dof int32, pos, stiff float32) { // which is enforced, and values near the edge can be unstable at higher // stiffness levels. func (jd *Joint) SetTargetAngle(dof int32, angDeg, stiff float32) { - pos := math32.WrapPi(math32.DegToRad(angDeg)) - // pos := math32.DegToRad(angDeg) d := jd.DoF(int(dof)) - d.Current.Pos = pos + d.Current.Pos = math32.WrapPi(d.Limit.ClampValue(math32.DegToRad(angDeg))) d.Current.Stiff = stiff - physics.SetJointTargetPos(jd.JointIndex, dof, pos, stiff) + physics.SetJointTargetPos(jd.JointIndex, dof, d.Current.Pos, stiff) } // AddTargetAngle adds to the Current target angular position, @@ -400,8 +398,7 @@ func (jd *Joint) SetTargetAngle(dof int32, angDeg, stiff float32) { // stiffness levels. func (jd *Joint) AddTargetAngle(dof int32, angDeg, stiff float32) { d := jd.DoF(int(dof)) - d.Current.Pos = math32.WrapPi(d.Current.Pos + math32.DegToRad(angDeg)) - // d.Current.Pos = d.Current.Pos + math32.DegToRad(angDeg) + d.Current.Pos = math32.WrapPi(d.Limit.ClampValue(d.Current.Pos + math32.DegToRad(angDeg))) d.Current.Stiff = stiff physics.SetJointTargetPos(jd.JointIndex, dof, d.Current.Pos, stiff) } From 7033dea8a5803e2b072abc717d9fd7ae2ac640e0 Mon Sep 17 00:00:00 2001 From: "Randall C. O'Reilly" Date: Sat, 25 Apr 2026 13:57:13 +0200 Subject: [PATCH 2/3] update to core 3.24 with important webjs text rendering fix --- go.mod | 7 +++---- go.sum | 10 ++++++---- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/go.mod b/go.mod index 64e37e4a..11cdd6e2 100644 --- a/go.mod +++ b/go.mod @@ -8,7 +8,7 @@ go 1.25.6 // https://github.com/googleapis/go-genproto/issues/1015 require ( - cogentcore.org/core v0.3.23 + cogentcore.org/core v0.3.24 github.com/cogentcore/readline v0.1.3 github.com/cogentcore/yaegi v0.0.0-20260116172027-700fbf8949f3 github.com/mitchellh/go-homedir v1.1.0 @@ -58,7 +58,6 @@ require ( github.com/pelletier/go-toml/v2 v2.2.4 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/rivo/uniseg v0.4.7 // indirect - github.com/rogpeppe/go-internal v1.13.1 // indirect github.com/tdewolff/parse/v2 v2.8.5 // indirect golang.org/x/crypto v0.49.0 // indirect golang.org/x/image v0.39.0 // indirect @@ -67,8 +66,8 @@ require ( golang.org/x/sync v0.20.0 // indirect golang.org/x/sys v0.42.0 // indirect golang.org/x/text v0.36.0 // indirect - google.golang.org/genproto v0.0.0-20260414002931-afd174a4e478 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20260406210006-6f92a3bedf2d // indirect + google.golang.org/genproto v0.0.0-20260420184626-e10c466a9529 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20260414002931-afd174a4e478 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect modernc.org/knuth v0.5.4 // indirect modernc.org/token v1.1.0 // indirect diff --git a/go.sum b/go.sum index 8a18b786..a01aa555 100644 --- a/go.sum +++ b/go.sum @@ -1,7 +1,7 @@ codeberg.org/go-pdf/fpdf v0.11.0 h1:n3I8WISQ1cr0S2rvx9DOlE/GypbcimMWqLpel3slHmY= codeberg.org/go-pdf/fpdf v0.11.0/go.mod h1:Y0DGRAdZ0OmnZPvjbMp/1bYxmIPxm0ws4tfoPOc4LjU= -cogentcore.org/core v0.3.23 h1:50dQPFWNeJ9hI45rDCjRkvleJXdtfQjXfMIMOZgfC1M= -cogentcore.org/core v0.3.23/go.mod h1:JUM27+rY4+89M1vJ4xA50re76RHF3PqxRqfgDfLj8Us= +cogentcore.org/core v0.3.24 h1:/PoiyQb5MB238RTw7mUuGdVU7Rt0kD81seVjOoGPMRs= +cogentcore.org/core v0.3.24/go.mod h1:+5R2kihBnWrFmRlYd8yJ8JmRuLsGgCXXgvcgLk/YDEI= git.sr.ht/~sbinet/cmpimg v0.1.0 h1:E0zPRk2muWuCqSKSVZIWsgtU9pjsw3eKHi8VmQeScxo= git.sr.ht/~sbinet/cmpimg v0.1.0/go.mod h1:FU12psLbF4TfNXkKH2ZZQ29crIqoiqTZmeQ7dkp/pxE= github.com/Bios-Marcel/wastebasket/v2 v2.0.3 h1:TkoDPcSqluhLGE+EssHu7UGmLgUEkWg7kNyHyyJ3Q9g= @@ -167,10 +167,12 @@ golang.org/x/tools v0.43.0/go.mod h1:uHkMso649BX2cZK6+RpuIPXS3ho2hZo4FVwfoy1vIk0 golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= gonum.org/v1/gonum v0.17.0 h1:VbpOemQlsSMrYmn7T2OUvQ4dqxQXU+ouZFQsZOx50z4= gonum.org/v1/gonum v0.17.0/go.mod h1:El3tOrEuMpv2UdMrbNlKEh9vd86bmQ6vqIcDwxEOc1E= -google.golang.org/genproto v0.0.0-20260414002931-afd174a4e478 h1:aLsVTW0lZ8+IY5u/ERjZSCvAmhuR7slKzyha3YikDNA= -google.golang.org/genproto v0.0.0-20260414002931-afd174a4e478/go.mod h1:YJAzKjfHIUHb9T+bfu8L7mthAp7VVXQBUs1PLdBWS7M= +google.golang.org/genproto v0.0.0-20260420184626-e10c466a9529 h1:QoMBg0moLIlB/eucPzc+ID5SgPZWuirtjAn3l8nW2Dg= +google.golang.org/genproto v0.0.0-20260420184626-e10c466a9529/go.mod h1:EjLmDZ8liSLBrCTK5vP+bGIxRQHE3ovGvOI0CzGk1PI= google.golang.org/genproto/googleapis/rpc v0.0.0-20260406210006-6f92a3bedf2d h1:wT2n40TBqFY6wiwazVK9/iTWbsQrgk5ZfCSVFLO9LQA= google.golang.org/genproto/googleapis/rpc v0.0.0-20260406210006-6f92a3bedf2d/go.mod h1:4Hqkh8ycfw05ld/3BWL7rJOSfebL2Q+DVDeRgYgxUU8= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260414002931-afd174a4e478 h1:RmoJA1ujG+/lRGNfUnOMfhCy5EipVMyvUE+KNbPbTlw= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260414002931-afd174a4e478/go.mod h1:4Hqkh8ycfw05ld/3BWL7rJOSfebL2Q+DVDeRgYgxUU8= google.golang.org/grpc v1.80.0 h1:Xr6m2WmWZLETvUNvIUmeD5OAagMw3FiKmMlTdViWsHM= google.golang.org/grpc v1.80.0/go.mod h1:ho/dLnxwi3EDJA4Zghp7k2Ec1+c2jqup0bFkw07bwF4= google.golang.org/protobuf v1.36.11 h1:fV6ZwhNocDyBLK0dj+fg8ektcVegBBuEolpbTQyBNVE= From 5fe8bfed473e133f75ecdb80c6f837d155e8008e Mon Sep 17 00:00:00 2001 From: "Randall C. O'Reilly" Date: Sat, 25 Apr 2026 14:06:28 +0200 Subject: [PATCH 3/3] update to core 3.25.. --- go.mod | 2 +- go.sum | 6 ++---- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/go.mod b/go.mod index 11cdd6e2..a66108db 100644 --- a/go.mod +++ b/go.mod @@ -8,7 +8,7 @@ go 1.25.6 // https://github.com/googleapis/go-genproto/issues/1015 require ( - cogentcore.org/core v0.3.24 + cogentcore.org/core v0.3.25 github.com/cogentcore/readline v0.1.3 github.com/cogentcore/yaegi v0.0.0-20260116172027-700fbf8949f3 github.com/mitchellh/go-homedir v1.1.0 diff --git a/go.sum b/go.sum index a01aa555..c333e856 100644 --- a/go.sum +++ b/go.sum @@ -1,7 +1,7 @@ codeberg.org/go-pdf/fpdf v0.11.0 h1:n3I8WISQ1cr0S2rvx9DOlE/GypbcimMWqLpel3slHmY= codeberg.org/go-pdf/fpdf v0.11.0/go.mod h1:Y0DGRAdZ0OmnZPvjbMp/1bYxmIPxm0ws4tfoPOc4LjU= -cogentcore.org/core v0.3.24 h1:/PoiyQb5MB238RTw7mUuGdVU7Rt0kD81seVjOoGPMRs= -cogentcore.org/core v0.3.24/go.mod h1:+5R2kihBnWrFmRlYd8yJ8JmRuLsGgCXXgvcgLk/YDEI= +cogentcore.org/core v0.3.25 h1:nrECnVQIl/JvyGFae5c/KystUAlLwSmIsjW1MkpkpiU= +cogentcore.org/core v0.3.25/go.mod h1:+5R2kihBnWrFmRlYd8yJ8JmRuLsGgCXXgvcgLk/YDEI= git.sr.ht/~sbinet/cmpimg v0.1.0 h1:E0zPRk2muWuCqSKSVZIWsgtU9pjsw3eKHi8VmQeScxo= git.sr.ht/~sbinet/cmpimg v0.1.0/go.mod h1:FU12psLbF4TfNXkKH2ZZQ29crIqoiqTZmeQ7dkp/pxE= github.com/Bios-Marcel/wastebasket/v2 v2.0.3 h1:TkoDPcSqluhLGE+EssHu7UGmLgUEkWg7kNyHyyJ3Q9g= @@ -169,8 +169,6 @@ gonum.org/v1/gonum v0.17.0 h1:VbpOemQlsSMrYmn7T2OUvQ4dqxQXU+ouZFQsZOx50z4= gonum.org/v1/gonum v0.17.0/go.mod h1:El3tOrEuMpv2UdMrbNlKEh9vd86bmQ6vqIcDwxEOc1E= google.golang.org/genproto v0.0.0-20260420184626-e10c466a9529 h1:QoMBg0moLIlB/eucPzc+ID5SgPZWuirtjAn3l8nW2Dg= google.golang.org/genproto v0.0.0-20260420184626-e10c466a9529/go.mod h1:EjLmDZ8liSLBrCTK5vP+bGIxRQHE3ovGvOI0CzGk1PI= -google.golang.org/genproto/googleapis/rpc v0.0.0-20260406210006-6f92a3bedf2d h1:wT2n40TBqFY6wiwazVK9/iTWbsQrgk5ZfCSVFLO9LQA= -google.golang.org/genproto/googleapis/rpc v0.0.0-20260406210006-6f92a3bedf2d/go.mod h1:4Hqkh8ycfw05ld/3BWL7rJOSfebL2Q+DVDeRgYgxUU8= google.golang.org/genproto/googleapis/rpc v0.0.0-20260414002931-afd174a4e478 h1:RmoJA1ujG+/lRGNfUnOMfhCy5EipVMyvUE+KNbPbTlw= google.golang.org/genproto/googleapis/rpc v0.0.0-20260414002931-afd174a4e478/go.mod h1:4Hqkh8ycfw05ld/3BWL7rJOSfebL2Q+DVDeRgYgxUU8= google.golang.org/grpc v1.80.0 h1:Xr6m2WmWZLETvUNvIUmeD5OAagMw3FiKmMlTdViWsHM=