This repository is associated with the journal paper "The Mokume Dataset and Inverse Modeling of Solid Wood Textures" presented at SIGGRAPH 2025 (PDF, DOI). The dataset is hosted on Zenodo. The code is hosted in this repository.
a. Overview of the diverse wood species covered by the Mokume dataset. b. This data is used for training and evaluation of an inverse modeling pipeline for solid wood textures. Our method first segements the annual ring pattern and then compute a compatible procedural volumetric growth field (GF) in which the annual-rings are iso-curves/surfaces. We showcase two ways to transform this representation into a detailed 3D texture: an efficient inverse procedural model (Proc) with support for point-wise evaluation, and a versatile but resource-intensive neural cellular automaton (NCA).
We present the Mokume dataset for solid wood texturing consisting of 190 cube-shaped samples of various hard and softwood species documented by high-resolution exterior photographs, annual ring annotations, and volumetric computed tomography (CT) scans. A subset of samples further includes photographs along slanted cuts through the cube for validation purposes.
Using this dataset, we propose a three-stage inverse modeling pipeline to infer solid wood textures using only exterior photographs. Our method begins by evaluating a neural model to localize year rings on the cube face photographs. We then extend these exterior 2D observations into a globally consistent 3D representation by optimizing a procedural growth field using a novel iso-contour loss. Finally, we synthesize a detailed volumetric color texture from the growth field. For this last step, we propose two methods with different efficiency and quality characteristics: a fast inverse procedural texture method, and a neural cellular automaton (NCA).
We demonstrate the synergy between the Mokume dataset and the proposed algorithms through comprehensive comparisons with unseen captured data. We also present experiments demonstrating the efficiency of our pipeline’s components against ablations and baselines.
- Python 3.13.0
- PyTorch 2.7.1, CUDA 11.8
- Opencv 4.11.0
- matplotlib 3.10.3
- tqdm 4.67.1
- imageio 2.37.0
- ...
- ...
Step 1: Train the U-Net (this step can be skipped by instead downloading a trained model) To obtain training data, download ImagePairs folder from Zenodo.
python 1_train_unet.py
Step 2: Apply the U-Net to translate wood photographs to annual ring localization images
- Use the trained model from step 1 (unet_trained_model.pt), or download a pre-trained model from Zenodo.
python 2_apply_unet.py -sample CN03
Step 3: Infer the volumetric growth field of the sample and its color initalization
python 3_infer_gf.py -sample CN03
Step 4a: Run the texture synthesis appraoch 1: inverse procedural texturing
(code in progress)
python 4a_proc.py -sample CN03
Step 4b: Train and apply texture synthesis approach 2: neural cellular automata (independent of step 4a)
python 4b_nca.ipynb -sample CN03
Step 5: Run file 5_show_outputs to visualize the outputs
python 5_show_outputs.py -sample CN03
Project website: https://mokumeproject.github.io/
PDF: https://www.ma-la.com/mokume/preprint_paper.pdf
DOI: https://doi.org/10.1145/3730874
Dataset: https://zenodo.org/records/15588748
Maria Larsson, Hodaka Yamaguchi, Ehsan Pajouheshgar, I-Chao Shen, Kenji Tojo, Chia-Ming Chang, Lars Hansson, Olof Broman, Takashi Ijiri, Ariel Shamir, Wenzel Jakob, and Takeo Igarashi. 2025. The Mokume Dataset and Inverse Modeling of Solid Wood Textures. ACM Trans. Graph. 44, 4 (August 2025), 18 pages. https://doi.org/10.1145/3730874
@article{larsson2025mokume,
author = {Maria Larsson and Hodaka Yamaguchi and Ehsan Pajouheshgar and I-Chao Shen and Kenji Tojo and Chia-Ming Chang and Lars Hansson and Olof Broman and Takashi Ijiri and Ariel Shamir and Wenzel Jakob and Takeo Igarashi},
title = {The Mokume Dataset and Inverse Modeling of Solid Wood Textures},
journal = {ACM Transactions on Graphics},
volume = {44},
number = {4},
pages = {18 pages},
year = {2025},
month = aug,
doi = {10.1145/3730874},
url = {https://doi.org/10.1145/3730874}
}