TOOLS: Blender, Maya, Substance, Houdini.
TOOLS: Unity Engine, GLSL, P5JS, Python
CS348E: RL Character Animation, Motion Matching. (PYBULLET)
Shadertoy
Catopia (Unity Engine CS377g)
Unity game dev (2020)
VR
EXTRA: PERSONAL ART

About me:
I'm a new grad from Stanford University where I studied computer graphics. I love all kinds of art!! When I'm not in school, I'm an illustrator and I love participating in artist allies, and embarking on many strange art journeys.
I am a 3D artist and Unity Engine generalist. Looking for work after I finish my undergrad in December 2024![email protected]
reel
resume
new website (carrd)
old website (melissaran.github.io)
For these projects I was instructed by Karen Liu. Made with Python, PyBullet.
FRAME-BY-FRAME MOTION MATCHING USING MOCAP ANIMATIONS
WHAT IS MOTION MATCHING?
Your character in a video game may stroll, stumble, sprint, or run their hand against a wall depending on factors such as...* The player's desired speed
* A sudden change in the player's desired velocity or direction
* The character's proximity to obstacles.
* The character's pervious state (sitting to standing, running to jogging, etc.)Motion Matching maps a set of parameters characters (say, high forward velocity) to a pre-defined animation (running), creating richer and more context-aware movements for controllable characters.In this project, I leverage a database of mo-capped animations to build a library of animations, each indexed by characteristics such as joint angles and COM velocity. (To be specific, I use a KD tree. It's so powerful!) To challenge my understanding, I extended baseline deliverables by adding jumping functionality and also implemented pose interpolation. The final result is above.
RL SWIMMER:
Super dry summary: Used reinforcement learning to teach a skeleton to float, and then, to swim. Designed and implemented reward and observation space for human body, in order to achieve swimming motion. Implement feasible action space, enforcing skeletal hierarchy and joint angle limitations.
So what is Reinforcement Learning anyway? At this time, April 22nd 2025, I cannot answer this fully and accurately because it's been a while since I took this class. However, I'm sure of this much:I want a skeleton to swim: she's a hierarchy of transforms, one for each of 14 body parts. She's also an array of joint angles -- and each joint has varying degrees of freedom (DOFs) depending on which axis it can or cannot rotate around. So, her pose is represented by an array of scalars = joint angles = DOFs.Using this information, I need to teach her to swim by:1. Defining a scalar reward for her. For example, if I want to teach her to float, I may choose the Y value of her COM as a reward.
2. Defining an action space for her. I need to specify how she can respond to her reward using her joints, which can get complicated when enforcing realistic human joint limits.
3. Defining observation space. As she is learning, extra information may help her, such as the water level, or a sinusoidal time scalar, to give her a sense of rhythm (helpful for swimming perhaps?).I feed all this information into a black box that is Reinforcement Learning. There are perhaps gnarly things like Hessian matrices involved. The outcome can be seen above.
Please enjoy some fun projects :)
Miffy Pinball: SDF-based Collision Processing (P5JS)
Need I say more? You can play this here.
Fruit Fight - Networking game! (P5JS)
Show your friends how fruity you are. Outlast, outwit, outfruit. Thanks Chris for the video :-)
Flower breeding game :D
Totally procedural flowers bloom and intermingle, exchanging genetic info... I mean, uh, tons of parameters in an overly complex data structure...
Made in Unity.
Interior parallax shader

URP Shader fun... WIP project!
Raymarched and refractive SDF and volume shaders for URP, among other things.
All textures, models, shaders, code etc. are my own :)download (Mac 119mb)The shaders you see here are....
SDF-Cavity Decal

Refractive parametric UV-tangent-space eyeball

Volume Visualizer (from 3d texture)

JUNE + SECRET ATLELIER
Realtime environment piece I made in Blender (Eevee). Breakdown is embedded below, and also in my reel! All models and textures belong to me, as well as concept art. (In my personal art, I do not use AI.)I created this environment as a part of my art book project, where my goal was to fill 40 pages with original illustration and 3d art within one month, June 2024. I sell this book at vendor events, which I post about on my instagram!This year I have really fallen in love with books. Isn't it crazy that drawings, photos, 3d renders, texts, and even stuff like QR codes can come together to create something new? Please enjoy...
MOON STORY
I was a CURIS intern at Stanford summer 2023 and 2021. Moonstory is an outdoors AR learning journey that I worked very hard on, made in Unity. My contributions include a wide range of things such as... implementing the narrative/ progress system, implementing AR learning activities, creating sprites and artworks, 3d modeling, shaders, wrangling UI, fighting Niantic Lightship, placating child study participants, etc. I definitely pulled late nights for this project, so I'm happy it was accepted to CHI 2024. Thank you to my mentor Alan Cheng for introducing me to HCI research, I had a good time!ARTICLE (ACM)

Shaders I made for fun!!
VR PROJECTS
Witch Sim (VR)
I had a lot of fun making this! Special thanks to William Liu
All models, textures, and animations are my own, save the drawings in the book.
thinking at night (VR)
For ARTSTUDI 169. Please play while holding a pillow :-)
For older Unity work, please see this link: