Caricatured Scientist Struggles with Broken Machine in Editorial Cartoon Grid

A 2x2 grid of sharp-ink cartoons where a scientist battles a giant device powered by bureaucratic paralysis, with integrated labels.

Prompt

2x2 grid, 16:9, AI picks science topics: class EditorialCartoon:     def __init__(self, subject, seed=42):         rng = random.Random(seed)         self.subject = subject         # Phase 1: Sample 2 distinct angles, 2 distinct devices         self.angles = rng.sample(POOL_ANGLES, 2)  # e.g., ["Bureaucratic Paralysis", "Empty Promises"]         self.devices = rng.sample(POOL_DEVICES, 2) # e.g., ["Broken Machine", "Puppet Strings"]              def resolve_metaphor(self):         # E₁: Isomorphism. Map abstract angles to concrete device mechanics.         # Angle 1 drives the PRIMARY action. Angle 2 drives the CONTEXT/BACKGROUND.         # Device 1 is the FOREGROUND object. Device 2 is the MECHANISM/ENVIRONMENT.         self.scene_graph = Graph()         self.scene_graph.add_node("Subject", type="Caricature", target=self.subject)         self.scene_graph.add_node("Device1", type="Foreground", logic=self.devices[0])         self.scene_graph.add_node("Device2", type="Mechanism", logic=self.devices[1])                  # Fuse: The Subject interacts with Device1, which is powered/controlled by Device2, enacting Angle1+2.         self.scene_graph.add_edge("Subject", "Device1", relation="struggling_with")         self.scene_graph.add_edge("Device2", "Device1", relation="powering/sabotaging")              def verify_ethics(self):         # E₃: Hard boundary.          protected = {"Race", "Religion", "Ethnicity", "Disability", "Gender", "Sexuality", "Nationality"}         target_traits = extract_traits(self.subject, self.scene_graph)         assert target_traits.isdisjoint(protected), "E₃ VIOLATION: Hateful caricature detected."         assert "Power" in target_traits or "System" in target_traits, "E₃ VIOLATION: Punching down."      def render(self):         self.resolve_metaphor()         self.verify_ethics()                  # E₂, E₄, E₅: Topological and stylistic constraints         canvas = Canvas(width=1024, height=1024, split_screen=False) # E₂         canvas.apply_style(kernel="sharp_ink", palette="limited_3_color", silhouette="strong") # E₄                  # Draw the graph         draw_node(canvas, self.scene_graph["Subject"], pose="expressive_struggle")         draw_node(canvas, self.scene_graph["Device1"], scale="giant/dominant")         draw_node(canvas, self.scene_graph["Device2"], style="background_mechanism")                  # E₅: Text constraints         labels = generate_labels(self.angles, max_words=5)         canvas.add_text(labels, font="bold_sans", placement="integrated_not_floating")                  return canvas.export()  EditorialCartoon(:SUBJECT).render()
Published: September 10, 2026 by

Sign in to save

Keep your favorite prompts in one place. After signing in, you’ll return here to finish saving.

Continue with Google