Skip to content
2nd Place

ShareLock

ShareLock is an AI-assisted reconstruction tool that helps turn fragmented witness memories into visual leads.

Core trick

Converts witness text and blurry photos into structured facial attributes via Gemini, then Imagen renders candidate faces that witnesses refine.

Tags

Description

ShareLock is an AI-assisted reconstruction tool that helps turn fragmented witness memories into visual leads. Witnesses describe what they remember in natural language, and Gemini converts these descriptions, along with optional blurry images, into a structured facial representation that can generate candidate reconstructions. The system allows users to adjust confidence levels, iteratively refine features, and merge multiple independent witness accounts into a consensus composite. ShareLock helps investigators, journalists, and search teams quickly produce visual reconstructions when only partial or uncertain information is available.
dshaaban01/ShareLock★ 10 forksJavaScriptCreated Mar 14, 2026 · last push Mar 15, 2026

README excerpt

# ShareLock
_Submission to the Gemini 3 Paris Hackathon organized by Cerebral Valley on 14.03.2026 which was awarded 2nd place._

**Problem?** Still in 2026 forensic sketching is used to identify criminals. This process is slow and costly. Humans experts struggle to effectively combine all possible supporting evidence and statements of multiple witnesses.

**Solution?** ShareLock helps combine witness information through interactions with users, collecting both descriptions and reported evidence. It uses Gemini's multimodal reasoning capabilities to synthetize possible candidate faces with Imagen. The witnesses can refine those using selection mechanism and confidence on different features.

![ShareLock Preview](src/assets/preview.png)

**Demonstration** Check out our [video demonstration](https://youtu.be/pvtD1TvSsiA) to see our assistant in action!

# Run the code yourself!

## 1) Environment setup

Create a local environment file:

```bash
cp .env.example .env
```

Then set your Gemini API key in `.env`:

```env
VITE_GEMINI_API_KEY=your_gemini_api_key_here
```

Notes:
- Vite only exposes variables prefixed with `VITE_` to frontend code.
- The app can also store/update the key in browser `localStorage` (`gemini_api_key`).

## 2) Install and run

```bash
npm install
npm run dev
```

Open the local URL shown in terminal (typically `http://localhost:5173`).

## 3) How to use the app

1. Choose a witness (A/B/...) in the header.
2. **Interview**: collect witness description and

Team