This repository includes the prototype system of SimpModeling.
We present *SimpModeling*, a novel sketching system designed for amateur users to create desired animalmorphic heads. It provides two stages for mesh modeling: coarse shape sketching where users may create coarse head models with 3D curve handles (blue), and geometric detail crafting where users may add geometric surface details by drawing sketches (red) on the coarse models. The two animalmorphic head models in this figure were created by a novice user without any 3D modeling experiences in ten minutes. Please refer to our project page for more demonstrations.SimpModeling: Sketching Implicit Field to Guide Mesh Modeling for 3D Animalmorphic Head Design
Zhongjin Luo, Jie Zhou, Heming Zhu, Dong Du, Xiaoguang Han, Hongbo Fu
demo.mp4
This system has been tested with Python 3.8, PyTorch 1.7.1, CUDA 10.2 on Ubuntu 18.04.
-
Installation:
conda create --name SimpModeling -y python=3.8 conda activate SimpModeling pip install -r requirements.txt
-
Start by cloning this repo:
git clone [email protected]:zhongjinluo/SimpModeling.git cd SimpModeling
-
Download pre-compiled user interface and checkpoints for backend algorithms from simpmodeling_files.zip and unzip it:
unzip app.zip # /path-to-repo/app mv simpmodeling_files/coarse/checkpoint_epoch_200.tar /path-to-repo/coarse/experiments/exp_3000v128/checkpoints/ mv simpmodeling_files/fine/normal/*.pth /path-to-repo/fine/normal/checkpoints/GapMesh/ mv simpmodeling_files/fine/model/netG_latest /path-to-repo/fine/model/checkpoints/example/
-
After preparing the above file, the directory structure is expected as follows:
├── app │ ├── AppRun -> APP_UI_3 │ ├── APP_UI_3 │ ├── config.ini │ ├── doc │ ├── env.sh │ ├── lib │ ├── pack.sh │ ├── plugins │ ├── qt.conf │ ├── results │ ├── run.sh │ └── translations ├── coarse │ ├── data_processing │ ├── experiments │ │ └── exp_3000v128 │ │ ├── checkpoints │ │ │ └── checkpoint_epoch_200.tar │ │ └── val_min=68.npy │ ├── models │ ├── server.py │ └── server.sh ├── docs ├── fine │ ├── model │ │ ├── checkpoints │ │ │ └── example │ │ │ └── netG_latest │ │ ├── lib │ │ └── PV.json │ ├── normal │ │ ├── checkpoints │ │ │ └── GapMesh │ │ │ ├── latest_net_D.pth │ │ │ └── latest_net_G.pth │ │ ├── models │ │ ├── options │ │ └── util │ ├── server.py │ ├── server.sh │ ├── sketch2model.py │ └── sketch2norm.py └── README.md
-
Run the backend servers for two-stage modeling:
cd /path-to-repo/coarse && bash server.sh cd /path-to-repo/fine && bash server.sh
-
Launch the user interface and enjoy it:
cd app/ && bash run.sh
-
If you want to run the backend algorithms on a remote server, you may have to modify
app/config.ini
. -
This repo represents the prototype implementation of our paper. Please use this for research and educational purposes only. This is a research prototype system and made public for demonstration purposes. The user interface runs on Ubuntu 18.04 platforms only and may contain some bugs.
-
If you are interested in sketch-based 3D modeling, you can also refer to SketchMetaFace and Sketch2RaBit.
@inproceedings{luo2021simpmodeling,
title={Simpmodeling: Sketching implicit field to guide mesh modeling for 3d animalmorphic head design},
author={Luo, Zhongjin and Zhou, Jie and Zhu, Heming and Du, Dong and Han, Xiaoguang and Fu, Hongbo},
booktitle={The 34th Annual ACM Symposium on User Interface Software and Technology},
pages={854--863},
year={2021}
}