changes and whatnot

This commit is contained in:
2026-07-27 01:44:01 +02:00
parent 7172894ebb
commit d8187860d8
9 changed files with 58 additions and 42 deletions

View File

@@ -1,43 +1,10 @@
import { Renderer, UiState } from './engine/renderer'
import { Input } from './ui/input'
import { DomOverlay } from './ui/overlay'
import { SCENES } from './data/scenes'
const DPR_CAP = 2
interface SceneContent {
title: string
subtitle: string
body: string
}
const SCENES: SceneContent[] = [
{
title: 'Ahmed A. Mohamed',
subtitle: 'Creative Developer & Graphics Engineer',
body: 'Welcome to my personal website, there\'s a lot going on in my life that I will be sharing here randomly over time so take a look.'
},
{
title: 'ABOUT',
subtitle: 'Who I am',
body: 'I build creative web experiences\nusing cutting-edge graphics technology.'
},
{
title: 'PROJECTS',
subtitle: 'Things I have built',
body: 'A collection of work exploring\nWebGPU, shaders, and generative art.'
},
{
title: 'CONTACT',
subtitle: 'Get in touch',
body: 'Reach me at hello@example.com\nor find me on GitHub.'
},
{
title: 'RESUME',
subtitle: 'Ahmed Mohamed',
body: 'Graphics & Systems Engineer'
}
]
export class App {
private canvas: HTMLCanvasElement
private renderer = new Renderer()

View File

@@ -34,9 +34,9 @@ export const RESUME: ResumeData = {
{ label: 'linkedin.com/in/inedited/', href: 'https://linkedin.com/in/inedited/' },
{ label: 'github.com/inedited', href: 'https://github.com/inedited' },
],
location: 'Gustav-Schwab-Str., 4, 81673 München, Germany',
location: 'München, Germany',
summary:
'Experienced software developer with a strong background in graphics programming, real-time rendering, XR development and AI engineering. Experienced in developing high-performance applications and specializing in low-level optimizations.',
'Experienced software developer with a strong background in graphics programming, real-time rendering, XR development, Game development and AI engineering. Experienced in developing high-performance applications and specializing in low-level optimizations.',
education: [
{
role: 'Master of Science in Informatics: Games Engineering',

7
src/data/scenes/about.ts Normal file
View File

@@ -0,0 +1,7 @@
import type { SceneContent } from './index'
export const about: SceneContent = {
title: 'ABOUT',
subtitle: 'Who I am',
body: 'My name is Ahmed Alaa Ahmed Mohamed (aka Djoser/Djosen/Inedited), I\'m a passionate creative software engineer and game developer. ',
}

View File

@@ -0,0 +1,7 @@
import type { SceneContent } from './index'
export const contact: SceneContent = {
title: 'CONTACT',
subtitle: 'Get in touch',
body: 'Reach me at hello@example.com\nor find me on GitHub.',
}

7
src/data/scenes/hero.ts Normal file
View File

@@ -0,0 +1,7 @@
import type { SceneContent } from './index'
export const hero: SceneContent = {
title: 'Ahmed A. Mohamed',
subtitle: 'Creative Developer & Graphics Engineer',
body: 'Welcome to my personal website, there\'s a lot going on in my life that I will be sharing here randomly over time so take a look.',
}

19
src/data/scenes/index.ts Normal file
View File

@@ -0,0 +1,19 @@
// ---------- types ----------
export interface SceneContent {
title: string
subtitle: string
body: string
}
// ---------- scene files ----------
import { hero } from './hero'
import { about } from './about'
import { projects } from './projects'
import { contact } from './contact'
import { resume } from './resume'
// ---------- scene registry ----------
export const SCENES: SceneContent[] = [hero, about, projects, contact, resume]

View File

@@ -0,0 +1,7 @@
import type { SceneContent } from './index'
export const projects: SceneContent = {
title: 'PROJECTS',
subtitle: 'Things I have built',
body: 'A collection of work exploring\nWebGPU, shaders, and generative art.',
}

View File

@@ -0,0 +1,7 @@
import type { SceneContent } from './index'
export const resume: SceneContent = {
title: 'RESUME',
subtitle: 'Ahmed Mohamed',
body: 'Graphics & Systems Engineer',
}

View File

@@ -1,11 +1,6 @@
import { RESUME, ResumeData, ResumeEntry, SkillGroup } from '../data/resume'
import { PROJECTS, CATEGORIES, ProjectPage, ProjectCategory } from '../data/projects/index'
interface SceneContent {
title: string
subtitle: string
body: string
}
import type { SceneContent } from '../data/scenes'
export interface OverlayCallbacks {
onNavClick: (scene: number) => void