.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "tutorial/04_filters/bonus/f_sampling_functions_3d.py" .. LINE NUMBERS ARE GIVEN BELOW. .. only:: html .. note:: :class: sphx-glr-download-link-note :ref:`Go to the end ` to download the full example code or to run this example in your browser via Binder .. rst-class:: sphx-glr-example-title .. _sphx_glr_tutorial_04_filters_bonus_f_sampling_functions_3d.py: Sample Function: Perlin Noise in 3D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Here we use :func:`pyvista.core.utilities.features.sample_function` to sample Perlin noise over a region to generate random terrain. Video games like Minecraft use Perlin noise to create terrain. Here, we create a voxelized mesh similar to a Minecraft "cave". .. GENERATED FROM PYTHON SOURCE LINES 11-14 .. code-block:: Python import pyvista as pv .. GENERATED FROM PYTHON SOURCE LINES 15-24 Generate Perlin Noise over a 3D StructuredGrid ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Feel free to change the values of ``freq`` to change the shape of the "caves". For example, lowering the frequency will make the caves larger and more expansive, while a higher frequency in any direction will make the caves appear more "vein-like" and less open. Change the threshold to reduce or increase the percent of the terrain that is open or closed .. GENERATED FROM PYTHON SOURCE LINES 24-31 .. code-block:: Python freq = (1, 1, 1) noise = pv.perlin_noise(1, freq, (0, 0, 0)) grid = pv.sample_function(noise, [0, 3.0, -0, 1.0, 0, 1.0], dim=(120, 40, 40)) out = grid.threshold(0.02) out .. raw:: html