Chenyang Yuan Blog Research Papers Tutorials Software Misc
  • Hobby Projects

    Progamming projects I created for fun, to learn a new language/library or tools to make life easier. The tool I use most is my dashboard, I always have it open on my computer, phone and a screen controlled by a raspberry pi at home. Next is the PDF popup link viewer, which is super helpful to cross-reference links to equations and theorems when reading papers.

  • PDF.js Popup Link Viewer

    When reading papers in the browser, I find it helpful to be able to click on references and look at the referenced text in a pop-up window. This hack on pdf.js implements this functionality. It is also available as a chrome extension. [Demo]

  • Dashboard

    A consolidated dashboard with current weather, forecast meteograms, bus arrival times, bikeshare availability, and more! Responsive layout suitable for both large displays and phone screens.

  • Facebook Group Archiver

    A tool for saving Facebook groups in a local database and doing comprehensive searches locally. After the first download, it will sync the local database with the Facebook group during each run. This also includes a web-interface for stats, searching and running database queries with nicely formatted results. Note: the archiver does not work as of early 2018 after Facebook restricted their groups API. Only the visualizer works when viewing already-archived groups.

  • 3D Particle Simulation

    A simulation with thousands of particles attracted by gravity towards many sources. Particles are shaded based on their speed, with red the fastest and white the slowest. The gravity is simulated numerically with the Runge-Kutta method ran in the CPU, whereas the rendering and the shading is done in the GPU using WebGL and the three.js library.

  • Python Control Flow Visualization

    An online tool that run python programs and visualize the code branching using D3.js. The programs are run in a sandbox in the server while being profiled, and the branch information is then sent to the client and rendered. From the rendered diagram we can see which lines of the code is hit the most, and also color-coded lines to indicate the direction of control-flow. Created at Facebook’s Battle of the Bay hackathon 2013.

  • Scheme on TI-89

    A Scheme interpreter from scratch that runs on my TI-89 graphing calculator. It is written in C and supports a small subset of the Scheme language. Created at the 2013 Cal vs Stanford hackathon and won first place.

  • Python Logic Simulation

    Used Python to create a logic gate simulation system with constraint passing. This system also allows powerful abstractions to be made so that more complicated sets of gates can be created, saved and reused. Created at Facebook’s Battle of the Bay hackathon 2012.

Made with Jekyll using Kasper theme