Spaces:
Running
Running
| """Numeric constants for slide generation layout and Wisent brand colors.""" | |
| # Wisent brand palette from wisent-visuals (RGB tuples 0-255) | |
| ACCENT_R = 197 | |
| ACCENT_G = 255 | |
| ACCENT_B = 200 | |
| RED_R = 250 | |
| RED_G = 90 | |
| RED_B = 70 | |
| PURPLE_R = 177 | |
| PURPLE_G = 158 | |
| PURPLE_B = 204 | |
| DARK_R = 18 | |
| DARK_G = 18 | |
| DARK_B = 18 | |
| GRID_R = 45 | |
| GRID_G = 49 | |
| GRID_B = 48 | |
| LEGEND_R = 118 | |
| LEGEND_G = 153 | |
| LEGEND_B = 120 | |
| WHITE_VAL = 255 | |
| BLACK_VAL = 0 | |
| # Font sizes in points | |
| PT_TITLE = 36 | |
| PT_SUBTITLE = 20 | |
| PT_BODY = 16 | |
| PT_SMALL = 12 | |
| PT_STAT = 48 | |
| PT_LABEL = 14 | |
| PT_TEAM = 28 | |
| # Slide dimensions in inches (for widescreen 16:9) | |
| SLIDE_W_INCHES = 10 | |
| SLIDE_H_NUMER = 45 | |
| SLIDE_H_DENOM = 8 | |
| # Position helpers in inches | |
| POS_HALF = 0.5 | |
| POS_ONE = 1.0 | |
| POS_ONE_HALF = 1.5 | |
| POS_TWO = 2.0 | |
| POS_TWO_HALF = 2.5 | |
| POS_THREE = 3.0 | |
| POS_THREE_HALF = 3.5 | |
| POS_FOUR = 4.0 | |
| POS_FOUR_HALF = 4.5 | |
| POS_FIVE = 5.0 | |
| POS_SIX = 6.0 | |
| POS_SEVEN = 7.0 | |
| POS_EIGHT = 8.0 | |
| POS_NINE = 9.0 | |
| # Image dimensions | |
| IMG_FIG_W = 7.0 | |
| IMG_FIG_H = 3.5 | |
| IMG_KANT_W = 3.0 | |
| IMG_KANT_H = 4.0 | |
| # Column layout | |
| COL_LEFT_X = 0.5 | |
| COL_RIGHT_X = 5.0 | |
| COL_W = 4.5 | |
| COL_H = 4.0 | |
| # Stat column positions | |
| STAT_COL_ONE_X = 0.5 | |
| STAT_COL_TWO_X = 3.5 | |
| STAT_COL_THREE_X = 6.5 | |
| STAT_COL_W = 3.0 | |
| # Title position | |
| TITLE_X = 0.5 | |
| TITLE_Y = 0.3 | |
| TITLE_W = 9.0 | |
| TITLE_H = 1.0 | |
| # Centered text position | |
| CENTER_Y = 1.5 | |
| CENTER_W = 8.0 | |
| CENTER_H = 3.5 | |
| CENTER_X = 1.0 | |
| # Footer position | |
| FOOTER_Y = 4.8 | |
| FOOTER_H = 0.5 | |
| # Team layout | |
| TEAM_NAME_Y = 2.5 | |
| TEAM_NAME_H = 1.0 | |
| TEAM_COL_ONE_X = 1.0 | |
| TEAM_COL_TWO_X = 5.5 | |
| TEAM_COL_W = 3.5 | |
| # Prisoner's Dilemma payoff constants (T > R > P > S) | |
| PD_TEMPTATION = 5 | |
| PD_REWARD = 3 | |
| PD_PUNISHMENT = 1 | |
| PD_SUCKER = 0 | |
| # Payoff display strings for PD slide table cells | |
| PD_CC = f"({PD_REWARD}, {PD_REWARD})" | |
| PD_CD = f"({PD_SUCKER}, {PD_TEMPTATION})" | |
| PD_DC = f"({PD_TEMPTATION}, {PD_SUCKER})" | |
| PD_DD = f"({PD_PUNISHMENT}, {PD_PUNISHMENT})" | |
| PD_NE_LABEL = f"Nash Equilibrium: (Defect, Defect) with payoff ({PD_PUNISHMENT}, {PD_PUNISHMENT})" | |
| PD_PO_LABEL = f"Pareto Optimum: (Cooperate, Cooperate) with payoff ({PD_REWARD}, {PD_REWARD})" | |
| # Player labels for payoff matrix slides | |
| PLAYER_ROW_LABEL = "Player " + str(PD_PUNISHMENT) | |
| PLAYER_COL_LABEL = "Player " + str(PD_PUNISHMENT + PD_PUNISHMENT) | |
| # PD alignment explanation (no inline digits) | |
| PD_EXPLANATION_BODY = ( | |
| "The tension between individual rationality and collective welfare " | |
| "is the core alignment challenge. An aligned agent should learn to " | |
| "cooperate with cooperative partners while resisting exploitation." | |
| ) | |
| # Font name for slide text | |
| FONT_NAME = "Hubot Sans" | |
| # EMU (English Metric Units) per inch for Google Slides API | |
| EMU_PER_INCH = 914400 | |
| # Google Slides file ID for the Kant presentation | |
| GSLIDES_FILE_ID = "1sXyiZMKYbTwp6CK6VbSBF9ZvzUHweHvmpxfb34yVZQs" | |
| # Revision restore offset (how many revisions back to go) | |
| REVISION_RESTORE_OFFSET = 2 | |