Due: Class time April 1
Format: Group proposal + in-class presentation
Groups: Work in your assigned teams (3 groups total)
Overview
So far, our gallery layout system generates many candidate arrangements and selects the highest-scoring ones. However, this approach has two major limitations:
- The scoring function relies on hard-coded “magic numbers” that are not clearly tied to real design priorities.
- The top layouts tend to be very similar, offering limited exploration or improvement.
In this assignment, you will begin designing a human-guided hill climbing system, where a curator (user) helps guide the improvement of layouts over multiple iterations.
This is a shift from:
- “Generate many → pick best”
to:
- “Start with one → iteratively improve with guidance”
Your Task
Each group will propose a design for how this system should work.
You are not implementing code yet. You are designing the model, interaction, and evaluation strategy.
Part 1 — Scoring Priorities (YAML Design)
The current scoring function is unclear and rigid. We want to move toward a transparent, configurable scoring model.
Your job:
Define what belongs in a scoring configuration file (YAML).
Questions to address:
- What are the key attributes of a good gallery layout?
- Examples (but do not limit yourself):
- spacing
- balance
- thematic grouping
- color harmony
- period/style consistency
- visual rhythm
- focal point / center emphasis
- height alignment
- Examples (but do not limit yourself):
- How should these be represented in YAML?
- weights?
- thresholds?
- rules?
- Which attributes should be:
- strict constraints (must be satisfied)
- vs soft preferences (can be optimized)
Deliverable:
- A proposed YAML structure
- A short explanation of each attribute and why it matters
Part 2 — Curator Input (Human-in-the-Loop Design)
We now introduce a curator who evaluates layouts and guides improvement.
Your job:
Design how the user (curator) interacts with the system after each layout is shown.
Consider:
- What kinds of feedback should the curator give?
- Checkboxes? (e.g., “good balance”, “poor spacing”)
- Sliders? (e.g., rate balance from 1–10)
- Direct edits? (e.g., “move this painting left”)
- Should feedback be:
- per attribute?
- overall score?
- comparative (better/worse than previous)?
- How do we keep this simple enough to use repeatedly?
Deliverable:
- A mock interaction design (sketch, bullet list, or simple diagram)
- A description of how curator input maps to scoring changes
Part 3 — Hill Climbing Strategy
We now move to the algorithmic side.
Your job:
Define how the system uses curator input to improve layouts over time.
Questions to address:
- What counts as a “neighbor” layout?
- swap two paintings?
- shift positions?
- resize spacing?
- regroup by theme?
- How does the system decide what change to try next?
- based on lowest-scoring attribute?
- based on curator feedback?
- How many changes per iteration?
- one small change?
- multiple candidate variations?
Deliverable:
- A clear description of your iteration loop
- (layout → evaluate → modify → repeat)
Part 4 — Beyond Hill Climbing (Creative Extensions)
Think ahead.
What else should this system support?
Examples to consider:
- Avoiding local maxima (future simulated annealing ideas)
- Maintaining diversity across layouts
- Saving and comparing multiple “paths” of improvement
- Allowing the curator to “lock” certain artworks in place
- Tracking improvement history over time
Deliverable:
- At least 2–3 additional ideas your group would explore next
Presentation (In-Class)
Each group will present:
- Their scoring model
- Their curator interaction design
- Their hill climbing strategy
- Their extensions
Time:
- ~8–10 minutes per group
Goal:
We will use your ideas to design a shared experimental platform, which you will later implement and test.
What I’m Looking For
Strong proposals will:
- Replace vague scoring with clear, interpretable priorities
- Design simple but meaningful user input
- Show a clear understanding of iterative improvement
- Balance algorithmic thinking + human judgment
- Be concrete enough that we can build from them
Important Note
You are not trying to find the “right answer.”
You are designing:
- a system
- a workflow
- a way of thinking about optimization with human guidance
We will refine and combine your ideas into the next stage of the project.
