diff --git a/app-proto/src/assembly.rs b/app-proto/src/assembly.rs
index 08914aa..7073c9e 100644
--- a/app-proto/src/assembly.rs
+++ b/app-proto/src/assembly.rs
@@ -5,7 +5,7 @@ use std::{collections::BTreeSet, sync::atomic::{AtomicU64, Ordering}};
 use sycamore::prelude::*;
 use web_sys::{console, wasm_bindgen::JsValue}; /* DEBUG */
 
-use crate::engine::{realize_gram, local_unif_to_std, ConfigSubspace, PartialMatrix, Q};
+use crate::engine::{realize_gram, local_unif_to_std, ConfigSubspace, PartialMatrix};
 
 // the types of the keys we use to access an assembly's elements and constraints
 pub type ElementKey = usize;
@@ -371,8 +371,8 @@ impl Assembly {
             }
         }
         
-        // step the assembly along the deformation, and then project each
-        // element back onto its mass shall
+        // step the assembly along the deformation. this changes the elements'
+        // normalizations, so we restore those afterward
         /* KLUDGE */
         // since our test assemblies only include spheres, we assume that every
         // element is on the 1 mass shell
@@ -380,22 +380,16 @@ impl Assembly {
             elt.representation.update_silent(|rep| {
                 match elt.column_index {
                     Some(column_index) => {
-                        // apply the deformation linearly
+                        // step the assembly along the deformation
                         *rep += motion_proj.column(column_index);
                         
-                        // project back onto the mass shell by contracting
-                        // toward the last coordinate axis
+                        // restore normalization by contracting toward the last
+                        // coordinate axis
                         let q_sp = rep.fixed_rows::<3>(0).norm_squared();
                         let half_q_lt = -2.0 * rep[3] * rep[4];
                         let half_q_lt_sq = half_q_lt * half_q_lt;
                         let scaling = half_q_lt + (q_sp + half_q_lt_sq).sqrt();
                         rep.fixed_rows_mut::<4>(0).scale_mut(1.0 / scaling);
-                        
-                        /* DEBUG */
-                        // report self-product before and after projection
-                        console::log_1(&JsValue::from(
-                            format!("After scaling by {}, self-product of element representation is {}", scaling, rep.dot(&(&*Q * &*rep)))
-                        ));
                     },
                     None => {
                         console::log_1(&JsValue::from(