Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
.DS_Store
5 changes: 5 additions & 0 deletions CLAUDE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
This is a simple static website built from a combination of Markdown and HTML.

The script `build.py` parses Markdown files in the `data/team` and `data/projects`
directories and generate HTML sections based on their content. Check the header of
`build.py` for more details.
23 changes: 21 additions & 2 deletions build.py
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ class Collaborator:
title: str = ""
affiliation: str = ""
website: str = ""
portfolio: str = ""
email: str = ""
picture: str = ""
interests: str = ""
Expand All @@ -60,7 +61,7 @@ class Collaborator:

_KNOWN_FIELDS = {
"funding", "period", "partners", "website", "github", "status",
"role", "title", "affiliation", "email", "picture", "interests",
"role", "title", "affiliation", "email", "picture", "interests", "portfolio",
}

def _parse_entries(text: str) -> list[dict]:
Expand All @@ -87,7 +88,7 @@ def _parse_entries(text: str) -> list[dict]:
# Try key: value field
m = re.match(r'^([a-zA-Z_]+)\s*:\s*(.*)$', line)
if m and m.group(1).lower() in _KNOWN_FIELDS:
current[m.group(1).lower()] = m.group(2).strip()
current[m.group(1).lower()] = m.group(2).strip().strip("<>")
else:
current["_body_lines"].append(raw_line)

Expand Down Expand Up @@ -133,6 +134,7 @@ def parse_collaborators(source: Path) -> list[Collaborator]:
title=e.get("title", ""),
affiliation=e.get("affiliation", ""),
website=e.get("website", ""),
portfolio=e.get("portfolio", ""),
email=e.get("email", ""),
picture=e.get("picture", ""),
interests=e.get("interests", ""),
Expand Down Expand Up @@ -325,6 +327,22 @@ def render_collaborators(collaborators: list[Collaborator]) -> str:

bio = _render_bio(c.bio)

links = []
if c.website:
links.append(
f'<a class="collab-link" href="{html.escape(c.website)}" '
f'target="_blank" rel="noopener">Website →</a>'
)
if c.portfolio:
links.append(
f'<a class="collab-link" href="{html.escape(c.portfolio)}" '
f'target="_blank" rel="noopener">Portfolio →</a>'
)
links_html = (
f'<div class="collab-links">{"&ensp;·&ensp;".join(links)}</div>'
if links else ""
)

cards.append(f"""\
<div class="collab-card">
{avatar}
Expand All @@ -333,6 +351,7 @@ def render_collaborators(collaborators: list[Collaborator]) -> str:
{interests_html}
{subtitle}
{bio}
{links_html}
</div>
</div>""")

Expand Down
6 changes: 4 additions & 2 deletions data/team/01-gregory-mermoud.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
## Gregory Mermoud

role: Director
title: Prof. Dr.
email: gregory.mermoud@hevs.ch
website: https://gregorymermoud.ch
email: <gregory.mermoud@hevs.ch>
website: <https://gregorymermoud.ch>
portfolio: <https://scholar.google.com/citations?hl=en&user=HzVpPHwAAAAJ>
interests: Hybrid Modeling, Differential Programming, Uncertainty Quantification, Dynamical Systems

Gregory Mermoud is a professor at HES-SO Valais-Wallis and director of SIMLab. His research focuses on the intersection of physics-based modeling and machine learning, with an emphasis on developing interpretable and uncertainty-aware models for real-world engineering problems.
18 changes: 18 additions & 0 deletions index.html
Original file line number Diff line number Diff line change
Expand Up @@ -330,6 +330,17 @@

.proj-link-sep { color: var(--border); }

.collab-link {
font-size: 0.83rem;
font-weight: 600;
color: var(--accent);
text-decoration: none;
}

.collab-link:hover { text-decoration: underline; }

.collab-links { margin-top: 0.5rem; }

/* ── Collaborators grid ── */
.collab-grid {
display: grid;
Expand Down Expand Up @@ -651,6 +662,7 @@ <h3><a href="https://gregorymermoud.ch" target="_blank" rel="noopener">Prof. Dr.
<div class="collab-interests"><span class="interest-tag">Hybrid Modeling</span><span class="interest-tag">Differential Programming</span><span class="interest-tag">Uncertainty Quantification</span><span class="interest-tag">Dynamical Systems</span></div>
<div class="collab-subtitle">Director</div>
<p class="collab-bio">Gregory Mermoud is a professor at HES-SO Valais-Wallis and director of SIMLab. His research focuses on the intersection of physics-based modeling and machine learning, with an emphasis on developing interpretable and uncertainty-aware models for real-world engineering problems.</p>
<div class="collab-links"><a class="collab-link" href="https://gregorymermoud.ch" target="_blank" rel="noopener">Website →</a>&ensp;·&ensp;<a class="collab-link" href="https://scholar.google.com/citations?hl=en&amp;user=HzVpPHwAAAAJ" target="_blank" rel="noopener">Portfolio →</a></div>
</div>
</div>
<div class="collab-card">
Expand All @@ -660,6 +672,7 @@ <h3><a href="https://cedrictravelletti.github.io/" target="_blank" rel="noopener
<div class="collab-interests"><span class="interest-tag">Gaussian Processes</span><span class="interest-tag">Spatial Statistics</span><span class="interest-tag">Inverse Problems</span><span class="interest-tag">Geosciences</span></div>
<div class="collab-subtitle">Senior Scientist</div>
<p class="collab-bio">Cedric Travelletti is a senior scientist at SIMLab specialising in probabilistic machine learning and spatial statistics. His work addresses inverse problems in geosciences, with a focus on scalable Gaussian process methods and uncertainty quantification for large-scale environmental applications.</p>
<div class="collab-links"><a class="collab-link" href="https://cedrictravelletti.github.io/" target="_blank" rel="noopener">Website →</a></div>
</div>
</div>
<div class="collab-card">
Expand All @@ -669,6 +682,7 @@ <h3>Glory Givi</h3>
<div class="collab-interests"><span class="interest-tag">Machine Learning</span><span class="interest-tag">Explainable AI</span><span class="interest-tag">Scientific Computing</span></div>
<div class="collab-subtitle">Postdoc</div>


</div>
</div>
<div class="collab-card">
Expand All @@ -684,6 +698,7 @@ <h3><a href="https://gillioz.github.io/" target="_blank" rel="noopener">Dr. Marc
</ul>
<p class="collab-bio">At the HES-SO, Marc has also worked on problems related to power systems, such as power flow optimization through topological changes, modelling of hydroelectric production and high-voltage grids, and network reconstruction using Smart Meter data.</p>
<p class="collab-bio">Marc&#x27;s background is in high-energy physics, with a stint in software engineering.</p>
<div class="collab-links"><a class="collab-link" href="https://gillioz.github.io/" target="_blank" rel="noopener">Website →</a></div>
</div>
</div>
<div class="collab-card">
Expand All @@ -693,6 +708,7 @@ <h3>Alexandre Veuthey</h3>
<div class="collab-interests"><span class="interest-tag">Machine Learning</span><span class="interest-tag">Computer Vision</span><span class="interest-tag">Computer Graphics</span></div>
<div class="collab-subtitle">Research Engineer</div>
<p class="collab-bio">Alexandre Veuthey is a research engineer whose work at HES-SO and SIMLab focuses on the practical applications of Machine Learning for Computer Vision, particularly at the intersection of the 2D and 3D vision modalities. His prior experience in an industrial context enables data-driven solutions for vision tools based on cameras and other sensors.</p>

</div>
</div>
<div class="collab-card">
Expand All @@ -702,6 +718,7 @@ <h3>Marta Rende</h3>

<div class="collab-subtitle">Assistant</div>


</div>
</div>
<div class="collab-card">
Expand All @@ -711,6 +728,7 @@ <h3><a href="https://dionosmani.vercel.app/" target="_blank" rel="noopener">Dion
<div class="collab-interests"><span class="interest-tag">Dynamic Systems</span><span class="interest-tag">Optimization</span></div>
<div class="collab-subtitle">Assistant</div>

<div class="collab-links"><a class="collab-link" href="https://dionosmani.vercel.app/" target="_blank" rel="noopener">Website →</a></div>
</div>
</div>
</div>
Expand Down
Loading