Class SymmetryAnalyzer

java.lang.Object
org.episteme.social.arts.SymmetryAnalyzer

public final class SymmetryAnalyzer extends Object
Analytical engine for detecting and measuring symmetry and repetitive patterns in visual compositions. It supports several types of symmetry including bilateral, rotational, translational, and point symmetry.
  • Method Details

    • detectBilateralSymmetry

      public static SymmetryAnalyzer.SymmetryResult detectBilateralSymmetry(List<double[]> points)
      Detects bilateral (mirror) symmetry in a point cloud using centroid-based axis testing.
      Parameters:
      points - list of [x, y] coordinates representing visual features
      Returns:
      a SymmetryResult containing the best matching axis and confidence
    • detectRotationalSymmetry

      public static SymmetryAnalyzer.SymmetryResult detectRotationalSymmetry(List<double[]> points)
      Detects rotational symmetry by searching for the best N-fold rotation score around the shape's centroid.
      Parameters:
      points - list of [x, y] coordinates
      Returns:
      a SymmetryResult specifying the best fold order
    • detectTranslationalSymmetry

      public static SymmetryAnalyzer.SymmetryResult detectTranslationalSymmetry(List<double[]> points, double minPeriod, double maxPeriod)
      Detects translational (repeating) symmetry by scanning for a period vector that maps points onto each other.
      Parameters:
      points - list of [x, y] coordinates
      minPeriod - minimum expected repeat distance
      maxPeriod - maximum expected repeat distance
      Returns:
      a SymmetryResult containing the translation vector
    • symmetryQuotient

      public static Real symmetryQuotient(List<double[]> points)
      Calculates a combined symmetry quotient (0-1) representing the overall geometric regularity of the composition.
      Parameters:
      points - list of [x, y] coordinates
      Returns:
      symmetry quotient as a Real