Welcome to the official repository for the Social Intelligence and Narrative in Games (SING) Lab website.
This website is a lightweight, static web application designed to showcase the lab's interdisciplinary research.
To ensure long-term maintainability by lab members without requiring complex build steps or backend servers, the site is built using Vanilla Web Technologies:
- HTML5 / CSS3: Semantic structure and a responsive, flexbox/grid-based layout.
- Vanilla JavaScript: Handles interactive elements (dark mode toggle, mobile menu) and dynamic data fetching.
- JSON: Acts as a lightweight Content Management System (CMS) for lab members to easily update site content.
index.html- Home, Mission, and Core Research Tabsevents.html- Symposium details and dynamic countdown timerprojects.html- Featured computational media projects (Data-driven)publications.html- Academic bibliography cards (Data-driven)people.html- Lab directory (Data-driven)404.html- Interactive text-adventure error handlingstyle.css- Global stylesheet (includes Dark Mode logic and responsive media queries)script.js- Global interactive logic and JSONfetch()requests*.json- Data sources for dynamic pages (projects.json,publications.json,people.json)media/- Consolidated directory for all project images and team avatarslinks/- Consolidated directory for publication information (PDF and bibtex)
NOTE: Because this site uses the JavaScript fetch() API to load data from the .json files, you cannot simply double-click the index.html file to view it. Browsers block local file fetching due to CORS (Cross-Origin Resource Sharing) security rules.
To view the site locally, you must run a lightweight local web server:
Option A: VS Code (Recommended)
- Install the Live Server extension.
- Open the project folder in VS Code.
- Right-click
index.htmland select "Open with Live Server".
Option B: Python
- Open your terminal or command prompt.
- Navigate to the project directory.
- Run:
python -m http.server(orpython3 -m http.server). - Open your browser and navigate to
http://localhost:8000.
You do not need to touch the HTML to update the lab's portfolio. All dynamic content is driven by text files.
- To add a new publication: Open
publications.jsonand add a new entry following the existing schema. - To add a new team member: Drop their headshot into the
media/folder, then add their details and image path topeople.json. - To add a new project: Drop the project image into the
media/folder, then add the project details toprojects.json.