Visual Intelligence & Analysis

Turn scattered evidence into a Map anyone can follow.

Break sources into claims, connect the evidence, and keep every gap visible.

For OSINT researchers, investigative journalists, and risk analysts.

Local-only · No AI guesswork · No backend.

A fictional product case study showing what the system flags, what the analyst decides, and where automation stops.
Case map
Case map: one Source breaks into two Claims (package marked delivered, camera saw no delivery). Their conflict becomes a Source conflict Gap, which leads to a Wrong address hypothesis.
Visual Intelligence & Analysis

Turn scattered evidence into a Map anyone can follow.

Break sources into claims, connect the evidence, and keep every gap visible.

For OSINT researchers, investigative journalists, and risk analysts.

Case map
Case map: one Source breaks into two Claims (package marked delivered, camera saw no delivery). Their conflict becomes a Source conflict Gap, which leads to a Wrong address hypothesis.

Local-only · No AI guesswork · No backend.

A fictional product case study showing what the system flags, what the analyst decides, and where automation stops.
The problem

Sources accumulate. Reasoning gets lost.

VINTA turns missing evidence into a trackable Gap Node.

Source Claim Gap Hypothesis
Who is this for

For people who have to defend a conclusion later.

Not the people who collect the most material, but the ones who have to reason across it and stand behind the call.

🛰
OSINT researcher

Track what conflicts, not just what you found.

Two sources describe the same arrival, but the details do not line up. The conflict itself is the thing worth keeping.

Source AManifest lists no catch on board, declared as general cargo.
Source BWitness notes a strong fish smell and ice boxes on deck.
GapSource conflict stays open until raw logs settle it.
See how the engine handles this
📰
Investigative journalist

Keep the reasoning others will question.

A claim of collusion rests on an inference, not a document. The leap has to be visible before anyone can check it.

Claim"Therefore the bids were coordinated", stated as a conclusion.
GapUnverified bridge: the link back to a source is still missing.
See how the engine handles this
📊
Risk / policy researcher

Put the unknown on the record.

Output dropped, but no cause is established. The report should say so plainly instead of guessing.

EventProduction fell sharply over a single quarter.
GapUnknown cause: no cause node exists yet, and the engine stops here.
See how the engine handles this
01 · OSINT researcherTrack what conflicts, not just what you found.

Two sources describe the same arrival, but the details do not line up. The conflict itself is the thing worth keeping.

Source AManifest lists no catch on board, declared as general cargo.
Source BWitness notes a strong fish smell and ice boxes on deck.
GapSource conflict stays open until raw logs settle it.
See how the engine handles this
02 · Investigative journalistKeep the reasoning others will question.Tap to expand

A claim of collusion rests on an inference, not a document. The leap has to be visible before anyone can check it.

Claim"Therefore the bids were coordinated", stated as a conclusion.
GapUnverified bridge: the link back to a source is still missing.
See how the engine handles this
03 · Risk / policy researcherPut the unknown on the record.Tap to expand

Output dropped, but no cause is established. The report should say so plainly instead of guessing.

EventProduction fell sharply over a single quarter.
GapUnknown cause: no cause node exists yet, and the engine stops here.
See how the engine handles this
One case, step by step

Walk a single investigation, one decision at a time.

Step 1

Keep the sources intact

Add your files as Sources. The originals are never changed.

Source Library
SourceCH1
courier-tracking.pdf
SourceCH1
doorbell-camera-log.txt
Step 2

Write traceable claims

Turn each Source into a short claim that stays linked to its file.

Claim Board
SourceCH1
courier-tracking.pdf
contains
Claim
Package marked "Delivered" at 3:14 PM.
SourceCH1
doorbell-camera-log.txt
contains
Claim
Camera saw no one at the door, 2-5 PM.
Step 3

Review what is missing

Two claims disagree, so VINTA flags it for review. You decide whether it becomes a Gap.

Gap View
Claim
Marked delivered 3:14 PM
Gap · Source conflict
Open · the two sources disagree
Claim
Camera saw no delivery
Step 4

Test hypotheses

Weigh each explanation against the evidence that supports or contradicts it.

Hypothesis Board
Hypothesis+2
Left at the wrong address
Hypothesis+1
Camera angle missed it
Hypothesis+0
Taken after drop-off
Scroll to step through
01 / 04
One case, step by step

Walk a single investigation, one decision at a time.

1

Keep the sources intact

Source Library
More

Add your files as Sources. The originals are never changed.

2

Write traceable claims

Claim Board
More

Turn each Source into a short claim that stays linked to its file.

3

Review what is missing

Gap View
More

Two claims disagree, so VINTA flags it for review. You decide whether it becomes a Gap.

4

Test hypotheses

Hypothesis Board
More

Weigh each explanation against the evidence that supports or contradicts it.

The Gap Node

Put what you are missing on the Map.

A Gap has a type and status, so unresolved evidence stays visible.

Click the Gap to cycle its status →
Source
Official notice
Gap · Source conflict Open
Source
Field sighting
Status: Open · the official notice and the field sighting still disagree, with no record to settle it.
Source
Official notice
Gap · Source conflict
Source
Field sighting
What VINTA can flag

The engine can flag where evidence is missing. Only the analyst decides what that absence means.

VINTA checks for eight kinds of missing or unresolved evidence. Seven can appear as review suggestions; motive is always created and interpreted by the analyst.

Some gaps are easier to detect than others.

VINTA ranks review suggestions by how clearly they can be detected from the Map. None of them are conclusions.

Missing data
A required field is empty, or a Claim cannot be traced back to a Source.
Clearer signal
Source conflict
Two linked Claims hold evidence that cannot both be true.
Clearer signal
Missing timeline
An event has no place in the sequence, or its order conflicts with its date.
Clearer signal
Three more can appear as review suggestions once there is enough context, and two stay entirely with the analyst. None of them are conclusions.
Unverified bridge
A connection between Claims has no supporting record.
Needs review
Missing context
Two Claims mention the same subject but have no recorded connection.
Needs review
Unknown cause
An event is recorded, but its cause is still unresolved.
Needs review
Definition unclear
A repeated term does not have a clear supporting definition.
Needs review
Motive unclear
Intent must be created and interpreted by the analyst.
Manual only
How the engine finds gaps

The engine flags a review point. You decide what it means.

Across three fictional pairs, VINTA compares Sources, keeps each supporting record visible, and sends unresolved evidence to review.

A ship arrives, but two reports disagree

Two notes describe the same ship and place, but the dates and details don’t line up.
SOURCE A · OFFICIAL NOTICE

Port Operations Notice

port-notice.md · May 18
1North Quay maintenance is scheduled for May 20 at 06:00.
2Blue Aster is cleared to dock before maintenance.
3The manifest lists no catch and declares 4 crew.
SOURCE B · FIELD SIGHTING

Community Observation Log

observation.md · May 19
1Blue Aster is seen at North Quay on the evening of May 18.
2The observer reports fish smell, ice-box crates, and about 12 workers.
3Two trucks are reported at the gate later that night.
What VINTA does
1
Find the mismatch
Identify the conflicting dates, crew counts, and cargo facts.
2
Keep the trigger visible
Link the review suggestion back to both Claims and their supporting records.
3
Send it to review
The analyst can dismiss it or create a Gap as one tracked action.
Review candidate
Source conflictClearer signal

Blue Aster arrival records contain conflicting evidence

Source A: May 20 maintenance, 4 crew, no catch.
Source B: May 18 sighting, about 12 workers, fish smell and ice crates.
Why flagged: the same ship and place are connected to facts that do not align.
Evidence needed: berth log, signed manifest, gate log, and time-stamped photographs.
Pair 01 · Source conflictOSINT investigator A ship arrives, but two reports disagree
SOURCE A · OFFICIAL NOTICE

Port Operations Notice

port-notice.md · May 18
1North Quay maintenance is scheduled for May 20 at 06:00.
2Blue Aster is cleared to dock before maintenance.
3The manifest lists no catch and declares 4 crew.
SOURCE B · FIELD SIGHTING

Community Observation Log

observation.md · May 19
1Blue Aster is seen at North Quay on the evening of May 18.
2The observer reports fish smell, ice-box crates, and about 12 workers.
3Two trucks are reported at the gate later that night.
What VINTA does
1
Find the mismatch
Identify the conflicting dates, crew counts, and cargo facts.
2
Keep the trigger visible
Link the review suggestion back to both Claims and their supporting records.
3
Send it to review
The analyst can dismiss it or create a Gap as one tracked action.
Review candidate
Source conflictClearer signal

Blue Aster arrival records contain conflicting evidence

Source A: May 20 maintenance, 4 crew, no catch.
Source B: May 18 sighting, about 12 workers, fish smell and ice crates.
Why flagged: the same ship and place are connected to facts that do not align.
Evidence needed: berth log, signed manifest, gate log, and time-stamped photographs.
Show 2 more examples Tap to expand
Pair 02 · Investigative journalist · Builder Y wins a city contract
SOURCE A · AWARD NOTICE

City Contract Award Notice

award.md · April 10
1The road-maintenance contract is awarded to Builder Y.
2The review committee is chaired by Official X.
3The notice says scores and bids were handled under procurement rules.
SOURCE B · INTERNAL MEMO

Unverified Internal Memo

memo.md · author and supporting record missing
1Builder Y may have hired a relative of Official X.
2The memo says the award was due to that relationship.
3No hiring record, author, or supporting document is attached.
What VINTA does
1
Find the mismatch
Identify the unsupported connection between the alleged relationship and the contract award.
2
Keep the trigger visible
Link the review suggestion to the award Claim, the memo Claim, and both Sources.
3
Send it to review
The analyst can dismiss it or create a Gap as one tracked action.
Review candidate
Unverified bridgeNeeds review

The contract claim rests on a link with no proof

Source A: Builder Y received the contract and Official X chaired the committee.
Source B: the memo alleges a relative was hired and attributes the award to that relationship.
Why flagged: no supporting record connects the alleged hiring to the award decision.
Evidence needed: hiring records, committee scores, competing bids, and the memo's source.
Pair 03 · Risk analyst · Output drops 40%, with no clear cause
SOURCE A · TRADE REPORT

Trade Body Quarterly Report

trade-q2.md · June 1
1Q2 critical minerals output fell 40% year over year.
2The report does not state a cause for the decline.
3Export volume fell by a similar proportion.
SOURCE B · RESEARCH PAPER

Academic Supply Paper

paper.md · May 22
1Mine maintenance and a regulatory change both occurred during the period.
2The paper does not establish which factor caused the drop.
3No supporting record connects either factor directly to the 40% decline.
What VINTA does
1
Find the mismatch
Identify that a 40% drop is recorded while its cause remains unresolved.
2
Keep the trigger visible
Link the review suggestion to the output Claim and the two incomplete explanations.
3
Send it to review
The analyst can dismiss it or create a Gap as one tracked action.
Review candidate
Unknown causeNeeds review

The cause of the 40% output drop is unresolved

Source A: production fell 40%, but the report gives no cause.
Source B: maintenance and regulation are mentioned, but neither is established as the cause.
Why flagged: the Claim records an effect without a supported explanation.
Evidence needed: dated production logs, maintenance records, and regulatory impact records.

VINTA shows an Unknown cause review suggestion; it does not decide the cause.

Where the engine stops

The system finds structure. The analyst makes meaning.

VINTA can show where the record is incomplete or inconsistent. It never decides what happened.

The system does
Flags for review
Deterministic checks over the local case Map.
Shows claims that do not trace back to a source
Compares recorded dates and numbers
Finds events with no date, sequence, or recorded cause
Keeps every trigger available for inspection
The analyst does
Meaning and judgment
The decisions that require context and responsibility.
Decides whether a flag is a real research gap
Interprets whether a mismatch is error, uncertainty, or concealment
Writes causes, motives, and hypotheses
Creates, dismisses, and closes Gap work items

The engine proposes a candidate with its triggering evidence. You decide whether it becomes a Gap.

TraceableEvery promoted candidate keeps its trigger nodes and links.
ReversibleA Gap and its initial relationships are created and undone together.
LocalNo source text or analysis is sent to a backend.
One case, one decision

What changes when the gap is tracked.

The same Blue Aster source conflict. Two different outcomes depending on whether the discrepancy gets a node or gets filed away.

Without a Gap Node
Discrepancy attributed to observer error
Notice and field sighting disagree on date and crew.
No item created. Written off as observer error.
Case closed. The mismatch is never asked about.
Conclusion drawn
Routine port op. Likely observer error. Closed.
With a Gap Node  ·  Source conflict  ·  Open
Conflict stays on the Map, berth log requested
Promoted to a Gap Node, kept open while it is worked.
Berth log matches the field sighting, not the notice.
Crew gap (4 vs 12) becomes the next open node.
Conclusion changed
Docking predated maintenance by 36h. Crew understated. Referred for cargo verification.
Without a Gap Node
Discrepancy filed as observer error. Case closed, no further action.
See the full reasoning
Notice and field sighting disagree on date and crew.
No item created. Written off as observer error.
Case closed. The mismatch is never asked about.
Conclusion drawn
Routine port op. Likely observer error. Closed.
With a Gap Node · Source conflict · Open
Berth log requested. Conclusion changed. Referred for cargo verification.
See the full reasoning
Promoted to a Gap Node, kept open while it is worked.
Berth log matches the field sighting, not the notice.
Crew gap (4 vs 12) becomes the next open node.
Conclusion changed
Docking predated maintenance by 36h. Crew understated. Referred for cargo verification.
Originals preserved Schema-validated JSON Portable case Map
Inside the app

Build it once in the Map. Read it in every view.

The Map is the source of truth. Every other view is a focused read of the same case, so nothing drifts out of sync.

Map

The source of truth

Build the case once. Sources, claims, gaps, and hypotheses keep their relationships here.

Source Library

Keep originals intact

Preserve imported source files while editable analysis stays separate.

Gap View

Review what is missing

Inspect review suggestions, dismiss noise, and promote useful candidates into tracked work.

Hypothesis Board

Test explanations

Compare supporting and contradicting claims without turning a score into a verdict.

Designer's note

There is a tremendous amount of information in the world. Maybe not all of it matters, but far more of it piles up than any one person can hold.

When people learn, they tend to treat each fact as something that stands on its own. In practice most facts are tangled together. The hard part is the space between them. One fact sitting next to another is not yet context. You only get context when you connect the two and account for what sits in between, the evidence that holds the link. That is harder than it sounds.

I kept running into this in my own research. Two sources would almost agree, and the real work lived in the place where they did not. So I kept asking what that place was, and whether it deserved a name of its own.

That is what this comes down to. You find the gaps, you make them visible, and you build hypotheses from them. Everything else in the tool exists to keep that work honest.

VINTA  ·  built by one person  ·  2026

The system holds the structure. You hold the judgment.

Open VINTA
VINTA · Visual intelligence & analysis Browser-based · Local-only · No AI guesswork · Data exports as JSON
Local-only · No AI guesswork · No backend