Skip to content

Commit

Permalink
Added Junior Year Projects
Browse files Browse the repository at this point in the history
  • Loading branch information
dinethmeegoda committed Aug 22, 2024
1 parent 26e109a commit 1091bd2
Show file tree
Hide file tree
Showing 25 changed files with 538 additions and 9 deletions.
15 changes: 15 additions & 0 deletions app/portfolio/project-blame/page.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
import Blame from '@/components/portfolio-components/project-blame';
import { ST } from 'next/dist/shared/lib/utils';

export const metadata = {
title: 'Project Blame | Dineth Meegoda',
description: 'Procedurally Built Sci-Fi Scene.',
};

export default function Projects() {
return (
<main className="my-28 md:my-48">
<Blame />
</main>
);
}
15 changes: 15 additions & 0 deletions app/portfolio/stylized-beach/page.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
import StylizedBeach from '@/components/portfolio-components/stylized-beach';
import { ST } from 'next/dist/shared/lib/utils';

export const metadata = {
title: 'Sunset Beach | Dineth Meegoda',
description: '3D Interactive Scene of Beach with Toon Shading.',
};

export default function Projects() {
return (
<main className="my-28 md:my-48">
<StylizedBeach />
</main>
);
}
15 changes: 15 additions & 0 deletions app/projects/fluid-sim-engine/page.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
import FluidSim from '@/components/project-components/fluid-sim-engine';

export const metadata = {
title: 'Fluid Sim | Dineth Meegoda',
description:
'Engine built with C++ and OpenGL to allow for realtime interactive fluid simulation.',
};

export default function Projects() {
return (
<main className="my-28 md:my-48">
<FluidSim />
</main>
);
}
14 changes: 14 additions & 0 deletions app/projects/griddle/page.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
import Griddle from '@/components/project-components/griddle';

export const metadata = {
title: 'Houdini Legoifier | Dineth Meegoda',
description: 'Houdini Tool to turn any Mesh into Lego!',
};

export default function Projects() {
return (
<main className="my-28 md:my-48">
<Griddle />
</main>
);
}
14 changes: 14 additions & 0 deletions app/projects/houdini-lego-tool/page.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
import Legoifier from '@/components/project-components/houdini-lego-tool';

export const metadata = {
title: 'Houdini Legoifier | Dineth Meegoda',
description: 'Houdini Tool to turn any Mesh into Lego!',
};

export default function Projects() {
return (
<main className="my-28 md:my-48">
<Legoifier />
</main>
);
}
15 changes: 15 additions & 0 deletions app/projects/maya-crowd-sim/page.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
import CrowdSim from '@/components/project-components/maya-crowd-sim';

export const metadata = {
title: 'Maya Crowd Sim | Dineth Meegoda',
description:
'Maya Interactive Crowd Simulation Tool with accompanying OpenGL Engine.',
};

export default function Projects() {
return (
<main className="my-28 md:my-48">
<CrowdSim />
</main>
);
}
14 changes: 14 additions & 0 deletions app/projects/vr-grappler/page.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
import Grappler from '@/components/project-components/vr-grappler';

export const metadata = {
title: 'VR Grappler | Dineth Meegoda',
description: 'VR Physics based Grapple Gun Game',
};

export default function Projects() {
return (
<main className="my-28 md:my-48">
<Grappler />
</main>
);
}
3 changes: 2 additions & 1 deletion components/Demo.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,19 +4,20 @@ import { CSSProperties } from 'react';

const skills = [
{ skill: 'C++' },
{ skill: 'Python' },
{ skill: 'Unreal Engine' },
{ skill: 'OpenGL' },
{ skill: 'Unity' },
{ skill: 'C#' },
{ skill: 'Houdini' },
{ skill: 'VEX' },
{ skill: 'Autodesk Maya' },
{ skill: 'Python' },
{ skill: 'ZBrush' },
{ skill: 'WebGL' },
{ skill: 'Substance Painter' },
{ skill: 'React' },
{ skill: 'Substance Designer' },
{ skill: 'Perforce' },
{ skill: 'Next.js' },
{ skill: 'Premiere Pro' },
{ skill: 'Tailwind CSS' },
Expand Down
6 changes: 3 additions & 3 deletions components/HeroSection.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ const HeroSection = () => {
Hey, I&apos;m Dineth!
</h1>
<p className="mb-6 mt-4 text-left text-lg lg:pr-12 lg:text-2xl">
I&#39;m a junior at the
I&#39;m a senior at the
<span className="font-bold text-blue-500">
{' '}
University of Pennsylvania{' '}
Expand All @@ -39,7 +39,7 @@ const HeroSection = () => {
</span>
, a selective interdisplinary program between Computer Science and
Fine Arts. I&apos;m also a teaching assistant for Penn&apos;s
Interactive Computer Graphics Class and currently the Events Chair
Procedural Computer Graphics Class and currently the Vice President
of Penn&apos;s{' '}
<a className="underline" href="http://cg.cis.upenn.edu/siggraph/">
ACM SIGGRAPH
Expand All @@ -54,7 +54,7 @@ const HeroSection = () => {
{/*Div that contains buttons*/}
<div className="items-left flex flex-row space-x-4">
<Link
href="https://drive.google.com/file/d/179LpsuRJuVi3jLxsa9BQOGWvJ0ifoCfT/view?usp=sharing"
href="https://drive.google.com/file/d/179LpsuRJuVi3jLxsa9BQOGWvJ0ifoCfT/view?usp=drive_link"
target="_blank"
className="inline-flex w-1/2 flex-row items-center justify-between gap-4 rounded bg-gray-700 px-6 py-3 font-semibold text-neutral-100 shadow transition-[padding] duration-300 ease-in-out hover:bg-gray-600 hover:pl-8 md:w-2/5"
>
Expand Down
12 changes: 12 additions & 0 deletions components/PortfolioSection.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,18 @@ const projects = [
image: '/portfolio-images/sushi-house/sushi-house-title.png',
tags: ['Unreal ', 'Substance ', 'Maya'],
},
{
name: 'Sunset Beach',
link: '/portfolio/stylized-beach',
image: '/portfolio-images/stylized-beach/stylized-beach-title.png',
tags: ['Unity ', 'HLSL ', 'Maya'],
},
{
name: 'Project: Blame',
link: '/portfolio/project-blame',
image: '/portfolio-images/project-blame/project-blame-title.png',
tags: ['Substance Designer', 'Blender'],
},
{
name: 'Saul Goodman',
link: '/portfolio/saul-goodman',
Expand Down
44 changes: 39 additions & 5 deletions components/ProjectsSection.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -12,20 +12,54 @@ const projects = [
'A tool built for Unity that procedurally creates real-time mesh cuts on models.',
tags: ['C# ', 'Unity ', 'Oculus'],
},
{
name: 'Real-Time Fluid Sim Engine',
link: '/projects/fluid-sim-engine',
image: '/projects-images/fluid-sim-engine/fluid-sim-engine-title.png',
description: 'A Parallelizable Physics Particle Based Engine.',
tags: ['C++ ', 'GLSL', 'OpenGL'],
},
{
name: 'Maya Crowd Sim Plugin & Engine',
link: '/projects/maya-crowd-sim',
image: '/projects-images/maya-crowd-sim/maya-crowd-sim-title.png',
description: 'A tool built for Maya along with a OpenGL Crowd Sim Engine.',
tags: ['C++ ', 'Python ', 'Maya'],
},
{
name: 'Legoifier Tool',
link: '/projects/houdini-lego-tool',
image: '/projects-images/houdini-lego-tool/houdini-lego-tool-title.png',
description: 'A houdini tool that transforms any mesh to LEGO.',
tags: ['Houdini ', 'VEX '],
},
{
name: 'VR Grappler',
link: '/projects/vr-grappler',
image: '/projects-images/vr-grappler/vr-grappler-title.png',
description: 'A physics-based prototype based on real-time swinging.',
tags: ['Unity ', 'OpenXR ', 'C#'],
},
{
name: 'USD Griddle',
link: '/projects/griddle',
image: '/projects-images/griddle/griddle-title.png',
description: 'A web-based USD Database for 3D Artists.',
tags: ['USD ', 'Python ', 'FastAPI'],
},
{
name: 'Mini Minecraft',
link: '/projects/mini-minecraft',
image: '/projects-images/mini-minecraft/mini-minecraft-title.png',
description:
'Version of Minecraft with multithreading implemented with a custom game engine.',
description: 'Multithreaded Voxel Based Engine.',
tags: ['C++', 'OpenGL', 'GLSL'],
},
{
name: 'Path Tracer',
link: '/projects/pathtracer',
image: '/projects-images/path-tracer/path-tracer-title.png',
description:
'Monte-Carlo Pathtracer with scene creation, multisampling, and materials.',
'Monte-Carlo Pathtracer with MIS, Scene Creation, and Materials.',
tags: ['GLSL', 'OpenGL', 'C++'],
},
{
Expand All @@ -41,15 +75,15 @@ const projects = [
link: '/projects/realtime-renderer',
image: '/projects-images/realtime-renderer/realtime-renderer-title.png',
description:
'Real-time Rendering Engine implementing PBR materials, textures, and HDRIs.',
'Real-time Rendering Engine implementing PBR surfaces, reflections, and HDRIs.',
tags: ['GLSL', 'OpenGL'],
},
{
name: 'Mini Maya',
link: '/projects/mini-maya',
image: '/projects-images/mini-maya/mini-maya-title.png',
description:
'3D Modelling Program that implements subdivision and mesh skinning with basic skeletons.',
'3D Modelling Program that implements subdivision, skinning, and USD exports.',
tags: ['C++', 'OpenGL', 'Qt'],
},
{
Expand Down
71 changes: 71 additions & 0 deletions components/portfolio-components/project-blame.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
import React from 'react';
import Image from 'next/image';

const Blame = () => {
return (
<section id="home">
<div className="container mx-auto mb-10 text-center text-3xl">
<p className="mx-6 mb-10">
{' '}
A procedurally built Sci-Fi scene based on the manga anthology BLAME.
</p>
<p className="mx-10 mb-6">
{' '}
I worked on this with{' '}
<span className="font-bold text-blue-800 underline dark:text-fuchsia-500">
<a href="https://tlshaw.me" target="_blank" rel="noreferrer">
Thomas Shaw
</a>
</span>{' '}
and{' '}
<span className="font-bold text-blue-800 underline dark:text-fuchsia-500">
<a
href="https://artstation.com/xiaocongyan"
target="_blank"
rel="noreferrer"
>
Rain Yan
</a>
</span>
. I contributed procedural materials within Substance Designer and
integrated them within Blender along with project ideation.
</p>
<p>
Still working on the breakdown but here&apos;s a overview video and a{' '}
<span className="font-bold text-blue-800 underline dark:text-fuchsia-500">
<a
href="https://github.com/xcupsilon/project-blame/tree/main"
target="_blank"
rel="noreferrer"
>
Github README
</a>
</span>
.
</p>
<div className="mt-10 flex aspect-video flex-col">
<iframe
className="h-full w-full rounded-lg"
src="https://www.youtube.com/embed/IiXXfCsfhyw?si=162kXMxCV-GuziEc"
width="100%"
title="YouTube video player"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
allowFullScreen
></iframe>
<p className="font-style: my-4 text-center italic max-xl:text-lg max-sm:text-base xl:text-xl">
Brief Video Overview of the project
</p>
</div>
<Image
className="mx-auto mt-10 rounded-xl shadow-2xl"
src="/constructionMonkey.png"
alt=""
width={1472}
height={490}
/>
</div>
</section>
);
};

export default Blame;
39 changes: 39 additions & 0 deletions components/portfolio-components/stylized-beach.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
import React from 'react';
import Image from 'next/image';

const StylizedBeach = () => {
return (
<section id="home">
<div className="container mx-auto mb-10 text-center text-3xl">
<p className="mx-6 mb-10">
{' '}
An Interactive Unity Scene created solely by me to explore real-time
stylized shading techniques. I used HLSL, Substance Designer, Maya,
and ZBrush to create the final look.
</p>
<p>
Still working on the breakdown but, here&apos;s a{' '}
<span className="font-bold text-blue-800 underline dark:text-fuchsia-500">
<a
href="https://github.com/dinethmeegoda/unity-stylization"
target="_blank"
rel="noreferrer"
>
Github README
</a>
</span>
.
</p>
<Image
className="mx-auto mt-10 rounded-xl shadow-2xl"
src="/constructionMonkey.png"
alt=""
width={1472}
height={490}
/>
</div>
</section>
);
};

export default StylizedBeach;
Loading

0 comments on commit 1091bd2

Please sign in to comment.