smenjas / chemistry-explorer Goto Github PK
View Code? Open in Web Editor NEWA chemistry app built with vanilla JavaScript
Home Page: https://smenjas.github.io/chemistry-explorer/
License: ISC License
A chemistry app built with vanilla JavaScript
Home Page: https://smenjas.github.io/chemistry-explorer/
License: ISC License
The sorting algorithm must work for empirical and molecular formulas. Condensed formulas are not required for the first iteration.
For organic compounds, the pattern begins with carbon, then often lists other elements in order of atomic number. For example, CO2 would come before CF2.
Start with oxidation states for elements. Try to analyze molecular formulas to see if they make sense, in terms of the oxidation states of their elements.
This is related to issue #11.
Commit dbc3cff split the code into several files, and this broke the GitHub Pages environment. It works on my local environment, using both NodeJS v19 & v20. The previous commit, tagged v0.7.4 works fine on GitHub Pages.
For example:
There are several measures of element abundance, including within our solar system, within sea water, and within the Earth's crust. Use the latter as a starting point.
There are also several sources available. Use the CRC Handbook, as it's the most comprehensive.
On the periodic table, there are empty table cells for the first 3 rows/periods. td.empty
has border: none
and Chrome v111 honors this. However, Safari v16.3 & v16.4 shows a border between rows 1 & 2 (it's a black border in light mode and a white border in dark mode).
This bug also appears on the isotopes view, at the top of the bottom left th
for the x-axis.
All of our JS is in one file currently. This includes all our data about elements, isotopes, and molecules.
A feature of the current architecture is that you can run the app from a desktop computer without installing NodeJS.
A downside is that there is more mental overhead in trying to navigate the codebase. It could be easier to compartmentalize logic, and that might encourage a cleaner design.
If we move to a module-based architecture, that could allow backend functionality, such as automated testing.
Provide a way to compare molecular formulas for equivalence. For example, H2O & OH2 should be considered equivalent despite the elements being in a different order.
For example, H -> Li -> Na, etc.
In 641985c I added links to the period pages on either side of the periodic table, increasing its width. Now the breakpoints cut off the right side of the table at some sizes.
I'd like to provide an intuitive search feature. Users should be able to type chemical formulas in all lowercase, or all uppercase, or mixed case, and the software should be able to detect whether the input looks like a molecular formula.
Currently the software can only parse chemical formulas when the element symbols have the first letter capitalized, and the 2nd letter miniscule if it exists. I think this makes sense, so it seems like there should be a separate method to test and convert arbitrary strings, before attempting to parse them. Perhaps I'm wrong about this, and case-insensitive formula parsing would not have performance or accuracy costs, but that needs to be investigated.
This new formula detection code need not take into account whether the formula makes sense chemically. For example, a user might enter a substring of a formula where the charge of the ions does not add up correctly. Don't worry about this for now. Perhaps the search is just a partial formula. See issue #63.
Once we get the initial substring search working correctly for molecular formulas, we might want to look into more options.
These may not be performant given the current data architecture. We could solve this by caching empirical or even equivalent formulas at the expense of storage capacity, but the app is not presently designed to accommodate those performance optimizations.
This depends on: #48
On Safari 16.4.1, on both iOS and macOS, the label "Neutrons" appears upside down.
4K resolution is 3840 x 2160 pixels.
Deciding on what similar means is part of the exercise.
A molecular formula counts how many of each element are present in a molecule, whereas an empirical formula describes the ratios of elements to one another.
For example, the empirical formula for glucose in C6H12O6, and the empirical formula is CH2O.
Provide a function/method to automatically convert a condensed chemical formula, like Mg(OH)2, to a molecular formula, like MgH2O2 for example.
Element 13 (aluminum) through 18 (argon) have a bug in their navigation. Attempting to navigate down the column/group takes us 10 elements to the left. For example, aluminum suggest the next element down is scandium instead of gallium.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.