mujoco-react 9.6.0 → 10.0.0

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/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 JointStateResult, $ as Bodies, a0 as BodyStateResult, a1 as Actuators, a2 as CtrlHandle, a3 as ContactInfo, a4 as KeyboardTeleopConfig, a5 as KeyboardIkTargetConfig, a6 as PolicyConfig, a7 as PolicyVector, a8 as ObservationHandle, a9 as TrajectoryInput, aa as TrajectoryStateChangeInput, ab as PlaybackState, ac as TrajectoryFrame, ad as FrameCaptureOptions, ae as FrameCaptureResult, af as FrameCaptureBlobResult, ag as FrameCaptureAPI, ah as CameraFrameCaptureOptions, ai as CameraFrameCaptureAPI, aj as CameraFrameSequenceRecorderAPI, ak as Cameras, al as CameraFrameSequenceCamera, am as CameraFrameCaptureSource, an as CameraFrameSequenceOptions, ao as CameraFrameSequenceResult, ap as CameraFrameCaptureResult, aq as CameraFrameCaptureBlobResult } from './types-C1rwH74Y.js';
3
- export { ar as BodyInfo, as as CameraFrameCaptureQuaternion, at as CameraFrameCaptureVector3, au as CameraFrameSequenceCameraSummary, av as CameraFrameSequenceFrame, aw as CameraFrameSequenceSampleInput, ax as CameraFrameSequenceStepInput, ay as CameraInfo, az as ControlJointInfo, aA as FrameCaptureStatus, aB as FrameCaptureTarget, aC as FrameCaptureTargetRef, aD as Geoms, aE as IKSolveFn, aF as IkGizmoDragInput, aG as IkSolveInput, aH as JointInfo, aI as KeyBinding, aJ as KeyboardIkTargetAction, aK as KeyboardIkTargetBinding, aL as Keyframes, aM as ModelOptions, aN as MujocoContact, aO as MujocoContactArray, aP as MujocoFrameCaptureOptions, aQ as ObservationLayoutItem, aR as ObservationOutput, aS as PhysicsConfig, aT as PhysicsStepInput, aU as PolicyActionInput, aV as PolicyInferenceInput, aW as PolicyObservationInput, aX as RayHit, aY as Register, aZ as RegisteredRobotMap, a_ as ResetCallbackInput, a$ as ResolvedScenarioCameraConfig, b0 as ResolvedScenarioMaterialConfig, b1 as ResourceSelector, b2 as RobotActuators, b3 as RobotBodies, b4 as RobotCameras, b5 as RobotGeoms, b6 as RobotJoints, b7 as RobotKeyframes, b8 as RobotResource, b9 as RobotResources, ba as RobotSensors, bb as RobotSites, bc as Robots, bd as ScenarioCameraConfig, be as ScenarioMaterialConfig, bf as SceneMarker, bg as SceneObject, bh as SensorResult, bi as SiteInfo, bj as SplatAssetConfig, bk as SplatScenarioConfig, bl as StateSnapshot, bm as TrajectoryData, bn as TrajectoryFrameCallbackInput, bo as VisualScenarioMaterialFilterInput, bp as XmlPatch, bq as getContact, br as registerRobotResources } from './types-C1rwH74Y.js';
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 RobotLoader + patchSingleRobot approach.
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(RobotActuators.mobile.leftWheel);
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 ?? RobotActuators.franka.actuator1);
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 (stored as Float64Array of length 1).
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): JointStateResult;
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-4JHALVB2.js';
2
- export { CAPTURE_EXCLUDE_KEY, RobotActuators, RobotBodies, RobotCameras, RobotGeoms, RobotJoints, RobotKeyframes, RobotResources, RobotSensors, RobotSites, ScenarioLighting, SplatEnvironment, SplatEnvironmentReadinessStatus, VisualScenarioEffects, captureCameraFrame, captureCameraFrameBlob, createCameraFrameCaptureSession, createPairedSplatEnvironment, createSparkSplatViewerUrl, createSplatEnvironmentUserData, createSplatSceneConfig, createVisualScenarioExecutionContext, getContact, getScenarioBackground, getScenarioCameraPosition, getSplatEnvironmentReadiness, registerRobotResources, renderCameraFrameToCanvas, useSplatEnvironment, useSplatSceneConfig, useVisualScenarioEffects, useVisualScenarioExecutionContext, withSplatEnvironment } from './chunk-4JHALVB2.js';
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';
@@ -5790,13 +5790,15 @@ function useSensors() {
5790
5790
  return result;
5791
5791
  }, [mjModelRef, status]);
5792
5792
  }
5793
- function useJointState(name) {
5793
+ function useJointState(name, options = {}) {
5794
5794
  const { mjModelRef, mjDataRef, status } = useMujocoContext();
5795
5795
  const jointIdRef = useRef(-1);
5796
5796
  const qposAdrRef = useRef(0);
5797
5797
  const dofAdrRef = useRef(0);
5798
5798
  const qposDimRef = useRef(1);
5799
5799
  const dofDimRef = useRef(1);
5800
+ const kindRef = useRef(options.kind ?? "auto");
5801
+ kindRef.current = options.kind ?? "auto";
5800
5802
  const positionRef = useRef(0);
5801
5803
  const velocityRef = useRef(0);
5802
5804
  const posBufferRef = useRef(null);
@@ -5820,7 +5822,7 @@ function useJointState(name) {
5820
5822
  qposDimRef.current = 1;
5821
5823
  dofDimRef.current = 1;
5822
5824
  }
5823
- if (qposDimRef.current > 1) {
5825
+ if (kindRef.current === "array" || qposDimRef.current > 1) {
5824
5826
  posBufferRef.current = new Float64Array(qposDimRef.current);
5825
5827
  velBufferRef.current = new Float64Array(dofDimRef.current);
5826
5828
  } else {
@@ -5831,12 +5833,12 @@ function useJointState(name) {
5831
5833
  }
5832
5834
  }
5833
5835
  jointIdRef.current = -1;
5834
- }, [name, status, mjModelRef]);
5836
+ }, [name, options.kind, status, mjModelRef]);
5835
5837
  useAfterPhysicsStep(({ data }) => {
5836
5838
  if (jointIdRef.current < 0) return;
5837
5839
  const qa = qposAdrRef.current;
5838
5840
  const da = dofAdrRef.current;
5839
- if (qposDimRef.current === 1) {
5841
+ if (kindRef.current === "scalar" || kindRef.current === "auto" && qposDimRef.current === 1) {
5840
5842
  positionRef.current = data.qpos[qa];
5841
5843
  velocityRef.current = data.qvel[da];
5842
5844
  } else {