diff --git a/CHANGELOG.md b/CHANGELOG.md
index 880e76800d0663def9edbdb8fd93189846d6a237..386d5bdc5ef986b8f9e3919c77dfa0460d8583c3 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -23,7 +23,9 @@ Note that since we don't clearly distinguish between a public and private interf
 - Support `ignoreHydrogens` in interactions representation
 - Add hydroxyproline (HYP) commonly present in collagen molecules to the list of amino acids
 - Fix assemblies for Archive PDB files (do not generate unique `label_asym_id` if `REMARK 350` is present)
-- Add `cantorPairing`, `sortedCantorPairing`, `invertCantorPairing`, `trunc` to `core.math` in `mol-script`
+- Add additional functions to `core.math` in `mol-script`
+    - `cantorPairing`, `sortedCantorPairing`, `invertCantorPairing`,
+    - `trunc`, `sign`
 
 ## [v3.34.0] - 2023-04-16
 
diff --git a/src/mol-script/language/symbol-table/core.ts b/src/mol-script/language/symbol-table/core.ts
index 0cd84a5dd69ddea24838eaccc60a358e163a66e5..e2982625b6bf8c20cc5b4d6f0c70b3ea7c8d024a 100644
--- a/src/mol-script/language/symbol-table/core.ts
+++ b/src/mol-script/language/symbol-table/core.ts
@@ -121,6 +121,7 @@ const math = {
     roundInt: unaryOp(Type.Num),
     trunc: unaryOp(Type.Num),
     abs: unaryOp(Type.Num),
+    sign: unaryOp(Type.Num),
     sqrt: unaryOp(Type.Num),
     cbrt: unaryOp(Type.Num),
     sin: unaryOp(Type.Num),
diff --git a/src/mol-script/runtime/query/table.ts b/src/mol-script/runtime/query/table.ts
index 61afa115e3aaef1b39b06a26757143c3d5512b98..97bf1615f9366934fea4e6c49882625d989b8fde 100644
--- a/src/mol-script/runtime/query/table.ts
+++ b/src/mol-script/runtime/query/table.ts
@@ -127,6 +127,7 @@ const symbols = [
     C(MolScript.core.math.roundInt, (ctx, v) => Math.round(v[0](ctx))),
     C(MolScript.core.math.trunc, (ctx, v) => Math.trunc(v[0](ctx))),
     C(MolScript.core.math.abs, (ctx, v) => Math.abs(v[0](ctx))),
+    C(MolScript.core.math.sign, (ctx, v) => Math.sign(v[0](ctx))),
     C(MolScript.core.math.sqrt, (ctx, v) => Math.sqrt(v[0](ctx))),
     C(MolScript.core.math.cbrt, (ctx, v) => Math.cbrt(v[0](ctx))),
     C(MolScript.core.math.sin, (ctx, v) => Math.sin(v[0](ctx))),
diff --git a/src/mol-script/script/mol-script/symbols.ts b/src/mol-script/script/mol-script/symbols.ts
index d5f000cafab51b2fd0571676c3e93254447f32f3..52511ac19796353a20eb0aaa81925e6fb33cd669 100644
--- a/src/mol-script/script/mol-script/symbols.ts
+++ b/src/mol-script/script/mol-script/symbols.ts
@@ -62,6 +62,7 @@ export const SymbolTable = [
         Alias(MolScript.core.math.roundInt, 'round'),
         Alias(MolScript.core.math.trunc, 'trunc'),
         Alias(MolScript.core.math.abs, 'abs'),
+        Alias(MolScript.core.math.sign, 'sign'),
         Alias(MolScript.core.math.sqrt, 'sqrt'),
         Alias(MolScript.core.math.cbrt, 'cbrt'),
         Alias(MolScript.core.math.sin, 'sin'),