mujoco-react 9.6.0 → 10.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +60 -62
- package/dist/{chunk-4JHALVB2.js → chunk-QTCAVQS6.js} +29 -29
- package/dist/{chunk-4JHALVB2.js.map → chunk-QTCAVQS6.js.map} +1 -1
- package/dist/index.d.ts +14 -8
- package/dist/index.js +19 -7
- package/dist/index.js.map +1 -1
- package/dist/spark.d.ts +1 -1
- package/dist/spark.js +1 -1
- package/dist/{types-C1rwH74Y.d.ts → types-BaSMqJHT.d.ts} +53 -34
- package/dist/vite.js +21 -21
- package/dist/vite.js.map +1 -1
- package/package.json +1 -1
- package/src/core/GenericIK.ts +12 -1
- package/src/core/SceneLoader.ts +1 -1
- package/src/core/createController.tsx +2 -2
- package/src/hooks/useJointState.ts +18 -7
- package/src/index.ts +17 -13
- package/src/rendering/Reflector.ts +7 -5
- package/src/types.ts +79 -56
- package/src/vite.ts +22 -22
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
-
import { M as MujocoContextValue, a as MujocoCanvasProps, b as MujocoSimAPI, S as SceneConfig, R as ReadyCallbackInput, c as StepCallbackInput, d as SelectionCallbackInput, e as MujocoModule, P as PhysicsStepCallback, f as MujocoModel, g as MujocoData, C as ControlGroupInfo, A as ActuatedJointInfo, h as ControlGroupSelector, O as ObservationConfig, i as ObservationResult, I as IkConfig, j as IkContextValue, B as BodyProps, k as IkGizmoProps, D as DragInteractionProps, l as SceneLightsProps, m as ScenarioLightingProps, n as SplatEnvironmentProps, V as VisualScenarioEffectsProps, o as VisualScenarioConfig, p as SplatRendererKind, q as PairedSplatEnvironmentConfig, r as SplatFormat, s as SplatCollisionProxyConfig, t as SplatEnvironmentReadiness, u as SplatCollisionPrimitive, v as SplatEnvironmentReadinessStatus, w as SplatSceneConfigInput, x as SplatSceneConfigState, y as VisualScenarioExecutionContextInput, z as VisualScenarioExecutionContext, E as ScenarioLightingPreset, F as SplatEnvironmentMetadataInput, G as SplatEnvironmentMetadata, H as SplatSceneInput, J as DebugProps, K as GeomInfo, L as ContactListenerProps, T as TrajectoryPlayerProps, N as ActuatorInfo, Q as Sites, U as SitePositionResult, W as Sensors, X as SensorHandle, Y as SensorInfo, Z as Joints, _ as
|
|
3
|
-
export {
|
|
2
|
+
import { M as MujocoContextValue, a as MujocoCanvasProps, b as MujocoSimAPI, S as SceneConfig, R as ReadyCallbackInput, c as StepCallbackInput, d as SelectionCallbackInput, e as MujocoModule, P as PhysicsStepCallback, f as MujocoModel, g as MujocoData, C as ControlGroupInfo, A as ActuatedJointInfo, h as ControlGroupSelector, O as ObservationConfig, i as ObservationResult, I as IkConfig, j as IkContextValue, B as BodyProps, k as IkGizmoProps, D as DragInteractionProps, l as SceneLightsProps, m as ScenarioLightingProps, n as SplatEnvironmentProps, V as VisualScenarioEffectsProps, o as VisualScenarioConfig, p as SplatRendererKind, q as PairedSplatEnvironmentConfig, r as SplatFormat, s as SplatCollisionProxyConfig, t as SplatEnvironmentReadiness, u as SplatCollisionPrimitive, v as SplatEnvironmentReadinessStatus, w as SplatSceneConfigInput, x as SplatSceneConfigState, y as VisualScenarioExecutionContextInput, z as VisualScenarioExecutionContext, E as ScenarioLightingPreset, F as SplatEnvironmentMetadataInput, G as SplatEnvironmentMetadata, H as SplatSceneInput, J as DebugProps, K as GeomInfo, L as ContactListenerProps, T as TrajectoryPlayerProps, N as ActuatorInfo, Q as Sites, U as SitePositionResult, W as Sensors, X as SensorHandle, Y as SensorInfo, Z as Joints, _ as ScalarJointStateResult, $ as ArrayJointStateResult, a0 as JointStateOptions, a1 as JointStateResult, a2 as Bodies, a3 as BodyStateResult, a4 as Actuators, a5 as CtrlHandle, a6 as ContactInfo, a7 as KeyboardTeleopConfig, a8 as KeyboardIkTargetConfig, a9 as PolicyConfig, aa as PolicyVector, ab as ObservationHandle, ac as TrajectoryInput, ad as TrajectoryStateChangeInput, ae as PlaybackState, af as TrajectoryFrame, ag as FrameCaptureOptions, ah as FrameCaptureResult, ai as FrameCaptureBlobResult, aj as FrameCaptureAPI, ak as CameraFrameCaptureOptions, al as CameraFrameCaptureAPI, am as CameraFrameSequenceRecorderAPI, an as Cameras, ao as CameraFrameSequenceCamera, ap as CameraFrameCaptureSource, aq as CameraFrameSequenceOptions, ar as CameraFrameSequenceResult, as as CameraFrameCaptureResult, at as CameraFrameCaptureBlobResult } from './types-BaSMqJHT.js';
|
|
3
|
+
export { au as BodyInfo, av as CameraFrameCaptureQuaternion, aw as CameraFrameCaptureVector3, ax as CameraFrameSequenceCameraSummary, ay as CameraFrameSequenceFrame, az as CameraFrameSequenceSampleInput, aA as CameraFrameSequenceStepInput, aB as CameraInfo, aC as ControlJointInfo, aD as FrameCaptureStatus, aE as FrameCaptureTarget, aF as FrameCaptureTargetRef, aG as Geoms, aH as IKSolveFn, aI as IkGizmoDragInput, aJ as IkSolveInput, aK as JointInfo, aL as JointStateKind, aM as KeyBinding, aN as KeyboardIkTargetAction, aO as KeyboardIkTargetBinding, aP as Keyframes, aQ as ModelActuators, aR as ModelBodies, aS as ModelCameras, aT as ModelGeoms, aU as ModelJoints, aV as ModelKeyframes, aW as ModelOptions, aX as ModelResource, aY as ModelResources, aZ as ModelSensors, a_ as ModelSites, a$ as Models, b0 as MujocoContact, b1 as MujocoContactArray, b2 as MujocoFrameCaptureOptions, b3 as ObservationLayoutItem, b4 as ObservationOutput, b5 as PhysicsConfig, b6 as PhysicsStepInput, b7 as PolicyActionInput, b8 as PolicyInferenceInput, b9 as PolicyObservationInput, ba as RayHit, bb as Register, bc as RegisteredModelMap, bd as ResetCallbackInput, be as ResolvedScenarioCameraConfig, bf as ResolvedScenarioMaterialConfig, bg as ResourceSelector, bh as ScenarioCameraConfig, bi as ScenarioMaterialConfig, bj as SceneMarker, bk as SceneObject, bl as SensorResult, bm as SiteInfo, bn as SplatAssetConfig, bo as SplatScenarioConfig, bp as StateSnapshot, bq as TrajectoryData, br as TrajectoryFrameCallbackInput, bs as VisualScenarioMaterialFilterInput, bt as XmlPatch, bu as getContact, bv as registerModelResources } from './types-BaSMqJHT.js';
|
|
4
4
|
import * as React$1 from 'react';
|
|
5
5
|
import { ThreeElements } from '@react-three/fiber';
|
|
6
6
|
import * as THREE from 'three';
|
|
@@ -196,7 +196,7 @@ interface LoadResult {
|
|
|
196
196
|
mjData: MujocoData;
|
|
197
197
|
}
|
|
198
198
|
/**
|
|
199
|
-
* Config-driven scene loader — replaces the old
|
|
199
|
+
* Config-driven scene loader — replaces the old single-model patching approach.
|
|
200
200
|
*/
|
|
201
201
|
declare function loadScene(mujoco: MujocoModule, config: SceneConfig, onProgress?: (msg: string) => void): Promise<LoadResult>;
|
|
202
202
|
|
|
@@ -242,7 +242,7 @@ type ControllerComponent<TConfig> = React.FC<{
|
|
|
242
242
|
* const MyController = createController<{ speed: number }>(
|
|
243
243
|
* { name: 'my-controller', defaultConfig: { speed: 1.0 } },
|
|
244
244
|
* function MyControllerImpl({ config }) {
|
|
245
|
-
* const wheel = useCtrl(
|
|
245
|
+
* const wheel = useCtrl(ModelActuators.mobile.leftWheel);
|
|
246
246
|
*
|
|
247
247
|
* useBeforePhysicsStep(({ data }) => {
|
|
248
248
|
* wheel.write(config.speed);
|
|
@@ -271,7 +271,7 @@ declare function createController<TConfig>(options: ControllerOptions<TConfig>,
|
|
|
271
271
|
* { name: 'useMyController', defaultConfig: { gain: 1.0 } },
|
|
272
272
|
* function useMyControllerImpl(config) {
|
|
273
273
|
* // config is MyConfig | null — hooks must be called unconditionally
|
|
274
|
-
* const joint = useCtrl(config?.actuator ??
|
|
274
|
+
* const joint = useCtrl(config?.actuator ?? ModelActuators.franka.actuator1);
|
|
275
275
|
*
|
|
276
276
|
* useBeforePhysicsStep(({ data }) => {
|
|
277
277
|
* if (!config) return;
|
|
@@ -604,11 +604,17 @@ declare function useSensors(): SensorInfo[];
|
|
|
604
604
|
* Track a MuJoCo joint's position and velocity by name.
|
|
605
605
|
* Values are updated every physics frame via refs (no re-renders).
|
|
606
606
|
*
|
|
607
|
-
* For hinge/slide joints, position/velocity are scalar
|
|
607
|
+
* For hinge/slide joints, position/velocity are scalar numbers.
|
|
608
608
|
* For ball joints, position is quat (4), velocity is angular vel (3).
|
|
609
609
|
* For free joints, position is pos+quat (7), velocity is lin+ang vel (6).
|
|
610
610
|
*/
|
|
611
|
-
declare function useJointState(name: Joints
|
|
611
|
+
declare function useJointState(name: Joints, options: {
|
|
612
|
+
kind: 'scalar';
|
|
613
|
+
}): ScalarJointStateResult;
|
|
614
|
+
declare function useJointState(name: Joints, options: {
|
|
615
|
+
kind: 'array';
|
|
616
|
+
}): ArrayJointStateResult;
|
|
617
|
+
declare function useJointState(name: Joints, options?: JointStateOptions): JointStateResult;
|
|
612
618
|
|
|
613
619
|
/**
|
|
614
620
|
* @license
|
|
@@ -1195,4 +1201,4 @@ interface CameraAnimationAPI {
|
|
|
1195
1201
|
*/
|
|
1196
1202
|
declare function useCameraAnimation(): CameraAnimationAPI;
|
|
1197
1203
|
|
|
1198
|
-
export { ActuatedJointInfo, ActuatorInfo, Actuators, Bodies, Body, BodyProps, BodyStateResult, CAPTURE_EXCLUDE_KEY, type CameraAnimationAPI, CameraFrameCaptureAPI, CameraFrameCaptureBlobResult, CameraFrameCaptureOptions, CameraFrameCaptureResult, CameraFrameCaptureSource, type CameraFrameMountSelector, CameraFrameSequenceCamera, CameraFrameSequenceOptions, CameraFrameSequenceRecorderAPI, CameraFrameSequenceResult, Cameras, ContactInfo, ContactListener, ContactListenerProps, ContactMarkers, ControlGroupInfo, ControlGroupSelector, type ControllerComponent, type ControllerOptions, type CreateMountedCameraFrameSequenceManifestOptions, type CreateMountedCameraFrameSequencePlanOptions, CtrlHandle, Debug, DebugProps, DragInteraction, DragInteractionProps, FlexRenderer, FrameCaptureAPI, FrameCaptureBlobResult, FrameCaptureOptions, FrameCaptureResult, GeomInfo, IkConfig, IkContextValue, IkGizmo, IkGizmoProps, InstancedGeomRenderer, JointStateResult, Joints, KeyboardIkTargetConfig, KeyboardTeleopConfig, type MountedCameraFrameCaptureSource, type MountedCameraFrameSequenceCameraOptions, type MountedCameraFrameSequenceDefaults, type MountedCameraFrameSequenceManifest, MountedCameraFrameSequenceManifestStatus, type MountedCameraFrameSequencePlan, type MountedCameraFrameSequencePlanOptions, type MountedCameraFrameSequenceReadiness, MountedCameraFrameSequenceReadinessStatus, type MountedCameraFrameSequenceRecordOptions, type MountedCameraFrameSequenceRecordResult, type MountedCameraFrameSequenceRecorderTarget, type MountedCameraFrameSequenceSourceReadiness, type MountedCameraFrameSequenceStreamSummary, type MountedCameraFrameSourceSuggestion, MountedCameraFrameSourceSuggestionMatch, type MountedCameraSequencePlanOptions, type MountedCameraSequenceReadiness, type MountedCameraSequenceRecordOptions, type MountedCameraSequenceRecordResult, type MountedCameraSequenceRecorderAPI, MujocoCanvas, MujocoCanvasProps, MujocoContextValue, MujocoData, type MujocoLoader, type MujocoLoaderOptions, MujocoModel, MujocoModule, MujocoPhysics, type MujocoPhysicsProps, MujocoProvider, type MujocoProviderProps, MujocoSimAPI, MujocoSimProvider, type MujocoWasmVariant, type NamedCameraFrameResource, ObservationConfig, ObservationHandle, ObservationResult, PairedSplatEnvironmentConfig, PhysicsStepCallback, PlaybackState, PolicyConfig, PolicyVector, ReadyCallbackInput, type ResolveMountedCameraFrameSourceOptions, type ResolvedMountedCameraFrameSource, ScenarioLighting, ScenarioLightingPreset, ScenarioLightingProps, SceneConfig, SceneLights, SceneLightsProps, SelectionCallbackInput, SensorHandle, SensorInfo, Sensors, SitePositionResult, Sites, SplatCollisionPrimitive, SplatCollisionProxyConfig, type SplatCollisionProxyGeomPreview, type SplatCollisionProxyGeomsState, SplatCollisionProxyPreview, type SplatCollisionProxyPreviewProps, type SplatCollisionProxyPreviewStatus, type SplatCollisionProxyPreviewVector3, SplatEnvironment, SplatEnvironmentMetadata, SplatEnvironmentMetadataInput, SplatEnvironmentProps, SplatEnvironmentReadiness, SplatEnvironmentReadinessStatus, SplatFormat, SplatRendererKind, SplatSceneConfigInput, SplatSceneConfigState, SplatSceneInput, StepCallbackInput, TendonRenderer, TrajectoryFrame, TrajectoryInput, TrajectoryPlayer, TrajectoryPlayerProps, TrajectoryStateChangeInput, type UseSplatCollisionProxyGeomsOptions, VisualScenarioConfig, VisualScenarioEffects, VisualScenarioEffectsProps, VisualScenarioExecutionContext, VisualScenarioExecutionContextInput, buildObservation, canFetchSplatCollisionProxyXml, captureCameraFrame, captureCameraFrameBlob, captureFrame, captureFrameBlob, createCameraFrameCaptureSession, createContiguousControlGroup, createController, createControllerHook, createMountedCameraFrameSequenceManifest, createMountedCameraFrameSequencePlan, createMountedCameraFrameSequencePlanFromApi, createMountedCameraFrameSequenceReadiness, createMountedCameraFrameSourceSuggestions, createPairedSplatEnvironment, createSparkSplatViewerUrl, createSplatEnvironmentUserData, createSplatSceneConfig, createVisualScenarioExecutionContext, fetchSplatCollisionProxyXml, findActuatorByName, findBodyByName, findGeomByName, findJointByName, findKeyframeByName, findSensorByName, findSiteByName, findTendonByName, getActuatedJoints, getCameraFrameCaptureSourceTarget, getControlMap, getMountedCameraFrameCaptureSource, getName, getScenarioBackground, getScenarioCameraPosition, getSplatEnvironmentReadiness, isMountedCameraFrameCaptureSource, loadScene, parseSplatCollisionProxyGeoms, recordMountedCameraFrameSequence, renderCameraFrameToCanvas, resolveControlGroup, resolveMountedCameraFrameSource, useActuators, useAfterPhysicsStep, useBeforePhysicsStep, useBodyMeshes, useBodyState, useCameraAnimation, useCameraFrameCapture, useCameraSequenceRecorder, useContactEvents, useContacts, useCtrl, useCtrlNoise, useFrameCapture, useGamepad, useGravityCompensation, useIkController, useJointState, useKeyboardIkTarget, useKeyboardTeleop, useMountedCameraSequenceRecorder, useMujoco, useMujocoWasm, useObservation, usePolicy, useSceneLights, useSelectionHighlight, useSensor, useSensors, useSitePosition, useSplatCollisionProxyGeoms, useSplatEnvironment, useSplatSceneConfig, useTrajectoryPlayer, useTrajectoryRecorder, useVideoRecorder, useVisualScenarioEffects, useVisualScenarioExecutionContext, withSplatEnvironment };
|
|
1204
|
+
export { ActuatedJointInfo, ActuatorInfo, Actuators, ArrayJointStateResult, Bodies, Body, BodyProps, BodyStateResult, CAPTURE_EXCLUDE_KEY, type CameraAnimationAPI, CameraFrameCaptureAPI, CameraFrameCaptureBlobResult, CameraFrameCaptureOptions, CameraFrameCaptureResult, CameraFrameCaptureSource, type CameraFrameMountSelector, CameraFrameSequenceCamera, CameraFrameSequenceOptions, CameraFrameSequenceRecorderAPI, CameraFrameSequenceResult, Cameras, ContactInfo, ContactListener, ContactListenerProps, ContactMarkers, ControlGroupInfo, ControlGroupSelector, type ControllerComponent, type ControllerOptions, type CreateMountedCameraFrameSequenceManifestOptions, type CreateMountedCameraFrameSequencePlanOptions, CtrlHandle, Debug, DebugProps, DragInteraction, DragInteractionProps, FlexRenderer, FrameCaptureAPI, FrameCaptureBlobResult, FrameCaptureOptions, FrameCaptureResult, GeomInfo, IkConfig, IkContextValue, IkGizmo, IkGizmoProps, InstancedGeomRenderer, JointStateOptions, JointStateResult, Joints, KeyboardIkTargetConfig, KeyboardTeleopConfig, type MountedCameraFrameCaptureSource, type MountedCameraFrameSequenceCameraOptions, type MountedCameraFrameSequenceDefaults, type MountedCameraFrameSequenceManifest, MountedCameraFrameSequenceManifestStatus, type MountedCameraFrameSequencePlan, type MountedCameraFrameSequencePlanOptions, type MountedCameraFrameSequenceReadiness, MountedCameraFrameSequenceReadinessStatus, type MountedCameraFrameSequenceRecordOptions, type MountedCameraFrameSequenceRecordResult, type MountedCameraFrameSequenceRecorderTarget, type MountedCameraFrameSequenceSourceReadiness, type MountedCameraFrameSequenceStreamSummary, type MountedCameraFrameSourceSuggestion, MountedCameraFrameSourceSuggestionMatch, type MountedCameraSequencePlanOptions, type MountedCameraSequenceReadiness, type MountedCameraSequenceRecordOptions, type MountedCameraSequenceRecordResult, type MountedCameraSequenceRecorderAPI, MujocoCanvas, MujocoCanvasProps, MujocoContextValue, MujocoData, type MujocoLoader, type MujocoLoaderOptions, MujocoModel, MujocoModule, MujocoPhysics, type MujocoPhysicsProps, MujocoProvider, type MujocoProviderProps, MujocoSimAPI, MujocoSimProvider, type MujocoWasmVariant, type NamedCameraFrameResource, ObservationConfig, ObservationHandle, ObservationResult, PairedSplatEnvironmentConfig, PhysicsStepCallback, PlaybackState, PolicyConfig, PolicyVector, ReadyCallbackInput, type ResolveMountedCameraFrameSourceOptions, type ResolvedMountedCameraFrameSource, ScalarJointStateResult, ScenarioLighting, ScenarioLightingPreset, ScenarioLightingProps, SceneConfig, SceneLights, SceneLightsProps, SelectionCallbackInput, SensorHandle, SensorInfo, Sensors, SitePositionResult, Sites, SplatCollisionPrimitive, SplatCollisionProxyConfig, type SplatCollisionProxyGeomPreview, type SplatCollisionProxyGeomsState, SplatCollisionProxyPreview, type SplatCollisionProxyPreviewProps, type SplatCollisionProxyPreviewStatus, type SplatCollisionProxyPreviewVector3, SplatEnvironment, SplatEnvironmentMetadata, SplatEnvironmentMetadataInput, SplatEnvironmentProps, SplatEnvironmentReadiness, SplatEnvironmentReadinessStatus, SplatFormat, SplatRendererKind, SplatSceneConfigInput, SplatSceneConfigState, SplatSceneInput, StepCallbackInput, TendonRenderer, TrajectoryFrame, TrajectoryInput, TrajectoryPlayer, TrajectoryPlayerProps, TrajectoryStateChangeInput, type UseSplatCollisionProxyGeomsOptions, VisualScenarioConfig, VisualScenarioEffects, VisualScenarioEffectsProps, VisualScenarioExecutionContext, VisualScenarioExecutionContextInput, buildObservation, canFetchSplatCollisionProxyXml, captureCameraFrame, captureCameraFrameBlob, captureFrame, captureFrameBlob, createCameraFrameCaptureSession, createContiguousControlGroup, createController, createControllerHook, createMountedCameraFrameSequenceManifest, createMountedCameraFrameSequencePlan, createMountedCameraFrameSequencePlanFromApi, createMountedCameraFrameSequenceReadiness, createMountedCameraFrameSourceSuggestions, createPairedSplatEnvironment, createSparkSplatViewerUrl, createSplatEnvironmentUserData, createSplatSceneConfig, createVisualScenarioExecutionContext, fetchSplatCollisionProxyXml, findActuatorByName, findBodyByName, findGeomByName, findJointByName, findKeyframeByName, findSensorByName, findSiteByName, findTendonByName, getActuatedJoints, getCameraFrameCaptureSourceTarget, getControlMap, getMountedCameraFrameCaptureSource, getName, getScenarioBackground, getScenarioCameraPosition, getSplatEnvironmentReadiness, isMountedCameraFrameCaptureSource, loadScene, parseSplatCollisionProxyGeoms, recordMountedCameraFrameSequence, renderCameraFrameToCanvas, resolveControlGroup, resolveMountedCameraFrameSource, useActuators, useAfterPhysicsStep, useBeforePhysicsStep, useBodyMeshes, useBodyState, useCameraAnimation, useCameraFrameCapture, useCameraSequenceRecorder, useContactEvents, useContacts, useCtrl, useCtrlNoise, useFrameCapture, useGamepad, useGravityCompensation, useIkController, useJointState, useKeyboardIkTarget, useKeyboardTeleop, useMountedCameraSequenceRecorder, useMujoco, useMujocoWasm, useObservation, usePolicy, useSceneLights, useSelectionHighlight, useSensor, useSensors, useSitePosition, useSplatCollisionProxyGeoms, useSplatEnvironment, useSplatSceneConfig, useTrajectoryPlayer, useTrajectoryRecorder, useVideoRecorder, useVisualScenarioEffects, useVisualScenarioExecutionContext, withSplatEnvironment };
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { withContacts, getContact, captureCameraFrame, captureCameraFrameBlob, createCameraFrameCaptureSession, CAPTURE_EXCLUDE_KEY } from './chunk-
|
|
2
|
-
export { CAPTURE_EXCLUDE_KEY,
|
|
1
|
+
import { withContacts, getContact, captureCameraFrame, captureCameraFrameBlob, createCameraFrameCaptureSession, CAPTURE_EXCLUDE_KEY } from './chunk-QTCAVQS6.js';
|
|
2
|
+
export { CAPTURE_EXCLUDE_KEY, ModelActuators, ModelBodies, ModelCameras, ModelGeoms, ModelJoints, ModelKeyframes, ModelResources, ModelSensors, ModelSites, ScenarioLighting, SplatEnvironment, SplatEnvironmentReadinessStatus, VisualScenarioEffects, captureCameraFrame, captureCameraFrameBlob, createCameraFrameCaptureSession, createPairedSplatEnvironment, createSparkSplatViewerUrl, createSplatEnvironmentUserData, createSplatSceneConfig, createVisualScenarioExecutionContext, getContact, getScenarioBackground, getScenarioCameraPosition, getSplatEnvironmentReadiness, registerModelResources, renderCameraFrameToCanvas, useSplatEnvironment, useSplatSceneConfig, useVisualScenarioEffects, useVisualScenarioExecutionContext, withSplatEnvironment } from './chunk-QTCAVQS6.js';
|
|
3
3
|
import loadMujoco from '@mujoco/mujoco';
|
|
4
4
|
import defaultMujocoWasmUrl from '@mujoco/mujoco/mujoco.wasm?url';
|
|
5
5
|
import { createContext, forwardRef, useEffect, useContext, useState, useRef, useCallback, useMemo, useLayoutEffect } from 'react';
|
|
@@ -3382,6 +3382,16 @@ var DEFAULTS = {
|
|
|
3382
3382
|
posWeight: 1,
|
|
3383
3383
|
rotWeight: 0.3
|
|
3384
3384
|
};
|
|
3385
|
+
function resolveOptions(opts) {
|
|
3386
|
+
return {
|
|
3387
|
+
maxIterations: opts?.maxIterations ?? DEFAULTS.maxIterations,
|
|
3388
|
+
damping: opts?.damping ?? DEFAULTS.damping,
|
|
3389
|
+
tolerance: opts?.tolerance ?? DEFAULTS.tolerance,
|
|
3390
|
+
epsilon: opts?.epsilon ?? DEFAULTS.epsilon,
|
|
3391
|
+
posWeight: opts?.posWeight ?? DEFAULTS.posWeight,
|
|
3392
|
+
rotWeight: opts?.rotWeight ?? DEFAULTS.rotWeight
|
|
3393
|
+
};
|
|
3394
|
+
}
|
|
3385
3395
|
var GenericIK = class {
|
|
3386
3396
|
mujoco;
|
|
3387
3397
|
constructor(mujoco) {
|
|
@@ -3400,7 +3410,7 @@ var GenericIK = class {
|
|
|
3400
3410
|
* @returns Joint angles array, or null if solver diverged
|
|
3401
3411
|
*/
|
|
3402
3412
|
solve(model, data, siteId, qposAdr, targetPos, targetQuat, currentQ, opts) {
|
|
3403
|
-
const o =
|
|
3413
|
+
const o = resolveOptions(opts);
|
|
3404
3414
|
const n = qposAdr.length;
|
|
3405
3415
|
const savedQpos = new Float64Array(data.qpos.length);
|
|
3406
3416
|
savedQpos.set(data.qpos);
|
|
@@ -5790,13 +5800,15 @@ function useSensors() {
|
|
|
5790
5800
|
return result;
|
|
5791
5801
|
}, [mjModelRef, status]);
|
|
5792
5802
|
}
|
|
5793
|
-
function useJointState(name) {
|
|
5803
|
+
function useJointState(name, options = {}) {
|
|
5794
5804
|
const { mjModelRef, mjDataRef, status } = useMujocoContext();
|
|
5795
5805
|
const jointIdRef = useRef(-1);
|
|
5796
5806
|
const qposAdrRef = useRef(0);
|
|
5797
5807
|
const dofAdrRef = useRef(0);
|
|
5798
5808
|
const qposDimRef = useRef(1);
|
|
5799
5809
|
const dofDimRef = useRef(1);
|
|
5810
|
+
const kindRef = useRef(options.kind ?? "auto");
|
|
5811
|
+
kindRef.current = options.kind ?? "auto";
|
|
5800
5812
|
const positionRef = useRef(0);
|
|
5801
5813
|
const velocityRef = useRef(0);
|
|
5802
5814
|
const posBufferRef = useRef(null);
|
|
@@ -5820,7 +5832,7 @@ function useJointState(name) {
|
|
|
5820
5832
|
qposDimRef.current = 1;
|
|
5821
5833
|
dofDimRef.current = 1;
|
|
5822
5834
|
}
|
|
5823
|
-
if (qposDimRef.current > 1) {
|
|
5835
|
+
if (kindRef.current === "array" || qposDimRef.current > 1) {
|
|
5824
5836
|
posBufferRef.current = new Float64Array(qposDimRef.current);
|
|
5825
5837
|
velBufferRef.current = new Float64Array(dofDimRef.current);
|
|
5826
5838
|
} else {
|
|
@@ -5831,12 +5843,12 @@ function useJointState(name) {
|
|
|
5831
5843
|
}
|
|
5832
5844
|
}
|
|
5833
5845
|
jointIdRef.current = -1;
|
|
5834
|
-
}, [name, status, mjModelRef]);
|
|
5846
|
+
}, [name, options.kind, status, mjModelRef]);
|
|
5835
5847
|
useAfterPhysicsStep(({ data }) => {
|
|
5836
5848
|
if (jointIdRef.current < 0) return;
|
|
5837
5849
|
const qa = qposAdrRef.current;
|
|
5838
5850
|
const da = dofAdrRef.current;
|
|
5839
|
-
if (qposDimRef.current === 1) {
|
|
5851
|
+
if (kindRef.current === "scalar" || kindRef.current === "auto" && qposDimRef.current === 1) {
|
|
5840
5852
|
positionRef.current = data.qpos[qa];
|
|
5841
5853
|
velocityRef.current = data.qvel[da];
|
|
5842
5854
|
} else {
|