Skip to content

Latest commit

 

History

History
22 lines (16 loc) · 1.99 KB

how_quadratic_works.md

File metadata and controls

22 lines (16 loc) · 1.99 KB

How Does Quadratic Work?

The Grid

The Quadratic Grid is built on WebGL using PixiJS. This allows us to render a high-performance grid with all your data, where you can quickly pan and zoom. By basically using a game engine to render the grid, this gives us a high level of control over what is drawn to the grid and our render pipeline.

We believe that for a tool to become joyful to use, it has to run very smoothly. We prioritize keeping a high frame rate and eliminating visual artifacts when panning and zooming the grid.

Python Code Execution

Python code is executed via Pyodide a WebAssembly compiled version of CPython. All cell code is executed on the front end in the client's browser. This creates some Python compatibility issues because system functions do not work, and network requests are made from the front end in the browser.

Future Architecture

Note: this is not the current Architecture. This diagram is where we envision the product architecture going. Quadratic Client Architecture 2

We envision a spreadsheet application where you can seamlessly bring in millions of rows of data, and run formulas, scripts, and SQL on your data all in one visual environment.

To achieve this, we envision the grid being a Vector Tilemap (think Google Maps) this way we can have lots of data in a file, allow the user to navigate with pan and zoom quickly, but not require all data to be loaded at all times.

A blog post series by the CTO of Figma Evan Wallnce has convinced us this is possible using a combination of WebAssembly (Rust!), WebWorkers, and WebGL.