Technical Skills
Computer Language: C++, Python, Julia, Java, Scala, Racket, Ocaml, ReasonML, MATLAB, VBA, Mathematica
Library: Jax, Numpy, Scipy, openCV, Matplotlib, Kwant, Sympy, Pytorch, Tensorflow QuTIP, Qiskit
Language:Thai, English
CS2240, Brown University
This individual project returns a photorealistic of a given scenefile of lightsource and objects with different optical properties. I implement the code from scratch on C++ and benchmark the image with different optimizations including importance sampling, stratified sampling, and multiple importance sampling. For this codebase, the code is design to priotitize physical accuracy within reasonable runtime (< 15 min per images).
Phys2030, Brown University
This individual project calculate dynamical properties i.e. Lyapunov Exponent of the contrained dynamical system called astrojax. Traditionally, the contrained solver i.e. Newton-Raphson method has to run in every timestep update, making the computation cost expensive, espescially for non-linear dynamical system where the time-dynamic is sensitive to initial condition. To circumvent the computational cost, I implement the explicit constrained method which can solve the trajectory explicitely using the automatic differentiation on the constain. The code designs priotitize generalizibility to different systems to allow rapid modelling.
Independent Project
Beads in a vibrating box is often used in physics class to demonstate the phase transition from
"liquid" phase to "solid" phase as the particle density increases. This project goals is an attempt to develop workflow
to show whether there is actually a transition from one phase to the other. I use openCV and python to track the particle motions as a function of time.
Then, I implement a heutistic algorithm to calculate the entropy and energy of the system and
derive the thermodynamics variable of the system at each configuration. The phase, transition is, then, defined as a discontinuity
in the Thermodynamic variable. The workflow is designed to process large amount of video data .mp4 (~1TB)
on a personal laptop.
CS2240, Brown University
This project is a part of class CS2240 development based on As-Rigid-As-Possible Surface Modeling. Using C++, I implement the C++ template and the minimal working code for a user-interactive deformation of 3D meshes. The user can select vertices of anchor point move them around while the mesh will deform in such a way that the anchor point is constraint and the mesh behave as-rigid-as-possible. The codebase utilize sparse matrix optimization in order to acheieve a user-interactive response time. This template designs to be flexible codebase for the student to implement the project while including the UI interactive feature build in such as vertices selection to improve student quality-of-life while trying the code.
Phys1600, Brown University
This projects implement 2D molecular dynamics in python from scratch and aim to simulate the heating of the fluid and study the fluid properties such as surface tension, pair correlation function, and particle flows. This code employed heuristic method for heating for real-time evolution while remain physically realistic as observed by the particle histogram in phase space.