Skip to content

Commit 015473a

Browse files
gaojie058claude
andauthored
Update speakers, add jay, update CFP, update news (#9)
* Port CFP content and new speakers into React site Carries over content that only existed in the pre-refactor index.html: - Add Been Kim and Kun Zhang as speakers; give Nancy F. Chen a real avatar in place of the initials placeholder - Restore the Topics / Submission Format / Important Dates / Ethics structure, the Special Track box, and the "Submission with NeurIPS reviews" second track - Restore the submission-deadline countdown as a React component and the full nine-row dates table in place of the four summary cards - Point the OpenReview link at the workshop group rather than the site root Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * Show the invited speaker and panelist profiles Flip speakerSection.showProfiles on so the eight speaker cards render instead of a placeholder line. The old message said attendance was still being finalized and ended in "To be announced", which contradicts a visible list, so restore the pre-refactor wording and heading. Nancy F. Chen's card still carries its own tentative-attendance note. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * Lay the speakers out four per row Eight speakers split 5+3 across the two rows, which left the second row visibly short. Four per row gives an even 4+4 and lines the cards up with the organizer grid below. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * Move Jen-tse Huang back to the organizing committee He was the last organizer on the pre-refactor site and appeared only there; the refactor moved him into the advisory board. Restore him as an organizer, drop the advisory-board entry so he is not listed twice, and widen the grid to five columns so nine organizers sit 5+4 instead of leaving a single card stranded on a third row. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * Move the call for papers up, directly after Scope Scope tells readers what the workshop is about, so the submission details are what they want next; speakers and schedule are reference material they come back for later. Reorder the nav to match, and swap the tinted background from Schedule to Speakers so the sections keep alternating. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * Restore the full program, news, and workshop contact details The pre-refactor site carried a populated program and current news that the React version had replaced with placeholders. - Name the four keynote speakers and the eight panelists instead of showing "To be announced"; restore the 16:00–17:30 panel and the 17:30–18:00 award session, so the day ends at 18:00 as before - Let a schedule slot take a list of names, comma-separated by the renderer, which the panel needs - Restore the two news items announcing that the call for papers is open and the speakers are confirmed, replacing a "coming soon" line that contradicted the call for papers on the same page - Point the footer back at the workshop group address and call the event a NeurIPS workshop rather than a proposal, since it was accepted Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * Restore the speaker order and Nancy F. Chen's full affiliation Put the speakers back in the order the pre-refactor site used, which places Been Kim third and starts the second row with Bowen Baker, and name her institution A*STAR Singapore as it was written before. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * Drop the tentative-attendance note from Nancy F. Chen's card Her attendance format is not settled enough to state on the page yet. The card still supports an optional note, so it can go back when there is something definite to say. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * Drop the tinted background on schedule break rows Poster sessions and lunch no longer sit on a grey band, so every row reads the same. The break flag and its class stay in place, so the highlight is one CSS rule away if it is wanted back. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * Centre the organizing committee's short second row Nine organizers across five columns left the second row of four pushed to the left with a gap on the right. Lay the grid out in ten half columns instead, with each card spanning two, so the short row can be offset by half a card and sit centred under the row above. Flexbox would centre it without the arithmetic, but the cards use subgrid to line their name, affiliation, and focus rows up with each other, and that only works inside a grid. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * Give the first two advisory board members profile cards Ziang Xiao and Toby Jia-Jun Li now appear as cards with photos, using a new advisor role in the people repository. The remaining six members stay in the inline list, so they are dropped from the advisors array to avoid listing the two twice. Photos are linked from their own pages, as several organizer cards already do. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * Centre the advisor cards and reword the board's note Offset the pair by three half columns so they sit in the middle of the row rather than against the left edge, matching how the organizing committee's short row is centred. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * Reword the advisory board note Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1 parent 3aa7115 commit 015473a

10 files changed

Lines changed: 411 additions & 63 deletions

File tree

.DS_Store

2 KB
Binary file not shown.

img/been.png

286 KB
Loading

img/jentse.jpg

46.4 KB
Loading

img/kaiser.jpg

-97.2 KB
Loading

img/kun.jpg

246 KB
Loading

img/nancy.jpg

70.3 KB
Loading

src/App.jsx

Lines changed: 115 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { Fragment, useEffect, useState } from 'react';
12
import heroImage from '../img/hero.png';
23
import Navigation from './components/Navigation';
34
import PersonCard from './components/PersonCard';
@@ -6,16 +7,23 @@ import { getPeopleByRole, PERSON_ROLE } from './data/peopleRepository';
67
import {
78
advisors,
89
cfpCategories,
10+
ethicsNote,
911
importantDates,
12+
neuripsReviewTrack,
13+
openReviewUrl,
1014
programCommittee,
1115
schedule,
16+
specialTrack,
1217
speakerSection,
18+
submissionDeadline,
19+
submissionDeadlineLabel,
1320
submissionFormats,
1421
topics,
1522
} from './data/siteData';
1623

1724
const speakers = getPeopleByRole(PERSON_ROLE.SPEAKER);
1825
const organizers = getPeopleByRole(PERSON_ROLE.ORGANIZER);
26+
const featuredAdvisors = getPeopleByRole(PERSON_ROLE.ADVISOR);
1927

2028
function Hero() {
2129
return (
@@ -81,9 +89,13 @@ function News() {
8189
<div className="container">
8290
<h2>News</h2>
8391
<ul className="news-list">
84-
<li><span className="date">Coming soon</span><span>Call for Papers will open shortly. Stay tuned.</span></li>
8592
<li>
86-
<span className="date">Jul 2026</span>
93+
<span className="date">Jul 22, 2026</span>
94+
<span>Call for Papers is out. Submission site <a href={openReviewUrl} target="_blank" rel="noopener noreferrer">OpenReview</a> is open.</span>
95+
</li>
96+
<li><span className="date">Jul 21, 2026</span><span>Our speakers and panelists are confirmed!</span></li>
97+
<li>
98+
<span className="date">Jul 12, 2026</span>
8799
<span>🎉 IAB is accepted as a <a href="https://neurips.cc/Conferences/2026" target="_blank" rel="noopener noreferrer">NeurIPS 2026</a> workshop in Sydney.</span>
88100
</li>
89101
</ul>
@@ -117,9 +129,9 @@ function Scope() {
117129

118130
function Speakers() {
119131
return (
120-
<section id="speakers">
132+
<section id="speakers" className="alt">
121133
<div className="container">
122-
<h2>Invited Speakers</h2>
134+
<h2>Invited Speakers &amp; Panelists</h2>
123135
<p className="lead">{speakerSection.message}</p>
124136
{speakerSection.showProfiles && (
125137
<div className="people-grid speakers-grid">
@@ -133,7 +145,7 @@ function Speakers() {
133145

134146
function Schedule() {
135147
return (
136-
<section id="schedule" className="alt">
148+
<section id="schedule">
137149
<div className="container">
138150
<h2>Schedule <span className="status-pill">Tentative</span></h2>
139151
<p className="lead">Full-day workshop with keynotes, paper presentations, posters, and a panel discussion. The program below is tentative and subject to change.</p>
@@ -143,7 +155,13 @@ function Schedule() {
143155
<span className="sch-time">{item.time}</span>
144156
<span className="sch-desc">
145157
{item.title}{' '}
146-
{item.emphasis && <strong>{item.emphasis}</strong>}{' '}
158+
{Array.isArray(item.emphasis)
159+
? item.emphasis.map((name, index) => (
160+
<Fragment key={name}>
161+
<strong>{name}</strong>{index < item.emphasis.length - 1 && ', '}
162+
</Fragment>
163+
))
164+
: item.emphasis && <strong>{item.emphasis}</strong>}{' '}
147165
{item.suffix && <span>{item.suffix} </span>}
148166
{item.meta && <em>{item.meta}</em>}
149167
</span>
@@ -160,33 +178,107 @@ function CallForPapers() {
160178
<section id="cfp">
161179
<div className="container">
162180
<h2>Call for Papers</h2>
163-
<p className="lead">We solicit two types of non-archival submissions and welcome empirical studies, datasets, methods papers, tools, and negative results on understanding agent behavior.</p>
164-
<p className="lead">We particularly welcome contributions across four categories:</p>
181+
182+
<h3 className="cfp-heading">Topics</h3>
183+
<p className="lead">We call for non-archival submissions on understanding agent behavior. We welcome work that helps us understand what agents do and why, including but not limited to:</p>
165184
<ul className="lead-list">
166-
{cfpCategories.map(([name, description]) => (
167-
<li key={name}><strong>{name}:</strong> {description}</li>
185+
{cfpCategories.map(([name, description, example]) => (
186+
<li key={name}><strong>{name}:</strong> {description} <span className="eg">{example}</span></li>
168187
))}
169188
</ul>
189+
<div className="special-track">
190+
<h4>This year, we have a <span className="st-hl">Special Track</span>: {specialTrack.heading}</h4>
191+
<p>{specialTrack.body}</p>
192+
</div>
170193
<p className="lead">We also encourage negative results and methodological position papers.</p>
194+
195+
<h3 className="cfp-heading">Submission Format</h3>
171196
<div className="cfp-formats">
172197
{submissionFormats.map(([title, description]) => (
173-
<article className="cfp-box" key={title}><h3>{title}</h3><p>{description}</p></article>
198+
<article className="cfp-box" key={title}><h4>{title}</h4><p>{description}</p></article>
174199
))}
175200
<article className="cfp-box">
176-
<h3>Review Process</h3>
177-
<p>NeurIPS-style formatting, double-blind review, and three reviews per submission via <a href="https://openreview.net" target="_blank" rel="noopener noreferrer">OpenReview</a>.</p>
201+
<h4>Review Process</h4>
202+
<p>NeurIPS-style formatting, double-blind review, submission site: <a href={openReviewUrl} target="_blank" rel="noopener noreferrer">OpenReview</a>.</p>
178203
</article>
179204
</div>
180-
<div className="dates-row">
181-
{importantDates.map(([label, value]) => (
182-
<div className="date-card" key={label}><div className="lab">{label}</div><div className="val">{value}</div></div>
183-
))}
205+
<div className="cfp-tracks">
206+
<article className="cfp-box">
207+
<h4>{neuripsReviewTrack.title}</h4>
208+
<p>{neuripsReviewTrack.intro}</p>
209+
<span className="track-due">{neuripsReviewTrack.due}</span>
210+
<p>{neuripsReviewTrack.body}</p>
211+
</article>
184212
</div>
213+
214+
<h3 className="cfp-heading">Important Dates</h3>
215+
<Countdown />
216+
<table className="dates-table">
217+
<tbody>
218+
{importantDates.map(({ label, value, key }) => (
219+
<tr key={label} className={key ? 'key' : undefined}>
220+
<td>{label}</td>
221+
<td>{value}</td>
222+
</tr>
223+
))}
224+
</tbody>
225+
</table>
226+
227+
<h3 className="cfp-heading">Ethics and LLM Usage</h3>
228+
<p className="lead">
229+
{ethicsNote.body}{' '}
230+
<a href={ethicsNote.url} target="_blank" rel="noopener noreferrer">{ethicsNote.linkText}</a> for details.
231+
</p>
185232
</div>
186233
</section>
187234
);
188235
}
189236

237+
const pad = (n) => String(n).padStart(2, '0');
238+
239+
function timeLeft(deadline) {
240+
const ms = new Date(deadline).getTime() - Date.now();
241+
if (ms <= 0) return null;
242+
const sec = Math.floor(ms / 1000);
243+
return {
244+
days: String(Math.floor(sec / 86400)),
245+
hours: pad(Math.floor((sec % 86400) / 3600)),
246+
minutes: pad(Math.floor((sec % 3600) / 60)),
247+
seconds: pad(sec % 60),
248+
};
249+
}
250+
251+
function Countdown() {
252+
const [left, setLeft] = useState(() => timeLeft(submissionDeadline));
253+
254+
useEffect(() => {
255+
const timer = setInterval(() => setLeft(timeLeft(submissionDeadline)), 1000);
256+
return () => clearInterval(timer);
257+
}, []);
258+
259+
if (!left) {
260+
return (
261+
<div className="countdown">
262+
<div className="cd-label">Submissions are closed<strong>The deadline has passed.</strong></div>
263+
</div>
264+
);
265+
}
266+
267+
return (
268+
<div className="countdown">
269+
<div className="cd-label">Submission deadline in<strong>{submissionDeadlineLabel}</strong></div>
270+
<div className="cd-units">
271+
{[['Days', left.days], ['Hours', left.hours], ['Minutes', left.minutes], ['Seconds', left.seconds]].map(([unit, value]) => (
272+
<div className="cd-unit" key={unit}>
273+
<div className="n">{value}</div>
274+
<div className="u">{unit}</div>
275+
</div>
276+
))}
277+
</div>
278+
</div>
279+
);
280+
}
281+
190282
function InlinePeople({ people, linked = false }) {
191283
return people.map(([name, affiliation, url], index) => (
192284
<span key={name}>
@@ -206,7 +298,10 @@ function Organizers() {
206298
</div>
207299
<div className="adv">
208300
<h3>Advisory Board</h3>
209-
<p className="adv-note">Researchers and collaborators who have supported and advised this workshop.</p>
301+
<p className="adv-note">We thank the following faculty and senior researchers who have supported this workshop.</p>
302+
<div className="people-grid advisors-grid">
303+
{featuredAdvisors.map((advisor) => <PersonCard key={advisor.id} person={advisor} variant="organizer" />)}
304+
</div>
210305
<p><InlinePeople people={advisors} linked /></p>
211306
</div>
212307
<div className="adv">
@@ -235,7 +330,7 @@ function Footer() {
235330
<footer>
236331
<div className="container">
237332
<p><strong>IAB</strong> · Interpreting Agent Behavior: Human-Centered Interpretation for Understanding Agents, Humans, and Interaction</p>
238-
<p>Workshop proposal, 2026 · Contact: <a href="mailto:jgao77@jh.edu">jgao77@jh.edu</a></p>
333+
<p>NeurIPS Workshop, 2026 · Contact: <a href="mailto:iab-workshop@googlegroups.com">iab-workshop@googlegroups.com</a></p>
239334
</div>
240335
</footer>
241336
);
@@ -250,9 +345,9 @@ export default function App() {
250345
<About />
251346
<News />
252347
<Scope />
348+
<CallForPapers />
253349
<Speakers />
254350
<Schedule />
255-
<CallForPapers />
256351
<Organizers />
257352
<Sponsors />
258353
</main>

src/data/peopleRepository.js

Lines changed: 64 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,12 @@
1+
import beenImage from '../../img/been.png';
12
import bowenImage from '../../img/bowen.jpg';
23
import boyuanImage from '../../img/boyuan.jpg';
4+
import jentseImage from '../../img/jentse.jpg';
35
import kaiserImage from '../../img/kaiser.jpg';
46
import katherineImage from '../../img/katherine.jpg';
7+
import kunImage from '../../img/kun.jpg';
58
import marcImage from '../../img/marc.jpg';
9+
import nancyImage from '../../img/nancy.jpg';
610

711
export const AVATAR_TYPE = Object.freeze({
812
LOCAL: 'local',
@@ -13,6 +17,7 @@ export const AVATAR_TYPE = Object.freeze({
1317
export const PERSON_ROLE = Object.freeze({
1418
SPEAKER: 'speaker',
1519
ORGANIZER: 'organizer',
20+
ADVISOR: 'advisor',
1621
});
1722

1823
const people = [
@@ -41,13 +46,13 @@ const people = [
4146
},
4247
},
4348
{
44-
id: 'bowen-baker',
49+
id: 'been-kim',
4550
roles: [PERSON_ROLE.SPEAKER],
46-
name: 'Bowen Baker',
47-
url: 'https://bowenbaker.github.io/',
48-
affiliation: 'OpenAI',
49-
focus: 'Multi-Agent Systems',
50-
avatar: { type: AVATAR_TYPE.LOCAL, src: bowenImage },
51+
name: 'Been Kim',
52+
url: 'https://beenkim.github.io/',
53+
affiliation: 'Google DeepMind',
54+
focus: 'Agentic Interpretability',
55+
avatar: { type: AVATAR_TYPE.LOCAL, src: beenImage },
5156
},
5257
{
5358
id: 'marc-alexandre-cote',
@@ -58,6 +63,15 @@ const people = [
5863
focus: 'RL & Language Agents',
5964
avatar: { type: AVATAR_TYPE.LOCAL, src: marcImage },
6065
},
66+
{
67+
id: 'bowen-baker',
68+
roles: [PERSON_ROLE.SPEAKER],
69+
name: 'Bowen Baker',
70+
url: 'https://bowenbaker.github.io/',
71+
affiliation: 'OpenAI',
72+
focus: 'Multi-Agent Systems',
73+
avatar: { type: AVATAR_TYPE.LOCAL, src: bowenImage },
74+
},
6175
{
6276
id: 'dinh-phung',
6377
roles: [PERSON_ROLE.SPEAKER],
@@ -70,15 +84,23 @@ const people = [
7084
src: 'https://dinhphung.com/uploads/Main/HomePage/dinh_profile.jpg',
7185
},
7286
},
87+
{
88+
id: 'kun-zhang',
89+
roles: [PERSON_ROLE.SPEAKER],
90+
name: 'Kun Zhang',
91+
url: 'https://www.andrew.cmu.edu/user/kunz1/index.html',
92+
affiliation: 'Carnegie Mellon University & MBZUAI',
93+
focus: 'Causal Discovery',
94+
avatar: { type: AVATAR_TYPE.LOCAL, src: kunImage },
95+
},
7396
{
7497
id: 'nancy-f-chen',
7598
roles: [PERSON_ROLE.SPEAKER],
7699
name: 'Nancy F. Chen',
77100
url: 'https://sites.google.com/site/nancyfchen/bio',
78-
affiliation: 'A*STAR',
101+
affiliation: 'A*STAR Singapore',
79102
focus: 'Multimodal Generative AI',
80-
note: 'Tentative speaker · In-person or online attendance TBD',
81-
avatar: { type: AVATAR_TYPE.INITIALS, value: 'NC' },
103+
avatar: { type: AVATAR_TYPE.LOCAL, src: nancyImage },
82104
},
83105
{
84106
id: 'jie-sophia-gao',
@@ -167,6 +189,39 @@ const people = [
167189
src: 'https://hoirqrkdgbmvpwutwuwj.supabase.co/storage/v1/object/public/assets/assets/8dd39412-d3c3-40bb-9209-be3a78a93ae1_800w.png',
168190
},
169191
},
192+
{
193+
id: 'jen-tse-huang',
194+
roles: [PERSON_ROLE.ORGANIZER],
195+
name: 'Jen-tse Huang',
196+
url: 'https://penguinnnnn.github.io/',
197+
affiliation: 'Johns Hopkins University',
198+
focus: 'Human-AI Alignment',
199+
avatar: { type: AVATAR_TYPE.LOCAL, src: jentseImage },
200+
},
201+
{
202+
id: 'ziang-xiao',
203+
roles: [PERSON_ROLE.ADVISOR],
204+
name: 'Ziang Xiao',
205+
url: 'https://www.cs.jhu.edu/faculty/ziang-xiao/',
206+
affiliation: 'Johns Hopkins University',
207+
focus: 'Human-AI Interaction',
208+
avatar: {
209+
type: AVATAR_TYPE.REMOTE,
210+
src: 'https://www.cs.jhu.edu/wp-content/uploads/2022/11/Ziang-Xiao-square-1.jpeg',
211+
},
212+
},
213+
{
214+
id: 'toby-jia-jun-li',
215+
roles: [PERSON_ROLE.ADVISOR],
216+
name: 'Toby Jia-Jun Li',
217+
url: 'https://toby.li/',
218+
affiliation: 'University of Notre Dame',
219+
focus: 'Human-Centered AI',
220+
avatar: {
221+
type: AVATAR_TYPE.REMOTE,
222+
src: 'https://toby.li/images/toby_profile.jpg',
223+
},
224+
},
170225
];
171226

172227
const avatarTypes = new Set(Object.values(AVATAR_TYPE));

0 commit comments

Comments
 (0)