FurtherSecrets24680/chemsearch-android
FurtherSecrets24680/chemsearch-android has 32 GitHub stars and 2 forks. GitHot measured 0 stars in 24 hours. Last checked 2026-11-15 04:43 UTC. Last push 2026-11-11.
What you can do
- Compound Search: Search by name, CAS number, formula, PubChem CID or drawn structure. You can also open a random PubChem compound.
- Advanced Search: Filter by query type, included or excluded elements, molecular weight, charge, 3D data, GHS data, result count and name text.
- Structure Search: Draw a structure and search PubChem by exact, similar, substructure or superstructure matching.
- Isomer Search: Search by molecular formula and inspect isomer structures, formula details, mass, atom count, degrees of unsaturation and sorted results.
Measured star growth
- in 24h
- 0
- in 7 days
- Collecting history
- in 15 days
- Collecting history
- in 1 month
- Collecting history
Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.
About
Open-source Android chemistry app for compound search, 2D and 3D structures, GHS safety data, saved records, and practical chemistry tools.
LearningREADME.md
OriginalChemSearch for Android
ChemSearch: Chemistry simplified.
Search compounds and structures, browse chemistry references and use practical chemistry tools.
About
ChemSearch is an Android chemistry reference and study app. Search for a compound, check its formula and identifiers, view 2D or 3D structures, read safety data, save results for offline use or use one of the built-in chemistry tools.
It also includes a Periodic Table, a local Chemical Database, Isomer Search, Structure Search, compound comparison, home-screen widgets, recent searches and launcher shortcuts.
It is aimed at students, teachers and anyone who wants chemistry data and common calculations in one app. It is not a replacement for an SDS, lab rules or other official safety guidance.
Highlights
- Compound Search: Search by name, CAS number, formula, PubChem CID or drawn structure. You can also open a random PubChem compound.
- Advanced Search: Filter by query type, included or excluded elements, molecular weight, charge, 3D data, GHS data, result count and name text.
- Structure Search: Draw a structure and search PubChem by exact, similar, substructure or superstructure matching.
- Isomer Search: Search by molecular formula and inspect isomer structures, formula details, mass, atom count, degrees of unsaturation and sorted results.
- Compound Results: View formulas, identifiers, 2D structures, 3D models, descriptions, synonyms and GHS data when available. Elemental-composition bars use element-specific CPK colors; description cards and favorite/offline-download controls have refreshed styling, and GHS pictograms use a consistent grid.
- Spectral Information: Open published NMR, IR, mass, UV and Raman spectra for a compound from its result page.
- Offline Library: Save compounds with their available data and export your library as CSV or JSON.
- Compound Comparison: Compare up to six compounds and copy values from individual rows.
- Periodic Table: Browse all 118 elements, filter by category, inspect trends and open element details. Electron-shell diagrams animate unless Reduce Motion is enabled.
- Chemical Database: Browse 1532 substances, 211 ions, 122 functional groups and 326 reactions without an internet connection; sort category results A–Z or use the draggable scrollbar.
- Reaction Predictor: Use an offline rule set with one or two reactants to predict common reaction products, including single-reactant decomposition, with balanced equations and confidence levels.
- Home Screen: Get a daily compound, use the random compound widget and open Search, Library, Tools or Settings from launcher shortcuts.
- Display Options: Use light or dark themes, AMOLED mode, five color schemes, compact mode, reduced motion, high-contrast outlines, temperature units, cards mode and haptic feedback.
- Localization: Choose from 16 language options, with each language shown by its native name in the language picker.
Localization
ChemSearch has 16 language options:
- English
- Bengali
- Danish
- German
- Greek
- Spanish
- Finnish
- French
- Italian
- Japanese
- Dutch
- Norwegian
- Polish
- Portuguese
- Russian
- Swedish
Translations cover the app UI, including tools, dialogs, widgets and other added strings. Language selection is available in Settings > Language.
Download for Android
Download the latest stable APK from GitHub Releases or F-Droid.
- Runs on Android 8.0 Oreo and newer.
- Minimum SDK: API 26.
- Target SDK: API 34.
- Compile SDK: API 36.
Preview builds via GitHub Actions
- Open the APK build workflow in the Actions tab.
- Click Run workflow, choose the branch and start the workflow.
- Open the completed run and find the APK ZIP under Artifacts.
- Extract the ZIP to get the APK.
[!NOTE] A debug APK may not install over an existing release APK if the signing keys do not match. In that case, uninstall the existing build first, then install the new one.
Screenshots
Click a section to view screenshots.
Search and Results
| Home | 2D Result | Identifiers |
|---|---|---|
![]() |
![]() |
![]() |
| Description and GHS | 3D Result |
|---|---|
![]() |
![]() |
Library and Reference
| Periodic Table | Chemical Database |
|---|---|
![]() |
![]() |
Structure and Formula Search
| Structure Search | Isomer Search |
|---|---|
![]() |
![]() |
Tools
| Tools List | Reaction Balancer | Reaction Predictor |
|---|---|---|
![]() |
![]() |
![]() |
| Molar Mass | Oxidation State | Compare Compounds |
|---|---|---|
![]() |
![]() |
![]() |
| Stoichiometry |
|---|
![]() |
Themes and Settings
| Display Settings | Light Blue | Dark Violet |
|---|---|---|
![]() |
![]() |
![]() |
| Dark Emerald | Dark Rose | Dark Amber |
|---|---|---|
![]() |
![]() |
![]() |
Compound Search
ChemSearch can look up compounds using:
- A name, such as
glucose,sodium chloride,sulfuric acidor1,3-dibromopropane - A CAS number
- A molecular formula
- A PubChem CID
- A drawn structure
Autosuggestions can appear while you type. Repeated searches can load from the local cache instead of fetching the same data again.
When a name has no match or contains a typo, ChemSearch can suggest a close spelling.
Search errors are separated by type. A throttled request, timeout, bad request, network problem, server error or empty result gets its own message and visual treatment.
Advanced Search
Advanced Search supports:
- Query type
- Include and exclude terms
- Molecular weight range
- Charge
- Require 3D data
- Require GHS data
- Result limit
- Name-contains filtering
The active-filter indicator shows how many filters are in use and provides a clear-all action.
Compound Results
A result can include:
- Compound name and formula
- CID, CAS number, molecular weight, condensed formula and empirical formula when available
- IUPAC name, InChI, InChIKey, SMILES and synonyms
- 2D structure image
- 3D structure model
- GHS safety information and pictograms when available
- Descriptions from PubChem, Wikipedia or an enabled AI provider
- Additional PubChem properties such as uses, occurrence notes, classification tags, XLogP, polar surface area, exact mass, hydrogen bond counts and rotatable bond count
- Isomer Search from the formula
- Favorite and offline download actions
Additional PubChem data is behind Show more information about this substance to keep the main result page readable.
Tap identifiers and quick stats to copy them.
The home screen also includes an in-app Compound of the Day card. It shows the same daily compound used by the daily widget, including its formula and typical uses. The Explore section links to Structure Search, Isomer Search, the Periodic Table and the Chemical Database.
A random compound button picks a PubChem CID from the app's configured random-compound range and opens it like a normal search result.
Formula Display
Formula display supports two styles:
- Conventional: Common ordering such as
NaCl,H2SO4andNH4+ - Hill: Hill-system ordering such as
ClNaorH4N+when that is the source formula
Structure Search
Structure Search uses a native drawing page. Build a molecule from atoms, bonds, templates and charges, choose a matching mode, then open the results in the normal compound page.
The editor includes:
- Common atoms plus a full periodic-table picker
- Bond types and structure templates
- CPK-style atom colors
- Select, drag, undo, redo, delete, clean, duplicate, import, export and share actions
- Exact, similar, substructure and superstructure search
- A configuration summary showing the active mode, similarity threshold and result limit
- A similarity slider with a fine-grained value selector
- Search-button and result-dialog summaries showing the active configuration
- Import hints for SMILES, InChI and V2000 MOL input
- A live formula badge for the current sketch
- Matching results in a pop-up dialog
Isomer Search
Isomer Search finds compounds that share a molecular formula.
While entering a formula, ChemSearch can show an instant formula summary with:
- Normalized formula
- Total atom count
- Molar mass
- Degrees of unsaturation
The formula summary also reports when the input is invalid.
Search results can be sorted by relevance or name. When isotope results are present, an isotope filter can be used to include or exclude them.
Each result shows the structure and compound information, supports selection for comparison and includes a quick copy action. Failed searches use the same typed error handling as normal Search and can be retried.
Structures
ChemSearch loads structure data from PubChem when it is available.
- 2D structure images appear on the compound page.
- Tapping a 2D image opens a larger view.
- 3D models open in the built-in viewer. The viewer is native and does not use a WebView.
- The default structure tab can be set to 2D, 3D or the last used tab.
- The 3D viewer supports drag rotation, pinch zoom, pinch-drag panning, reset and auto-spin.
- When PubChem has no 3D model, ChemSearch can try fallback data from identifiers such as SMILES, InChI and InChIKey. Fallback structures are marked as such.
Some atoms, metal compounds, ionic solids and crystal-like materials do not have a useful standalone molecular model. In those cases, ChemSearch explains the missing model or labels a fallback as an estimate.
Descriptions
Descriptions can come from:
- PubChem
- Wikipedia
- A configured AI provider
Supported AI providers are Google Gemini, Groq Cloud, OpenAI, OpenRouter and Mistral AI.
ChemSearch can refresh provider model lists and lets you choose a model for each provider.
When AI descriptions are enabled, the request can include compound details such as formula, identifiers, safety data and source context. API keys are stored locally with Android Keystore.
Library
The Library contains saved compounds and reference data:
- Favorites: Saved compounds for quick access
- Downloads: Saved compounds for offline viewing
- Reference: Periodic Table and Chemical Database
Removing a favorite or downloaded compound provides an undo action.
Long-press a library card to:
- Copy its formula
- Open the compound in PubChem
- Remove it
Favorites, downloads, supported database entries and ions can be selected for comparison.
Compare Compounds
Compare up to six compounds side by side. The comparison can include formulas, descriptions, identifiers, atom counts, bond counts, molecular weight and other available properties.
Individual rows can be copied and the results can be cleared without starting another comparison.
Periodic Table
The Periodic Table contains all 118 official elements.
It includes:
- Element search
- Interactive category filtering
- Short element dialogs
- Full element detail pages
- Wikipedia summaries
- Element images
- Animated electron-shell diagrams, plus short and full electronic configurations (animation respects Reduce Motion)
- Physical properties such as electronegativity, atomic radius, ionization energy, melting point, boiling point, density and molar heat
- Spectral-line images
Trends
Trend views cover electronegativity, atomic radius, ionization energy, density, melting point and boiling point.
Temperature trends can use Kelvin, Celsius or Fahrenheit from the app settings.
The trend view uses a blue-to-orange heatmap, a min/max legend and a top-five strip that opens an element detail page.
Chemical Database
The bundled Chemical Database is available offline and contains:
- 1532 substances
- 211 ions
- 122 functional groups
- 326 reactions
The substance collection includes acids, salts, organic families, polymers, alloys, drugs, dyes, biomolecules and other common chemistry references.
Entries can be searched by name, alias or formula and filtered by type. Results within a category can be sorted alphabetically, and a draggable scrollbar helps navigate long lists. The reaction entries are also used by the Reaction Predictor.
The 118 elements are kept in the Periodic Table instead of being duplicated in the substance list.
Offline Downloads
A downloaded compound can include:
- Basic compound details
- 2D structure image
- 3D structure data when available
- Identifiers
- Descriptions
- Synonyms
- GHS safety information
- Data source notes
Download quality can be set to Basic, Structures or Complete.
Downloads are stored in the local app database. The save action shows progress while data is being stored.
Library import and export can move favorites and downloads between installs or devices. Library export supports both CSV and JSON.
Home-Screen Widgets and Shortcuts
ChemSearch has two home-screen widgets.
- Compound of the Day: Uses the calendar date and bundled database to pick the same compound on every device for that date. It changes at local midnight.
- Random Compound: Shows a random substance and has a refresh button. It avoids showing the same pick twice in a row.
Both widgets work offline. They render chemical formulas with Unicode subscripts and superscripts and open Search with the displayed compound when tapped.
Widget labels use the selected app language.
Long-press the app icon to access shortcuts for:
- Search
- Library
- Tools
- Settings
Recent Searches
The Recent screen keeps search history organized by time.
- Pin important searches
- Sort by newest or oldest
- Browse pinned searches, today, yesterday, the previous 7 days, the previous 30 days and older searches
- Remove individual entries
- Clear all recent searches
Tools
ChemSearch includes 15 tools:
- Molar Mass Calculator: Parse a formula and calculate molar mass.
- Empirical Formula Finder: Calculate empirical and molecular formulas from composition data or a molecular formula.
- Oxidation State Finder: Estimate oxidation states for many common compounds, including peroxides, superoxides, ozonides, hydrides, oxyhalogens and mixed-valence cases.
- pH / pOH Calculator: Convert between pH, pOH, hydrogen ion concentration and hydroxide ion concentration.
- Reaction Balancer: Balance chemical equations.
- Precipitate Predictor: Check two aqueous salts for likely precipitates and net ionic equations.
- Limiting Reagent: Find the limiting reagent, mole ratios, theoretical yield, reagent consumption, leftover amounts and atom economy.
- Percent Yield: Compare actual yield with theoretical yield.
- Reaction Scaling: Scale reactants for a target product amount.
- Dilution Calculator: Calculate concentration and volume changes with
C1V1 = C2V2. - Ideal Gas Law: Work with pressure, volume, amount and temperature using
PV = nRT. - SMILES Visualizer: Open structure data from SMILES input.
- Custom 3D Molecule Viewer: Load local
.sdfor.molfiles. - Reaction Predictor: Enter reactants and get likely products, reaction type, observations, conditions and the rule or database entry used for the result.
- Compare Compounds: Compare up to six compounds and copy values from individual property rows.
The Tools page supports search, categories, list and grid layouts, compact mode, drag reordering and reset to the default order.
The grid adapts to the available width, using 2 columns on narrow phones and up to 5 columns on wider screens and tablets. Tool categories have their own accent colors.
Reaction Predictor
The Reaction Predictor uses the bundled Chemical Database and an offline rule set. Enter one or two reactants; single-reactant input can predict common decomposition reactions as well as the two-reactant reaction types below. Results include a balanced equation, likely products and a confidence level. This is a study aid for common cases, not a general chemistry simulation.
Examples include:
- Acid + base neutralization
- Acid + carbonate
- Metal + acid
- Single displacement
- Combustion
- Metal + water
- Metal + steam
- Acid + metal oxide
- Acid + sulfite
- Acid + sulfide
- Ammonium salt + base
- Simple synthesis reactions
- Decomposition of hydrogen peroxide, bicarbonates, selected non-alkali carbonates and metal hydroxides, chlorates/perchlorates, sulfurous acid, and selected metal oxides such as HgO and Ag2O
Two-reactant results can also include observations, conditions and the rule or database entry behind the prediction. Decomposition coverage is rule-based and limited to supported compounds; it does not infer products for arbitrary single reactants.
Display and Settings
ChemSearch includes settings for appearance, search behavior, storage, language, AI providers and app updates.
Display
- Light and dark theme
- AMOLED mode for true-black backgrounds
- Blue, Violet, Emerald, Rose and Amber color schemes
- Temperature unit: Kelvin, Celsius or Fahrenheit
- Compact mode
- Reduce motion
- High-contrast outlines
- Cards mode, which can switch rounded card surfaces to a flatter page style
- Haptic feedback
Search and Data
- Autosuggestions
- Default description source
- Default structure view
- Formula style: Conventional or Hill
- Offline download quality
- Cache location
- Cache size limit: 10 MB, 50 MB, 100 MB or unlimited
- Cache auto-clear schedule: daily, weekly, monthly or manual
- Settings import and export
- Library CSV export and JSON backup/import
Language
The language picker shows language names in their own language, such as Deutsch, 日本語 and বাংলা.
Updates
GitHub builds can check for new releases, notify you about updates, download the APK with progress and show an install prompt when the download finishes.
About
The About screen includes app links, credits, license information, privacy notes, project sources and a collapsible What's New section for the current version.
Developer Options
Developer options are unlocked by tapping the build number five times in the About card.
They include checks for:
- PubChem lookup
- PubChem structures
- PubChem safety data
- Wikipedia descriptions
- NCI/CADD fallback structures
- GitHub release checks in GitHub builds
- Configured AI providers
Offline Test Mode
Offline Test Mode replaces network-backed data with local deterministic test data.
While it is enabled:
- Search and related lookups use dummy records
- Structure and safety requests can be simulated
- AI calls return local test responses
- Simulated latency can be adjusted
- A random error rate can be set
- A specific failure type can be forced
- The UI shows an offline banner
- The same query produces the same test result so UI states can be reproduced
Nothing is sent over the network while Offline Test Mode is active.
Other Developer Tools
Developer options also include:
- Crash history for uncaught app exceptions, with stack traces, cause chains, thread dumps, device/build details, memory and storage snapshots, and recent logs
- View, copy, share or delete crash reports from Developer Options. Reports are kept in app-private storage, capped at 30 reports / 16 MB, and excluded from backup and device transfer.
- Debug logs
- Notification tests
- Cache and storage summaries
- Compound cache inspection and clearing
- Device and build information
- Live memory information
- Localized search-error catalog
- Welcome-screen reset
- Cleanup tools
These tools are useful for testing error states, checking local storage or collecting device information for a bug report.
Built With
- Kotlin
- Jetpack Compose
- Material 3
- AndroidX Navigation Compose
- AndroidX Lifecycle
- Phosphor Icons
- AndroidX Room
- AndroidX DataStore
- AndroidX WorkManager
- Retrofit
- OkHttp
- Gson
- Coil
- Kotlin Coroutines
- Icons8 for the Wikipedia logo used in element details
Data Sources
- PubChem PUG REST for lookup, structure search, properties, synonyms, descriptions, images, isomers and SDF files
- PubChem PUG View for GHS safety data
- UNECE GHS pictograms for hazard symbol artwork
- PubChem Periodic Table for element properties
- PubChem autocomplete for search suggestions
- Wikipedia REST API for general summaries
- Wikimedia Commons for element images and spectral-line images
- Bowserinator/Periodic-Table-JSON for extra element data, electron shells, image links and Wikipedia-derived element summaries
- NCI/CADD Chemical Identifier Resolver for fallback SDF models
- GitHub Releases for app update checks
- Local JSON files in
app/src/main/assets/chemical_database/for offline chemistry data - IUPAC, LibreTexts, PubChem and other chemistry references used for labels or source links in the local database
- Optional AI provider APIs: Gemini, Groq, OpenAI, OpenRouter and Mistral
Accuracy and Limits
ChemSearch is a study and reference tool. It is not a replacement for official safety documentation or a full chemistry reference.
- PubChem and Wikipedia results depend on the data available from those services.
- AI descriptions should be checked against source data for serious work.
- Fallback 3D structures are estimates when PubChem does not provide a usable model.
- Ionic, metallic and crystal structures may not be represented by one molecular 3D model.
- The oxidation state and formula tools cover many common cases. Unusual compounds may need manual checking.
- The Reaction Predictor covers common rule-based cases. It does not attempt to predict every chemical reaction, especially reactions that depend on special conditions, catalysts, complex mechanisms or unusual substrates.
- GHS information is provided for quick reference. Use the official SDS and applicable safety procedures for real handling decisions.
Project Structure
.
|-- fastlane/
| `-- metadata/android/en-US/
|-- metadata/
|-- app/
| |-- build.gradle.kts
| |-- proguard-rules.pro
| `-- src/
| |-- fdroid/
| |-- main/
| | |-- assets/chemical_database/
| | |-- java/com/furthersecrets/chemsearch/
| | | |-- data/
| | | | |-- local/
| | | | `-- settings/
| | | |-- settings/
| | | |-- updates/
| | | |-- widget/
| | | `-- ui/
| | `-- res/
| |-- test/
| | |-- java/com/furthersecrets/chemsearch/
| | `-- resources/chemistry-fixtures/
| `-- androidTest/
|-- .github/
|-- gradle/
| `-- libs.versions.toml
|-- fastlane/metadata/android/en-US/images/phoneScreenshots/
|-- keystore.properties.example
|-- local.properties.example
|-- version.properties
|-- build.gradle.kts
|-- settings.gradle.kts
`-- README.md
Useful areas:
fastlane/metadata/android/en-US/contains store listing text and release notesmetadata/contains the draft F-Droid metadata fileapp/src/main/java/com/furthersecrets/chemsearch/contains the Android app codeapp/src/main/java/com/furthersecrets/chemsearch/data/contains API calls, chemistry calculations, parsing, search, settings and offline storage logicapp/src/main/java/com/furthersecrets/chemsearch/ui/contains Compose screens, navigation, themes, settings, Library, Tools and structure drawing UIapp/src/fdroid/contains F-Droid-specific changesapp/src/main/assets/chemical_database/contains local chemistry JSON filesapp/src/main/res/contains images, icons and Android resourcesapp/src/test/contains unit tests for chemistry logic, settings and UI helpers.github/contains GitHub project filesfastlane/metadata/android/en-US/images/phoneScreenshots/contains README screenshotsversion.propertiescontains the app version name and version code
Build From Source
Requirements:
- Android Studio
- JDK 17+
- Android SDK API 36
Clone the repository:
git clone https://github.com/FurtherSecrets24680/chemsearch-android
cd chemsearch-android
Build a debug APK on macOS or Linux:
./gradlew :app:assembleGithubDebug
Build a debug APK on Windows:
.\gradlew.bat :app:assembleGithubDebug
The debug APK is generated at:
app/build/outputs/apk/github/debug/app-github-debug.apk
ChemSearch has two distribution flavors:
github: normal GitHub builds with in-app update checks and APK install promptsfdroid: F-Droid builds without the GitHub APK updater or installer permission. AI providers remain available as optional user-configured features, so the F-Droid metadata declaresNonFreeNet.
Build the F-Droid variant locally:
.\gradlew.bat :app:assembleFdroidRelease
Signed Release Builds
For signed release builds, copy keystore.properties.example to keystore.properties and keep the keystore in the project-relative path shown in that example file.
The local signing files are ignored by Git:
local.properties
keystore.properties
keystores/
*.jks
*.keystore
Build the release APK:
.\gradlew.bat :app:assembleGithubRelease
The release APK is generated at:
app/build/outputs/apk/github/release/app-github-release.apk
Release builds use Android's shrinker and resource shrinking to keep the APK smaller.
Privacy
- No analytics
- No tracking
- No app-owned server
- Compound data is fetched directly from the selected data source
- Drawn structures are sent to PubChem when you use Structure Search
- AI requests go directly to the selected AI provider
- API keys are encrypted locally with Android Keystore
- Settings export can include saved AI API keys in the JSON backup. Keep exported settings files private.
- Search history, favorites, downloads, settings and cache data stay on the device
License
MIT License. See LICENSE for details.





















