I-Chao Shen

90 papers A* 7A 4B 3Journal 52Unranked 24
YearRankTypeTitle / Venue / Authors
2026 A* conf
AAAI
Chaoyun Wang, I-Chao Shen, Takeo Igarashi, Caigui Jiang
2026 J jnl
CoRR
Shuangkang Fang, I-Chao Shen, Xuanyang Zhang, Zesheng Wang, Yufeng Wang, Wenrui Ding, Gang Yu, Takeo Igarashi
2026 A* conf
AAAI
Tianyu Zhang, I-Chao Shen, Haoran Xie
2025 J jnl
Comput. Graph. Forum
Ishtiaque Hossain, I-Chao Shen, Oliver van Kaick
2025 A* conf
SIGGRAPH Asia
Hsiao-Yuan Chin, I-Chao Shen, Yi-Ting Chiu, Ariel Shamir, Bing-Yu Chen
2025 J jnl
CoRR
Hsiao-Yuan Chin, I-Chao Shen, Yi-Ting Chiu, Bingyu Chen
2025 J jnl
CoRR
Chaoyun Wang, I-Chao Shen, Takeo Igarashi, Nanning Zheng, Caigui Jiang
2025 J jnl
CoRR
Chaoyun Wang, Quanxin Huang, I-Chao Shen, Takeo Igarashi, Nanning Zheng, Caigui Jiang
2025 A* conf
CHI
Humphrey Yang, I-Chao Shen, Nikolas Martelaro, Bo Zhu, Haoran Xie, Takeo Igarashi, Lining Yao
2025 A* conf
CHI
Yuki Tatsukawa, I-Chao Shen, Mustafa Doga Dogan, Anran Qi, Yuki Koyama, Ariel Shamir, Takeo Igarashi
2025 J jnl
CoRR
Yuki Tatsukawa, I-Chao Shen, Mustafa Doga Dogan, Anran Qi, Yuki Koyama, Ariel Shamir, Takeo Igarashi
2025 conf
SIGGRAPH (Conference Paper Track)
Yuki Tatsukawa, Anran Qi, I-Chao Shen, Takeo Igarashi
2025 J jnl
CoRR
Yuki Tatsukawa, Anran Qi, I-Chao Shen, Takeo Igarashi
2025 B conf
Graphics Interface
Ryan S. Zesch, I-Chao Shen, Haoran Xie, Bo Zhu, Shinjiro Sueda, Takeo Igarashi
2025 conf
SIGGRAPH Asia Posters
Atsushi Maruyama, Sosui Koga, Akinobu Maejima, Yuki Koyama, I-Chao Shen, Takeo Igarashi
2025 J jnl
Comput. Graph. Forum
I-Chao Shen, Ariel Shamir, Takeo Igarashi
2025 J jnl
CoRR
I-Chao Shen, Ariel Shamir, Takeo Igarashi
2025 J jnl
CoRR
Zaiqiang Wu, Yechen Li, Jingyuan Liu, Yuki Shibata, Takayuki Hori, I-Chao Shen, Takeo Igarashi
2025 conf
SIGGRAPH Asia Posters
Jotaro Sakamiya, Akinobu Maejima, Yuki Koyama, I-Chao Shen, Takeo Igarashi
2025 J jnl
CoRR
Shuangkang Fang, I-Chao Shen, Yufeng Wang, Yi-Hsuan Tsai, Yi Yang, Shuchang Zhou, Wenrui Ding, Takeo Igarashi, Ming-Hsuan Yang
2025 J jnl
CoRR
Shuangkang Fang, I-Chao Shen, Takeo Igarashi, Yufeng Wang, Zesheng Wang, Yi Yang, Wenrui Ding, Shuchang Zhou
2025 J jnl
Comput. Graph. Forum
Zaiqiang Wu, I-Chao Shen, Takeo Igarashi
2025 J jnl
CoRR
Zaiqiang Wu, I-Chao Shen, Takeo Igarashi
2025 conf
SCF
Masahiro Kono, Maria Larsson, I-Chao Shen, Takeo Igarashi
2025 J jnl
Vis. Comput.
I-Chao Shen, Li-Wen Su, Yu-Ting Wu, Bing-Yu Chen
2025 J jnl
ACM Trans. Graph.
Maria Larsson, Hodaka Yamaguchi, Ehsan Pajouheshgar, I-Chao Shen, Kenji Tojo, Chia-Ming Chang, Lars Hansson, Olof Broman, Takashi Ijiri, Ariel Shamir, Wenzel Jakob, Takeo Igarashi
2024 conf
Eurographics (Short Papers)
Yuta Fukushima, Anran Qi, I-Chao Shen, Yulia Gryaditskaya, Takeo Igarashi
2024 J jnl
CoRR
Jotaro Sakamiya, I-Chao Shen, Jinsong Zhang, Mustafa Doga Dogan, Takeo Igarashi
2024 conf
SIGGRAPH Asia Technical Communications
Atsushi Maruyama, Maria Larsson, I-Chao Shen, Takeo Igarashi
2024 conf
SIGGRAPH Asia Posters
Jinsong Zhang, I-Chao Shen, Jotaro Sakamiya, Yu-Kun Lai, Takeo Igarashi, Kun Li
2024 J jnl
Comput. Graph. Forum
Yuki Tatsukawa, I-Chao Shen, Anran Qi, Yuki Koyama, Takeo Igarashi, Ariel Shamir
2024 J jnl
CoRR
Yuki Tatsukawa, I-Chao Shen, Anran Qi, Yuki Koyama, Takeo Igarashi, Ariel Shamir
2024 conf
SIGGRAPH Asia Posters
Sotaro Kanazawa, I-Chao Shen, Yuki Tatsukawa, Takeo Igarashi
2024 J jnl
Vis. Comput.
Yu-Ting Wu, I-Chao Shen
2024 J jnl
Comput. Graph. Forum
Maria Larsson, Takashi Ijiri, I-Chao Shen, Hironori Yoshida, Ariel Shamir, Takeo Igarashi
2024 J jnl
CoRR
Toby Chong, Alina Chadwick, I-Chao Shen, Haoran Xie, Takeo Igarashi
2024 J jnl
IEEE Computer Graphics and Applications
I-Chao Shen, Hao-Kang Liu, Bing-Yu Chen
2024 B conf
Graphics Interface
Zaiqiang Wu, Jingyuan Liu, Toby Chong, I-Chao Shen, Takeo Igarashi
2023 A conf
WACV
Ching-Ya Chiu, Yu-Ting Wu, I-Chao Shen, Yung-Yu Chuang
2023 conf
SIGGRAPH Posters
Naoki Agata, Anran Qi, Yuta Noma, I-Chao Shen, Takeo Igarashi
2023 J jnl
Comput. Graph. Forum
Ishtiaque Hossain, I-Chao Shen, Takeo Igarashi, Oliver van Kaick
2023 J jnl
Comput. Graph. Forum
I-Chao Shen, Fu-Yin Cherng, Takeo Igarashi, Wen-Chieh Lin, Bing-Yu Chen
2023 J jnl
CoRR
I-Chao Shen, Fu-Yin Cherng, Takeo Igarashi, Wen-Chieh Lin, Bing-Yu Chen
2023 conf
SIGGRAPH Asia Technical Communications
Toby Chong, Alina Chadwick, I-Chao Shen, Haoran Xie, Takeo Igarashi
2023 conf
SIGGRAPH Posters
Miao Lin, I-Chao Shen, Hsiao-Yuan Chin, Ruo-Xi Chen, Bing-Yu Chen
2023 J jnl
Comput. Graph. Forum
Miao Lin, I-Chao Shen, Hsiao-Yuan Chin, Ruo-Xi Chen, Bingyu Chen
2022 J jnl
CoRR
I-Chao Shen, Yu Ju Chen, Oliver van Kaick, Takeo Igarashi
2022 J jnl
IEEE Trans. Vis. Comput. Graph.
I-Chao Shen, Bing-Yu Chen
2022 J jnl
IEEE Computer Graphics and Applications
I-Chao Shen
2022 J jnl
CoRR
Hao-Kang Liu, I-Chao Shen, Bing-Yu Chen
2022 A conf
IUI
Chunqi Zhao, I-Chao Shen, Tsukasa Fukusato, Jun Kato, Takeo Igarashi
2022 conf
SIGGRAPH Asia Technical Communications
Yuta Fukushima, Anran Qi, I-Chao Shen, Takeo Igarashi
2022 A conf
BMVC
Wei-Chieh Chung, Jiankai Zhu, I-Chao Shen, Yu-Ting Wu, Yung-Yu Chuang
2021 J jnl
Comput. Graph. Forum
I-Chao Shen, Kuan-Hung Liu, Li-Wen Su, Yu-Ting Wu, Bing-Yu Chen
2021 J jnl
CoRR
I-Chao Shen, Bing-Yu Chen
2021 conf
SIGGRAPH Asia Technical Communications
Li-Yu Chen, I-Chao Shen, Bing-Yu Chen
2021 J jnl
Comput. Graph. Forum
Toby Long Hin Chong, I-Chao Shen, Issei Sato, Takeo Igarashi
2021 conf
High Performance Graphics (Symposium Papers)
Yu-Ting Wu, Tzu-Mao Li, I-Chao Shen, Hong-Shiang Lin, Yung-Yu Chuang
2021 A* conf
UIST
Toby Long Hin Chong, I-Chao Shen, Nobuyuki Umetani, Takeo Igarashi
2021 J jnl
CoRR
Toby Long Hin Chong, I-Chao Shen, Nobuyuki Umetani, Takeo Igarashi
2021 conf
SIGGRAPH ASIA Emerging Technologies
Toby Long Hin Chong, I-Chao Shen, Yinfei Qian, Nobuyuki Umetani, Takeo Igarashi
2021 J jnl
CoRR
I-Chao Shen, Li-Wen Su, Yu-Ting Wu, Bing-Yu Chen
2020 J jnl
CoRR
I-Chao Shen, Kuan-Hung Liu, Li-Wen Su, Yu-Ting Wu, Bing-Yu Chen
2020 B conf
MobileHCI
Hao-Juan Huang, I-Chao Shen, Liwei Chan
2020 J jnl
Comput. Graph. Forum
I-Chao Shen, Ming-Shiuan Chen, Chun-Kai Huang, Bing-Yu Chen
2019 J jnl
CoRR
Toby Long Hin Chong, I-Chao Shen, Issei Sato, Takeo Igarashi
2019 J jnl
CoRR
I-Chao Shen, Ming-Shiuan Chen, Chun-Kai Huang, Bing-Yu Chen
2018 conf
IUI Companion
Ching-Chun Chen, Chia-Min Wu, I-Chao Shen, Bing-Yu Chen
2018 conf
SIGGRAPH Posters
Ming-Shiuan Chen, I-Chao Shen, Chun-Kai Huang, Bing-Yu Chen
2018 J jnl
ACM Trans. Graph.
Shayan Hoshyari, Edoardo Alberto Dominici, Alla Sheffer, Nathan Carr, Zhaowen Wang, Duygu Ceylan, I-Chao Shen
2018 J jnl
CoRR
I-Chao Shen, Yi-Hau Wang, Yu-Mei Chen, Bing-Yu Chen
2018 J jnl
CoRR
Shu-Hsuan Hsu, I-Chao Shen, Bing-Yu Chen
2017 J jnl
Comput. Graph. Forum
Wei-Tse Lee, Hsin-I Chen, Ming-Shiuan Chen, I-Chao Shen, Bing-Yu Chen
2016 J jnl
ACM Trans. Graph.
Li Yi, Vladimir G. Kim, Duygu Ceylan, I-Chao Shen, Mengyan Yan, Hao Su, Cewu Lu, Qixing Huang, Alla Sheffer, Leonidas J. Guibas
2016 J jnl
Neurocomputing
Tsung-Hung Tsai, Wei-Cih Jhou, Wen-Huang Cheng, Min-Chun Hu, I-Chao Shen, Tekoing Lim, Kai-Lung Hua, Ahmed Ghoneim, M. Anwar Hossain, Shintami Chusnul Hidayati
2016 J jnl
Comput. Graph. Forum
Chun-Kai Huang, Yi-Ling Chen, I-Chao Shen, Bing-Yu Chen
2015 J jnl
Comput. Graph. Forum
Hsin-I Chen, Tse-Ju Lin, Xiao-Feng Jian, I-Chao Shen, Bing-Yu Chen
2015 J jnl
IEEE Trans. Vis. Comput. Graph.
Sheng-Jie Luo, Ying-Tse Sun, I-Chao Shen, Bing-Yu Chen, Yung-Yu Chuang
2015 J jnl
IEEE Trans. Multim.
I-Chao Shen, Wen-Huang Cheng
2015 conf
SIGGRAPH Posters
Chun-Kai Huang, Yi-Ling Chen, I-Chao Shen, Bing-Yu Chen
2015 A* conf
CHI
Rong-Hao Liang, I-Chao Shen, Yu-Chien Chan, Guan-Ting Chou, Li-Wei Chan, De-Nian Yang, Mike Y. Chen, Bing-Yu Chen
2013 A conf
MobiSys
Chih-Hsiang Hsu, I-Chao Shen, Wen-Huang Cheng, Shih-Wei Sun
2013 conf
SIGGRAPH ASIA Posters
Chien-Wen Jung, I-Chao Shen, Sheng-Jie Luo, Chun-Kai Huang, Bing-Yu Chen, Wen-Huang Cheng
2013 conf
SIGGRAPH ASIA Posters
Sheng-Jie Luo, Chin-Yu Lin, I-Chao Shen, Bing-Yu Chen
2013 J jnl
Comput. Graph. Forum
Sheng-Jie Luo, Chin-Yu Lin, I-Chao Shen, Bing-Yu Chen
2012 conf
SIGGRAPH ASIA Posters
Sheng-Jie Luo, I-Chao Shen, Hsu Hsu, Bing-Yu Chen
2012 J jnl
ACM Trans. Graph.
Sheng-Jie Luo, I-Chao Shen, Bing-Yu Chen, Wen-Huang Cheng, Yung-Yu Chuang
2012 conf
SIGGRAPH ASIA Posters
I-Chao Shen, Sheng-Jie Luo, Yi-Hua Tina Wang, Yu-Mei Chen, Bing-Yu Chen, Wen-Huang Cheng
2012 conf
PG (Short Papers)
Hsin-Yi Chen, Yi-Shan Lin, I-Chao Shen, Sheng-Jie Luo, Wen-Huang Cheng, Bing-Yu Chen
2010 conf
SIGGRAPH Posters
Chun-Yu Tsai, Hung-Jung Lin, Tzu-Hao Kuo, Kai-Yin Cheng, I-Chao Shen, Bing-Yu Chen, Rung-Huei Liang
tests/unit/conftest.py
← Index tests/unit/conftest.py python
"""
Unit test configuration.

Replaces the redb.extractors package with a minimal stub so that
``from redb.extractors.database_exporters import ...`` works without
pulling in the heavy __init__.py import chain (pefile, elftools,
signify, magic, etc.).

Also stubs out redb.settings so that Elasticsearch / ClickHouse
clients are never actually created during unit tests.

Additionally installs binaryninja stubs for decompiler unit tests.

Stubs heavy third-party packages (pefile, magic, psutil, etc.) so that
redb.workers, redb.queries, redb.ingestor, and redb.s3_utils can all
be imported and patched in unit tests without requiring the real packages.
"""
import sys
import types
from pathlib import Path
from unittest.mock import MagicMock

# ---------------------------------------------------------------------------
# 0. Install binaryninja stubs FIRST — must happen before any decompiler
#    module is imported (triggered by __init__.py chain).
# ---------------------------------------------------------------------------
from tests.unit.conftest_binja_stubs import install_binja_stubs as _install_binja_stubs
_install_binja_stubs()

# ---------------------------------------------------------------------------
# 1. Stub external packages required by database_exporters.py itself,
#    the decompiler chain, and the workers/ingestor modules.
# ---------------------------------------------------------------------------
_heavy_deps = [
    # Database / networking
    "elasticsearch", "clickhouse_connect", "dotenv",
    # Binary analysis — top-level packages
    "pefile", "magic", "machofile",
    # Archive handling
    "py7zr", "pyzipper",
    # File type detection
    "magika",
    # System monitoring
    "psutil",
    # S3 / MinIO (submodule paths needed for `from minio.error import S3Error`)
    "minio", "minio.error",
    # YARA
    "yara_x",
    # Binary parsing — elftools tree
    "elftools", "elftools.elf", "elftools.elf.elffile",
    "elftools.common", "elftools.common.exceptions",
    # Code signing — signify tree
    "signify", "signify.fingerprinter", "signify.authenticode",
    # LIEF
    "lief",
    # Fuzzy hashing
    "ppdeep",
    # .NET analysis
    "dotnetfile",
    # Crypto / ASN.1
    "asn1crypto", "asn1crypto.cms", "asn1crypto.pem", "asn1crypto.x509", "asn1crypto.core",
    # Hashing
    "xxhash", "blake3", "mmh3", "numpy",
    # APK analysis
    "androguard", "androguard.core", "androguard.core.apk",
    "androguard.core.dex", "androguard.core.api_specific_resources",
    "androguard.misc",
    "permhash",
]
for _mod in _heavy_deps:
    if _mod not in sys.modules:
        try:
            __import__(_mod)
        except (ImportError, ModuleNotFoundError):
            sys.modules[_mod] = MagicMock()

# Stub urllib3 with a real Warning subclass (warnings.filterwarnings needs a class)
if "urllib3" not in sys.modules or isinstance(sys.modules.get("urllib3"), MagicMock):
    try:
        import urllib3  # noqa: F401
    except (ImportError, ModuleNotFoundError):
        _urllib3_mod = types.ModuleType("urllib3")
        _urllib3_exc = types.ModuleType("urllib3.exceptions")

        class _InsecureRequestWarning(UserWarning):
            pass

        _urllib3_exc.InsecureRequestWarning = _InsecureRequestWarning
        _urllib3_mod.exceptions = _urllib3_exc
        sys.modules["urllib3"] = _urllib3_mod
        sys.modules["urllib3.exceptions"] = _urllib3_exc

# Provide a functional ppdeep stub (tests call ppdeep.hash() and expect a string).
# Must overwrite the MagicMock that the loop above may have installed.
_ppdeep_existing = sys.modules.get("ppdeep")
if _ppdeep_existing is None or isinstance(_ppdeep_existing, MagicMock):
    _ppdeep_mod = types.ModuleType("ppdeep")
    _ppdeep_mod.__name__ = "ppdeep"

    def _ppdeep_hash(data):
        """Fake ssdeep hash — returns a deterministic placeholder."""
        if isinstance(data, str):
            data = data.encode("utf-8")
        if len(data) < 50:
            return None
        import hashlib
        h = hashlib.md5(data).hexdigest()
        return f"3:{h[:16]}:{h[16:]}"

    _ppdeep_mod.hash = _ppdeep_hash
    sys.modules["ppdeep"] = _ppdeep_mod

# Stub mmh3 if the C extension is not available
_mmh3_existing = sys.modules.get("mmh3")
if _mmh3_existing is None or isinstance(_mmh3_existing, MagicMock):
    _mmh3_mod = types.ModuleType("mmh3")
    _mmh3_mod.__name__ = "mmh3"

    def _mmh3_hash(data, seed=0):
        """Fake MurmurHash3 — deterministic hash using built-in hashlib."""
        import hashlib
        if isinstance(data, str):
            data = data.encode("utf-8")
        seed_bytes = (seed & 0xFFFFFFFF).to_bytes(8, "little")
        h = hashlib.md5(data + seed_bytes).digest()
        return int.from_bytes(h[:4], "little", signed=True)

    _mmh3_mod.hash = _mmh3_hash
    sys.modules["mmh3"] = _mmh3_mod

# Stub tlsh if the C extension is not available
if "tlsh" not in sys.modules:
    try:
        import tlsh as _real_tlsh  # noqa: F401
    except (ImportError, ModuleNotFoundError):
        _tlsh_mock = types.ModuleType("tlsh")
        _tlsh_mock.__name__ = "tlsh"

        def _tlsh_hash(data):
            """Fake TLSH hash — returns a deterministic placeholder.

            Returns empty string for data < 50 bytes or data with very
            low entropy (e.g. repeating patterns), mimicking the real
            TLSH library's "TNULL" behaviour.
            """
            if isinstance(data, str):
                data = data.encode("utf-8")
            if len(data) < 50:
                return ""
            # Real TLSH returns "" for low-entropy input
            if len(set(data)) < 8:
                return ""
            import hashlib
            return "T1" + hashlib.sha256(data).hexdigest()[:70].upper()

        _tlsh_mock.hash = _tlsh_hash
        sys.modules["tlsh"] = _tlsh_mock

# ---------------------------------------------------------------------------
# 2. Stub redb.settings (package) so module-level code never runs
# ---------------------------------------------------------------------------
_settings_mock = MagicMock()
_settings_mock.__name__ = "redb.settings"
sys.modules["redb.settings"] = _settings_mock
sys.modules["redb.settings.elasticsearch"] = MagicMock()
sys.modules["redb.settings.clickhouse"] = MagicMock()

# ---------------------------------------------------------------------------
# 3. Replace redb.extractors with a minimal package that does NOT eagerly
#    import every extractor (and their heavy deps).  Sub-module imports
#    like ``from redb.extractors.database_exporters import ...`` still work
#    because __path__ points to the real package directory.
# ---------------------------------------------------------------------------
_repo_root = Path(__file__).resolve().parents[2]
_extractors_pkg = types.ModuleType("redb.extractors")
_extractors_pkg.__path__ = [str(_repo_root / "redb" / "extractors")]
_extractors_pkg.__package__ = "redb.extractors"
sys.modules["redb.extractors"] = _extractors_pkg

# ---------------------------------------------------------------------------
# 4. Force-import redb submodules so that @patch('redb.workers.xxx'),
#    @patch('redb.queries.xxx'), etc. can resolve at decoration time.
#    This works because all heavy deps are already stubbed above.
# ---------------------------------------------------------------------------
import redb.logging_utils   # noqa: F401, E402
import redb.s3_utils         # noqa: F401, E402
import redb.queries          # noqa: F401, E402
import redb.workers          # noqa: F401, E402
import redb.ingestor         # noqa: F401, E402