🍊 Clementime Survey

Interactive visualization of clementine ratings. Each data point is photo-verified, capturing tastiness, sweetness, tartness, and firmness over time.

📄 Capture Graph Code

Client-Side Survey Procedure

def clementime_survey_procedure() -> cgp.ProcedureSequence:
    """Client-side procedure for clementine rating survey."""
    root = cgp.GetRootDirectory()
    session = root.new_session("clementine")

    # Load reference image for alignment
    reference_photo = root.new_file("reference").load(
        or_else=cgp.NullProcedure(return_type=cgp.PImage)
    )

    # Capture aligned photo
    photo = cgp.CaptureAlignedImage(
        label="Photograph the clementine",
        reference_image=reference_photo,
    )

    # Create rating inputs
    ratings = [
        session.new_file("tastiness").save(
            cgp.UserInputRating(label="How tasty?", max_stars=5)
        ),
        session.new_file("sweetness").save(
            cgp.UserInputRating(label="How sweet?", max_stars=5)
        ),
    ]

    return cgp.ProcedureSequence(
        label="Clementine Rating",
        procedures=[
            session.new_file("photo").save(photo),
            cgp.ProcedureSet(procedures=ratings),
        ],
    )