Jump to content

GunCAD Index

From GunCAD Wiki
GunCAD Index
The GunCAD Index logo

The GunCAD Index is a search engine for 3D-printable gun designs on Odysee/LBRY. It is open-source software.

Background

[edit | edit source]

The GunCAD Index was created in early 2025 by The Shittinator in response to personal frustrations with searching for designs on Odysee. It was released on March 8th, 2025 and has received continuous development effort since.

Features

[edit | edit source]

Searching

[edit | edit source]

Arguably the most important feature of the Index, users can perform full-text searches against its database for designs. Searches match against several fields of each release via a custom search algorithm.

Channel Auto-Discovery

[edit | edit source]

The Index automatically discovers new authors based on a number of criteria:

  • Channels for which any one single release has the "guncad" tag; and
  • Channels for which:
    • They have a release; and
    • That release is identified by an automatic tagging rule (see below); and
    • They are picked up by a search, which requires:
      • One of several dozen known-relevant tags on the channel (such as "guncad"); or
      • For any one release from that channel to be reposted by a channel already known by the Index

Between these discovery methods, the Index proves effective at discovering new creators, either by digging for them itself, voluntarily by the channel in question, or by other channels reposting content they find interesting.

As the process of channel auto-discovery can be problematic when bootstrapping new instances, a list of known channels is shipped with the software.

Tagging

[edit | edit source]

The Index contains a mostly-hardcoded list of "tags" that can be applied to releases that correspond to various important features of it, such as what it is, what caliber of gun it is (if applicable), which if any OEMs are relevant when discussing it (such as Glock), and more.

Tags can wind up on releases via several mechanisms:

  • They can be added via an automatic tagging rule, which looks at properties of the release (name, description, etc.) and performs regex matches against keywords. If a match is found, the tag is applied
  • They can be added if an associated AI is configured and decides that a tag should be added
  • Users can submit edits against releases suggesting the addition/removal of any tag. These suggestions are reviewed by an admin for legitimacy and either affirmed or discarded

API Access

[edit | edit source]

Available via a link in the footer, the Index offers almost all of its data via a machine-readable REST API provided by the Django REST Framework.

Opt-Out

[edit | edit source]

Channels with the "noindex" tag are excluded from all discovery and indexing. For a finer-grained approach, releases with the "noindex" tag are excluded from indexing without excluding the channel.

Known Instances

[edit | edit source]

As the GunCAD Index is open-source, it can be hosted by anyone with the requisite knowledge. The following is a list of all known public instances of the software:

Technical Details

[edit | edit source]

The GunCAD Index is built on the Django framework and serves requests via Gunicorn. It uses PostgreSQL for its backing database and Redis (or Valkey) for caching. Requests must be served via a reverse proxy which also serves the role of managing static content.

It requires close contact with LBRY, and as such mandates the use of a lbrynet node. It periodically spiders LBRY in search of new channels it infers to be related to GunCAD ("authors") and the designs they produce ("releases") via a number of heuristics.