Projects

A collection of my research projects (both published and unpublished) and side projects.

DecideTogether

2026
ResearchHuman-AI collaboration tool for turning community moderation intent into rules and inspectable automoderation logic.
DecideTogether

Problem

Community moderators often start from a vague intent like 'be kind' — but what that actually means depends on the community, and spelling it out into enforceable criteria is hard. LLM-based automoderation makes subjective rules executable, but the model fills in what the rule leaves unsaid — and when its reading diverges from the moderator's, there is no way to see why or fix it.

What I built

DecideTogether, an interactive system that helps moderators articulate their moderation intent into two aligned forms: a community-facing rule text and a machine-executable automoderator logic. Moderators write and refine the automoderator without authoring logic directly. From the community-facing rule text and the community profile inferred from the sample posts, DecideTogether compiles the rule text into a set of inspectable binary criteria, including subjective ones evaluated by an LLM, and traces every verdict back to the criterion and rule text that produced it.Editing the rule text recompiles the logic, and the system suggests logic updates from misjudged cases with a preview of how each change affects past decisions. The compiled logic substantially outperformed direct rule-text prompting in replicating human moderation decisions (65.9% vs. 45.9% accuracy on 2,146 comments from 15 subreddits), and a study with 10 moderators showed that DecideTogether helped them refine initially vague moderation intents into specific rules.

ReactPythonClaude APISQLite

FrameIt

2026
ResearchInteractive tool for surfacing moral foundations in online discussions.
FrameIt

Problem

People often attribute disagreement to others' ignorance or bad character rather than differing values, leading to dismissiveness and incivility instead of respectful conversation. Can explicitly surfacing the values behind others' comments change the dynamics of online discourse?

What I built

FrameIt, an LLM-powered interactive system that makes participants' moral foundations explicit during online discussions. With an LLM prompt, FrameIt identifies the moral foundations underlying each comment, both in sentence level and comment level, and presents them as tags. While replying, FrameIt supports the user in stating their points while being aware of differences in moral foundations with three features: a real-time indicator of moral alignment between the user's reply and the target post's foundations; LLM-generated discussion points that support the user's stance while aligning with others' foundations; and, upon request, LLM-generated feedback on drafts addressing moral alignment, logical validity, and tone. A five-day-long study with 15 participants showed that FrameIt fostered more respectful conversations compared to their experiences on typical online discussion platforms, but at the cost of blurred productive contestation, as awareness of fundamental value differences sometimes led to premature "agreeing to disagree" rather than deeper engagement.

ReactPythonOpenAI APISQLite

BloomIntent

2025
ResearchInteractive tool for contextualizing statistical statements in news articles.

Problem

If 100 people issue the same search query, they may have 100 different goals. While exploring and understanding these diverse intents is crucial for improving personalized search engines, current search evaluation methods struggle to represent and assess this diversity.

What I built

BloomIntent, a user-centric search evaluation method that uses user intents as the evaluation unit. BloomIntent first generates a set of plausible, fine-grained search intents grounded on taxonomies of user attributes and information-seeking intent types. Then, BloomIntent provides an automated evaluation of search results against each intent powered by large language models. To support practical analysis, BloomIntent clusters semantically similar intents and summarizes evaluation outcomes in a structured interface. A series of technical evaluations showed that BloomIntent can generate diverse and plausible search intents, and that its automated evaluation is highly aligned with human judgments.

PythonOpenAI APIReact

DataDive

2024
ResearchInteractive tool for contextualizing statistical statements in news articles.
DataDive

Problem

News articles often cite statistics to support claims, but readers rarely have the tools or time to interrogate what those numbers actually mean. Is 10,000 cases a lot? Compared to what?

What I built

DataDive, an interactive system to explore relevant data to contextualize the statistical statements while reading the text itself. DataDive is powered by an LLM-powered pipeline that identifies statistical statements in text, generates candidate contexts as guiding questions (e.g. 'How does this compare across age groups?'), and retrieves relevant datasets to answer the question. A user study (n=21) showed participants explored more diverse contexts and felt more aware of how data related to the article.

ReactPythonOpenAI APIChart.js

StarryThoughts

2021
ResearchPlatform for exploring opinion diversity on social issues across demographic groups.

Problem

People naturally gravitate toward opinions that match their own, and often form reductive stereotypes about those who disagree — e.g. 'only overprotective parents oppose video games.' This makes constructive public discourse harder.

What I built

StarryThoughts, a live platform where users share their demographic characteristics alongside their opinions on social issues. The system visualizes the distribution of opinions with a visual metaphor of a starry night sky and lets users explore the opinions — helping them discover that people with similar backgrounds can hold very different views and vice versa.

ReactNode.jsMongoDBAWS Lambda

PolicyScape

2019
ResearchCrowdsourcing platform for surfacing diverse stakeholder perspectives on public policies.

Problem

Citizens deliberating about public policy typically only hear from a small set of vocal stakeholders. The diversity of perspectives that actually exists — across industries, regions, and roles — rarely surfaces in public discourse.

What I built

A crowdsourcing system that recruits stakeholders of a given policy and collects their perspectives through structured input. Users can then browse the stakeholder viewpoints to support informed personal deliberation. An initial study showed the system collected perspectives from unexpectedly diverse groups.

ReactNode.jsMongoDB