automata_scratch

This is repo has a few projects that are related in terms of high-level goal, but almost completely unrelated in their descent.

  • python_extrude_meshgen is some Python code from around 2019 September which did a sort of extrusion-based code generation. While this had some good results and some good ideas, the basic model was too limited in terms of the topology it could express.
  • libfive_subdiv is a short project around 2021 July attempting to use the Python bindings of libfive, and automatic differentiation in autograd, to turn implicit surfaces to meshes which were suitable for subdivision via something like OpenSubdiv (in turn so that I could render with them without having to use insane numbers of triangles or somehow hide the obvious errors in the geometry). Briefly, the process was to use edges with crease weights which were set based on the curvature of the implicit surface. While I accomplished this process, it didn't fulfill the goal. Shortly thereafter, I was re-reading Massively Parallel Rendering of Complex Closed-Form Implicit Surfaces - which, like libfive, is by Matt Keeter - and found a section I'd ignored on the difficulties of producing good meshes from isosurfaces for the sake of rendering. I kept the code around because I figured it would be useful to refer to later, particularly for the integration with Blender - but otherwise shelved this effort.
  • blender_scraps contains some scraps of Python code meant to be used inside of Blender's Python scripting - and it contains some conversions from another project, Prosha, for procedural mesh generation in Rust (itself based on learnings from python_extrude_meshgen). These examples were proof-of-concept of generating meshes as control cages rather than as "final" meshes.

It would probably make sense to rename this repo to something with procedural in the name rather than automata since at some point it ceased to have much to do with automata.

Projects not covered here

  • curl-noise work (both in Clojure and in Python/vispy)
  • parallel transport
  • prosha, of course
Description
No description provided
Readme 11 MiB
Languages
Jupyter Notebook 87.5%
Python 12.5%