Olivier Lambercy

73 papers A* 4A 5B 1Journal 26Unranked 37
YearRankTypeTitle / Venue / Authors
2026 J jnl
Frontiers Neurorobotics
Charles Lambelet, Melvin Mathis, Marc Siegenthaler, Jeremia P. O. Held, Daniel Graham Woolley, Olivier Lambercy, Roger Gassert, Nicole Wenderoth
2025 conf
ICORR
Laura Mayrhuber, Lea Roffler, Chris Awai Easthope, Roger Gassert, Olivier Lambercy
2025 conf
ICORR
Aileen C. Naef, Mathilde L. Legrand, Zoé Jungi, Roger Gassert, Olivier Lambercy, Chris Awai Easthope
2025 conf
ICORR
Anna Sophie Knill, Shuyang Shi, Chris Awai Easthope, Meret Branscheidt, Olivier Lambercy
2025 conf
ICORR
Giada Devittori, Daria Dinacci, Claudio Petrillo, Paolo Rossi, Roger Gassert, Olivier Lambercy
2024 conf
BioRob
Jessica Gantenbein, Jan Dittli, Jan T. Meyer, Anita D. Linke, Armin Curt, Olivier Lambercy, Roger Gassert
2024 conf
BioRob
Mathilde L. Legrand, Céline Magrini, Meret Branscheidt, Andreas Luft, Roger Gassert, Olivier Lambercy, Chris Awai Easthope
2024 B conf
IVA
Alexandra Retevoi, Giada Devittori, Tobias Kowatsch, Olivier Lambercy
2024 J jnl
CoRR
Tim Unger, Arash Sal Moslehian, J. D. Peiffer, Johann Ullrich, Roger Gassert, Olivier Lambercy, R. James Cotton, Chris Awai Easthope
2024 J jnl
Frontiers Digit. Health
Jan Stutz, Philipp A. Eichenberger, Nina Stumpf, Samuel E. J. Knobel, Nicholas C. Herbert, Isabel Hirzel, Sacha Huber, Chiara Oetiker, Emily Urry, Olivier Lambercy, Christina M. Spengler
2024 J jnl
npj Digit. Medicine
Vera Birrer, Mohamed Elgendi, Olivier Lambercy, Carlo Menon
2024 conf
BioRob
Eva Josse, Pierre-Louis Gaultier, Simone Kager, Hsiao-Ju Cheng, Roger Gassert, Olivier Lambercy
2024 conf
BioRob
Giada Devittori, Mehdi Akeddar, Alexandra Retevoi, Fabian Schneider, Viktoria Cvetkova, Daria Dinacci, Antonella Califfi, Paolo Rossi, Claudio Petrillo, Tobias Kowatsch, Olivier Lambercy
2024 J jnl
CoRR
Giada Devittori, Mehdi Akeddar, Alexandra Retevoi, Fabian Schneider, Viktoria Cvetkova, Daria Dinacci, Antonella Califfi, Paolo Rossi, Claudio Petrillo, Tobias Kowatsch, Olivier Lambercy
2024 J jnl
Frontiers Digit. Health
Tim Unger, Ricardo de Sousa Ribeiro, Marwen Mokni, Thomas Weikert, Johannes Pohl, Anne Schwarz, Jeremia P. O. Held, Lena Sauerzopf, Benjamin Kühnis, Elena Gavagnin, Andreas R. Luft, Roger Gassert, Olivier Lambercy, Chris Awai Easthope, Josef G. Schönhammer
2023 conf
ICORR
Jan Dittli, Gaizka Goikoetxea-Sotelo, Jan Lieber, Roger Gassert, Andreas Meyer-Heim, Hubertus J. A. van Hedel, Olivier Lambercy
2023 J jnl
Frontiers Robotics AI
Raffaele Ranzani, Giorgia Chiriatti, Anne Schwarz, Giada Devittori, Roger Gassert, Olivier Lambercy
2023 conf
ICORR
Laura Mayrhuber, Mathilde Lestoille, Sebastian D. Andres, Jeremia P. O. Held, Andreas R. Luft, Franziska Ryser, Roger Gassert, Chris Awai Easthope, Olivier Lambercy
2022 conf
ICORR
Natalie Tanczak, Raffaele Ranzani, Jan T. Meyer, Giada Devittori, Antonella Califfi, Daria Dinacci, Roger Gassert, Olivier Lambercy, Christoph M. Kanzler
2022 conf
ICORR
Jessica Gantenbein, Jan T. Meyer, Lukas Jäger, Roland Sigrist, Roger Gassert, Olivier Lambercy
2022 conf
ICORR
Giada Devittori, Raffaele Ranzani, Daria Dinacci, Davide Romiti, Antonella Califfi, Claudio Petrillo, Paolo Rossi, Roger Gassert, Olivier Lambercy
2022 conf
ICORR
Monika Zbytniewska-Mégret, Christian Salzmann, Raffaele Ranzani, Christoph M. Kanzler, Roger Gassert, Joachim Liepert, Olivier Lambercy
2022 conf
ICORR
Jan Dittli, Christos Vasileiou, Hidajet Asanovski, Jan Lieber, Jeremy B. Lin, Andreas Meyer-Heim, Hubertus J. A. van Hedel, Roger Gassert, Olivier Lambercy
2022 J jnl
Frontiers Neurorobotics
Jessica Gantenbein, Jan Dittli, Jan T. Meyer, Roger Gassert, Olivier Lambercy
2022 J jnl
Medical Biol. Eng. Comput.
Christoph M. Kanzler, Ilse Lamers, Peter Feys, Roger Gassert, Olivier Lambercy
2022 J jnl
Biomed. Signal Process. Control.
Franziska Ryser, Simon Hanassab, Olivier Lambercy, Esther Werth, Roger Gassert
2022 J jnl
IEEE Trans. Biomed. Eng.
Victoria Peterson, Nicolás Nieto, Dominik Wyser, Olivier Lambercy, Roger Gassert, Diego H. Milone, Ruben D. Spies
2021 J jnl
IEEE Trans. Biomed. Eng.
Stefan O. Schrade, Marcel Menner, Camila Shirota, Peter Winiger, Alex Stutz, Melanie N. Zeilinger, Olivier Lambercy, Roger Gassert
2021 J jnl
Frontiers Robotics AI
Olivier Lambercy, Rea Lehner, Karen Sui Geok Chua, Seng Kwee Wee, Deshan Kumar Rajeswaran, Christopher Wee Keong Kuah, Wei Tech Ang, Phyllis Liang, Domenico Campolo, Asif Hussain, Gabriel Aguirre-Ollinger, Cuntai Guan, Christoph M. Kanzler, Nicole Wenderoth, Roger Gassert
2020 conf
BioRob
Jan T. Meyer, Jan Dittli, Adrian Stutz, Olivier Lambercy, Roger Gassert
2020 J jnl
npj Digit. Medicine
Christoph M. Kanzler, Mike D. Rinderknecht, Anne Schwarz, Ilse Lamers, Cynthia Gagnon, Jeremia P. O. Held, Peter Feys, Andreas R. Luft, Roger Gassert, Olivier Lambercy
2020 conf
BioRob
Monika Zbytniewska, Marc Siegenthaler, Christoph M. Kanzler, Joachim Hermsdörfer, Roger Gassert, Olivier Lambercy
2020 conf
BioRob
Robert Hennig, Jessica Gantenbein, Jan Dittli, Haotian Chen, Stéphanie P. Lacour, Olivier Lambercy, Roger Gassert
2020 J jnl
Frontiers Robotics AI
Jan Dittli, Urs A. T. Hofmann, Tobias L. Bützer, Gerwin Smit, Olivier Lambercy, Roger Gassert
2019 conf
ICORR
Christoph M. Kanzler, Manuel Giuseppe Catalano, Cristina Piazza, Antonio Bicchi, Roger Gassert, Olivier Lambercy
2019 conf
ICORR
Monika Zbytniewska, Mike D. Rinderknecht, Olivier Lambercy, Marco Barnobi, Joke Raats, Ilse Lamers, Peter Feys, Joachim Liepert, Roger Gassert
2019 J jnl
CoRR
Stefan O. Schrade, Giada Devittori, Christopher Awai Easthope, Camila Shirota, Olivier Lambercy, Roger Gassert
2019 J jnl
CoRR
Stefan O. Schrade, Marcel Menner, Camila Shirota, Peter Winiger, Alex Stutz, Melanie N. Zeilinger, Olivier Lambercy, Roger Gassert
2019 J jnl
Sensors
Frieder Wittmann, Olivier Lambercy, Roger Gassert
2019 conf
ICORR
Raffaele Ranzani, Federica Viggiano, Bernadette Engelbrecht, Jeremia P. O. Held, Olivier Lambercy, Roger Gassert
2019 conf
ICORR
Tobias L. Bützer, Jan Dittli, Jan Lieber, Hubertus J. A. van Hedel, Andreas Meyer-Heim, Olivier Lambercy, Roger Gassert
2019 conf
ICORR
Jan T. Meyer, Stefan O. Schrade, Olivier Lambercy, Roger Gassert
2018 J jnl
IEEE Robotics Autom. Lett.
Urs A. T. Hofmann, Tobias L. Bützer, Olivier Lambercy, Roger Gassert
2018 conf
BioRob
Christoph M. Kanzler, Sofia Martinez Gomez, Mike D. Rinderknecht, Roger Gassert, Olivier Lambercy
2017 conf
ICORR
Anna-Maria Georgarakis, Harshal Arun Sonar, Mike D. Rinderknecht, Olivier Lambercy, Bernard J. Martin, Verena Klamroth-Marganska, Jamie Paik, Robert Riener, Jaime E. Duarte
2017 J jnl
IEEE Trans. Biomed. Eng.
Michael R. Tucker, Camila Shirota, Olivier Lambercy, James S. Sulzer, Roger Gassert
2017 conf
ICORR
Franziska Ryser, Tobias L. Bützer, Jeremia P. Held, Olivier Lambercy, Roger Gassert
2017 conf
ICORR
Camila Shirota, Michael R. Tucker, Olivier Lambercy, Roger Gassert
2016 conf
i-CREATe
Phyllis Hofmann, Jeremia P. Held, Roger Gassert, Olivier Lambercy
2016 J jnl
IEEE Robotics Autom. Lett.
Christopher J. Nycz, Tobias L. Bützer, Olivier Lambercy, Jumpei Arata, Gregory S. Fischer, Roger Gassert
2016 J jnl
J. Sensors
Tobias L. Bützer, Mike D. Rinderknecht, Gunda H. Johannes, Werner L. Popp, Rea Lehner, Olivier Lambercy, Roger Gassert
2015 J jnl
IEEE Trans. Biomed. Eng.
Olivier Lambercy, Jean-Claude Metzger, Marco Santello, Roger Gassert
2015 J jnl
IEEE Trans. Robotics
Federica Ferraguti, Nicola Preda, Auralius Manurung, Marcello Bonfè, Olivier Lambercy, Roger Gassert, Riccardo Muradore, Paolo Fiorini, Cristian Secchi
2015 A conf
IROS
Nicola Preda, Auralius Manurung, Olivier Lambercy, Roger Gassert, Marcello Bonfè
2014 conf
EuroHaptics (2)
Mike D. Rinderknecht, Werner L. Popp, Olivier Lambercy, Roger Gassert
2014 J jnl
IEEE Trans. Haptics
Jean-Claude Metzger, Olivier Lambercy, Antonella Califfi, Fabio M. Conti, Roger Gassert
2013 A* conf
ICRA
Jumpei Arata, Keiichi Ohmoto, Roger Gassert, Olivier Lambercy, Hideo Fujimoto, Ikuo Wada
2013 conf
ICORR
Olivier Lambercy, Marie-Christine Fluet, Ilse Lamers, Lore Kerkhofs, Peter Feys, Roger Gassert
2013 conf
ICORR
Michael R. Tucker, Adrian Moser, Olivier Lambercy, James S. Sulzer, Roger Gassert
2013 J jnl
IEEE Trans. Educ.
Roger Gassert, Jean-Claude Metzger, Kaspar Leuenberger, Werner L. Popp, Michael R. Tucker, Bogdan Vigaru, Raphael Zimmermann, Olivier Lambercy
2012 conf
EMBC
Marie-Christine Fluet, Olivier Lambercy, Roger Gassert
2012 conf
HAPTICS
Jean-Claude Metzger, Olivier Lambercy, Roger Gassert
2011 A conf
IROS
Jean-Claude Metzger, Olivier Lambercy, Dominique Chapuis, Roger Gassert
2011 conf
EMBC
Raphael Zimmermann, Laura Marchal-Crespo, Olivier Lambercy, Marie-Christine Fluet, Robert Riener, Martin Wolf, Roger Gassert
2010 A conf
IROS
Berna Salman, Shahabeddin Vahdat, Olivier Lambercy, Ludovic Dovat, Etienne Burdet, Theodore E. Milner
2010 A conf
IROS
Masayuki Hara, Julio Duenas, Tobias Kober, Dominique Chapuis, Olivier Lambercy, Hannes Bleuler, Roger Gassert
2010 conf
EuroHaptics (2)
Christophe Emery, Evren Samur, Olivier Lambercy, Hannes Bleuler, Roger Gassert
2010 conf
HAPTICS
Dominique Chapuis, Remco Benthem de Grave, Olivier Lambercy, Roger Gassert
2010 A* conf
ICRA
Julio Duenas, Olivier Lambercy, Dominique Chapuis, Roger Gassert
2009 A* conf
ICRA
Ludovic Dovat, Olivier Lambercy, Roger Gassert, Theodore E. Milner, Chee Leong Teo, Etienne Burdet
2009 conf
i-CREATe
Olivier Lambercy, Ludovic Dovat, Hong Yun, Seng Kwee Wee, Christopher Wee Keong Kuah, Karen Sui Geok Chua, Roger Gassert, Theodore E. Milner, Etienne Burdet, Chee Leong Teo
2006 A* conf
ICRA
Roger Gassert, Ludovic Dovat, Olivier Lambercy, Y. Ruffieux, Dominique Chapuis, Ganesh Gowrishankar, Etienne Burdet, Hannes Bleuler
2006 A conf
IROS
Ludovic Dovat, Olivier Lambercy, Y. Ruffieux, Dominique Chapuis, Roger Gassert, Hannes Bleuler, Chee Leong Teo, Etienne Burdet
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