X
Name Description Tags Products Maturity Professor — Lab More information Date added Date updated Technical description Layman description Language Type Source code Date last commit LOC Documentation License Papers Contact Date last activity Keywords
Blockchains & Smart Contracts category_Blockchain project_active project_incubated project_incubated_market project_retired project_active project_incubated project_incubated_market project_retired project_retired_archived 99 - product_presentation product_details product_demo product_hands-on product_pilot product_technical product_app
AT2
Asset Transfer System using lightweight broadcast-based primitives instead of consensus
Prototype Rachid Guerraoui — DCL 2019-03-18 2024-03-22 We replace consensus with a lightweight building block -- a broadcast-based primitive -- to obtain a full-fledged asset transfer system (cryptocurrency). This system is more efficient and more scalable compared with Bitcoin and consensus-based solutions. AT2 is the first system to bypass consensus algorithms for implementing asset transfers. AT2 is a full-fledged asset transfer system (cryptocurrency) without the need for a global consensus, allowing for faster transactions and better scalability than Bitcoin and consensus-based solutions. Rust Library Lab GitHub 2022-02-24 AGPL-3.0



2022-02-24
carbon
Blockchain using lightweight broadcast-based primitives instead of consensus
Prototype Rachid Guerraoui — DCL 2021-12-01 2024-03-22 Carbon is the next iteration on AT2, adding many new features, such as minting and a dynamic network. By decoupling leader selection from transaction processing, this system is more efficient and more scalable compared with Bitcoin and consensus-based solutions. Carbon is a blockchain not using global consensus for transactions, allowing for faster transactions and better scalability than many other chains. Rust Library 2021-12-01
Raft consensus protocol
Implementation of the Raft consensus protocol
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Edouard Bugnion — DCSL 2021-11-05 2024-02-20 Implementation of the Raft consensus protocol. The library doesn't assume a network layer with ordering or duplicate detection. This means you could use UDP for transmission. C Library Lab GitHub 2020-03-27 BSD-3-Clause 2021-11-05
DEDIS Ledger Architecture
Modular abstractions to perform Distributed Ledger (DL) operations
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Bryan Ford — DEDIS Home page 2021-04-13 2024-03-20 With Dela you can: learn the architecture of a distributed ledger, run your blockchain / distributed ledger, implement and test your new idea that will revolutionize the blockchain world by adding your new module’s implementation to the Dela ecosystem. Go Application Lab Github 2024-03-05 BSD-3-Clause 2024-03-05
Odyssey
Auditable Sharing and Management of Sensitive Data Across Jurisdictions
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Bryan Ford — DEDIS Home page 2020-04-28 2024-03-20 Odyssey is a set of applications and tools that enables sharing of sensitive data between multiple distrustful parties. This project uses state-of-the-art secret management service on the blockchain coupled with an enclave delivery mechanism. GoLang Application Lab GitHub 2020-10-01 GPL-3.0 2020-10-01
Calypso
Encrypted storage with access control
Intermediate Bryan Ford — DEDIS 2019-03-18 2024-03-20 Store data encrypted on the blockchain and use a decentralized access control mechanism to define who is allowed to decrypt. It has been developed alongside with OmniLedger. But it can also be used independently of OmniLedger. GoLang Application Lab GitHub 2022-06-30 6500 / 1500 AGPL-3.0 2022-06-30
OmniLedger
Ethereum-like blockchain implementation based on skipchains
Intermediate Bryan Ford — DEDIS 2019-03-18 2024-03-20 OmniLedger is a high performance blockchain solution developed by the DEDIS-lab. It supports pre-compiled smart contracts, as well as Ethereum smart contracts. Combined with Calypso, it allows management of access to secure and private data in a fully audited way. GoLang Application, Library Lab GitHub 2023-09-27 AGPL-3.0

2023-09-27
Onet
Library for simulation and deployment of decentralized, distributed protocols
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Bryan Ford — DEDIS 2019-03-18 2024-03-20 Library to write applications and protocols in a decentralized setting. Including an easy to use simulation framework to test the performance of the protocols. GoLang Library Lab GitHub 2021-09-30 15000 / 3000 LGPL-3.0 2021-09-30
Threshold Logical Clocks
Solving the consensus problem in a new way by creating a global clock
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Bryan Ford — DEDIS 2019-07-26 2024-03-20 An attempt to simplify asynchronous consensus by building atop a novel threshold logical clock abstraction, which enables upper layers to operate as if on a synchronous network. This approach yields an asynchronous consensus protocol for fail-stop nodes that may be simpler and more robust than Paxos and its leader-based variants, requiring no common coins and achieving consensus in a constant expected number of rounds. Application Lab GitHub 2023-04-21
2023-04-21
Twins
Linking patients to their physical and digital TWINs
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Bryan Ford — DEDIS Home page 2021-02-05 2024-03-20 Using organoids for research while protecting patients’ identity Application 2021-02-05
HBT
Token for conflicts zone
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Bryan Ford — DEDIS Home page 2022-07-04 2024-03-20 Go Application Lab Github 2024-03-15 other 2024-03-15
d-voting
A decentralized, fully anonymous voting system for EPFL-internal elections.
Prototype Bryan Ford — DEDIS Home page 2023-09-01 2024-03-20 The d-voting project allows for electronic voting without a central point of trust. It relies instead on the majority of servers to be honest during the voting process. The ballots are encrypted during the voting phase, and then shuffled to anonymise the results. When they are finally decrypted, it is not possible anymore to retrace who voted for what. Golang Application C4DT Github 2024-03-15 2024-03-15
offchainer
Ethereum smart contracts with secret parameters
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Serge Vaudenay — LASEC 2021-11-05 2024-04-16 By design, smart contracts’ data and computations are public to all participants. Offchainer helps to create smart contracts with parameters that need to stay secret. We propose a way to keep some of the parameters off-chain, while guaranteeing correctness of the computation, using a combination of a commitment scheme and a zero-knowledge proof system. JavaScript Toolset Personal GitHub 2020-01-14 2021-11-05
Hippiepug
Sublinear-traversal blockchains and efficient key-value Merkle trees
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Carmela Troncoso — SPRING 2019-03-18 2022-07-07 This library provides implementations of two cryptographic data structures: fast traversal blockchain structure, and a verifiable dictionary, implemented as a key-value Merkle tree. Python Library Lab GitHub 2019-10-22 MIT 2019-10-22
arkworks
Rust ecosystem for zkSNARK programming
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Alessandro Chiesa — COMPSEC Home page 2024-03-13 2024-03-13 Arkworks provides efficient implementations of components required for zkSNARK applications. It includes libraries for finite fields, elliptic curves, R1CS constraints, and SNARK proving systems like Groth16 and Marlin. It defines interfaces for relations like R1CS, and for building SNARK circuits using gadgets and subcircuits. Arkworks is a collection of Rust libraries for building privacy-preserving applications using zero-knowledge proofs called zkSNARKs. It has efficient implementations of the underlying cryptographic primitives like finite fields and elliptic curves. It also provides tools to encode computations as circuits that can be proven using zkSNARKs while keeping inputs private. Rust Library Project Github 2024-03-08 Apache-2.0 2024-03-13
Device and System Security category_Security project_active project_incubated project_incubated_market project_retired project_active project_incubated project_incubated_market project_retired project_retired_archived 99 - product_presentation product_details product_demo product_hands-on product_pilot product_technical product_app
MVTIL
Multiversion Timestamp Locking (MVTL)
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Rachid Guerraoui — DCL 2019-09-19 2024-03-22 MVTL is a new family of concurrency control algorithms. Improving performance of distributed databases by allowing read accesses to lag behind the latest version of the data. C++ Application Lab GitHub 2019-09-19 GPL-2.0 2019-09-19
libNVRAM
Log-free concurrent data structures
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Rachid Guerraoui — DCL Home page 2019-03-18 2024-03-22 Storing data structures in non-volatile RAM such that transient failures don't corrupt the data. C++ Library, Application Lab Github 2019-11-04 MIT 2019-11-04
FloDB
Unlocking memory in persistent key-value stores
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Rachid Guerraoui — DCL Home page 2019-03-18 2024-03-22 High performance key-value store for servers with high amount of RAM and lots of CPUs. C++ Application Lab GitHub 2017-03-28 BSD-3-Clause 2019-03-18
MCTOP
A multi-core topology abstraction
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Rachid Guerraoui — DCL Home page 2019-07-26 2024-03-22 MCTOP is an abstraction of multi-core topologies augmented with important low-level hardware information, such as memory bandwidths and communication latencies. C Application Lab GitHub 2017-05-04 MIT 2019-07-26
LOCKIN
Automatically chose the best locking algorithm
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Rachid Guerraoui — DCL Home page 2019-07-01 2024-03-22 LOCKIN is a lock library that includes several lock algorithm implementations mainly in header files for ease of use. Essentially, you can use LOCKIN to easily modify the pthread mutex locks in a system with practically zero effort. GLS is a middleware that makes lock-based programming simple and effective. GLS offers the classic lock-unlock interface of locks. However, in contrast to classic lock libraries, GLS does not require any effort from the programmer for allocating and initializing locks, nor for selecting the appropriate locking strategy. C/C++ Library Lab GitHub 2017-04-19 MIT
2019-07-01
ASCYLIB + OPTIK
State-of-the-art concurrent data-structure library
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Rachid Guerraoui — DCL Home page 2021-02-09 2024-03-22 Over 40 implementations of linked lists, hash tables, skip lists, binary search trees (BSTs), queues, priority queues, and stacks. ASCYLIB contains sequential, lock-based, and lock-free implementations for each data structure. C Library Lab GitHub 2018-01-19 GPL-2.0

2021-02-09
uBFT
Microsecond-scale BFT using Disaggregated Memory
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Rachid Guerraoui — DCL 2023-03-13 2024-03-22 C Library Lab GitHub 2023-03-14 CC BY 4.0 2023-03-14
Gotee
GoLang extension to allow a programmer to execute a goroutine within an enclave
Prototype Edouard Bugnion — DCSL 2021-11-04 2024-02-20 Trusted Execution Environments (TEEs), such as Intel SGX enclaves, use hardware to ensure the confidentiality and integrity of operations on sensitive data. While the technology is available on many processors, the complexity of its programming model and its performance overhead have limited adoption. TEEs provide a new and valuable hardware functionality that has no obvious analogue in programming languages, which means that developers must manually partition their application into trusted and untrusted components. Gotee extends the Go language to allow a programmer to execute a goroutine within an enclave, to use low-overhead channels to communicate between the trusted and untrusted environments, and to rely on a compiler to automatically extract the secure code and data. GoLang Library Lab GitHub 2020-09-20 BSD-3-Clause 2021-11-04
E-voting
Decentralized, encrypted, fully anonymous e-voting
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Bryan Ford — DEDIS 2019-03-18 2024-03-20 Our e-voting system is inspired by the first version of Helios where the encrypted ballots are shuffled and anonymized before they are decrypted. Instead of the shuffle used in Helios, we implemented a Neff shuffle which is much faster than the original Helios shuffle. The e-voting used in the EPFL voting since 2018. It allows users to vote on a distributed system that will wait for the election to be over before decrypting the votes, keeping anonymity of the users. GoLang Application Lab GitHub 2022-06-02 1700 / 200 AGPL-3.0 2022-06-02
DRand
Publicly verifiable randomness
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Bryan Ford — DEDIS Home page 2019-03-18 2024-03-20 In many distributed applications, it is important to get a provably secure random number. DRand makes it possible to have these numbers provably secure. GoLang Application Lab GitHub 2024-03-12 1000 / 200 link MIT 2024-03-12
SimNet
SimNet is a tool to simulate decentralized applications in the cloud
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Bryan Ford — DEDIS 2021-02-24 2024-03-20 SimNet provides multiple configurations to affect the topology so that specific link between two nodes can have a delay or a loss of packets for instance. Go Application Lab Github 2022-02-24 GPL-3.0 2022-02-24
CPI
Fast and precise control-flow hijack protection
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. George Candea — DSLAB Home page 2019-07-26 2022-07-05 Code-Pointer Integrity (CPI) is a property of C/C++ programs that guarantees absence of control-flow hijack attacks by requiring integrity of all direct and indirect pointers to code. Code-Pointer Separation (CPS) is a simplified version of CPI that provides strong protection against such attacks in practice. SafeStack is a component of CPI/CPS, which can be used independently and protects against stack-based control-flow hijacks. Application Project GitHub 2015-11-16
2019-07-26
S²E
Platform for writing tools that analyze the properties and behavior of software systems
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. George Candea — DSLAB Home page 2019-03-18 2024-03-08 S²E is a platform for writing tools that analyze the properties and behavior of software systems. S²E comes as a modular library that gives virtual machines symbolic execution and program analysis capabilities. C, C++ Library Project GitHub 2023-12-10 MIT 2023-12-10
ASAP
Low overhead software protection
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. George Candea — DSLAB Home page 2019-03-18 2022-07-05 Makes it possible to use powerful software protection mechanisms at a low performance overhead. C++, assembly Library Lab GitHub 2015-12-03 BSD-2-Clause 2019-03-18
Cloud 9
Scalable symbolic execution
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. George Candea — DSLAB Home page 2019-03-18 2022-07-05 Parallel symbolic execution engine that scales on shared-nothing clusters of commodity hardware. C, C++ Application Lab GitHub 2013-09-11 BSD-3-Clause

2019-03-18
Dimmunix
Protection against deadlock bugs
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. George Candea — DSLAB Home page 2019-03-18 2022-07-05 Enables general-purpose applications to defend themselves against deadlock bugs, i.e. avoid deadlocks that they previously encountered. C, C++, Java Library Google Code 2012-04-24 2019-03-18
Failure Sketching
Automated debugging technique
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. George Candea — DSLAB Home page 2019-03-18 2022-07-05 Failure sketching is an automated debugging technique that provides developers with an explanation (“failure sketch”) of the root cause of a failure that occurred in production. A failure sketch only contains program statements that lead to the failure, and it clearly shows the differences between failing and successful runs; these differences guide developers to the root cause. Python Application Lab GitHub 2015-10-06 BSD-3-Clause 2019-03-18
ConfErr
Quantify the resilience of software systems to human-induced configuration errors
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. George Candea — DSLAB Home page 2021-11-03 2022-07-05 ConfErr uses human error models rooted in psychology and linguistics to generate realistic configuration mistakes; it then injects these mistakes and measures their effects, producing a resilience profile of the system under test. The resilience profile, capturing succinctly how sensitive the target software is to different classes of configuration errors, can be used for improving the software or to compare systems to each other. Java Application Personal GitHub 2015-03-14 2021-11-03
LFI
Library-level fault injection toolkit
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. George Candea — DSLAB Home page 2021-11-03 2022-07-05 LFI automatically identifies the errors exposed by shared libraries, finds potentially buggy error recovery code in program binaries, and produces corresponding injection scenarios. C++ Application Lab GitHub 2014-05-28 GPL-3.0 2021-11-03
eBPF-SE
eBPF symbolic execution tool
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. George Candea — DSLAB 2024-03-20 2024-03-20 eBPF-SE is a tool that symbolically executes eBPF programs written for the Linux kernel. It is based on the KLEE symbolic execution engine and uses models (stubs) for the Linux kernel's libbpf API. This allows exploring all program paths without path explosion from the real API implementation. eBPF-SE was previously part of PIX, a tool that extracts performance interfaces from network function code. eBPF-SE is a tool that analyzes programs written for the Linux kernel's eBPF framework. It systematically explores all possible execution paths through the program by using symbolic values instead of concrete inputs. This allows finding bugs or verifying properties of the program. eBPF-SE uses models of the Linux APIs to avoid getting bogged down in the real kernel code. It was originally part of a tool for optimizing network software performance. C Application Lab Github 2024-03-05 MIT 2024-03-20
cloud-performance-monitor
Monitoring and improving performance of cloud services
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. David Atienza — ESL Home page 2024-02-20 2024-02-20 The project on machine learning for HPC servers and data centers at the ESL lab focuses on utilizing machine learning-based approaches for multi-objective resource management. This research line aims to enhance the efficiency of heterogeneous High Performance Computing (HPC) servers and data centers by employing system-level resource management techniques. In simpler terms, this project explores how to make high-performance computing servers and data centers smarter using machine learning. By applying advanced algorithms, the team aims to optimize the use of resources in these environments efficiently. Ultimately, the goal is to improve the performance and reliability of these systems while ensuring they operate in a cost-effective and sustainable manner, contributing to advancements in cloud infrastructure management and data center operations. Application 2024-02-20
digital-twins
Virtual copies for real-time connections
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. David Atienza — ESL Home page 2024-02-20 2024-02-20 Digital Twins involve creating virtual copies of real objects for real-time monitoring and analysis. These replicas are utilized in various fields like disease prediction, climate policy assessment, and resource conservation. EPFL's DIGIPREDICT consortium used digital twins to forecast COVID-19 progression in patients. Digital Twins are like virtual doppelgangers of physical objects, helping in predicting diseases, evaluating climate policies, and conserving resources. EPFL's DIGIPREDICT project used digital twins to anticipate how COVID-19 might progress in individuals, aiding in better healthcare decisions. Application 2024-02-20
x-heep
Open-source RISC-V system-on-chip for healthcare monitoring
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. David Atienza — ESL Home page 2024-02-20 2024-02-20 The X-HEEP project is an open-source RISC-V microcontroller designed for continuous healthcare monitoring. It provides a customizable microcontroller unit (MCU) composed of an open-source, industrial-grade RISC-V CPU, common peripherals, and memories, which users can extend with their own accelerators. The project targets both FPGA and ASIC implementations, with support for Xilinx-based FPGAs. X-HEEP is a project that aims to improve healthcare monitoring by creating a new type of computer chip that can be customized by users. This chip can be used in small devices for personal health monitoring or in larger systems for more demanding applications. The project is open-source, meaning anyone can use, modify, and distribute it, which could lead to widespread adoption and innovation in the field of healthcare technology. C Toolset Lab Github 2024-02-14 SOLDERPAD HARDWARE LICENSE, Apache-2.0 2024-02-20
FuZZan
Faster address sanitization to improve fuzzing speed
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Mathias Payer — HexHive 2021-03-05 2024-04-12 Our evaluation shows that on the Google fuzzer test suite, FuZZan improves fuzzing throughput over ASan by 48% starting with Google’s provided seeds (52% when starting with empty seeds on the same applications). Due to this improved throughput, FuZZan discovers 13% more unique paths given the same 24 hours and finds bugs 42% faster C++ Application Lab Github 2021-03-31 Apache-2.0 2021-03-31
USBFuzz
Virtual environment for fuzzing USB peripherals
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Mathias Payer — HexHive 2021-03-05 2024-04-12 Fuzzing USB peripherals for Linux, Android, MacOS, Windows, FreeBSD Found lots of 0days in modern kernels, allowing arbitrary compromise C Application Lab Github 2021-03-05 2021-03-05
Magma
A ground-truth fuzzing benchmark suite based on real programs with real bugs
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Mathias Payer — HexHive Home page 2020-02-21 2024-04-12 Magma is a collection of open-source libraries with widespread usage and a long history of security-critical bugs and vulnerabilities. In light of the need for better fuzzer evaluation, we front-ported bugs from previous bug reports to the latest versions of these libraries. For each ported bug, we added in-line (source-code-level) instrumentation to collect ground-truth information about bugs reached (buggy code executed) and triggered (fault condition satisfied by input). This instrumentation allows a monitoring utility to measure fuzzer progress in real time. Application Lab Github 2022-12-07 2022-12-07
T-Fuzz
Fuzzing tool and crash analyzer
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Mathias Payer — HexHive 2019-03-18 2024-04-12 T-Fuzz (transformational fuzzing) improves fuzzing by detecting whenever the fuzzer is stuck and then modifying the underlying program to reach new program locations. This allows fuzzing to discover and test hard to reach code. Python Application Lab GitHub 2018-12-04 2019-03-18
BOPC
Block-oriented programming compiler
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Mathias Payer — HexHive 2019-03-18 2024-04-12 BOPC searches for exploits in the code that can be put together to execute new functions, while not tipping off any of the verifications in the program. BOPC is a tool that automatically synthesizes data-flow exploits based on real programs and real exploits. Python Application Lab GitHub 2020-11-05 2020-11-05
CFIXX
Protection for C++ internal code pointers
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Mathias Payer — HexHive 2019-03-18 2024-04-12 CFIXX is a runtime mitigation that protects C++ programs from attacks that overwrite internal data structures containing code pointers. C++ Application Lab GitHub 2018-07-04 2019-03-18
HexType
Efficient detection of type confusion errors for C++
Prototype Mathias Payer — HexHive 2019-03-18 2024-04-12 HexType is a sanitizer for C++ cast safety. The primary use case is during testing to detect type confusion issues in the code. Additionally, HexType may be run in a fuzzing environment to detect type violations. C++ Application Lab GitHub 2021-11-16 2021-11-16
RetroWrite
Static instrumentation of binaries for fuzzing and sanitation
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Mathias Payer — HexHive 2019-09-02 2024-04-12 RetroWrite can analyze the security of closed source binaries by applying an efficient fuzzing technique that usually only works when the source code is available. This makes it possible to trigger more errors than the default binary fuzzers available, while being much faster in finding these errors. Python Application Lab GitHub 2023-11-30 MIT 2023-11-30
ShadowStack
LLVM Implementation of different ShadowStack schemes for x86_64
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Mathias Payer — HexHive 2020-02-21 2024-04-12 In computer security, a shadow stack is a mechanism for protecting a procedure's stored return address, such as from a stack buffer overflow. The shadow stack itself is a second, separate stack that \"shadows\" the program call stack. In the function prologue, a function stores its return address to both the call stack and the shadow stack. In the function epilogue, a function loads the return address from both the call stack and the shadow stack, and then compares them. If the two records of the return address differ, then an attack is detected; the typical course of action is simply to terminate the program or alert system administrators about a possible intrusion attempt. C, assembly Application Lab GitHub 2020-05-02 2020-05-02
HexPADS
Host-based, performance-counter-based attack detection system
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Mathias Payer — HexHive 2020-02-21 2024-04-12 Attacks change the execution behavior of a system. Our attack detection system HexPADS detects attacks through divergences from normal behavior using attack signatures. HexPADS collects information from the operating system on runtime performance metrics with measurements from hardware performance counters for individual processes. Cache behavior is a strong indicator of ongoing attacks like rowhammer, side channels, covert channels, or CAIN attacks. Collecting performance metrics across all running processes allows the correlation and detection of these attacks. In addition, HexPADS can mitigate the attacks or significantly reduce their effectiveness with negligible overhead to benign processes. C Application Lab GitHub 2016-01-07 2020-02-21
FuzzGen
Automatic fuzzer generation
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Mathias Payer — HexHive 2020-02-21 2024-04-12 FuzzGen is a tool for automatically synthesizing fuzzers for complex libraries in a given environment. From a given library, it allow for creating a dedicated fuzzer, aiming at good code coverage, without human interaction. C++ Application Lab GitHub 2020-11-30 Apache-2.0 2020-11-30
HALucinator
Firmware re-hosting through abstraction layer emulation
Prototype Mathias Payer — HexHive 2020-02-24 2024-04-12 HALucinator allow for running a firmware outside of its physical implementation. When extracting it, one can recreate the same environment as the one used by the firmware's developer thus allowing for faster exploitation. Python Application Lab GitHub 2021-10-06 GPL-3.0 2021-10-06
BenchIoT
Security benchmarks for the Internet of Things
Prototype Mathias Payer — HexHive 2020-02-24 2024-04-12 BenchIoT enables automatic evaluation of 14 metrics covering security, performance, memory usage, and energy consumption. Having a sound benchmark focused on IoT allow for robust and comparable metrics. C Application Lab GitHub 2020-11-11 Apache-2.0 2020-11-11
LightBlue
Automatic profile-aware debloating of bluetooth stacks
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Mathias Payer — HexHive 2020-02-26 2024-04-12 The Bluetooth standard is complex, many commands are defined but aren't needed in many use cases. It allows for a big surface attack which can be cumbersome to correctly reduce. Based on Bluetooth usage profiling, LightBlue allows to reduce the number of exposed commands understood by the firmware and the runtime, thus greatly reducing the potential future attacks that might arise. C++, Python Application Lab Github 2022-07-01 2022-07-01
Igor
Crash deduplication through root-cause clustering
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Mathias Payer — HexHive 2021-11-04 2024-04-12 Fuzzing has emerged as the most effective bug-finding technique. The output of a fuzzer is a set of proof-of-concept (PoC) test cases for all observed “unique” crashes. It costs developers substantial efforts to analyze each crashing test case. This, mostly manual, process has lead to the number of reported crashes out-pacing the number of bug fixes. Igor is a tool for automated crash grouping/deduplication. C Application Lab GitHub 2022-08-02 2022-08-02
dis-cover
Disassemble binaries and recover as much info as possible
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Mathias Payer — HexHive 2021-11-04 2024-04-12 Python Application Lab GitHub 2021-09-03 MIT 2021-11-04
Gramatron
Grammar-aware fuzzing
Prototype Mathias Payer — HexHive 2021-11-04 2024-04-12 Coverage-guided fuzzer that uses grammar automatons to perform grammar-aware fuzzing. C Application Lab GitHub 2021-11-28 Apache-2.0 2021-11-28
datAFLow
Data-flow based fuzzing
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Mathias Payer — HexHive 2022-07-05 2024-04-12 DatAFLow is a fuzzer built on top of AFL++. However, instead of a control-flow-based feedback mechanism, it uses a data-flow-based feedback mechanism; specifically, data flows based on def-use associations. C++ Toolset Lab GitHub 2023-02-01 Apache-2.0 2023-02-01
Midas
Systematic kernel TOCTTOU protection
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Mathias Payer — HexHive 2022-09-27 2024-04-12 During a syscall, the kernel might read multiple times a value from userspace. As theses are controlled by the unpriviliged process, it may introduce subtle changes of behavior and possible hard-to-detect attacks, a classic time-of-check-to-time-of-use bug. Midas disable this attack surface by always returning the same values during a given syscall. C Application Lab GitHub 2021-12-08 other 2022-09-27
GLeeFuzz
Fuzzing WebGL Through Error Message Guided Mutation
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Mathias Payer — HexHive 2023-03-20 2024-04-12 Our fuzzing technique, GLeeFuzz, guides input mutation by error messages instead of code coverage. Our key observation is that browsers emit meaningful error messages to aid developers in debugging their WebGL programs. Error messages indicate which part of the input fails (e.g., incomplete arguments, invalid arguments, or unsatisfied dependencies between API calls). Leveraging error messages as feedback, the fuzzer effectively expands coverage by focusing mutation on erroneous parts of the input. We analyze Chrome’s WebGL implementation to identify the dependencies between error-emitting statements and rejected parts of the input, and use this information to guide input mutation. We evaluate our GLeeFuzz prototype on Chrome, Firefox, and Safari on diverse desktop and mobile OSes. We discovered 7 vulnerabilities, 4 in Chrome, 2 in Safari, and 1 in Firefox. The Chrome vulnerabilities allow a remote attacker to freeze the GPU and possibly execute remote code at the browser privilege. Application Lab Github 2022-11-17 2023-03-20
Evocatio
Evocatio is a bug analyzer built on top of AFL++ and AddressSanitizer. It automatically discovers a bug’s capabilities.
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Mathias Payer — HexHive 2023-03-20 2024-04-12 Evocatio automatically discovers a bug’s capabilities: analyzing a crashing test case (i.e., an input exposing a bug) to understand the full extent of how an attacker can exploit a bug. Evocatio leverages a capability-guided fuzzer to efficiently uncover new bug capabilities (rather than only generating a single crashing test case for a given bug, as a traditional greybox fuzzer does). Application Lab Github 2023-07-21 2023-07-21
WarpAttack
Bypassing CFI through Compiler-Introduced Double-Fetches
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Mathias Payer — HexHive 2023-04-24 2024-04-12 WarpAttack is a new attack vector that exploits compiler-introduced double-fetch optimizations to mount TOCTTOU attacks and bypass code-reuse mitigations. Application Lab Github 2023-04-13 2023-04-24
ViDeZZo
Dependency-aware Virtual Device Fuzzing Framework
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Mathias Payer — HexHive 2023-04-24 2024-04-12 ViDeZZo is a virtual device fuzzing framework considering both intra- and inter-message dependencies to balance fuzzing scalability and efficiency. Framework Lab Github 2023-03-19 2023-04-24
SieveFuzz
Optimizing Directed Fuzzing via Target-tailored Program State Restriction
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Mathias Payer — HexHive 2023-04-24 2024-04-12 We implement tripwiring-directed fuzzing as a prototype, Sieve-Fuzz, and evaluate it alongside the state-of-the-art directed fuzzers AFLGo, BEACON and the leading undirected fuzzer AFL++. Overall, across nine benchmarks, SieveFuzz’s tripwiring enables it to trigger bugs on an average 47% more consistently and 117% faster than AFLGo, BEACON and AFL++. Framework Lab Github 2023-04-10 2023-04-24
offchainer
Ethereum smart contracts with secret parameters
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Serge Vaudenay — LASEC 2021-11-05 2024-04-16 By design, smart contracts’ data and computations are public to all participants. Offchainer helps to create smart contracts with parameters that need to stay secret. We propose a way to keep some of the parameters off-chain, while guaranteeing correctness of the computation, using a combination of a commitment scheme and a zero-knowledge proof system. JavaScript Toolset Personal GitHub 2020-01-14 2021-11-05
ophcrack
Windows password cracker
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Serge Vaudenay — LASEC Home page 2021-11-05 2024-04-16 Ophcrack is a Windows password cracker based on rainbow tables. It is a very efficient implementation of rainbow tables done by the inventors of the method. It comes with a Graphical User Interface and runs on multiple platforms C Application Non-lab GitLab 2023-11-29 2023-11-29
iprp
Parallel redundancy protocol for IP networks
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Jean-Yves Le Boudec — LCA2 2019-03-18 2022-07-05 iPRP allows parallel transmission of data over a network for hard real time applications with simply installing an app on both the server and the client. C Application Lab GitHub 2017-10-03 MIT 2019-03-18
commelec-api
API for the Commelec real-time microgrid framework
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Jean-Yves Le Boudec — LCA2 2019-03-18 2022-07-05 This project defines a message format, based on Cap'n Proto, for encoding certain mathematical objects (i.e., real-valued symbolic expressions, sets and set-valued functions) as sequences of bytes. C++ Library Lab GitHub 2017-06-29 MIT 2019-03-18
T-RECS
Testbed for multi-agent real-time control of electric grids
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Jean-Yves Le Boudec — LCA2 2019-07-29 2022-07-05 T-RECS is a software testbed for multi-agent real-time control of electric grids. T-RECS uses software containers to run each agent in a virtual environment. Agents are networked via Mininet, so real packets are exchanged using TCP/IP. Python Simulation Lab GitHub 2019-06-06 MIT 2019-07-29
PRIME
Boost robustness of images to common corruptions
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Pascal Frossard — LTS4 2022-07-06 2024-03-21 PRIME is a generic, plug-n-play data augmentation scheme that consists of simple families of max-entropy image transformations for conferring robustness to common corruptions. PRIME leads to significant improvements in corruption robustness on multiple benchmarks. Python Toolset Lab GitHub 2021-12-28 Apache-2.0 2022-07-06
ffmalloc
Memory allocation preventing "use-after-free" exploits
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Sanidhya Kashyap — RS3LAB 2021-11-04 2024-04-12 ffmalloc is a "one time allocator" where any given virtual memory address is only returned to the calling application once. Since exploitation of use-after-free errors relies on being able to modify memory associated with "dangling pointers," by not reusing a virtual address region in subsequent allocation, an adversary cannot negatively impact the dangling memory region. C Library Personal GitHub 2022-04-09 2022-04-09
TCLocks
Scalable transparent delegation locking protocols without application modification
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Sanidhya Kashyap — RS3LAB 2024-04-12 2024-04-12 TCLocks is a family of locking protocols that use transparent delegation to improve scalability of synchronization in multi-core systems. The waiter encodes its critical section on its stack and notifies the lock holder (combiner), which executes the critical section on the waiter's behalf via a light-weight context switch. This avoids transferring shared data between cores. TCLocks require no modifications to application logic and provide up to 5.2x better performance than recent locking algorithms. In multi-core systems, locks are used to coordinate access to shared data, but traditional lock designs can hurt performance by moving data between cores. TCLocks is a new way to implement locks that avoids this data movement. When a core needs to execute a critical section of code guarded by a lock, it sends that code segment to the core holding the lock. That core then runs the code locally without transferring data. This transparent delegation approach improves performance significantly without changing application code. C Library Lab Github 2023-05-20 GPL-2.0 2024-04-12
Trio Architecture
Trio enables customizable user-level file systems with metadata integrity
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Sanidhya Kashyap — RS3LAB 2024-04-12 2024-04-12 Trio is a userspace NVM file system architecture that decouples file system design, access control, and metadata integrity enforcement. It defines a core state data structure shared between LibFSes and a trusted entity. LibFSes can customize with private auxiliary state while directly accessing NVM. The trusted entity verifies core state integrity when write access transfers between LibFSes. This allows customization while ensuring metadata integrity. Trio includes ArckFS, a POSIX-like FS, and customized FSes that outperform existing NVM file systems. Trio is a new way to build file systems that run entirely in user space and take full advantage of fast non-volatile memory (NVM). It separates the core metadata that defines the file system structure from auxiliary metadata that applications can customize for their needs. This split design allows applications to access NVM directly for performance, while still having integrity of the core metadata verified by a trusted system component. Trio includes ArckFS, a general POSIX-like file system, as well as examples of customized application-specific file systems that are faster than previous NVM file systems. C Library Lab Github 2024-08-24 Apache-2.0 2024-08-24
VOTEAGAIN
Scalable coercion-resistant voting system
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Carmela Troncoso — SPRING 2021-11-04 2022-07-07 The strongest threat model for voting systems considerscoercion resistance: protection against coercers that force voters to modify their votes, or to abstain. Existing remote voting systems either do not provide this property; require an ex-pensive tallying phase; or burden users with the need to store cryptographic key material and with the responsibility to deceive their coercers. VoteAgain is a scalable voting scheme that relies on the revoting paradigm to provide coercion resistance. Python Experiments Lab GitHub 2022-03-22 MIT 2022-03-22
DatashareNetwork
Decentralized privacy-preserving search engine for investigative journalists
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Carmela Troncoso — SPRING 2021-11-04 2023-03-22 Investigative journalists collect large numbers of digital documents during their investigations. These documents can greatly benefit other journalists’ work. However, many of these documents contain sensitive information. Hence, possessing such documents can endanger reporters, their stories, and their sources. Consequently, many documents are used only for single, local, investigations. DatashareNetwork is a decentralized and privacy-preserving search system that enables journalists world-wide to find documents via a dedicated network of peers. Python Simulation Lab GitHub 2022-09-21 BSD-3-Clause 2022-09-21
Tandem
Centralized privacy-preserving secure key storage
Intermediate Carmela Troncoso — SPRING 2021-11-04 2022-07-07 Users’ devices, e.g., smartphones or laptops, are typically incapable of securely storing and processing cryptographic keys. Tandem is a novel set of protocols for securing cryptographic keys with support from a central server. C Simulation Lab GitHub 2020-06-14 BSD-3-Clause 2021-11-04
Tandem / Monero
Applying the privacy-preserving algorithms of Tandem to the usage of the Monero blockchain.
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Carmela Troncoso — SPRING 2022-08-25 2022-08-25 One challenge when using private keys is that if they get stolen the damage can be very big, especially when used in blockchains to protect funds. Sharing the private key between multiple entities can secure the usage a bit, but most algorithms don't give privacy. In the context of a privacy-preserving service like Monero, where the source and destination of a transaction are hidden, these algorithms would leak information about the user. Applying Tandem to transactions on the Monero blockchain allows to protect the private key in case of loss, while keeping the owner of the transaction private. Simulation 2022-08-25
Private Collection Matching Protocols
Framework to build privacy-preserving Private Collection Matching (PCM) systems
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Carmela Troncoso — SPRING 2023-03-22 2023-03-22 We introduce Private Collection Matching (PCM) problems, in which a client aims to determine whether a collection of sets owned by a server matches their interests. Existing privacy-preserving cryptographic primitives cannot solve PCM problems efficiently without harming privacy. We propose a modular framework that enables designers to build privacy-preserving PCM systems that output one bit: whether a collection of server sets matches the client's set. The communication cost of our protocols scales linearly with the size of the client's set and is independent of the number of server elements. We demonstrate the potential of our framework by designing and implementing novel solutions for two real-world PCM problems: determining whether a dataset has chemical compounds of interest, and determining whether a document collection has relevant documents. Our evaluation shows that we offer a privacy gain with respect to existing works at a reasonable communication and computation cost. Framework 2023-03-22
Abacus
Precise side-channel analysis
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. James Larus — VLSC 2021-11-05 2022-07-07 Side-channel attacks allow adversaries to infer sensitive information from non-functional characteristics. Typical side-channel detection tools are able to identify many potential vulnerabilities, but do not provide information regarding their severity, making it difficult for developers to decide whether to address them, as their leaks are often negligible in practice. Abacus is able to precisely quantify the leaked information and finds flaws that would otherwise be difficult for a developer to find. C Application Non-lab GitHub 2022-05-17 MIT 2022-05-17
Bitfiltrator
Bitfiltrator is an automated bitstream parameter extraction tool for Xilinx UltraScale and UltraScale+ FPGAs.
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. James Larus — VLSC 2023-03-22 2023-03-22 Prior work has reverse-engineered parts of the bitstream format for security or debugging/instrumentation activities, but no paper has explained how to do this reverse engineering systematically! Our work bridges this gap by explaining: (1) the various parameters needed to navigate a bitstream correctly, (2) the experiments to obtain them, and (3) the many pitfalls and erroneous assumptions to avoid while undertaking this endeavor. We demonstrate our technique by using it to extract the bitstream format of initial LUT equations, LUTRAM contents, BRAM contents, and register values in Xilinx UltraScale and UltraScale+ FPGAs. Our methods are implemented in an open-source tool, Bitfiltrator [1], that can extract device layouts and architecture-specific bitstream formats for these cells automatically and without physical access to an FPGA. Python Toolset Lab GitHub 2022-11-27 MIT 2023-03-22
E-ID Demo (Issuer & Verifier)
Demo for the swiss E-ID ledger. It includes an issuer and a verifier.
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Jean-Pierre Hubaux — C4DT 2024-01-09 2024-01-09 The issuer is a web application that allows to create a new identity and issue a credential. The verifier is a web application that allows to verify the credential. TypeScript Application Lab GitHub 2024-01-01 2024-01-09
arkworks
Rust ecosystem for zkSNARK programming
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Alessandro Chiesa — COMPSEC Home page 2024-03-13 2024-03-13 Arkworks provides efficient implementations of components required for zkSNARK applications. It includes libraries for finite fields, elliptic curves, R1CS constraints, and SNARK proving systems like Groth16 and Marlin. It defines interfaces for relations like R1CS, and for building SNARK circuits using gadgets and subcircuits. Arkworks is a collection of Rust libraries for building privacy-preserving applications using zero-knowledge proofs called zkSNARKs. It has efficient implementations of the underlying cryptographic primitives like finite fields and elliptic curves. It also provides tools to encode computations as circuits that can be proven using zkSNARKs while keeping inputs private. Rust Library Project Github 2024-03-08 Apache-2.0 2024-03-13
Machine Learning category_Learning project_active project_incubated project_incubated_market project_retired project_active project_incubated project_incubated_market project_retired project_retired_archived 99 - product_presentation product_details product_demo product_hands-on product_pilot product_technical product_app
Garfield
System support for byzantine machine learning
Prototype Rachid Guerraoui — DCL 2021-01-20 2024-03-22 Garfield is a library to build Byzantine machine learning (ML) applications on top of popular frameworks such as TensorFlow and PyTorch. We show how to use Garfield to build different architectures for ML applications like single server, multiple workers (SSMW), multiple servers, multiple workers (MSMW), and fully decentralized architecture. Training ML is done in a distributed fashion these days due to the usage of big models and huge datasets (for scalability reasons). This distribution inevitably leads to a higher probability of failure somewhere in the network. Garfield is a library/tool to ensure the correctness/convergence of training despite the presence of these failures. Garfield can be used to do so with various ML applications and architectures. Python, Cuda, C++ Library Lab Github 2021-09-24 MIT 2021-09-24
FeGAN
Scaling distributed Generative Adversarial Networks (GANs)
Prototype Rachid Guerraoui — DCL 2020-11-11 2024-03-22 The FeGAN system enables training GANs in the Federated Learning setup. GANs are generative adversarial networks, a class of machine learning where two neural networks contest with each other. FeGAN is implemented on PyTorch and is using less bandwidth and is faster than using stat-of-the-art GANs implementations. Python Application Lab GitHub 2020-12-31 MIT 2020-12-31
FLeet
Federated machine learning on Android
Prototype Rachid Guerraoui — DCL 2019-07-01 2024-03-22 MobNet is a framework for federated machine learning on Android devices. It consumes much less battery than Standard FL while increasing the model's accuracy three times. It allows for Android to actually participate in the building of a ML model. Java, C++ Library, Application Non-lab GitHub 2020-10-31 MIT 2020-10-31
AggregaThor
Framework over TensorFlow implementing robust stochastic gradient descent
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Rachid Guerraoui — DCL 2019-03-18 2024-03-22 Framework built over TensorFlow implementing state-of-the-art Byzantine-resilient, distributed Stochastic Gradient Descent (SGD). Modular approach allows most of its components to be reused in other projects. Unreliable communication channels are supported, providing a performance speed-up over standard TensorFlow in saturated networks. Python / C++ Library, Application Lab GitHub 2019-12-06 2019-12-06
Probabilistic Fault Tolerance of Neural Networks in the Continuous Limit
Regularizer for failing neurons
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Rachid Guerraoui — DCL 2022-07-04 2024-03-22 How is a neural network changing its output in presence of failing node? This project provides a regularizer adapting itself to changing conditions. Python Library Lab GitHub 2020-11-24 other 2022-07-04
SecVM
Privacy-preserving classification
Prototype Robert West — DLAB 2021-11-05 2024-04-16 Today, large amounts of valuable data are distributed among millions of user-held devices, such as personal computers, phones, or Internet-of-things devices. Many companies collect such data with the goal of using it for training machine learning models allowingthem to improve their services. User-held data is, however, often sensitive, and collecting it is problematic in terms of privacy. We propose a novel way of training a supervised classifier in a distributed setting akin to the recently proposed federated learning paradigm, but under the stricter privacy requirement that the server that trains the model is assumed to be untrusted and potentially malicious. We thus preserve user privacy by design, rather than by trust. Java Experiments Lab GitHub 2020-08-17
2021-11-05
Invariant Language Modeling
Invariant natural language modeling
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Robert West — DLAB 2021-11-05 2024-04-16 Modern pretrained language models are critical components for natural language processing. Yet, they suffer from spurious correlations, poor out-of-domain generalization, and biases. This is a framework to learn invariant representations that should generalize across training environments. Python Application Lab GitHub 2022-01-24 Apache-2.0 2022-01-24
Eigenthemes
Improved entity linking
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Robert West — DLAB 2021-11-05 2024-04-16 In natural language processing, entity linking, i.e. the task of assigning a unique identity to entities (for example "Paris" in a sentence refers to the city, not to someone's name), is an important problem. Most previous solutions rely on annotated data, which is however not available in many domains. We propose a method for entity linking without the need for annotated data. Python Experiments Lab GitHub 2021-09-23 Apache-2.0 2021-11-05
Quotebank
Corpus of quotations from a decade of news
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Robert West — DLAB 2022-09-28 2024-04-16 News from half a million of website, over the last 15 years, labelled by writer. Quotebank shows that it can accurately associate any citation with who most probably wrote it. It helps in identifying the source of a given news without any metadata. Python Experiments Lab GitHub 2021-07-23 MIT 2022-09-28
DiPPS
Differentially Private Propensity Scores for Bias Correction
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Robert West — DLAB 2023-03-16 2024-04-16 In surveys, it is typically up to the individuals to decide if they want to participate or not, which leads to participation bias: the individuals willing to share their data might not be representative of the entire population. Similarly, there are cases where one does not have direct access to any data of the target population and has to resort to publicly available proxy data sampled from a different distribution. In this paper, we present Differentially Private Propensity Scores for Bias Correction (DiPPS), a method for approximating the true data distribution of interest in both of the above settings Python Experiments Lab GitHub 2022-10-02 other 2023-03-16
GenIE
Autoregressive information extraction system
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Robert West — DLAB 2023-03-16 2024-04-16 GenIE uses a sequence-to-sequence model that takes unstructured text as input and autoregressively generates a structured semantic representation of the information expressed in it, in the form of (subject, relation, object) triplets, as output. Python Experiments Lab GitHub 2023-03-28 MIT 2023-03-28
SynthIE
Exploiting Asymmetry for Synthetic Training Data Generation
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Robert West — DLAB 2023-03-16 2024-04-16 Python Experiments Lab GitHub 2023-05-27 MIT 2023-05-27
aiFlows
Modular AI collaboration framework
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Robert West — DLAB Home page 2024-04-16 2024-04-16 aiFlows is a framework centered around Flows and messages. Flows are independent, self-contained computational building blocks that can complete semantically meaningful units of work. Flows communicate via a standardized message-based interface, enabling modularity, reusability, remote peer-to-peer collaboration, and concurrency. aiFlows simplifies the design and implementation of complex workflows involving humans, AI systems, and tools. It enables modularity by allowing Flows to be stacked like LEGO blocks, reusability by sharing Flows on the FlowVerse, remote peer-to-peer collaboration between Flows, and concurrent execution of multiple Flows. The goal is to empower researchers and practitioners with complete control and customizability over their AI workflows. Python Framework Lab Github 2024-04-12 MIT 2024-04-16
Transformers CFG
Grammar-constrained text generation with Transformers models
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Robert West — DLAB 2024-04-16 2024-04-16 Transformers_cfg is an extension library for the Hugging Face Transformers library that enables grammar-constrained text generation. It provides tools and functionalities to work with context-free grammars (CFGs) for natural language processing tasks involving CFGs. The library supports various Transformer models, including LLaMa, GPT, Bloom, Mistral, and Falcon, and offers features like multilingual grammar support and integration with Text-Generation-WebUI. The transformers_cfg library allows you to control the output of language models like GPT-3 by providing a set of rules (grammar) that the generated text must follow. This is useful for generating structured data like code, JSON objects, or any text that needs to conform to specific patterns or rules. The library works with popular language models and provides an easy way to incorporate grammar constraints into the text generation process without modifying the underlying models. Python Library Lab Github 2024-04-13 MIT 2024-04-16
Entity Insertion in Wikipedia
Multilingual entity insertion in Wikipedia articles
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Robert West — DLAB 2024-04-16 2024-04-16 Proposes a framework for inserting entities into Wikipedia articles across multiple languages. It processes Wikipedia dumps to extract data and train models for entity insertion. The key components are: 1) Data processing pipeline to extract relevant data from Wikipedia dumps. 2) Modeling code for training entity insertion models using a ranking loss or pointwise loss. 3) Benchmarking code to evaluate models against baselines like BM25, EntQA, and GPT language models. Automatically adding relevant links to entities in Wikipedia articles across different languages is a challenging task. This project provides a solution by processing data from Wikipedia dumps and training machine learning models. The data processing extracts information like articles, links, and mentions from the dumps. The modeling code trains models to rank candidate text spans for inserting an entity link. The models are evaluated against various baselines like keyword matching and language models. This helps in improving the quality and consistency of Wikipedia by suggesting relevant entity links across multiple languages. Jupyter Notebook Experiments Lab Github 2024-04-15 2024-04-16
hdtorch
PyTorch-based hyperdimensional computing library
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. David Atienza — ESL 2024-02-20 2024-02-20 HDTorch is a PyTorch-based library designed for hyperdimensional computing, featuring custom CUDA extensions to accelerate hypervector operations. It is utilized for analyzing HDC benchmark datasets, focusing on accuracy, runtime, and memory usage. The workflow involves initializing basis vectors, encoding features, and aggregating vectors of the same class. HDTorch is a specialized library that uses PyTorch for advanced hyperdimensional computing tasks. It helps researchers analyze complex datasets efficiently, ensuring accuracy and optimizing resource usage. In simpler terms, it's like a powerful tool that assists in handling data securely and effectively for projects related to privacy and digital trust. Python Library Lab Github 2023-10-18 MIT 2024-02-20
Choix
Library that provides inference algorithms for models based on Luce's choice axiom
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Matthias Grossglauser — INDY 2019-03-18 2022-07-05 Python Library Personal GitHub 2022-01-11 MIT
2022-01-11
Who is that?
Machine Learning framework to search a database via similarity samples
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Matthias Grossglauser — INDY Home page 2019-09-09 2022-07-05 Use machine learning to organize a collection of objects (e.g. faces of actors) so as to make them interactively searchable via similarity queries. The approach combines concepts from representation learning, reinforcement learning, discrete-choice theory and bayesian inference. Library 2019-09-09
kickscore
Dynamic skill rating system
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Matthias Grossglauser — INDY 2020-05-01 2022-07-05 Kickscore can be used to understand & visualize the skill of players (or teams) competing in pairwise matches, and to predict outcomes of future matches. It extends the Elo rating system and TrueSkill. Python Library Personal GitHub 2020-05-09 MIT

2020-05-09
Predikon
Predictions about votes in Switzerland
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Matthias Grossglauser — INDY Home page 2020-05-01 2022-07-05 We designed a predictive model of the municipal results (in percentage of "yes") for Swiss votes. Based on past results, our model automatically learns features of municipalities. On the day of a vote, and as soon as some municipalities publish their results (their percentage of "yes"), our model uses the features to predict the unpublished results of other municipalities. The prediction of the national vote result is obtained by aggregating published results and predicted results. Predikon provides predictions about votes in Switzerland, as soon as municipal results are published by Swiss cantons starting at 12:00 pm on the day of a vote. Library 2020-05-01
Climpact
Estimate your perception of carbon footprint
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Matthias Grossglauser — INDY Home page 2023-04-24 2023-04-24 For the climate, flying to New York is worse than taking a long shower. But is it 10 times worse or is it 1000 times worse? The carbon footprint of our actions have been widely analyzed and quantified, but it does not mean that people are well aware of their impact. With this project, we would like to understand people’s perception of their carbon footprint, and how does it compare to the actual carbon footprint of actions they take. This could help climate scientists, sociologists, news outlets, politicians, and the general public to improve climate communication and enhance climate action. Application 2023-04-24
FG-NIC
Noise-robust image classification
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Sabine Süsstrunk — IVRL 2021-11-05 2024-04-14 Image classification has significantly improved using deep learning. This is mainly due to convolutional neural networks (CNNs) that are capable of learning rich feature extractors from large datasets. However, most deep learning classification methods are trained on clean images and are not robust when handling noisy ones, even if a restoration preprocessing step is applied. We propose a method that can be applied on a pretrained classifier. We improve the noisy-image classification (NIC) results by significantly large margins, especially at high noise levels, and come close to the fully retrained approaches. Python Application Lab GitHub 2022-01-04 MIT 2022-01-04
BUIFD
Deep learning image denoiser
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Sabine Süsstrunk — IVRL 2021-11-05 2024-04-14 Blind and universal image denoising consists of using a unique model that denoises images with any level of noise. It is especially practical as noise levels do not need to be known when the model is developed or at test time. We propose a blind and universal deep learning image denoiser based on an optimal denoising solution, which we call fusion denoising. Our approach improves real-world grayscale additive image denoising. It also improves state-of-the-art color image denoising performance on every single noise level by an average of 0.1dB. Python Application Lab GitHub 2020-11-24 MIT 2021-11-05
Zero-Learning Fast Medical Image Fusion
High-quality image fusion
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Sabine Süsstrunk — IVRL 2021-11-05 2024-04-14 Medical image fusion plays a central role by integrating information from multiple sources into a single, more understandable output. We propose a real-time image fusion method using pre-trained neural networks to generate a single image containing features from multi-modal sources. Our method can be applied to any number of input sources. Python Application Lab GitHub 2019-05-10 2021-11-05
LELSD
Interactive GAN-based image editing
Prototype Sabine Süsstrunk — IVRL 2022-07-05 2024-04-14 When generating an image using a GAN, some errors might appear which are obvious to the human observer, but not to the computer. By introducing this user feedback one can refine the generated image to look even more real. Python Application Lab GitHub 2022-02-20 MIT 2022-07-05
DSR
Drone Image Super-Resolution
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Sabine Süsstrunk — IVRL 2023-03-21 2024-04-14 Despite achieving remarkable progress in recent years, single-image super-resolution methods are developed with artificial limitations. We propose a novel drone image dataset, with scenes captured at low and high resolutions, and across a span of altitudes. Our results show that off-the-shelf state-of-the-art networks perform worse on this different domain. Python Experiments, Simulation Lab GitHub 2022-09-15 BSD-3-Clause 2023-03-21
TempSAL
Uncovering Temporal Information for Deep Saliency Prediction
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Sabine Süsstrunk — IVRL Home page 2023-03-21 2024-04-14 Deep saliency prediction algorithms complement the object recognition features, they typically rely on additional information, such as scene context, semantic relationships, gaze direction, and object dissimilarity. However, none of these models consider the temporal nature of gaze shifts during image observation. We introduce a novel saliency prediction model that learns to output saliency maps in sequential time intervals by exploiting human temporal attention patterns. Application, Experiments Lab GitHub 2023-07-24 MIT 2023-07-24
DyNCA
Real-Time Dynamic Texture Synthesis Using Neural Cellular Automata
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Sabine Süsstrunk — IVRL Home page 2023-03-21 2024-04-14 Current Dynamic Texture Synthesis (DyTS) models in the literature can synthesize realistic videos. However, these methods require a slow iterative optimization process to synthesize a single fixed-size short video, and they do not offer any post-training control over the synthesis process. We propose Dynamic Neural Cellular Automata (DyNCA), a framework for real-time and controllable dynamic texture synthesis. Framework Lab GitHub 2024-01-29 MIT 2024-01-29
SPINDLE
Scalable, privacy-preserving, distributed learning on distributed datasets
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Jean-Pierre Hubaux — LDS 2021-01-21 2022-09-28 SPINDLE allows to train and evaluate generalized linear models on datasets that are stored at different data providers who don't want to share the original data. GoLang Application other 2021-01-21
PriCell
Privacy preserving neural network learning for diseased cell classification
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Jean-Pierre Hubaux — LDS 2022-07-05 2022-07-05 PriCell is a Golang library that ensures CellCnn analysis in privacy-preserving, distributed, N-party setting. GoLang Application Lab GitHub 2022-03-05 non-commercial 2022-07-05
Bayesian Differential Privacy
Data distribution-aware differential privacy
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Boi Faltings — LIA 2021-11-04 2024-03-20 Traditional differential privacy is independent of the data distribution. However, this is not well-matched with the modern machine learning con-text, where models are trained on specific data. As a result, achieving meaningful privacy guarantees in ML often excessively reduces accuracy. Bayesian differential privacy (BDP) takes into account the data distribution to provide more practical privacy guarantees. Python Experiments Personal GitHub 2020-08-12 Apache-2.0 2021-11-04
ADER
Continual adaption of recommendation systems without forgetting
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Boi Faltings — LIA 2021-11-05 2024-03-20 Recommendation systems typically require continual adaptation to take into account new and obsolete items. A major challenge in this situation is catastrophic forgetting, where the trained model forgets patterns it has learned before. We propose a method to mitigate this effect. Python Simulation Personal GitHub 2021-10-27 MIT 2021-11-05
LB-CSMRI
Magnetic imaging resonance optimization
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Volkan Cevher — LIONS Home page 2021-11-05 2022-07-05 Learning-based framework for optimizing magnetic resonance imaging (MRI) reconstruction. MATLAB Framework, Simulation Lab Download 2021-11-05
STORM+
Faster PyTorch optimizer
Prototype Volkan Cevher — LIONS 2022-07-05 2022-08-11 Compared to the largely used SGD optimizer for PyTorch, STORM+ is faster but requires two passes on the data. Python Library Lab GitHub 2022-05-14 2022-07-05
AI Research Aiding Online Children Safety
Platform for detecting specific risks and threats children are facing online
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Karl Aberer — LSIR Home page 2019-03-18 2024-02-06 Machine Learning classifiers and tools to help with the detection of specific risks and threats children are facing while using their newly acquired phones. The classifiers perform on par or better than what exists on the market, and have been adapted to run smoothly on a mobile phone. The analysis can therefore run on the mobile phone without having to send any content to any server. Framework Private GitHub 2019-03-18
AI-Driven Classifier Building Pipeline
Platform for speeding up the development of Artificial-Intelligence classifiers
Intermediate Karl Aberer — LSIR Home page 2019-05-22 2023-03-21 The platform aims at accelerating the process of building Artificial Intelligence classifiers for image and text classification. Framework Private GitHub 2019-05-22
SciLens
Helper for science news evaluation
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Karl Aberer — LSIR Home page 2019-03-18 2024-02-06 A framework helping non-experts to evaluate the quality of scientific news articles, based on indicators automatically generated using machine learning. Python Application Lab GitHub 2022-10-25 GPL-3.0


2022-10-25
Media Observatory
News landscape monitoring
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Karl Aberer — LSIR Home page 2019-09-04 2024-02-12 A model of the media landscape that maps news channels based on their selection of subjects. The observatory has the following key objectives: giving the public access to algorithmic solutions to monitor the news landscape, developing transparent quality and credibility indicators and creating a meeting point to foster multidisciplinary research opportunities Application Private GitHub
2019-09-04
Mozuma
Library of ML standardised models
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Karl Aberer — LSIR 2022-07-06 2024-02-12 Mozuma is a library containing a collection of machine learning models with standardised interface to run inference, train and manage model state files. Library Lab GitHub 2023-07-11 2023-07-11
CommPass
News article similarity visualization tool
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Karl Aberer — LSIR Home page 2024-03-19 2024-03-19 The project aims to visualize semantic similarity and polarity of news articles covering a given media event. It extends the NewsTeller platform which processes over 1.5 million news articles per month. The goal is to provide intuitive visualization tools to explore the media landscape and enhance the NewsTeller platform. This tool visualizes how similar or different news articles about the same event are from multiple perspectives. It can show if articles have a positive or negative stance on the topic. This helps users understand if they are caught in a filter bubble and exposes them to diverse viewpoints. It also assists journalists in positioning their articles among others covering the same story. Application 2024-03-19
Upgrading the Newsroom
Automated image selection system for news articles
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Karl Aberer — LSIR Home page 2024-03-19 2024-03-19 The system fuses multiple textual sources (caption, body, headline, lead) from news articles using a hierarchical attention mechanism to retrieve relevant images. It utilizes subword embeddings and self-attention to better encode entities and capture important keywords within texts. The model is trained on a large-scale multimodal multilingual dataset of over 500k German and French news article-image pairs in a weakly-supervised manner. It is an automated system that can recommend suitable images to illustrate news articles by analyzing the text content of the articles. The system can handle inputs in multiple languages like German and French by using aligned multilingual word embeddings. It uses advanced neural network techniques like attention to identify the most relevant parts of the text for retrieving matching images from a large database. Application 2024-03-19
DeepFool
Simple algorithm to find the minimum adversarial perturbations in deep networks
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Pascal Frossard — LTS4 2019-03-18 2024-03-21 State-of-the-art deep neural networks have achieved impressive results on many image classification tasks. However, these same architectures have been shown to be unstable to small, well sought, perturbations of the images. Despite the importance of this phenomenon, no effective methods have been proposed to accurately compute the robustness of state-of-the-art deep classifiers to such perturbations on large-scale datasets. DeepFool proposes to efficiently compute perturbations that fool deep networks, and thus reliably quantify the robustness of these classifiers. DeepFool is a simple algorithm to find the minimum perturbations needed in deep networks to change the outcome of its decision. MATLAB, Python Application Lab GitHub 2018-09-07 2019-03-18
ManiFool
Algorithm for evaluating the invariance properties of deep networks
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Pascal Frossard — LTS4 2019-03-18 2024-03-21 Deep convolutional neural networks have been shown to be vulnerable to arbitrary geometric transformations. However, there is no systematic method to measure the invariance properties of deep networks to such transformations. ManiFool is a simple yet scalable algorithm to measure the invariance of deep networks. In particular, it measures the robustness of deep networks to geometric transformations in a worst-case regime as they can be problematic for sensitive applications. Python Application Personal GitHub 2018-01-24 2019-03-18
SparseFool
Geometry-inspired sparse attack on deep networks
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Pascal Frossard — LTS4 2019-09-04 2024-03-21 Deep Neural Networks have achieved extraordinary results on image classification tasks, but have been shown to be vulnerable to attacks with carefully crafted perturbations of the input data. Although most attacks usually change values of many image’s pixels, it has been shown that deep networks are also vulnerable to sparse alterations of the input. SparseFool implements an efficient algorithm to compute and control sparse alterations. Python Application Lab GitHub 2020-09-27 Apache-2.0 2020-09-27
Universal
Universal adversarial perturbations
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Pascal Frossard — LTS4 2019-03-18 2024-03-21 Proposing a universal (image-agnostic) and very small perturbation vector that causes natural images to be misclassified with high probability in a deep neuronal network. MATLAB, Python Application Lab GitHub 2017-10-23 2019-03-18
Hold me tight!
Influence of discriminative features on deep network boundaries in ML
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Pascal Frossard — LTS4 2021-01-27 2024-03-21 Important insights towards the explainability of neural networks reside in the characteristics of their decision boundaries. In this work, we borrow tools from the field of adversarial robustness, and propose a new perspective that relates dataset features to the distance of samples to the decision boundary. This enables us to carefully tweak the position of the training samples and measure the induced changes on the boundaries of CNNs trained on large-scale vision datasets. We use this framework to reveal some intriguing properties of CNNs. Specifically, we rigorously confirm that neural networks exhibit a high invariance to non-discriminative features, and show that the decision boundaries of a DNN can only exist as long as the classifier is trained with some features that hold them together. Finally, we show that the construction of the decision boundary is extremely sensitive to small perturbations of the training samples, and that changes in certain directions can lead to sudden invariances in the orthogonal ones. This is precisely the mechanism that adversarial training uses to achieve robustness. Python Application Lab Github 2021-12-10 Apache-2.0 2021-12-10
Neural Anisotropy Directions
Analyzing the role of the network architecture in shaping the inductive bias of deep classifiers.
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Pascal Frossard — LTS4 2021-01-27 2024-03-21 In this work, we analyze the role of the network architecture in shaping the inductive bias of deep classifiers. To that end, we start by focusing on a very simple problem, i.e., classifying a class of linearly separable distributions, and show that, depending on the direction of the discriminative feature of the distribution, many state-of-the-art deep convolutional neural networks (CNNs) have a surprisingly hard time solving this simple task. We then define as neural anisotropy directions (NADs) the vectors that encapsulate the directional inductive bias of an architecture. These vectors, which are specific for each architecture and hence act as a signature, encode the preference of a network to separate the input data based on some particular features. We provide an efficient method to identify NADs for several CNN architectures and thus reveal their directional inductive biases. Furthermore, we show that, for the CIFAR-10 dataset, NADs characterize the features used by CNNs to discriminate between different classes. Python Application Lab Github 2020-11-17 Apache-2.0 2021-01-27
OrthoNet
Multilayer network data clustering
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Pascal Frossard — LTS4 2021-11-04 2024-03-21 Network data appears in very diverse applications, like biological, social, or sensor networks. Clustering of network nodes into categories or communities has thus become a very common task in machine learning and data mining. Network data comes with some information about the network edges. In some cases, this network information can even be given with multiple views or multiple layers, each one representing a different type of relationship between the network nodes. Increasingly often, network nodes also carry a feature vector. We propose to extend the node clustering problem, that commonly considers only the network information, to a problem where both the network information and the node features are considered together for learning a clustering-friendly representation of the feature space. Python Library Lab GitHub 2020-07-28 CeCILL-B 2021-11-04
PRIME
Boost robustness of images to common corruptions
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Pascal Frossard — LTS4 2022-07-06 2024-03-21 PRIME is a generic, plug-n-play data augmentation scheme that consists of simple families of max-entropy image transformations for conferring robustness to common corruptions. PRIME leads to significant improvements in corruption robustness on multiple benchmarks. Python Toolset Lab GitHub 2021-12-28 Apache-2.0 2022-07-06
TransFool
Adversarial attack against neural machine translation models
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Pascal Frossard — LTS4 2024-04-12 2024-04-12 Deep neural networks have been shown to be vulnerable to small perturbations of their inputs. In this paper, we investigate the vulnerability of Neural Machine Translation (NMT) models to these attacks and propose a new attack algorithm called TransFool. TransFool can severely degrade the translation quality for different translation tasks and NMT architectures. Moreover, we show that TransFool is transferable to unknown target models. Finally, based on automatic and human evaluations, TransFool leads to improvement in performance compared to the existing attacks. Thus, TransFool permits us to better characterize the vulnerability of NMT models and outlines the necessity to design strong defense mechanisms and more robust NMT systems for real-life applications. TransFool is an attack algorithm to against translation models to make the output translation wrong. Python Toolset Personal Gihub 2023-06-23 Apache-2.0 2024-04-12
PowerGossip
Practical low-rank communication compression in decentralized deep learning
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Martin Jaggi — MLO 2021-03-05 2024-04-09 Inspired by the PowerSGD algorithm for centralized deep learning, this algorithm uses power iteration steps to maximize the information transferred per bit. We prove that our method requires no additional hyperparameters, converges faster than prior methods, and is asymptotically independent of both the network and the compression. Python Library Lab Github 2020-08-04 MIT 2021-03-05
chocoSGD
Decentralized communication-efficient machine learning and deep learning
Prototype Martin Jaggi — MLO 2019-07-30 2024-04-09 Communication-efficient decentralized ML training (both deep learning, compatible with PyTorch, and traditional convex machine learning models). Python Application Lab GitHub 2020-09-10 Apache-2.0 2020-09-10
cola
Decentralized linear machine learning
Prototype Martin Jaggi — MLO 2019-07-30 2024-04-09 Decentralized machine learning is a promising emerging paradigm in view of global challenges of data ownership and privacy. We consider learning of linear classification and regression models, in the setting where the training data is decentralized over many user devices, and the learning algorithm must run on-device, on an arbitrary communication network, without a central coordinator. We propose COLA, a new decentralized training algorithm with strong theoretical guarantees and superior practical performance. Our framework overcomes many limitations of existing methods, and achieves communication efficiency, scalability, elasticity as well as resilience to changes in data and participating devices. Python Application Lab GitHub 2021-11-29 Apache-2.0
2021-11-29
MLBench
Benchmarking of distributed ML
Intermediate Martin Jaggi — MLO Home page 2019-07-30 2024-04-09 Framework for distributed machine learning. Its purpose is to improve transparency, reproducibility, robustness, and to provide fair performance measures as well as reference implementations, helping adoption of distributed machine learning methods both in industry and in the academic community. Besides algorithm comparison, a main use case is to help the selection of hardware (CPU, GPU) used to run AI applications, as well as how to connect it into a cluster to get a good cost/performance tradeoff. Python Framework Project GitHub 2023-03-01 link Apache-2.0 2023-03-01
sent2vec
Numerical representations for short texts
Prototype Martin Jaggi — MLO 2019-03-18 2024-04-09 Library that delivers numerical representations (features) for words, short texts or sentences, which can be used as input to any machine learning task later on. C++ Library Lab GitHub 2022-08-03 BSD-3-Clause 2022-08-03
PowerSGD
Practical low-rank gradient compression for distributed optimization
Intermediate Martin Jaggi — MLO 2020-05-01 2024-04-09 New low-rank gradient compressor based on power iteration that can i) compress gradients rapidly, ii) efficiently aggregate the compressed gradients using all-reduce, and iii) achieve test performance on par with SGD. The proposed algorithm is the only method evaluated that achieves consistent wall-clock speedups when benchmarked against regular SGD with an optimized communication backend. We demonstrate reduced training times for convolutional networks as well as LSTMs on common datasets. Python Application Lab GitHub 2023-07-04 MIT 2023-07-04
RelaySGD
Improved information propagation in decentralized learning
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Martin Jaggi — MLO 2021-11-04 2024-04-09 Because the workers only communicate with few neighbors without central coordination, these updates propagate progressively over the network. This paradigm enables distributed training on networks without all-to-all connectivity, helping to protect data privacy as well as to reduce the communication cost of distributed training in data centers. A key challenge, primarily in decentralized deep learning, remains the handling of differences between the workers' local data distributions. To tackle this challenge, we introduce the RelaySum mechanism for information propagation in decentralized learning. RelaySum uses spanning trees to distribute information exactly uniformly across all workers with finite delays depending on the distance between nodes. In contrast, the typical gossip averaging mechanism only distributes data uniformly asymptotically while using the same communication volume per step as RelaySum. Python Library, Experiments Lab GitHub 2023-04-21 MIT 2023-04-21
Disco
Decentralized Collaborative Machine Learning
Intermediate Martin Jaggi — MLO Home page 2022-02-18 2024-04-09 A collection of objects and routines to help you develop your own distributed machine learning algorithm. It has two modes, federated, where a server is keeping track of the model, and decentralized, where each participant has their own local model. You can train your model directly in the browser, allowing it to run on a variety of hardware. Many extensions are in the pipeline, such as adding Byzantine resistance or training without revealing the model. Compared to other solutions, Disco is bridging the gap between people creating machine learning models and people having relevant data. By running without installation nor complex configuration, anyone can help. It's also a breeding ground for new machine learning technologies. TypeScript Framework Lab GitHub 2024-04-03 Apache-2.0



2024-04-03
Byzantine Robust Optimizer
Improved federated learning with Byzantine robustness
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Martin Jaggi — MLO 2021-11-04 2024-04-09 Byzantine robustness has received significant attention recently given its importance for distributed and federated learning. In spite of this, there are severe flaws in existing algorithms even when the data across the participants is identically distributed. To address these issues, we present two surprisingly simple strategies: a new robust iterative clipping procedure, and incorporating worker momentum to overcome time-coupled attacks. This is the first provably robust method for the standard stochastic optimization setting. Python Simulation Lab GitHub 2021-06-11 MIT 2021-11-04
Quasi-Global Momentum
Improved decentralized training with data heterogeneity
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Martin Jaggi — MLO 2021-11-04 2024-04-09 Decentralized training of deep learning models is a key element for enabling data privacy and on-device learning over networks. In realistic learning scenarios, the presence of heterogeneity across different clients' local datasets poses an optimization challenge and may severely deteriorate the generalization performance. We propose a novel momentum-based method to mitigate this decentralized training difficulty. Python Simulation Lab GitHub 2022-12-23 Apache-2.0 2022-12-23
HyperAggregate
Sublinear aggregation algorithm
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Martin Jaggi — MLO 2021-11-04 2024-04-09 Novel decentralized aggregation protocol that can be parameterized so that the overall computation overhead scales logarithmically with the number of nodes. Python, JavaScript Library, Experiments Personal GitHub 2021-07-03 2021-11-04
PhantoMedicus
Medical Survey Generator
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Martin Jaggi — MLO 2022-07-06 2024-04-09 Phantomedicus is a framework for simulating patients and consultations. It can extract disease probabilities from given data. Python Framework Lab GitHub 2022-06-25 2022-07-06
PAXlib
Augmentent PyTorch with some JAX
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Martin Jaggi — MLO 2022-07-07 2024-04-09 Python Library Lab GitHub 2022-03-02 Apache-2.0 2022-07-07
Byzantine-Robust NonIID optimizer
Byzantine-Robust Learning on Heterogeneous Datasets via Bucketing
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Martin Jaggi — MLO 2022-07-07 2024-04-09 Python Library Lab GitHub 2022-02-02 MIT 2022-07-07
Distributed Homomorphic Anomaly Detection
Proof-of-concept ML algorithms to do anomaly detection compatible with distributed, encrypted algorithms.
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Martin Jaggi — MLO 2024-01-03 2024-04-09 The goal of this project is prove that state-of-the-art anomaly detection algorithms that already achieve over 99% accuracy can be run in a distributed and encrypted fashion. In other words, prove that multiple parties can collectively train a good anomaly detecting model without revealing their data to each other. This has been achieved through transfer learning into a Multi-layer Perceptron (MLP) model which achieved comparable results (95% compared to 99% False-Positive Rate accuracy). Python Experiments Lab GitHub 2023-09-11 2024-01-03
Meditron
Open-source medical language model for clinical decision support
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Martin Jaggi — MLO Home page 2024-04-12 2024-04-12 MEDITRON is a pair of open-source large language models (LLMs) with 7 and 70 billion parameters, tailored to the medical domain. It was trained on carefully curated medical data sources, including peer-reviewed literature and clinical practice guidelines. MEDITRON outperforms other open-source models and closed models like GPT-3.5 on medical benchmarks, coming within 5-10% of GPT-4 and Med-PaLM-2. MEDITRON is an AI model designed to help doctors and healthcare professionals make better decisions by providing access to medical knowledge. It was trained on high-quality medical information from research papers and guidelines. Unlike other medical AI models that are closed-source, MEDITRON's code and training data are open, allowing transparency and further improvement by researchers. The goal is to safely bring the benefits of AI to healthcare in an ethical way. Python Application Lab Github 2024-04-10 Apache-2.0 2024-04-12
Megatron-LLM
Large language model training library
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Martin Jaggi — MLO 2024-04-12 2024-04-12 Megatron-LLM enables pre-training and fine-tuning of large language models (LLMs) at scale. It supports architectures like Llama, Llama 2, Code Llama, Falcon, and Mistral. The library allows training of large models (up to 70B parameters) on commodity hardware using tensor, pipeline, and data parallelism. It provides features like grouped-query attention, rotary position embeddings, BF16/FP16 training, and integration with Hugging Face and WandB. Megatron-LLM is a software library that allows researchers and developers to train and fine-tune large language models, which are powerful AI systems that can understand and generate human-like text. It supports various model architectures and enables training on regular hardware by distributing the workload across multiple machines. The library offers advanced features to improve model performance and integrates with popular tools for tracking training progress and sharing models. Python Application Lab Github 2023-12-03 various 2024-04-12
Error Resilient Recurring Gallery Building
Correctly re-identify people in different images
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Touradj Ebrahimi — MMSPG 2021-11-04 2024-03-15 In person re-identification, people must to be correctly identified in images that come from different cameras or are captured at different points in time. In the open-set case, the above needs be achieved for persons that have not been previously observed. We propose a universal method for building a multi-shot gallery of observed reference identities recurrently online. Python Application Lab GitHub 2021-02-03 GPL-3.0 2021-11-04
Mesh sampling
Generate point cloud based on mesh
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Touradj Ebrahimi — MMSPG 2021-11-04 2024-03-15 It is composed of two scripts that perform mesh sampling. They were developed with the goal of generating point cloud datasets for training of learning-based compression algorithms from large-scale mesh datasets such as ModelNet and ShapeNet. Python Toolset Lab GitHub 2022-02-22 other 2022-02-22
Point-cloud compressor
Learning-based compression of point cloud geometry and color
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Touradj Ebrahimi — MMSPG 2021-11-04 2024-03-15 It includes scripts for training and testing a neural network architecture for compression of geometry and color of point clouds. The compression model is based on a convolutional auto-encoder architecture that operates on block partitions of a point cloud. Python Toolset Lab GitHub 2022-01-04 other 2022-01-04
peacok
Persona Commonsense Knowledge for Consistent and Engaging Narratives
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Antoine Bosselut — NLP 2024-02-20 2024-02-20 PeaCoK is a large-scale persona commonsense knowledge graph, containing approximately 100K human-validated persona facts. It schematizes five dimensions of persona knowledge identified in previous studies of human interactive behaviours, and distils facts in this schema from both existing commonsense knowledge graphs and large-scale pretrained language models. The analysis indicates that PeaCoK contains rich and precise world persona inferences that help downstream systems generate more consistent and engaging narratives. PeaCoK is a project that creates a big network of common knowledge about different personas, with around 100,000 facts that have been checked by humans. It organizes this knowledge into five categories based on how people interact, and it gets this information from existing networks of common knowledge and computer models that have been trained on large amounts of data. The project shows that this network can help create more realistic and engaging stories or conversations in digital systems. Python Experiments Personal Github 2023-09-01 2024-02-20
distilled counterfactual data
Automated generation of high-quality counterfactual data.
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Antoine Bosselut — NLP 2024-02-20 2024-02-20 DISCO (DIStilled COunterfactual Data) is a method for automatically generating high-quality counterfactual data at scale. It uses a large general language model to generate phrasal perturbations, which are then filtered by a task-specific teacher model to distill high-quality counterfactual data. The method has been applied to natural language inference tasks, demonstrating improved robustness and generalization across distributions. DISCO is a system that creates alternative versions of data, which can help machines learn better. It uses a language model, similar to how autocorrect works, to create these alternatives. When tested, machines trained with these alternatives performed better, especially in understanding and inferring language. Python Framework Personal Github 2023-07-27 MIT 2024-02-20
meditron
Medical language model pretraining
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Antoine Bosselut — NLP 2024-02-20 2024-02-20 MEDITRON-70B is a large language model (LLM) aimed at democratizing access to medical knowledge. It is an open-source LLM with 7B and 70B parameters, adapted specifically for the medical domain. The model builds on Llama-2 and extends pretraining on a curated medical corpus, including selected PubMed articles and internationally-recognized medical guidelines. MEDITRON-70B is a computer program designed to understand and generate medical language. It's like a super-smart medical dictionary that's been trained on a vast amount of medical literature. This tool is open for anyone to use and improve, making medical knowledge more accessible to all. Python Application Lab Github 2024-01-12 Apache-2.0 2024-02-20
crow
Benchmarking Commonsense Reasoning in Real-World Tasks
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Antoine Bosselut — NLP Home page 2024-02-20 2024-02-20 CRoW is a manually-curated, multi-task benchmark that evaluates the ability of models to apply commonsense reasoning in the context of six real-world NLP tasks. It is constructed using a multi-stage data collection pipeline that rewrites examples from existing datasets using commonsense-violating perturbations. The study reveals a significant performance gap when NLP systems are evaluated on CRoW compared to humans, indicating that commonsense reasoning is far from being solved in real-world task settings. CRoW is a tool that tests how well computer models can use common sense when performing six different language-related tasks. It does this by taking examples from existing datasets and changing them in ways that violate common sense. The results show that these computer models are still far from matching human performance in using common sense in real-world tasks. Python Toolset Personal Github 2023-12-14 2024-02-20
CrowdBreaks
Track health trends using public social media data and crowdsourcing
Mature Marcel Salathé — SalatheLab Home page 2021-01-21 2024-04-14 Application Lab GitHub 2023-05-25 MIT 2023-05-25
AIcrowd
Open platform for data science challenges
Mature Marcel Salathé — SalatheLab Home page 2021-01-21 2024-04-14 JavaScript, Ruby Application Project GitHub 2022-12-26 AGPL-3.0 2022-12-26
txcl
Reproducible Text Classification
Prototype Marcel Salathé — SalatheLab 2022-07-07 2024-04-14 Python Application Lab GitHub 2022-02-24 MIT 2022-07-07
Synthetic data privacy evaluation
Privacy evaluation framework for synthetic data publishing
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Carmela Troncoso — SPRING 2021-02-08 2022-07-07 The framework implemented in this library measures the privacy gain of publishing a synthetic dataset in place of the raw data with respect to a specific privacy concern. Each concern is modelled as a privacy adversary that targets an individual record and aims to infer a secret about this record. The library includes implementations of two new privacy attacks on the output of a generative model. To evaluate privacy gain, the framework is instantiated under the chosen threat model and outputs an estimate about how much publishing the synthetic data instead of the raw data reduces the privacy loss of a chosen target record under this threat model. The framework implemented in this library allows data holders to evaluate how much publishing a synthetic dataset in place of a sensitive raw dataset reduces the privacy risk for the individuals whose data is included in the raw data. The results of the evaluation help to inform decisions about whether to publish the data or which generative model provides the best trade-off between utility and privacy gain. Python Library Lab Github 2022-05-13 BSD-3-Clause 2022-05-13
WebGraph
Capturing Advertising and Tracking Information Flows for Robust Blocking
Intermediate Carmela Troncoso — SPRING 2022-07-07 2023-03-22 ML-based ad and tracker blocker that detects ads and trackers based on their action rather than their content. Python Application Lab GitHub 2022-08-25 other 2022-08-25
DisparateVulnerability
Disparate Vulnerability to Membership Inference Attacks
Prototype Carmela Troncoso — SPRING 2022-07-07 2022-08-11 A membership inference attack (MIA) against a machine-learning model enables an attacker to determine whether a given data record was part of the model's training data or not. DisparateVulnerability helps in measuring how much a given model can be inverted. Python Simulation, Experiments Lab GitHub 2021-10-20 MIT 2022-07-07
Privacy Protection & Cryptography category_Privacy project_active project_incubated project_incubated_market project_retired project_active project_incubated project_incubated_market project_retired project_retired_archived 99 - product_presentation product_details product_demo product_hands-on product_pilot product_technical product_app
Proof-of-Personhood
Proof that you are an actual person while keeping your anonymity
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Bryan Ford — DEDIS 2021-04-13 2024-03-20 Fake accounts are a big problem on the internet, while not all people want or can identify themselves using state-issued identities. Proof-of-personhood proposes to use personhood parties where people have to physically show up and get identified as real persons. Using cryptographic primitives, it is then possible to prove that you were part of that group, without revealing your individual identity. The internet allows for anonymous participation. While this is great for protecting people like whistleblowers, it can be a burden if people abuse it and create many fake accounts. This project implements a way to prove that you are a unique individual, while still guaranteeing you anonymity while you use services on the internet. Applications range from chat to e-voting and energy-efficient blockchains. Go, Java, Scala, JavaScript Application Lab Github 2024-03-11 AGPL-3.0 2024-03-11
Odyssey
Auditable Sharing and Management of Sensitive Data Across Jurisdictions
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Bryan Ford — DEDIS Home page 2020-04-28 2024-03-20 Odyssey is a set of applications and tools that enables sharing of sensitive data between multiple distrustful parties. This project uses state-of-the-art secret management service on the blockchain coupled with an enclave delivery mechanism. GoLang Application Lab GitHub 2020-10-01 GPL-3.0 2020-10-01
Calypso
Encrypted storage with access control
Intermediate Bryan Ford — DEDIS 2019-03-18 2024-03-20 Store data encrypted on the blockchain and use a decentralized access control mechanism to define who is allowed to decrypt. It has been developed alongside with OmniLedger. But it can also be used independently of OmniLedger. GoLang Application Lab GitHub 2022-06-30 6500 / 1500 AGPL-3.0 2022-06-30
Kyber
Cryptographic library
Mature Bryan Ford — DEDIS 2019-03-18 2024-03-20 A low level cryptographic library to create new cryptographic primitives. Not to be used for everyday cryptography. GoLang Library Lab GitHub 2024-03-18 17000 / 4000 MPL-2.0 2024-03-18
E-voting
Decentralized, encrypted, fully anonymous e-voting
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Bryan Ford — DEDIS 2019-03-18 2024-03-20 Our e-voting system is inspired by the first version of Helios where the encrypted ballots are shuffled and anonymized before they are decrypted. Instead of the shuffle used in Helios, we implemented a Neff shuffle which is much faster than the original Helios shuffle. The e-voting used in the EPFL voting since 2018. It allows users to vote on a distributed system that will wait for the election to be over before decrypting the votes, keeping anonymity of the users. GoLang Application Lab GitHub 2022-06-02 1700 / 200 AGPL-3.0 2022-06-02
PURBs
Metadata leakage prevention for encrypted communication and storage
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Bryan Ford — DEDIS 2019-03-18 2024-03-20 A library for a novel encoding approach preventing metadata leakage for encrypted communication and data at rest. Library Lab GitHub 2020-01-13 BSD-3-Clause 2020-01-13
Twins
Linking patients to their physical and digital TWINs
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Bryan Ford — DEDIS Home page 2021-02-05 2024-03-20 Using organoids for research while protecting patients’ identity Application 2021-02-05
APIR
Authenticated Private Information Retrieval
Intermediate Bryan Ford — DEDIS 2023-07-05 2024-03-20 This work introduces protocols for authenticated private information retrieval, which enable a client to fetch a record from a database server such that (a) the server does not learn which record the client reads, and (b) the client either obtains the "authentic" record or detects server misbehavior and safely aborts. Go Library Lab GitHub 2023-09-05 GPL-3.0 2023-09-05
SecVM
Privacy-preserving classification
Prototype Robert West — DLAB 2021-11-05 2024-04-16 Today, large amounts of valuable data are distributed among millions of user-held devices, such as personal computers, phones, or Internet-of-things devices. Many companies collect such data with the goal of using it for training machine learning models allowingthem to improve their services. User-held data is, however, often sensitive, and collecting it is problematic in terms of privacy. We propose a novel way of training a supervised classifier in a distributed setting akin to the recently proposed federated learning paradigm, but under the stricter privacy requirement that the server that trains the model is assumed to be untrusted and potentially malicious. We thus preserve user privacy by design, rather than by trust. Java Experiments Lab GitHub 2020-08-17
2021-11-05
DiPPS
Differentially Private Propensity Scores for Bias Correction
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Robert West — DLAB 2023-03-16 2024-04-16 In surveys, it is typically up to the individuals to decide if they want to participate or not, which leads to participation bias: the individuals willing to share their data might not be representative of the entire population. Similarly, there are cases where one does not have direct access to any data of the target population and has to resort to publicly available proxy data sampled from a different distribution. In this paper, we present Differentially Private Propensity Scores for Bias Correction (DiPPS), a method for approximating the true data distribution of interest in both of the above settings Python Experiments Lab GitHub 2022-10-02 other 2023-03-16
GenIE
Autoregressive information extraction system
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Robert West — DLAB 2023-03-16 2024-04-16 GenIE uses a sequence-to-sequence model that takes unstructured text as input and autoregressively generates a structured semantic representation of the information expressed in it, in the form of (subject, relation, object) triplets, as output. Python Experiments Lab GitHub 2023-03-28 MIT 2023-03-28
DataShield
Configurable data confidentiality and integrity
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Mathias Payer — HexHive 2020-02-21 2024-04-12 DataShield can, based on C/C++ languages annotation, protect unwanted access to secret data. By securing only theses datastructures, performance overhead is greatly reduced. C++ Library Lab GitHub 2021-01-01 GPL-3.0 2021-01-01
Free GAEN alternative
LibreCHovid - Alternative to GAEN for contact tracing applications
Prototype Mathias Payer — HexHive 2020-10-05 2024-04-12 Apple and Google developed the Google-Apple Exposure Notification system in order to provide a uniform API for contact-tracing apps while preserving user privacy. On Android, GAEN is integrated in the Google Play services, which is proprietary. As a consequence, users wanting to keep a free system, as well as phone manufacturers such as Huawei who don't have Google Play services cannot use these applications. This project aims to offer an alternative framework, based on open-source code, which requires only minimal changes to the apps. Java, Kotlin Application, Library, Framework C4DT GitHub 2021-07-15 MPL-2.0 2021-07-15
offchainer
Ethereum smart contracts with secret parameters
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Serge Vaudenay — LASEC 2021-11-05 2024-04-16 By design, smart contracts’ data and computations are public to all participants. Offchainer helps to create smart contracts with parameters that need to stay secret. We propose a way to keep some of the parameters off-chain, while guaranteeing correctness of the computation, using a combination of a commitment scheme and a zero-knowledge proof system. JavaScript Toolset Personal GitHub 2020-01-14 2021-11-05
Lattigo
A lattice-based multiparty homomorphic encryption library in Go
Mature Jean-Pierre Hubaux — LDS 2019-08-15 2023-03-21 Lattigo is a Go module for Multiparty Homomorphic Encryption, that implements Ring-Learning-With-Errors-based homomorphic encryption primitives. It comprises highly-efficient RNS versions of the BFV and CKKS schemes and their multiparty (N-out-of-N-threshold) counterparts. It also implements a dense-key and sparse-key Bootstrapping procedure for RNS-CKKS. The Lattigo library was originally exclusively developed by the EPFL Laboratory for Data Security until its version 2.4.0. Starting with the release of version 3.0.0, Lattigo is maintained and supported by Tune Insight SA. Lattigo 2.0.0 has been code-reviewed by ELCA in November 2020 and, within the allocated time for the code review, no critical or high-risk issues were found. Homomorphic encryption (HE) comprises a special class of cryptographic schemes that enable computing directly on encrypted data, without requiring the data to be decrypted first. It therefore enables a set of operations (polynomial evaluation and approximations of non-polynomial functions) to be "blindly" performed on encrypted sensitive data by an untrustworthy party, with a controlled computational overhead. Lattigo implements HE and its multiparty extension (MHE), that enables several entities to collaboratively compute a function on their confidential or sensitive data, without revealing to each other anything besides the result of this computation. Lattigo's multiparty homomorphic encryption technology is an enabler for secure data sharing in multiple scenarios. GoLang Library Lab GitHub 2023-03-14 Apache-2.0 2023-03-14
Unlynx
Privacy-preserving data sharing
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Jean-Pierre Hubaux — LDS 2019-03-18 2022-09-28 Unlynx offers a series of independent protocols that when combined offer a verifiably-secure and safe way to share sensitive data (e.g., medical data). GoLang Application Lab GitHub 2021-10-11 11000 non-commercial 2021-10-11
MedCo
Privacy-preserving cohort exploration
Intermediate Jean-Pierre Hubaux — LDS Home page 2019-03-18 2023-03-21 MedCo enables privacy-preserving cohort exploration by providing ways of querying medical datasets with end-to-end encryption of queries, data at rest, in transfer and during computation, all the while guaranteeing differential privacy. GoLang Application Lab GitHub 2022-05-25 16000 non-commercial 2022-05-25
Drynx
Decentralized, secure, verifiable system for statistical queries and machine learning on distributed datasets
Prototype Jean-Pierre Hubaux — LDS 2019-03-18 2022-09-28 Drynx allows to create privacy-preserving queries on encrypted datasets that are stored at different data providers who don't want to share the original data. Different types of statistical queries are possible, like average, standard deviation, linear and logistic regressions - all using homomorphic encryption, which means that the data is never shared in cleartext. GoLang Application other 2019-03-18
SPINDLE
Scalable, privacy-preserving, distributed learning on distributed datasets
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Jean-Pierre Hubaux — LDS 2021-01-21 2022-09-28 SPINDLE allows to train and evaluate generalized linear models on datasets that are stored at different data providers who don't want to share the original data. GoLang Application other 2021-01-21
PriCell
Privacy preserving neural network learning for diseased cell classification
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Jean-Pierre Hubaux — LDS 2022-07-05 2022-07-05 PriCell is a Golang library that ensures CellCnn analysis in privacy-preserving, distributed, N-party setting. GoLang Application Lab GitHub 2022-03-05 non-commercial 2022-07-05
CRISP
Offload computation to services while keeping data private
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Jean-Pierre Hubaux — LDS 2022-07-05 2022-07-05 CRISP relies on quantum-resistant lattice-based approximate homomorphic encryption primitives that support flexible polynomial computations on encrypted data without degrading utility. To ensure data integrity, it employs lattice-based commitments and zero-knowledge proofs based on the multi-party-computation-in-the-head paradigm, which enables users to simultaneously convince service providers about the correctness of the encrypted data as well as the authenticity of the underlying plaintext data, using the deployed certification mechanism. GoLang Application Lab GitHub 2021-12-03 Apache-2.0 2022-07-05
Bayesian Differential Privacy
Data distribution-aware differential privacy
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Boi Faltings — LIA 2021-11-04 2024-03-20 Traditional differential privacy is independent of the data distribution. However, this is not well-matched with the modern machine learning con-text, where models are trained on specific data. As a result, achieving meaningful privacy guarantees in ML often excessively reduces accuracy. Bayesian differential privacy (BDP) takes into account the data distribution to provide more practical privacy guarantees. Python Experiments Personal GitHub 2020-08-12 Apache-2.0 2021-11-04
ProShare
Privacy-preserving photo sharing
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Touradj Ebrahimi — MMSPG Home page 2019-03-18 2024-03-15 Proshare allows you to share your photos, while protecting sensitive regions and hiding secret messages. Application 2019-03-18
ProCam
Privacy-preserving camera system tracking individual body temperatures
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Touradj Ebrahimi — MMSPG Home page 2022-09-14 2024-03-15 Many contagious diseases such as Covid19 can induce high temperatures and fever in a significant number of affected individuals. Contact tracing of such individuals and analysis of their behaviour and interactions with others and their environment can be a useful tool to contain spread of contagious diseases. A key component of ProCam is an innovative camera that combines infrared/thermal and visible light sensors while securing the visible light images. Privacy-preserving camera systems are important as more and more people are concerned about the ethics of massive surveillance and invasion of privacy. ProCam solves this by using a cryptographic tool to hide the visible light images, only allowing to retrieve identites with the use of cryptographic keys. Application Project GitLab 2022-01-04 2022-09-14
wehey
WeHe𝕐 - Localizing Traffic Differentiation
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Katerina Argyraki — NAL Home page 2024-03-05 2024-03-05 This project detects traffic differentiation using end-to-end throughput comparisons between an original network trace and a bit-inverted version that hides any packet payload patterns. It then attempts to localize where the differentiation occurs by analyzing measurements from additional paths that converge at the client's ISP. The localization relies on throughput comparison and loss trend correlation between these paths. This project aims to provide evidence of traffic differentiation practices by Internet providers. It first detects if a provider differentiates against certain types of traffic. If differentiation is detected, additional tests are run to determine if it is occurring within the user's Internet provider. This can empower users to make informed choices about their Internet access and assist policymakers in understanding the landscape. The system does not require access to provider infrastructure, instead relying on end-to-end performance measurements from user devices. Python Application Old Lab Github 2023-12-05 Apache-2.0 2024-03-05
tero project
Studying Internet latency from Gaming Footage
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Katerina Argyraki — NAL Home page 2024-03-08 2024-03-08 The system downloads gaming footage from the Twitch streaming platform. It extracts the displayed latency measurements using optical character recognition and knowledge of each game's user interface. It maps streamers to locations using natural language processing on their social media profiles. It analyzes the measurements to produce latency distributions per geographical location. The project collects screenshots from video game live streams on Twitch. It reads the Internet latency numbers displayed on screen during gameplay. It figures out the streamer's location from their social media information. It processes all this data to estimate the Internet speed in different parts of the world. Python Application Lab Github 2023-12-12 2024-03-08
Synthetic data privacy evaluation
Privacy evaluation framework for synthetic data publishing
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Carmela Troncoso — SPRING 2021-02-08 2022-07-07 The framework implemented in this library measures the privacy gain of publishing a synthetic dataset in place of the raw data with respect to a specific privacy concern. Each concern is modelled as a privacy adversary that targets an individual record and aims to infer a secret about this record. The library includes implementations of two new privacy attacks on the output of a generative model. To evaluate privacy gain, the framework is instantiated under the chosen threat model and outputs an estimate about how much publishing the synthetic data instead of the raw data reduces the privacy loss of a chosen target record under this threat model. The framework implemented in this library allows data holders to evaluate how much publishing a synthetic dataset in place of a sensitive raw dataset reduces the privacy risk for the individuals whose data is included in the raw data. The results of the evaluation help to inform decisions about whether to publish the data or which generative model provides the best trade-off between utility and privacy gain. Python Library Lab Github 2022-05-13 BSD-3-Clause 2022-05-13
ClaimChain
Prove your identity with regards to others
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Carmela Troncoso — SPRING Home page 2019-03-18 2022-07-07 A decentralized public key distribution system with an emphasis on privacy preservation. Python Library Project GitHub 2018-10-13 MIT 2019-03-18
Lightnion
Anonymous communication in browsers via the Tor network
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Carmela Troncoso — SPRING 2019-03-18 2022-07-07 A Javascript library for browsers for anonymous communication via the Tor network. The library connects to the Tor network to enable websites to send and retrieve data anonymously (e.g. send sensitive information without identifying the user) without requiring users to install special software such as the Tor browser. JavaScript, Python Library Lab GitHub 2020-01-20 BSD-3-Clause 2020-01-20
Trickster
Sophisticated attacks on Machine Learning models
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Carmela Troncoso — SPRING 2019-03-18 2022-07-07 Trickster allows to attack machine learning models where the attack needs to be more sophisticated than simply adding some noise to an image. One example is to evade an abuse detection model, for example, social media bot detection, or a malware detector. Python Library Lab GitHub 2019-04-18 link MIT 2019-04-18
Hippiepug
Sublinear-traversal blockchains and efficient key-value Merkle trees
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Carmela Troncoso — SPRING 2019-03-18 2022-07-07 This library provides implementations of two cryptographic data structures: fast traversal blockchain structure, and a verifiable dictionary, implemented as a key-value Merkle tree. Python Library Lab GitHub 2019-10-22 MIT 2019-10-22
MCSAuditing
Evaluation code for mobile crowdsourcing privacy
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Carmela Troncoso — SPRING 2019-07-30 2022-07-07 This tool implements the evaluation framework described in the paper Python Application Lab GitHub 2020-10-20 GPL-3.0 2020-10-20
Zero-Knowledge Swiss Knife
Library for prototyping composable zero-knowledge proofs in the discrete-log setting
Intermediate Carmela Troncoso — SPRING 2020-02-06 2022-07-07 Python Application Lab GitHub 2022-03-02 link MIT 2022-03-02
Decentralized Privacy-Preserving Proximity Tracing
A privacy preserving exposure notification protocol to inform people about possible exposure to the COVID-19 virus
Mature Carmela Troncoso — SPRING 2020-10-05 2023-03-22 The goal of the DP3T protocol is to simplify and accelerate the process of identifying people who have been in contact with a positively CoVid-19 tested person, thus providing a technological foundation to help slow the spread of the SARS-CoV-2 virus. The system aims to minimise privacy and security risks for individuals and communities and guarantee the highest level of data protection. Java, Swift Library Public Github 2022-12-14 link MPL-2.0 2022-12-14
CrowdNotifier
Decentralized Privacy-Preserving Presence Tracing
Mature Carmela Troncoso — SPRING 2021-01-21 2022-07-07 CrowdNotifier is a protocol that can complement manual contact tracing by efficiently notifying visitors of venues and events with SARS-CoV-2-positive attendees. It provides strong privacy and abuse- resistance, and show that it can scale to handle notification at a national scale. TypeScript Library Public Github 2021-09-09 link MPL-2.0 2021-09-09
Petrelic
Wrapper around RELIC pairings
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Carmela Troncoso — SPRING 2021-01-21 2022-07-07 petrelic is a Python wrapper around RELIC. It provides a simple python interface to the BLS-381 pairing and RELIC's big number class. Python Library Lab Github 2022-02-15 link MIT 2022-02-15
SSCred
Library to facilitate anonymous authentication
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Carmela Troncoso — SPRING 2021-01-21 2023-03-22 SSCred provides the following primitives: 1) Anonymous credential light (ACL) 2) Abe's Blind signature 3) Blinded Pedersen commitment Python Library Lab Github 2022-07-08 BSD-3-Clause 2022-07-08
mia
Library for running membership inference attacks (MIA) against machine learning models
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Carmela Troncoso — SPRING 2021-01-21 2022-07-07 These are attacks against privacy of the training data. In MIA, an attacker tries to guess whether a given example was used during training of a target model or not, only by querying the model. See more in the paper by Shokri et al. Currently, you can use the library to evaluate the robustness of your Keras or PyTorch models to MIA. Python Application Lab Github 2021-10-20 MIT 2021-10-20
lightarti-rest
A Rust library to perform REST requests over the Tor network for mobile applications.
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Carmela Troncoso — SPRING 2021-08-26 2023-03-22 This library builds upon the arti-library. It wraps the arti-library for easy use by mobile applications. Instead of downloading the whole dictionary of the Tor-nodes every hour, a prepared dictionary is downloaded once per week. This reduces bandwidth requirements, as the whole dictionary is around 3MB. The prepared dictionary only weighs 200kB. Rust, Swift, Java Library C4DT Github 2022-11-14 MIT 2022-11-14
VOTEAGAIN
Scalable coercion-resistant voting system
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Carmela Troncoso — SPRING 2021-11-04 2022-07-07 The strongest threat model for voting systems considerscoercion resistance: protection against coercers that force voters to modify their votes, or to abstain. Existing remote voting systems either do not provide this property; require an ex-pensive tallying phase; or burden users with the need to store cryptographic key material and with the responsibility to deceive their coercers. VoteAgain is a scalable voting scheme that relies on the revoting paradigm to provide coercion resistance. Python Experiments Lab GitHub 2022-03-22 MIT 2022-03-22
DatashareNetwork
Decentralized privacy-preserving search engine for investigative journalists
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Carmela Troncoso — SPRING 2021-11-04 2023-03-22 Investigative journalists collect large numbers of digital documents during their investigations. These documents can greatly benefit other journalists’ work. However, many of these documents contain sensitive information. Hence, possessing such documents can endanger reporters, their stories, and their sources. Consequently, many documents are used only for single, local, investigations. DatashareNetwork is a decentralized and privacy-preserving search system that enables journalists world-wide to find documents via a dedicated network of peers. Python Simulation Lab GitHub 2022-09-21 BSD-3-Clause 2022-09-21
Tandem
Centralized privacy-preserving secure key storage
Intermediate Carmela Troncoso — SPRING 2021-11-04 2022-07-07 Users’ devices, e.g., smartphones or laptops, are typically incapable of securely storing and processing cryptographic keys. Tandem is a novel set of protocols for securing cryptographic keys with support from a central server. C Simulation Lab GitHub 2020-06-14 BSD-3-Clause 2021-11-04
WebGraph
Capturing Advertising and Tracking Information Flows for Robust Blocking
Intermediate Carmela Troncoso — SPRING 2022-07-07 2023-03-22 ML-based ad and tracker blocker that detects ads and trackers based on their action rather than their content. Python Application Lab GitHub 2022-08-25 other 2022-08-25
DisparateVulnerability
Disparate Vulnerability to Membership Inference Attacks
Prototype Carmela Troncoso — SPRING 2022-07-07 2022-08-11 A membership inference attack (MIA) against a machine-learning model enables an attacker to determine whether a given data record was part of the model's training data or not. DisparateVulnerability helps in measuring how much a given model can be inverted. Python Simulation, Experiments Lab GitHub 2021-10-20 MIT 2022-07-07
Tandem / Monero
Applying the privacy-preserving algorithms of Tandem to the usage of the Monero blockchain.
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Carmela Troncoso — SPRING 2022-08-25 2022-08-25 One challenge when using private keys is that if they get stolen the damage can be very big, especially when used in blockchains to protect funds. Sharing the private key between multiple entities can secure the usage a bit, but most algorithms don't give privacy. In the context of a privacy-preserving service like Monero, where the source and destination of a transaction are hidden, these algorithms would leak information about the user. Applying Tandem to transactions on the Monero blockchain allows to protect the private key in case of loss, while keeping the owner of the transaction private. Simulation 2022-08-25
Private Collection Matching Protocols
Framework to build privacy-preserving Private Collection Matching (PCM) systems
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Carmela Troncoso — SPRING 2023-03-22 2023-03-22 We introduce Private Collection Matching (PCM) problems, in which a client aims to determine whether a collection of sets owned by a server matches their interests. Existing privacy-preserving cryptographic primitives cannot solve PCM problems efficiently without harming privacy. We propose a modular framework that enables designers to build privacy-preserving PCM systems that output one bit: whether a collection of server sets matches the client's set. The communication cost of our protocols scales linearly with the size of the client's set and is independent of the number of server elements. We demonstrate the potential of our framework by designing and implementing novel solutions for two real-world PCM problems: determining whether a dataset has chemical compounds of interest, and determining whether a document collection has relevant documents. Our evaluation shows that we offer a privacy gain with respect to existing works at a reasonable communication and computation cost. Framework 2023-03-22
E-ID Demo (Issuer & Verifier)
Demo for the swiss E-ID ledger. It includes an issuer and a verifier.
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Jean-Pierre Hubaux — C4DT 2024-01-09 2024-01-09 The issuer is a web application that allows to create a new identity and issue a credential. The verifier is a web application that allows to verify the credential. TypeScript Application Lab GitHub 2024-01-01 2024-01-09
arkworks
Rust ecosystem for zkSNARK programming
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Alessandro Chiesa — COMPSEC Home page 2024-03-13 2024-03-13 Arkworks provides efficient implementations of components required for zkSNARK applications. It includes libraries for finite fields, elliptic curves, R1CS constraints, and SNARK proving systems like Groth16 and Marlin. It defines interfaces for relations like R1CS, and for building SNARK circuits using gadgets and subcircuits. Arkworks is a collection of Rust libraries for building privacy-preserving applications using zero-knowledge proofs called zkSNARKs. It has efficient implementations of the underlying cryptographic primitives like finite fields and elliptic curves. It also provides tools to encode computations as circuits that can be proven using zkSNARKs while keeping inputs private. Rust Library Project Github 2024-03-08 Apache-2.0 2024-03-13
Software Verification category_Verification project_active project_incubated project_incubated_market project_retired project_active project_incubated project_incubated_market project_retired project_retired_archived 99 - product_presentation product_details product_demo product_hands-on product_pilot product_technical product_app
determ-checker
Find non-determinism in golang code
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Bryan Ford — DEDIS 2022-07-04 2024-03-20 Go Toolset Lab Github 2022-06-20 other 2022-07-04
tinyNF
A simpler and faster NIC driver model for network functions
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. George Candea — DSLAB Home page 2021-01-22 2023-03-20 By merely replacing the state-of-the-art driver with our driver, formal verification of the entire software stack completes in 7x less time, while the verified functions’ throughput improves by 160%. C Library Lab Github 2023-02-17 MIT 2023-02-17
Vigor
Formally verified and performant software middleboxes
Prototype George Candea — DSLAB Home page 2019-07-26 2022-07-05 Software stack and toolchain for building and running software middleboxes that are guaranteed to be correct, while providing competitive performance and preserving developer productivity. With Vigor, developers write the middlebox code (i.e., the software network function, or NF) in C atop a standard packet-processing framework, putting persistent state in data structures from a Vigor-provided library. Vigor then automatically verifies that the resulting software stack correctly implements a specification (written in Python). C, Python Framework Project Github 2021-03-06 MIT

2021-03-06
BOLT
Performance contracts for software network functions
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. George Candea — DSLAB Home page 2021-02-03 2022-07-05 We propose the notion of performance contracts for NFs. A performance contract enables users to predict and scrutinize NF performance at fine granularities without having to run them. It provider users with an abstraction that enables them to easily parameterize arbitrary input workloads, whether typical, exceptional or adversarial. Given only this abstract description of the workload and not a concrete instance, the contract predicts the performance of the NF without actually running it. The performance predictions are in terms of human-readable formulae, expressed as a function of workload and environment variables, that we together call Performance Critical Variables (PCVs). informed development decisions. Software network functions (NFs), or middleboxes, promise flexibility and easy deployment of network services but face the serious challenge of unexpected performance behaviour. This behaviour makes it harder for network operators to provision their networks and exposes a new attack surface for adversaries seeking to degrade network performance. The goal of our work is to provide network operators and NF developers with comprehensive understanding of the NF’s entire performance profile, before it is deployed. Such understanding would, for instance, allow operators to conduct precise capacity planning and developers to make informed development decisions. C Application Project GitHub 2019-08-05 2021-02-03
Failure Sketching
Automated debugging technique
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. George Candea — DSLAB Home page 2019-03-18 2022-07-05 Failure sketching is an automated debugging technique that provides developers with an explanation (“failure sketch”) of the root cause of a failure that occurred in production. A failure sketch only contains program statements that lead to the failure, and it clearly shows the differences between failing and successful runs; these differences guide developers to the root cause. Python Application Lab GitHub 2015-10-06 BSD-3-Clause 2019-03-18
SVSHI
Verification framework for smart infrastructures
Mature George Candea — DSLAB 2022-07-05 2023-03-20 The Secure and Verified Smart Home Infrastructure project is a platform/runtime/toolchain for developing and running formally verified smart infrastructures, such as smart buildings, smart cities, etc. Python, Scala Framework Lab GitHub 2022-08-12 MIT 2022-08-12
Klint
Automated verification of network function binaries
Prototype George Candea — DSLAB 2022-07-05 2024-03-08 Network functions are building blocks for "networks:" a router, a NAT or anything transforming packets. As it is handling all the traffic for a given infrastructure, it is crucial that it is implemented correctly. Klint helps in building and verifying theses functions. C, Python Toolset Lab GitHub 2024-02-19 MIT 2024-02-19
PIX
Show performance of network functions
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. George Candea — DSLAB 2022-07-05 2023-03-20 Network functions speed is very important for any network-heavy infrastructure. PIX extracts performance metrics for these automatically, to help find regressions and bottlenecks. C Toolset Lab GitHub 2022-07-14 MIT 2022-07-14
Stainless
Verification framework for a subset of the Scala programming language
Intermediate Viktor Kunčak — LARA Home page 2019-03-18 2024-04-12 Stainless is a tool for verifying Scala programs developed by the LARA. It can verify that your program is correct for all inputs, it can report inputs for which your program fails when they exist, and it can prove that functions do not loop. Scala Library Lab GitHub 2024-02-29 link Apache-2.0

2024-02-29
Stainless for smart contracts
Stainless fork aimed at smart contracts
Intermediate Viktor Kunčak — LARA Home page 2022-09-26 2024-04-12 Stainless is a tool for verifying Scala programs developed by the LARA. This fork can perform verification of Smart Contracts. Scala Library, Application Lab GitHub 2020-10-03 Apache-2.0 2022-09-26
Inox
Constraint solver for Stainless
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Viktor Kunčak — LARA 2019-03-18 2024-04-12 Inox can be used to prove constraints on methods in a program, to attest the correctness of these parts. Scala Library, Application Lab GitHub 2023-10-31 Apache-2.0 2023-10-31
Rust-Stainless
Rust frontend for Stainless
Prototype Viktor Kunčak — LARA 2021-11-04 2024-04-12 Rust Application Lab GitHub 2021-07-22 Apache-2.0 2021-11-04
LISA
A Proof Assistant based on first order logic, sequent calculus and set theory.
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Viktor Kunčak — LARA 2022-07-05 2024-04-12 Scala Framework, Application Lab GitHub 2024-04-08 Apache-2.0 2024-04-08
RegElk
Linear regex engine for JavaScript in OCaml
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Clément Pit-Claudel — SystemF 2024-04-14 2024-04-14 This is a linear regular expression engine for a subset of JavaScript regexes, implemented in OCaml. It supports features like nullable quantifiers, capture reset, and lookarounds with linear time and space complexity. The engine is based on an extension of the PikeVM algorithm, described in the paper "Linear Matching of JavaScript Regular Expressions". This project provides a software implementation of a regular expression engine for matching text patterns in JavaScript. It has efficient linear time and space complexity for advanced features like lookarounds and capture groups. The engine is written in OCaml and aims to improve privacy-preserving and digital trust by offering a reliable and efficient regex matching solution. OCaml Library Lab Github 2024-04-04 MIT 2024-04-14
Other category_Other project_active project_incubated project_incubated_market project_retired project_active project_incubated project_incubated_market project_retired project_retired_archived 99 - product_presentation product_details product_demo product_hands-on product_pilot product_technical product_app
CLHT
Very fast and scalable, resizable hash table
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Rachid Guerraoui — DCL Home page 2022-07-04 2024-03-22 CLHT contains both a lock-based and lock-free implementation of hash tables. Its optimistic design allows for 50 MegaOP/s in a concurrent run. C Library Lab GitHub 2021-10-04 MIT 2022-07-04
uKharon
Membership service for microsecond applications
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Rachid Guerraoui — DCL 2022-07-04 2024-03-22 C Simulation Lab GitHub 2022-05-24 other 2022-07-04
HovercRaft
Improved scalable and fault-tolerant distributed architecture
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Edouard Bugnion — DCSL 2021-11-05 2024-02-20 Cloud platform services must simultaneously be scalable, meet low tail latency service-level objectives, and be resilient to a combination of software, hardware, and network failures. Replication plays a fundamental role in meeting both the scalability and the fault-tolerance requirement, but is subject to opposing requirements: (1) scalability is typicallyachieved by relaxing consistency; (2) fault-tolerance is typically achieved through the consistent replication of state machines. Adding nodes to a system can therefore either increase performance at the expense of consistency, or increase resiliency at the expense of performance. We propose HovercRaft, a new approach by which adding nodes increases both the resilience and the performance of general-purpose state-machine replication. C, Python Experiments Lab GitHub 2020-03-29 2021-11-05
CRAB
L4 load balancer for cloud provider
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Edouard Bugnion — DCSL 2022-07-04 2024-02-20 Connection Redirect LoAd Balancer is a new scheme for L4 load balancing targeting specifically internal cloud workloads. C Experiments Lab GitHub 2021-09-10 2022-07-04
matchertext
Matchertext is a syntactic discipline that allows strings in one compliant language to be embedded verbatim without escaping (e.g., via cut-and-paste) into itself or another compliant language.
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Bryan Ford — DEDIS 2022-03-16 2024-03-20 Go Toolset Lab Github 2022-11-08 other 2022-11-08
gem5-X
gem5-based simulator with architectural extensions
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. David Atienza — ESL Home page 2021-11-04 2022-07-05 gem5-X stands for a gem5-based full-system simulator with architectural eXtensions. It is a gem5-based simulator that allows architectural exploration and optimization of heterogeneous systems C++, Python Framework Lab GitHub 2021-08-03 link
2021-11-04
3D-ICE
Thermal simulator for stacked integrated circuits
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. David Atienza — ESL Home page 2022-07-05 2022-07-05 Hardware is getting smaller every day, components are being stacked on top of each other, in order to make theses more compact. But as it is getting smaller, it's also getting hotter. 3D-ICE helps in modelling how thermal flux are behaving. C Simulation Lab GitHub 2022-06-20 link


2022-07-05
SLICO Superpixels
Efficient Superpixels
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Sabine Süsstrunk — IVRL Home page 2019-03-18 2024-04-14 Superpixels, which define similar regions in an image, are becoming increasingly popular for use in computer vision applications. This research proposes a faster and more accurate way to get these pixels. C++ Application Lab Download 2019-03-18
Image Completion
Complete an image whose 99% pixels are randomly missing
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Sabine Süsstrunk — IVRL Home page 2019-03-18 2024-04-14 It is challenging to complete an image whose 99% pixels are randomly missing. We present a solution to this extreme image completion problem. MATLAB Application Lab Download 2019-03-18
ADEFAN
Fast and energy-efficient video encoder and decoder
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Sabine Süsstrunk — IVRL Home page 2021-11-05 2024-04-14 ADEFAN (Adaptive Depth Efficient Filtering by Adaptive Normaliztion) is a state-of-the-art technology for encoding and decoding videos that presents many advantages over other available methods. It features extremely energy-efficient encoder, extremely fast encoding process, no specialized hardware for encoding and added security with encoding key. It is this ideal for video-transmitting IoT devices, continuously transmitting surveillance cameras, emergency deployment in areas without much infrastructure (remote, natural disaster relief, etc.). Python Application Lab GitHub 2020-04-15 MIT 2021-11-05
Scala.js
Use Scala to develop Web frontends
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Martin Odersky — LAMP Home page 2021-11-05 2024-04-12 Scala.js optimizes your Scala code into highly efficient JavaScript. Strong typing guarantees your code is free of silly mistakes. You can use any JavaScript library right from your Scala.js code, either in a statically or dynamically typed way. Scala Library, Toolset Project GitHub 2024-04-06 Apache-2.0 2024-04-06
Scala Native
Generate native code from Scala
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Martin Odersky — LAMP Home page 2021-11-05 2024-04-12 Native is an optimizing ahead-of-time compiler and lightweight managed runtime designed specifically for Scala. It features low-level primitices, seamless interop with native code and instant startup time. Scala, C Library, Toolset Project GitHub 2024-04-12 link Apache-2.0 2024-04-12
Scala 3
Scala 3 release updates and new features
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Martin Odersky — LAMP Home page 2024-04-12 2024-04-12 Scala 3 implements many language changes and improvements over Scala 2. It strengthens Scala's foundations, makes the language easier and safer to use, and improves the consistency and expressiveness of language constructs. Key changes include intersection and union types, trait parameters, given instances, opaque type aliases, restricted implicit conversions, and a new metaprogramming model. Scala 3 is a major update to the Scala programming language. It aims to make the language more solid, learnable, and expressive. Changes include new type system features, simplifications to make code safer, restrictions on surprising behaviors, and an overhaul of metaprogramming capabilities. Scala Application Project Github 2024-04-12 Apache-2.0 2024-04-12
Dynamatic
High-level synthesis compiler
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Paolo Ienne — LAP Home page 2021-11-04 2024-03-22 Dynamatic is an academic, open-source high-level synthesis compiler that produces synchronous dynamically-scheduled circuits from C/C++ code. It delivers significant performance improvements compared to state-of-the-art commercial tools in specific situations. C++ Toolset Lab GitHub 2024-03-21 MIT 2024-03-21
DynaBurst
Group DRAM bursts
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Paolo Ienne — LAP 2022-07-05 2024-03-22 DynaBurst is a highly flexible, FPGA-optimized, memory system for bandwidth-bound accelerators that perform frequent irregular accesses to DRAM memory. DynaBurst is an extension of the lab's miss-optimized nonblocking cache which groups incoming requests into bursts of memory requests. VHDL Application, Library Lab GitHub 2019-09-06 MIT 2022-07-05
Scallion
A library for writing parsers and pretty printers for LL(1) languages in Scala.
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Viktor Kunčak — LARA 2022-07-05 2024-04-12 Scala Library Lab GitHub 2022-10-03 Apache-2.0 2022-10-03
DECOPT
Decomposition Convex Optimization
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Volkan Cevher — LIONS Home page 2021-11-04 2022-07-05 Package for the generic constrained convex optimization problems. MATLAB Framework, Experiments Lab Download
2021-11-04
EPFL Logic Synthesis Libraries
Collection of modular libraries for the development of logic synthesis applications
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Giovanni De Micheli — LSI 2021-11-04 2022-07-05 C++ Framework Lab GitHub 2022-06-08 MIT 2022-06-08
EPFL Combinational Benchmark Suite
Benchmarks for logical gates optimizer
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Giovanni De Micheli — LSI 2022-07-05 2023-03-21 VHDL Simulation Lab GitHub 2022-10-11 MIT 2022-10-11
CirKit
Logic synthesis and optimization framework
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Giovanni De Micheli — LSI 2022-07-05 2022-07-05 C++ Toolset Personal GitHub 2020-02-23 MIT 2022-07-05
QualityCrowd
Crowdsourcing image quality assessment
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Touradj Ebrahimi — MMSPG 2021-05-21 2024-03-15 Video quality assessment with subjective testing is both time consuming and expensive. An interesting new approach to traditional testing is the so-called crowdsourcing, moving the testing effort into the internet. QualityCrowd allows to perform subjective quality assessment with crowdsourcing. QualityCrowd allows codec independent quality assessment with a simple web interface, usable with common web browsers. PHP, JavaScript Application Lab GitHub 2021-02-23 BSD-3-Clause 2021-05-21
Point cloud web renderer
Show point cloud files using three.js
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Touradj Ebrahimi — MMSPG 2021-05-21 2024-03-15 The renderer supports visualization of point clouds with real-time interaction, while viewing conditions can be configured. The user is able to choose between either an adaptive, or a fixed splat size rendering mode in order to display the models. The renderer supports both PLY and PCD point cloud file formats. The current settings have been optimized for voxelized contents, without this limiting its usage, since any point cloud can be displayed independently of its geometric structure. JavaScript Library Lab GitHub 2021-05-11 GPL-3.0 2021-05-21
Learned Residual PCC
Learning residual coding for point clouds
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Touradj Ebrahimi — MMSPG 2021-11-04 2024-03-15 Recent advancements in acquisition of three-dimensional models have been increasingly drawing attention toimaging modalities based on the plenoptic representations, such as light fields and point clouds. Since point cloudmodels can often contain millions of points, each including both geometric positions and associated attributes,efficient compression schemes are needed to enable transmission and storage of this type of media. This project presents a detachable learning-based residual module for point cloud compression that allows for efficientscalable coding. Python Application Lab GitHub 2021-09-01 GPL-3.0 2021-11-04
AdMiRe EPFL
EPFL's contribution to the AdMiRe project: the Background Extraction and Super Resolution modules, with input and output as NDI streams.
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Touradj Ebrahimi — MMSPG Home page 2023-03-22 2024-03-15 Currently, TV audiences can only interact with the shows they are watching through social media or hybrid broadcast broadband TV. Additionally, content creators in film, TV or live productions face technical challenges that result in less engaging content. The EU-funded AdMiRe project aims to tackle both these problems by developing, validating and demonstrating innovative solutions based on mixed reality technology. These solutions will enable audiences at home to be incorporated into the live TV programme they are watching and to interact with people in the TV studio. They will also provide content creators with tools that radically improve talent immersion and interaction with computer-generated elements. Application Lab GitHub 2022-08-26 GPL-3.0 2023-03-22
CloudSuite
Benchmark suite for cloud services
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Babak Falsafi — PARSA Home page 2019-03-18 2024-03-15 CloudSuite is a benchmark suite for cloud services. It consists of a number of applications that have been selected based on their popularity in today's datacenters. The benchmarks are based on real-world software stacks and represent real-world setups. Dockerfiles Application Lab GitHub 2023-06-25 CloudSuite, other 2023-06-25
QFlex
State-of-the-art modeling tools for the computer architecture community
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Babak Falsafi — PARSA Home page 2019-03-18 2024-03-15 QFlex is a full-system cycle-accurate computer architecture simulator of multi-node computer systems. C, C++ Toolset Lab GitHub 2023-11-30 Flexus: 50000, Qemu: 100000 BSD-3-Clause 2023-11-30
ColTraIn HBFP Training Emulator
Co-located deep neural network training and inference
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Babak Falsafi — PARSA Home page 2021-05-27 2024-03-15 HBFP is a hybrid Block Floating-Point (BFP) - Floating-Point (FP) number representation for DNN training introduced by ColTraIn: Co-located DNN Training and Inference team of PARSA and MLO at EPFL. HBFP offers the best of both worlds: the high accuracy of floating-point at the superior hardware density of fixed-point by performing all dot products in BFP and other operations in FP32. For a wide variety of models, HBFP matches floating-point’s accuracy while enabling hardware implementations that deliver up to 8.5x higher throughput. This repository is for ongoing research on training DNNs with HBFP. Python Application Lab Github 2023-02-16 BSD-3-Clause
2023-02-16
PACTree
Efficient Non-Volatile Memory (NVM) access
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Sanidhya Kashyap — RS3LAB 2021-11-05 2024-04-12 Non-Volatile Memory (NVM), which provides relatively fast and byte-addressable persistence, is now commercially available. However, we cannot equate a real NVM with a slow DRAM, as it is much more complicated than we expect. We propose guidelines for designing high-performance persistent index structures, allowing to increase performance and tail latency. C++ Simulation Non-lab GitHub 2021-11-08 Apache-2.0 2021-11-08
NrOS
OS kernel with safer approach to synchronization
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Sanidhya Kashyap — RS3LAB 2021-11-05 2024-04-12 NrOS is an operating system primarily constructed as a simple, sequential kernel with no concurrency, making it easier to develop and reason aboutits correctness. Rust Framework, Experiments Non-lab GitHub 2023-12-02 Apache-2.0 2023-12-02
SynCord
Application-Informed Kernel Synchronization Primitives
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Sanidhya Kashyap — RS3LAB Home page 2022-07-07 2024-04-12 SynCord is a framework to modify kernel locks without recompiling or rebooting the kernel. It abstracts key behaviors of kernel locks and exposes them as APIs for designing user-defined kernel locks. SynCord provides the mechanisms to customize kernel locks safely and correctly from userspace. Python, C Framework, Experiments Lab GitHub 2022-07-01 other 2022-07-07
Odinfs
Scaling PM Performance with Opportunistic Delegation
Prototype Sanidhya Kashyap — RS3LAB Home page 2022-07-07 2024-04-12 Odinfs is a NUMA-aware PM file system based on an opportunistic delegation framework to achieve datapath scalability. It limits concurrent PM access to avoid performance meltdown due to on-DIMM cache trashing. It localizes PM access to avoid performance meltdown due to remote PM access. It automatically parallelizes large PM access to utilize cumulative PM bandwidth across all NUMA nodes. It maximizes concurrent access within the same file with scalable synchronization primitives. C Simulation, Experiments Lab GitHub 2022-05-16 other 2022-07-07
Hydra
Finding Semantic Bugs in File Systems with an Extensible Fuzzing Framework
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Sanidhya Kashyap — RS3LAB 2022-09-27 2024-04-12 Framework, Experiments Lab GitHub 2022-08-08 2022-09-27
Quick ADC
Fast distance computation for searches in large databases
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Anne-Marie Kermarrec — SACS 2021-11-05 2022-07-07 Quick ADC is an implementation of fast distance computation techniques for nearest neighbor search in large databases of high-dimensional vectors. C++ Library, Simulation Non-lab GitHub 2019-05-31 BSD-3-Clause Clear 2021-11-05
ProteusTM
Automatic transactional memory adaptation
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Anne-Marie Kermarrec — SACS 2021-11-05 2022-07-07 There are many designs and implementations of Transactional Memory, and that is not a coincidence: different ones perform best on different workloads. One cannot expect the developer to be aware of such concerns, as it is even contradictory with the simplicity advocated by the use of the transactional abstraction. With ProteusTM, the developer writes transactions and the underlying implementation uses techniques to automatically change Transactional Memory algorithms, parallelism degree, and others. C, C++ Framework, Experiments Personal GitHub 2016-03-19 2021-11-05
The Open Food Repo
Database of barcoded food products
Mature Marcel Salathé — SalatheLab Home page 2019-03-18 2024-04-14 The Open Food Repo is an open access database on information about barcoded food products sold in Switzerland. Accessible through an open API, it is the largest open data source on Swiss products. JavaScript Application Lab GitHub 2020-08-24 CC BY 4.0 2020-08-24
Food & You
Track your individual response to food and help advance science
Mature Marcel Salathé — SalatheLab Home page 2021-01-21 2024-04-14 Take part in an exciting citizen science project on personalized nutrition! Citizen science enables volunteers and professionals to make discoveries together. By participating in this project, you will understand how your blood sugar levels change in response to the food you eat. Application 2021-01-21
Memoro
Highly detailed heap profiler
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. James Larus — VLSC 2021-11-05 2022-07-07 Modern software systems heavily use the memory heap. As systems grow more complex and compute with increasing amounts of data, it can be difficult for developers to understand how their programs actually use the bytes that they allocate on the heap and whether improvements are possible. Memoro as built to answer this question of heap usage efficiency. It uses a combination of static instrumentation, subroutine interception, and runtime data collection to build a clear picture of exactly when and where a program performs heap allocation, and crucially how it actually uses that memory. Memoro also introduces a new visualization application that can distill collected data into scores and visual cues that allow developers to quickly pinpoint and eliminate inefficient heap usage in their software. C++, JavaScript Application Lab GitHub 2021-01-14 MIT 2021-11-05
JumboTrace
Java program tracer to record execution state
This project has not yet been evaluated by the C4DT Factory team.
We will be happy to evaluate it upon request. Clément Pit-Claudel — SystemF 2024-04-14 2024-04-14 JumboTrace is an experimental tracer for Java programs that records the evolution of program state during execution to build a trace (sequence of events and executed lines). It works by injecting logging calls into the program using a compiler plugin for javac. The logged events are written to a binary file using serialization, and a minimal frontend can display the traces in the console. JumboTrace is a tool that can track and record what happens when a Java program runs, including the values of variables and which lines of code get executed. It modifies the program's code to add logging, and the logs get stored in a file for later viewing. This can help understand how a program works and find bugs. Java Toolset Lab Github 2024-01-05 MIT 2024-04-14
C4DT supported projects Lab supported projects