VitorCarvalho67 / Gyroid

Generate and output a set of points that are located on the surface of a gyroid, providing a discrete representation of this complex and intriguing minimal surface

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Imagem logo

GYROID

The purpose of this program is to generate a discrete representation (set of points) of the gyroid surface, which is an interesting minimal surface with applications in various areas of science and engineering, such as porous materials, photonic structures, and biomimetics. Visualizing these points can help understand the shape and structure of the gyroid, and the resulting 3D mesh from the Marching Cubes algorithm can be used in simulations, analyses of material properties, or as a basis for the design of new materials and structures.

Here's a version with improved Markdown structure:


The gyroid has an approximate definition given by the equation:

$$ f(x, y, z) = \sin(x) \cdot \cos(y) + \sin(y) \cdot \cos(z) + \sin(z) \cdot \cos(x) = 0 $$

where the domain is defined as:

$$ -\pi < x < \pi, \quad -\pi < y < \pi, \quad -\pi < z < \pi $$


This C binary generates a point cloud [ points on the surface.]

gcc main.c -o gyroid -lm 
time ./gyroid > pc.json

Marching Cubes

The included shell script uses sensible parameters to configure splashsurf. The output is a obj file which can be imported in a program like blender.

./reconstruct.sh

About

Generate and output a set of points that are located on the surface of a gyroid, providing a discrete representation of this complex and intriguing minimal surface

License:GNU General Public License v3.0


Languages

Language:C 89.0%Language:Shell 11.0%