---
title: 'ScrewSplat: Articulated Object Recognition'
url: https://www.emergentmind.com/topics/screwsplat
type: topic
---

# ScrewSplat: Articulated Object Recognition

Searching arXiv for the named paper and closely related 3DGS/articulated-object work to ground the article.
ScrewSplat is an end-to-end method for articulated object recognition from RGB-only observations that unifies kinematic screw modeling with 3D Gaussian Splatting in a single end-to-end optimization. From multi-view images across multiple articulation states, it recovers the object’s part-aware 3D geometry, the number and types of joints, the joint screw axes and positions, per-configuration joint angles, and part segmentation, without category priors, depth, pre-known joint counts, or multi-stage correspondence/clustering pipelines. The method assumes that all movable parts articulate with respect to a single static base and that multi-view RGB images are available for multiple configurations; camera intrinsics and extrinsics are assumed known during reconstruction [2508.02146].

## 1. Problem setting and representational scope

The inputs are multi-view RGB images $\{I_{vk}\}$ from $N_v$ camera poses $v = 1,\ldots,N_v$ and $n_a$ configurations $k = 1,\ldots,n_a$ of an unknown articulated object. For real-world data, images are masked with a pretrained segmenter, SAM. No depth is used. The outputs are a part-aware Gaussian scene representation for geometry and appearance; the set of active joints with types, screw axes $S = [\omega\ v] \in \mathbb{R}^6$, and per-configuration joint angles $\theta_k \in \mathbb{R}^{n_s}$; part segmentation as soft assignments of Gaussians to parts and a static base; and optional joint limits inferred post hoc as elementwise min–max of optimized $\theta_k$ [2508.02146].

Two assumptions define the main scope. First, all movable parts articulate with respect to a single static base; no kinematic chains are modeled in the main method. Second, the method operates on multi-view RGB observations across multiple articulation states. Within that scope, ScrewSplat explicitly avoids several common constraints: the number of parts and joints is unknown a priori; there are no category priors; there is no depth input; and there is no dependence on point correspondences or discrete pre-segmentation.

A plausible implication is that the method is positioned against articulated-object pipelines in which geometry reconstruction, correspondence estimation, part clustering, and joint fitting are separate stages. ScrewSplat instead treats part discovery and kinematic estimation as latent variables inside a single differentiable rendering objective.

## 2. Kinematic model: screw axes, joint types, and rigid motion

ScrewSplat uses screw theory as the motion parameterization. A screw axis $S \in \mathbb{R}^6$ is written as $S = [\omega\ v]$, with two special cases. For a revolute joint, the motion is pure rotation about a unit axis $\omega$ with zero pitch $h = 0$, so $\|\omega\| = 1$ and $v = -\omega \times q$, where $q$ is any point on the axis. For a prismatic joint, the motion is pure translation along the axis, so $\omega = 0$ and $\|v\| = 1$ [2508.02146].

Let $[\omega]_\times$ be the $3 \times 3$ skew-symmetric matrix of $\omega$,
$$
[\omega]_\times =
\begin{bmatrix}
0 & -\omega_3 & \omega_2 \\
\omega_3 & 0 & -\omega_1 \\
-\omega_2 & \omega_1 & 0
\end{bmatrix}.
$$
The associated $4 \times 4$ twist matrix is
$$
[S] =
\begin{bmatrix}
[\omega]_\times & v \\
0 & 0
\end{bmatrix}.
$$
For a joint displacement $\theta \in \mathbb{R}$, the induced rigid transform is
$$
T(\theta) = \exp([S]\theta) \in SE(3).
$$

For revolute motion,
$$
\exp([S]\theta) =
\begin{bmatrix}
\exp([\omega]_\times \theta) & G(\theta)v \\
0 & 1
\end{bmatrix},
$$
with
$$
\exp([\omega]_\times \theta) = I + \sin\theta[\omega]_\times + (1-\cos\theta)[\omega]_\times^2,
$$
and
$$
G(\theta) = I\theta + (1-\cos\theta)[\omega]_\times + (\theta-\sin\theta)[\omega]_\times^2.
$$
For prismatic motion, where $\omega = 0$,
$$
\exp([S]\theta) =
\begin{bmatrix}
I & v\theta \\
0 & 1
\end{bmatrix}.
$$

Although the main formulation attaches each movable part directly to the static base, the method notes an extension to kinematic chains through the product of exponentials formulation,
$$
T(\theta_1,\ldots,\theta_m) = \left(\prod_{i=1..m}\exp([S_i]\theta_i)\right)T_0,
$$
where $T_0$ is the part’s home pose. This suggests a natural path toward chain-structured articulated objects, but that extension is not the main operating regime.

## 3. Part-aware 3D Gaussian Splatting

The scene is represented by anisotropic 3D Gaussian primitives. Each Gaussian $G_i$ has parameters $(T_i, s_i, \sigma_i, c_i)$, where $T_i = [R_i,\mu_i] \in SE(3)$ is the pose, $s_i \in \mathbb{R}^3_+$ are scales, $\Sigma_i = R_i \operatorname{diag}(s_i)^2 R_i^\top$ is the covariance, $\sigma_i \in [0,1]$ is opacity, and $c_i$ denotes color through spherical harmonics coefficients. The per-Gaussian opacity field is
$$
\alpha_i(x) = \sigma_i \exp\!\left(-\frac{1}{2}(x-\mu_i)^\top \Sigma_i^{-1}(x-\mu_i)\right).
$$
Pixels are rendered by alpha compositing ordered Gaussians along the view ray,
$$
C = \sum_i c_i \alpha_i \prod_{j<i}(1-\alpha_j).
$$
The rendering loss is
$$
L_{\text{render}} = (1-\lambda)L_1 + \lambda L_{\text{D-SSIM}},
$$
with $\lambda = 0.2$ [2508.02146].

ScrewSplat augments this representation with screw primitives and part probabilities. A screw primitive is
$$
A_j = (S_j,\gamma_j), \quad j = 1,\ldots,n_s,
$$
where $S_j \in \mathbb{R}^6$ is a screw axis and $\gamma_j \in [0,1]$ is its confidence. A part-aware Gaussian is
$$
H_i = (T_i,s_i,\sigma_i,c_i,m_i), \quad i = 1,\ldots,n_g,
$$
with $m_i \in \Delta^{n_s}$ a probability simplex over $n_s+1$ parts,
$$
m_i = (m_{i0},m_{i1},\ldots,m_{in_s}).
$$
Here $m_{i0}$ is the probability of belonging to the static base, and $m_{ij}$ for $j \ge 1$ is the probability of belonging to the part moved by $A_j$.

For each part-aware Gaussian $H_i$, the method replicates $n_s+1$ standard Gaussians $G_{ij}$, one for the static base and one per screw primitive. For configuration $k$:
- Base replica:
  $$
  G_{i0} = (T_i,s_i,\sigma_i m_{i0},c_i).
  $$
- Movable-part replica:
  $$
  T_{ij}(\theta_{kj}) = \exp([S_j]\theta_{kj})T_i,
  $$
  $$
  G_{ij} = (T_{ij}(\theta_{kj}), s_i, \sigma_i \gamma_j m_{ij}, c_i).
  $$

This construction yields soft, probabilistic per-Gaussian part assignment via $m_i \in \Delta^{n_s}$; continuous kinematic parameterization through screw axes $S_j$ and angles $\theta_{kj}$; and joint-type discovery by spawning both revolute and prismatic screws and pruning unused types. Geometry $(T_i,s_i)$ and appearance $(c_i)$ are shared across replicas, while opacity is scaled by the soft part probability and further modulated by the screw confidence for movable parts.

## 4. Objective, initialization, and optimization dynamics

The unified objective is
$$
L = \sum_k L_{\text{render}}(k) + \beta \sum_j \sqrt{\gamma_j}.
$$
The $\sqrt{\gamma_j}$ regularizer is a parsimony term that encourages using as few, confident screws as necessary. The reported settings are $\beta = 0.002$ in simulation and $\beta = 0.005$ in real-world experiments [2508.02146].

Initialization is deliberately overcomplete. The method initializes $n_g = 10{,}000$ part-aware Gaussians as in standard 3D Gaussian Splatting, with positions sampled uniformly in a workspace volume within the camera frustum. Part probabilities are initialized uniformly over the simplex. It also spawns $n_s = 16$ screw candidates: eight revolute and eight prismatic. For sampled $(x,q) \in \mathbb{R}^3 \times \mathbb{R}^3$ from $U[-0.5,0.5]$,
- revolute screws use $\omega = x/\|x\|$ and $v = -\omega \times q$;
- prismatic screws use $\omega = 0$ and $v = q/\|q\|$.
All $\gamma_j$ are initialized to $0.9$, and all joint angles are initialized to $0$.

Optimization is by gradient descent on all variables. The reported learning rates are: geometry and appearance as in 3DGS; part probabilities $m_i$ with learning rate $0.1$ on logits before softmax; screw axes $S_j$ with learning rate $0.003$ on raw parameters before re-normalizing to satisfy revolute or prismatic constraints; screw confidences $\gamma_j$ with learning rate $0.01$ on logits before sigmoid; and joint angles $\theta_k$ with learning rate $0.01$.

To escape local minima and stabilize discovery, the method periodically resets all $\gamma_j \leftarrow 0.9$ and all $m_i \leftarrow$ uniform. This reset period is asynchronous with the standard 3DGS opacity reset, and synchronizing the two was found detrimental. It also canonicalizes joint angles and Gaussian poses by selecting a random $\theta_m$ from $\{\theta_1,\ldots,\theta_{n_a}\}$, setting $\theta_k \leftarrow \theta_k - \theta_m$ for all $k$, and updating each $T_i$ by unwinding the dominant part $j^\ast = \arg\max_j m_{ij}$:
$$
T_i \leftarrow \exp([S_{j^\ast}]\theta_{m,j^\ast})T_i.
$$

Model selection occurs through pruning. A screw is removed if $\gamma_j < 0.1$. It is also removed as a zero-motion screw if
$$
\max_k \theta_{kj} - \min_k \theta_{kj} < \tau,
$$
with $\tau = 0.1$ for revolute joints and $\tau = 0.03$ for prismatic joints. After pruning, remaining variables are fine-tuned. During rendering and backpropagation, only screws with $\gamma_j > 0.1$ are considered to reduce computation.

A plausible implication is that ScrewSplat converts unknown joint count and unknown joint type into an optimization-overparameterization problem, then resolves it through photometric consistency plus parsimony rather than through discrete structure search.

## 5. Segmentation, articulation recovery, and manipulation interfaces

Segmentation is induced by the per-Gaussian simplex variable $m_i$. During training, each Gaussian softly participates in exactly one of $n_s+1$ parts, and rigidity is enforced implicitly because each replicated movable Gaussian $G_{ij}$ moves rigidly with its single screw $A_j$ through $\exp([S_j]\theta_{kj})$. Articulation consistency is enforced by a single $\theta_{kj}$ per screw across all images in configuration $k$ and by one screw $S_j$ per part; no explicit pairwise consistency or correspondence loss is used [2508.02146].

After optimization, a hard segmentation can be obtained by taking the $\arg\max$ over $m_i$. Joint types and counts are those that remain after pruning. Joint limits are estimated as elementwise min/max of the optimized $\{\theta_{kj}\}_k$. The learned part-aware Gaussian model can be meshed by depth rendering, TSDF fusion, and marching cubes.

ScrewSplat also functions as a differentiable renderer for downstream articulation inference. Given new RGB views, current-state estimation minimizes
$$
L_{\text{estimate}} = L_{\text{render}}
$$
with respect to $\theta$, using Bayesian optimization.

For zero-shot, text-guided manipulation, the method defines a renderer $\pi$ mapping target joint angles $\theta$ to an image $I = \pi(\theta)$. A CLIP-based directional loss aligns image-embedding change with text-embedding change:
$$
\Delta I(\theta) = e_I(\pi(\theta)) - e_I(I_c),
$$
$$
\Delta T = e_T(t_p) - e_T(t_c),
$$
$$
L_{\text{CLIP-dir}}(\theta) =
1 - \frac{\Delta I(\theta)\cdot \Delta T}{\|\Delta I(\theta)\|\|\Delta T\|}.
$$
The optimization target is
$$
\theta^\star = \arg\min_\theta L_{\text{CLIP-dir}}(\theta),
$$
solved by Bayesian optimization through `gp_minimize` with Expected Improvement, 50 total evaluations, and 10 random initial samples. The search domain is the recognized joint limits inferred from the optimized training configurations.

Robot execution is described at the level of affordance and trajectory construction: choose an affordance point from the recognized movable part, such as Gaussian centers farthest from the revolute axis or nearest along the prismatic axis; move this point from $\theta_c - \theta_o$ to $\theta_t$ along the screw motion; lift the motion to an $SE(3)$ gripper trajectory with fixed orientation; and solve IK for robot joint trajectories. This suggests that the representation is designed not only for recognition, but also for direct operational use in manipulation stacks.

## 6. Empirical performance, ablations, and limitations

The evaluation uses ten single-joint and three multi-joint objects from PartNet-Mobility. There are 48 cameras on a hemisphere, and ScrewSplat uses five configurations per object; baselines PARIS, PARIS* (depth), and DTA (RGB-D) use two configurations. Geometry is evaluated by bidirectional Chamfer-L2 distance in millimeters for static parts, movable parts, and the whole object. Motion is evaluated by axis angular error in degrees and axis position error for revolute joints. Appearance is evaluated by PSNR and SSIM on novel joint angles midway between training states. For multi-joint evaluation, bipartite matching between predicted and ground-truth axes minimizes total angular and position error [2508.02146].

On single-joint objects, the reported averages are:
- **PARIS**: CD-s 54.015, CD-m 18.032, CD-w 40.192, Ang 17.656, Pos 2.020, PSNR 28.64, SSIM 0.970.
- **PARIS\***: CD-s 49.706, CD-m 8.864, CD-w 33.856, Ang 16.287, Pos 1.742, PSNR 28.66, SSIM 0.970.
- **DTA (RGB-D)**: CD-s 0.538, CD-m 0.528, CD-w 0.360, Ang 0.437, Pos 0.308.
- **ScrewSpawn**: CD-s 0.617, CD-m 11.566, CD-w 0.946, Ang 24.869, Pos 0.902, PSNR 29.11, SSIM 0.982.
- **ScrewSplat (RGB-only)**: CD-s 0.319, CD-m 0.211, CD-w 0.261, Ang 0.084, Pos 0.010, PSNR 38.07, SSIM 0.993.

On multi-joint objects, the reported averages are:
- **DTA (RGB-D)**: CD-s 0.568, CD-mm 5.647, CD-w 0.476, Angm 7.233, Posm 28.877.
- **ScrewSplat**: CD-s 0.675, CD-mm 0.096, CD-w 0.666, Angm 0.130, Posm 0.002, PSNR 36.76, SSIM 0.987.

The ablation study identifies the importance of the multi-screw formulation. ScrewSpawn, which spawns a single known screw, is insufficient to recover geometry and kinematics broadly. A two-configuration ablation shows competitive results for several objects, but failures on some cases, including stapler and USB, indicate that more articulation diversity and improved optimization help.

The practical profile is comparatively lightweight: approximately 7–9 minutes for 30,000 iterations on an RTX 4090, about 30 MB per object model, and peak GPU memory of about 2.8 GB. Real-world experiments use 16 feasible robot-mounted views. However, the method has several explicit limitations. It is sensitive to the parsimony weight $\beta$: too low produces redundant or collapsed multiple screws per part, while too high misses articulation and explains everything as static. It assumes all movable parts articulate with respect to a static base rather than through chains. Shadows cast by moving parts can introduce view- and configuration-dependent appearance changes, and without explicit illumination modeling the method may spawn extra Gaussians to explain lighting. Camera poses are assumed known rather than estimated.

These results support the abstract claim that ScrewSplat achieves state-of-the-art recognition accuracy across a diverse set of articulated objects while operating solely on RGB observations. More specifically, the reported numbers indicate that its largest empirical advantage lies in movable-part geometry and kinematic accuracy, while the product-of-exponentials extension and illumination-aware modeling remain open directions for broader articulated-scene generalization.

Source: https://www.emergentmind.com/topics/screwsplat