Wednesday, May 24, 2017

[bjacwkze] 4 cubes

A cube with distinct faces can be rotated to 24 different orientations.  Curiously, there are also 24 permutations of 4 objects, so 4 cubes can be in 24^5 different states, about 8 million.

Vaguely similar is the isomorphism between 60 orientations of an icosahedron and the alternating group A[5].

[sicjuipl] On the beauty of things

Some people remain interested in mathematics, perhaps pursing it as a career, because they feel it is beautiful.  How is the appreciation of this beauty learned, or if it is innate, how is it unlearned in other people?  Obviously this applies to many other fields also.  Understanding this phenomenon is the key to STEM education, but I feel we are charging forward trying to increase STEM education without understanding it, so efforts may be wasted or in vain.

For a job application, can a prospective employer measure whether an applicant considers their field beautiful?  This may strongly influence employee productivity.

Tuesday, May 16, 2017

[nbdfbdlo] Not simulation

I don't think we live in a simulation, because accurate simulation of our universe is extremely difficult.  The story goes, the full quantum treatment with the Schroedinger equation of a single isolated hydrogen atom (1 electron) is relatively easy, but trying to model a helium atom, with 2 electrons, is already so difficult that numerical simulations on our most powerful computers struggle with it.  (This story might be out of date).  The universe, as even one person experiences it, is much more complicated than a single helium atom, and a full quantum treatment is necessary, because a person experiences many quantum effects, e.g., chemical reactions, not falling through the floor.

I suspect that those who speculate that we live in a simulation have never tried computational chemistry or other scientific computer simulations of the real world.  Perhaps they see video games or movies, but likely do not know of the huge amounts of simplifying assumptions made in those products when something only needs to look good enough for entertainment, not be scientifically accurate.

In order to argue we are not in a simulation, we must postulate limits on the computational capabilities of those who might be simulating us.  I suspect simulating our universe is at least NP-complete, probably at least PSPACE-complete.  Research into complexity theory, in our universe, can settle these questions.  We postulate that even in the simulators' universe, it is impossible to build computers to solve those problems in a reasonable amount of time.  Equivalently, but sounding more radical, any universe in which you can build such computers will not be able to sustain life.  (Then again, life, uh, finds a way, even in seemingly difficult environments.)

Simulating our universe is so difficult that it might be easier just to build it for real (in which case, we are again not a simulation).  This echoes one of the biggest potential uses for quantum computers being to do quantum simulations, or, not simulating a microchip in software, but emulating it with an FPGA.

[obcsqmdo] Double U

If it is necessary to sacrifice one letter of the alphabet (perhaps to fit the remainder into a 5x5 square), W seems like a good choice, being easy to substitute two U or two V.  Those digraphs occur extremely rarely in English, so there is little worry for ambiguity or collision.  Sawy vacwm.

Merging I and J, commonly done, recalling Latin, is also not too bad.

[vinlqxgw] Self winding digital watches

Create a digital wristwatch that harnesses enough power from the wearer's movement so that it does not require changing a battery, similar to self-winding mechanical watches.  It will still probably require changing its rechargeable battery due to hysteresis.  Maybe other parts will break first.

Wednesday, May 10, 2017

[ctimitkr] Sea level origin

Plot elevations of every point on earth in spherical coordinates.  The 2 angular coordinates remain the same, but make the radial coordinate the distance above or below sea level, not distance from the center of the earth.  This will cause areas below sea level, especially ocean floors, to poke through the origin and out the other side.  Maybe only do one hemisphere at a time, or omit below-sea-level points.  Let sea level be adjustable.

Inspired by spherical harmonics and electron orbitals, in which negative radii come out the other side.  (Previously.)

[sysxmawj] Mars topographic globe

Create a topographic globe of Mars with elevations magnified.  The goal is to highlight the difference between its hemispheres.  Does the Borealis Basin cause Mars to deviate significantly from a sphere or ellipsoid?

VR or 3D print.

[hoaettpp] The wanderers

Create a planetarium show in which the stars stay fixed and the planets and Sun move at accelerated speed through the fixed field of the stars.  This approximates taking a snapshot of the sky every sidereal day.  This has probably already been done.  Various options: planetary discs made bigger than reality (perhaps also scaled with distance), with tails to better see the path, the fixed background need not be the stars, it could be anything.  Perhaps recreate in virtual reality, because planetaria are expensive.  With VR, we could also magnify parallax and also depict the planets moving closer and farther away from the earth.

Consider using a modern ephemeris (e.g., JPL DE, VSOP87) to accurately model the locations of the planets.  Can the eye notice the effects of Jupiter?

If we make the approximation that all the planets lie on the same plane (ecliptic), then the location of a planet in the sky can be specified with just one number.  Plot that number versus time.

Incorporating distance essentially simulates a geocentric model of the solar system, since the observer (on simulated earth) seems not to move.

[klebiokz] Proving ellipticity

Replicate the experiments that proved that each planet moves in an elliptical orbit (as theorized by Kepler) not circular (as theorized by Copernicus).  Quite amazing is that Kepler proved his result using only naked-eye observations by Tycho Brahe and colleagues.

Replicate the experiments that proved that the shape of the earth is an ellipsoid, not a sphere.

Tuesday, May 09, 2017

[eaxgdlpg] Helium density by phase

Helium as a gas has density 0.164 kg/m^3 at room temperature and 1 atmosphere.  As a boiling liquid, its density is 125 kg/m^3 (which incidentally is much less than water, 1000 kg/m^3).

1 cup of liquid helium therefore has a mass of 0.0296 kg.  The same mass as a gas would have volume 0.180 m^3.  Approximate a party balloon as a 10.5 inch diamater sphere, so it has volume 0.01 cubic meter.  Then, 1 cup of liquid helium is enough gas to fill 18 balloons.  This assumes the pressure inside a balloon is atmospheric pressure, which is false (but might still be close enough) because the tension of the latex squeezing the gas inside would increase its pressure.

Inspiration was, how much do we have to worry about wasting highly non-renewable helium on party balloons?  I'm guessing typical cryogenic applications, e.g., MRI, use gallons of liquid helium.

Monday, May 08, 2017

[kdsvzhsd] Combination door lock

Something I'm surprised is not more prevalent (I don't know if it even exists) is a door lock that is a combination lock on the outside and a thumb turn on the inside.

Of course, combination locks generally offer less security than keyed (a tradeoff with convenience), but many people already don't care to have high security door locks (they probably have other mechanisms in place to deter or decrease breaking and entering).

Can such a lock be made with reliability on par with keyed locks?  If electronic, then power, including battery failure, is an issue.  Previously, exploring human power.

If electronic, then it could be easy to reset, assign, and revoke different combinations to different people.  Can such features be built purely mechanically?

It could be simulated with a combination lock box holding a key to a traditional keyed door lock key.  Multiple combinations could be accomplished with an OR gate.

[wlilyvep] Computing division in cyclotomic fields

Let L be a primitive root of unity, L^n=1.  Let ca=a0*L^0+a1*L^1+...+a(n-1)*L^(n-1) be an element in the cyclotomic field generated by L.  (The coefficients a0...a(n-1) are typically rational numbers in the context of the mathematical objects called Number Fields, from whence "Number Field Sieve".)  Similarly another element cb with coefficients b0...b(n-1).  We wish to divide them, to compute cb/ca.

That is, we wish to find cx such that ca*cx = cb.  Let cx have coefficients x0...x(n-1).  Expand ca*cx by the distributive law and collect by like powers of L.  For powers of L that are greater than or equal to n, reduce the power according to the rule L^n=1, that is, compute the exponent mod n.  Collect by like reduced powers.

Match up the like powers of (collected) ca*cx with like powers of cb and set them equal to each other.  This results in a system of n linear equations in the n unknown coefficients of cx.  Write the system of linear equations in matrix form Ax=b then solve for x as usual.  You probably want some matrix library that can work with exact rational numbers in order for the output coefficients of cx to be rational numbers.

The matrix A is highly structured, containing lots of cyclic permutations of the coefficients a0...a(n-1).  It might be possible to exploit this structure to compute things faster, but I don't know how.

Recall we are computing cb/ca.  If we have a constant ca but lots of different cb, then we can precompute the reciprocal of ca once (that is, divide 1/ca by the above method), then all the divisions become multiplications by the reciprocal.  However, conversely, if we have constant cb but lots of different ca, is there a way to precompute something to make it go faster?  Although the matrix A will differ each time, the pattern of the permuted coefficients remains the same, so it suggests it might be possible to precompute something.

This method can be generalized beyond cyclotomic fields.  The exponents were reduced by the rule L^n=1, so L is the generator of a cyclic group.  We can generalize to a different group structure using different reduction rules for a different group's generators.  (Groups that are not cyclic groups must have more than 1 generator.)  Note that many finite groups are very large, so we would therefore need to do very large NxN linear algebra where N is the order of the group.  We also have to be careful with collecting like powers if the group does not commute.

Pari/GP has some nice built-in functionality for computing division and reciprocal in cyclotomic fields.  We compute an example in the 7th cyclotomic field, with the 7th root of unity, the root of L^7-1=0.  Let's compute a reciprocal of (3,1,4,1,5,9,2):

? 1/Mod(3 + 1*L + 4*L^2 + 1*L^3 + 5*L^4 + 9*L^5 + 2*L^6,L^7-1)
Mod(-145932/4200025*L^6 + 97168/4200025*L^5 - 189607/4200025*L^4 + 106793/4200025*L^3 + 430943/4200025*L^2 - 128532/4200025*L - 2832/4200025, L^7 - 1)

Aside: Pari/GP can seemingly handle modulus being an arbitrary polynomial, not just L^n-1, so there is something slightly fancier going on.  Probably put the highest order term on one side: a(n)*L^n = -a(n-1)*L^(n-1) - a(n-2)*L^(n-2) - ... - a0*L^0, then define a reduction rule L^n = ... by dividing through by a(n).  Actually, just use polynomial division and remainder to reduce.

We can compute the reciprocal of (3,1,4,1,5,9,2) using the linear algebra process described above.  The coefficients come out in the reverse order as above.

? A=[3, 2, 9, 5, 1, 4, 1; 1, 3, 2, 9, 5, 1, 4; 4, 1, 3, 2, 9, 5, 1; 1, 4, 1, 3, 2, 9, 5; 5, 1, 4, 1, 3, 2, 9; 9, 5, 1, 4, 1, 3, 2; 2, 9, 5, 1, 4, 1, 3];
? (1/A)*[1;0;0;0;0;0;0]

[-2832/4200025]

[-128532/4200025]

[430943/4200025]

[106793/4200025]

[-189607/4200025]

[97168/4200025]

[-145932/4200025]

As with quadratic fields, we could also ask that if a programming library provides arithmetic on complex numbers, it could more generally provide arithmetic on arbitrary polynomial field extensions of the reals (complex numbers extend with L^2+1).  Linear algebra, solving Ax=b, is considerably hairier than complex number arithmetic, though.

Because a field extension creates a field from another field, the process can be iterated.  We can invent incredible complicated objects which obey field axioms.

Saturday, May 06, 2017

[rhcuggst] Fast 64-bit factors

For the current ranges of the Cunningham project (August 2016), the largest number is 3^850 = 1348 bits.  For numbers of that magnitude, ECM can quickly find factors of 64 bits or less: between 5 seconds to 2 minutes depending on software, hardware, and luck.

This serves as a nice threshold for factors which do not need to be carefully preserved because they can quickly be recalculated.

[euzimeht] a^n \pm b^n

Consider numbers of the form the sum or difference of two powers (same exponent): a^n + b^n or a^n - b^n.  Integers of that form, or integer sequences indexed by n, seem interesting.  They could use a name.

Famously, Fermat's Last Theorem.

The Cunningham Project investigates b==1.  The above expression has algebraic factorizations.  Inspired by "The search for Aurifeuillian-like factorizations" and the reference to Schinzel.  We could imagine a much larger project investigating b not equal to 1.

Fibonacci numbers are almost this form, where a and b are not integers.  We need to divide through by sqrt(5).  Fibonacci also have neat algebraic properties.  We could define sequences​ r*(a^n - b^n) permitting real (maybe even complex) r a b, such that the value is integer for all non-negative integer n.

[bollcmpa] Blackjack as a speed arithmetic incentive

Play a game which has positive expected outcome for the player, so provides incentive to play it as rapidly and often as possible.  The game's mechanic could involve mental arithmetic, thereby providing incentive to learn to do mental arithmetic rapidly, so it is an educational game.

Blackjack is one possibility, except playing from the point of view of the house (the dealer).  The human dealer (representing the house) plays against one or more computer player/bettors and the card outcome of each game is shown.  The dealer has to sum the cards of each bettor's hand and decide whether to pay out.  Mistakes by the human that overpay a bettor do nothing special other than eat into the house's profits (which the human wants to maximize).  Mistakes which underpay a bettor are caught, the house must pay out, and maybe some other penalty like a time penalty which also eats into the house's profits because the house makes more money the more rounds are played.  (Even if blackjack played optimally is an exception to "the house always wins", we can still cause the house to win by having the computer bettors play less than optimally.)

[mtilcwmv] Friends who won't help you move a body

Friends help you move; real friends help you move a body.

While a social network of real friends would be potentially useful, it would probably run into legal and practical issues: How can you tell if someone is lying?  Many people don't even know themselves if they would help a friend move a body if it came to it.

Next best might be layering on an existing social network declarations that you won't help which friend move a body.  It isn't illegal to say that.  A friend then in need can then filter out those and evaluate the rest, some who might be real friends and some who might be too lazy to have answered the poll.

[ekzonzbp] Late Heavy Bombardment and Base Delta Zero

The description of LHB reads like science fiction: the earth was hit by so many asteroids that it reliquified the earth's crust.

Astroengineer such an event again.  Maybe moving Mars to plow through the asteroid belt would be enough, or maybe we have to move Jupiter again.

[zlvvamaa] Distributed vs Virtual memory

Compare the speed of virtual memory on a local hard disk versus going over the network to access a remote computer's RAM.  Both are likely pretty bad, but which is worse?

The latter could be accomplished by NFS sharing a ramdisk, which is then used on the other computer to hold a swap file.  Possibly useful for a small cluster.  We would like some way of keeping the operating system on local memory, and only allow an application to use the network remote memory, so that a network or NFS fault will only crash the application and not the whole OS.

[jsqaswqe] Base 94

Base 94 seems attractive for compactly encoding data: the printing ASCII characters minus space.  Space can then function as an escape character for signifying metadata.

Byte strings (base 256 with possible leading zeroes) can be unambiguously be converted to base 94.

Curiously iroha is base 47, half of 94.

[imbnyxus] Human-powered electronic lock

Create an electronic lock (perhaps door lock) which does not require batteries or be connected to electrical mains.  Instead, power is supplied each time by the person operating it: pull a lever or turn a crank to generate electricity.  Even better, step up onto a platform which descends due to your weight, generating electricity.  6 inch * 100 lb = 68 joules = 6.8 seconds * 10 watt which seems plenty for operating a lock.

Ideally we would like reliability and ease of repairs / cost of ownership comparable or better than a fully mechanical lock.

Friday, May 05, 2017

[vssboyhp] Model organisms evolving

How much have model organisms evolved over the years to survive -- thrive -- for lab conditions, or, more likely, for the conditions during idle or storage in between experiments?

Does this affect experimental results?  Probably yes in comparing results with older results on the "same" model organism.

[hcqjiotw] Computer improving music

Train machine learning to distinguish between good and bad music.

Then (somehow) use it to improve a given piece of music.  This is different from the typical Holy Grail of a computer composing good music from scratch.

It is also similar to how humans are creative, always building on something else.

[xuzamfou] Parallel ECM

Here is a bash script to spawn several parallel instances of GMP ECM to find one factor.

command rm out.* ; nproc=4 ; for i in $(seq 1 $nproc) ; do echo The_number_to_factor  | nice -19 time -o out.time.$i ecm -c 0 -I $nproc -one 10000 > out.log.$i & done ; wait -n ; killall ecm

Notes:

Use the physical number of processors, not hyperthreaded ones.  Probably bottlenecked by ALU, not memory access.  But hyperthreading might be useful when large B2.

wait -n is a nice primitive: whoever finishes first wins.

Consider --disable-aprcl during the configure step to speed up final verification of prime factors.  It is unfortunate that this cannot be disabled at run time.

Tuesday, May 02, 2017

[shjnmftv] Dual crossword

Create a crossword puzzle with two solutions: large portions of the puzzle have two possible letters, both valid answers to the clues.

Each solution could have a theme which ties it together.

[udvieqsl] Smooth closed curve fitting

Given a set of points, fit a smooth closed curve through them.  Fairly easy and commonly done are splines, but splines are not infinitely differentiable.

Perhaps restrict it to a sum of circular harmonics around a given circle center point.

[ljtodplv] Idioms in a corpus

Given a corpus, do NLP and identify the idiomatic constructions in the language.  The most ambitious is to do this with no other information about the language, so NLP needs to guess at the meanings of words from context, then identify instances of words not being used with their normal meaning.

[mlwmffmf] Beowulf cluster

Connect a small number of computers together to create a more powerful computer.  "Small number": not needing to worry about the many possible kinds of faults, networking can be a single switch.

Because there so many ways people might want to do it, best is probably the Unix philosophy: a collection of small tools that people can hook together in many different ways.  (Bad is a walled garden.)  Many great small tools already exist, e.g., ssh, clusterssh.  What others are wanted?

[tnxlwtph] Chess board which remembers

Create a chess board / set which remembers every move played on it.  We imagine it being passed down through a family.  For example, a grandchild can review a grandparent's lifetime from first learning through mastery.

Massive challenges: very long term reliable data storage, a clock which remains accurate for the very long lifetime of the device (recorded moves are time stamped).  Maybe RAID of USB keys.

Identify and record who was playing?

Somewhat easier in cloud: is a physical chess set too antiquated?

[ogkqcild] Stupid is the new smart

T shirt idea.

[cvctzpor] 4 button sliding

Consider four buttons on a touchscreen:

ABBA
CCDD

Button A is not contiguous; it wraps around.  Unambiguous slides (gestures) are possible between any pair of regions.  3 not possible: CAD.

A tetrahedral graph also works, but it is less elegant in a rectangular region.

[ijpfyqny] Quartet covers

Why aren't there string quartet versions of many (especially modern) songs?  It seems to be a very versatile ensemble.  Hypotheses:

The era of those instruments is passed, so lack of demand for arrangements.  Piano and guitar are more popular.  Or playing recorded music.

The era of cooperation is passed.  It is hard to assemble groups of musicians willing to practice and play together.  Solo piano and solo guitar covers are more popular.

Modern music often wants both drum and bass, and a single cello cannot cover both.  A typical rock band has them separate.

The ensemble, or instruments, are not actually so versatile.  Despite seeming tremendous range of play (as seen in virtuosos), it does not cover very much all the sounds that exist in popular music, or at least, mimicking those sounds requires tremendous skill that most string players do not have.  Possible example: wind instruments can rapidly play notes with varied attacks, and dynamics within a held note.

[qruphqlk] Very narrow text figures

Consider drawing numerals extremely narrowly (in order to cram many into a small space).  Text figures will be better than numbers all of the same height because descenders and ascenders help eliminate ambiguity.

Previously similar.

[xigikele] Questions bin

Ideal is for people who understand a subject to write about it, teaching others.

Next best might be for such people to write questions about their subject, questions that are easy to answer for someone who understands the material but difficult for someone who doesn't.  Others who are experts can review the questions to verify that they have this property.

Writing questions might be less effort than writing knowledge, i.e., answers.  The latter also requires considerable skill in communicating knowledge.

Questions of course provide a directed goal for people wanting to learn material: keep learning until the questions are easy.

Unlike (say) Wikipedia, which attempts to be a compendium of knowledge, a collection of questions almost seems to be a compendium of what the reader doesn't know: a compendium of lack of knowledge.

[ovvwqpvl] Area of the earth in bits

The surface area of the earth is about 5.10e14 square meters.

It would take 48.9 bits to address a particular square meter.  68.8 bits for square millimeter.

64 bits gives regions 27.6 square millimeters, the area of a square with side 5.3 mm.

Previously, meshing the earth.

[mgihrrek] Identity by sci-fi drugs

We don't know the mechanisms by which people form and maintain their identity.  Write about a fictional world in which the mechanisms are known -- invent fictional mechanisms for it -- and the characters actively manipulate it.  Maybe they inject specific chosen drugs into children to program specific chosen identities.  Parents and others with power do the injecting.

We then see the result of the fictional manipulation resulting in people with identities familiar in our real world.

Saturday, April 29, 2017

[tenkclgv] Saved only by good intentions

Consider institutions with the power to do good or harm, and the only mechanism preventing doing harm is the moral rectitude of the people in the institution.  Are there any examples of such organizations which did not go on to do harm?  This is pretty pessimistic.

The road to Hell is a frictionless chute of good intentions.

[avkthzdj] Generalized engraving

Divide a region into a tessellation of equilateral triangles.  Divide each equilateral triangle into a grid of small equilateral triangles.  To each internal vertex of the larger triangles, assign a height value.  Vertices on the edges of the larger triangles remain at height zero, to establish boundaries between the larger triangles.  Interpolate a plane between each small triangle of vertices.  Each larger triangle represents a letter in an alphabet.

This could also be done with a small equilateral triangles dividing regular hexagons in tessellation.  The simplest size has only one internal vertex per hexagon.

Square grid requires more work in interpolating a surface between vertices of specified heights, e.g., bilinear interpolation.

3D print or mill the surface, encoding information into a physical object.

[nhemexzg] Technology to cut corners did not exist yet

Sometimes the older version of a product is higher quality than a newer version, because the technology to make at lower cost (but lower quality) did not yet exist when the old one was made.

This seems problematic: technology marches forward and things get worse.  Probably intellectual property issues preventing a different manufacturer from continuing to produce the higher quality version.

[zjutseyk] Padlock logic

A bunch of padlocks on a hasp with multiple holes functions like an AND gate: all locks must be unlocked in order for the hasp to open.  This is seen in safety lockouts.

A bunch of padlocks linked in a chain functions like an OR gate: at least one of the padlocks must be opened to break the chain.  There remains the mechanical or geometric problem of securing something (like a door) with this chain of locks.  A pin can be substituted for a padlock, and the pin can have a hole on each end, each which can take a padlock or another pin.  Other specialized hardware exists, used for granting many different parties access to land.

One can construct complicated graphs of AND and OR locks, though again there may be mechanical difficulties of fitting a padlock to connect desired nodes.  Perhaps not so bad with lengths of chain where necessary.

[zvezqqhy] Spinning the Earth faster

How much would you have to change the rotation rate of the earth for noticeable geological things (e.g., earthquakes) to start happening as the earth settles into a new oblate shape due to the change in centrifugal force?  I suspect small changes suffice: centrifugal forces will easily overpower the rigidity of the planet.  How would one change the earth's rotational speed?  Maybe launching flywheels into space.

Original thought: make launching satellites into low earth orbit easier by enhancing the speed of the equator.  Current equator speed 0.465 km/s.  Low earth orbit 7.8 km/s.  If we increased the equator speed to match Low earth orbit, the earth would break apart, though bad things would happen before that.

The Earth's orbital speed around the sun is 30 km/s, pretty fast.  But outer planets travel much more slowly.  Are there planets whose surfaces or cloud tops are sometimes traveling backwards with respect to their orbit around the sun?  Dropping something into the sun would only require escaping the planet's gravity well, not cancelling the orbital velocity.

Friday, April 28, 2017

[pqqaicol] One Ring Singularity

"And into this ring he poured all his cruelty, his malice and his will to dominate all life."

All these things that Sauron poured into his horcrux added up to considerable mass-energy packed into a very small volume.  The density was so high that the object gravitationally collapsed into a singularity.  Sauron had added rotational momentum, so it was a ring singularity, as found in a Kerr black hole.

No, you could not wear this ring on your finger.  But it could be an extremely destructive weapon.  Disappearing when wearing the ring represents leaving the universe when crossing its event horizon.

The One Ring being a singularity explains why it was so hard to destroy.  Perhaps the only way to dispose of such a thing without it causing huge damage to its surroundings is to drop it into another black hole: Mount Doom.

The Lord of the Rings: In Space!

[bvahtsov] Cunningham sculpture

Create a sculpture, probably something like a long wall, onto which the Cunningham project, maybe just base 2, is inscribed.  Leave blank spaces for unfactored cofactors.  New factors get inscribed over time: the sculpture changes.  Maybe ceremonies for new factors.

Probably separate removable panels to make easier inscribing new factors offsite and correcting errors.

What format should be inscribed?  Semi-compressed like in the Cunningham book, or full factorization to make it easily comprehensible to the general public?  Base 10 or binary?  Binary seems apt, especially for the base 2 table.  Many of the prime factors have pretty patterns when written in binary.  Previously, base 32.  Maybe barcode format (e.g., QR) for good error correction -- the sculpture serves as a (very) hard copy, more resistant to destruction than paper or electronic.    If preservation and longevity are goals, how should the sculpture be designed: what material, what styles and techniques of engraving?

Vaguely inspired by: Vietnam Memorial Wall, New England Holocaust Memorial (which consists of many numbers).

Previously, Mersenne.  Cunningham has an advantage over Mersenne in that Cunningham is self-certifying.  Anyone can verify that the list of factorizations (excluding blank spaces) is complete up to the maximum exponent; anyone can verify that the factorizations are correct.  In contrast, it is pretty difficult for someone to verify the primality of the large Mersenne primes, and it is very difficult for anyone to verify that a list is complete, that there are no skipped primes in the gaps.

[ucuttxtc] Mersenne sculpture

Create a collection of physical objects recording, representing, celebrating the discovered Mersenne primes so far.

Distinct objects is better than a single fixed object (e.g., a plaque allowing for new entries to be added at the end) because new Mersenne primes could be discovered in the gaps between currently known ones.

Easiest for each prime is an object with (at least) one linear dimension proportional to the log of exponent, onto which the exponent is inscribed (perhaps several times​ on different sides, backwards and forwards, for redundancy).

[ygkliadl] High precision real and modular cube roots

Computing to high precision a cube root in the field of real numbers is kind of difficult: we need special algorithms like Newton's method and out-of-core FFT-based multiple precision arithmetic.

Computing a cube root in certain fields of modular arithmetic is extremely difficult; this is the basis of the security of RSA.

Are these two difficulties related?  (Probably not.)  It would be interesting if, say, a trillion bits of real precision could be interchanged with a 100 bits of modular precision.

Wednesday, April 26, 2017

[qhxrhaqe] Attempting to destroy the One Ring

Frodo delivers the One Ring to Rivendell, and before the Council meets to go send the Fellowship into Mordor to destroy the ring, the elves try their hardest to try to destroy the ring on their own (but fail).  Depict with special effects the ring resisting all realistic and elven-magical attempts to destroy it.  Celebrimbor is dead, but perhaps they preserved his knowledge of ring-smithing, but even that was useless.

What are the mundane things the elves tried, modern and realistic future muggle technologies?  Acid, heat (yes the elves have a particle accelerator), water-jet cutter, tension and pressure, explosives (yes the elves have nuclear weapons).

(Perhaps juxtapose with how easy it was for Tom Bombadil to destroy it, or at least, make it disappear.)

[ylikmliz] Sun script

Consider a shape resembling the kanji character for sun 日 but with X's in the upper and lower rectangles.  The X's contribute 4 strokes total, and the the four sides are another 4 strokes (not the traditional convention in which the 4 sides are drawn with 3 strokes).  The middle bar adds a 9th stroke.

This also resembles a seven-segment display (with X's) except that the vertical sides are one continuous segment instead of broken into two.

Let the presence of absence of each of the 8 strokes that are not the middle bar encode 8 bits or one byte.  The middle bar is mostly optional, only necessary when the character might be confusing without it, most notably for encoding zero, which has no other strokes so would otherwise be a blank space.

[wuzostlr] Democracy for succession

Perhaps the purpose of democracy is simply to decrease the turmoil and turbulence that occurs in other forms of governments​ when a transition or transfer of power occurs.

Certainly, turbulence can and does occur in democracies, and peaceful and smooth transitions​ of power can and do occur in, for example, monarchies and dictatorships, but we hypothesize that the average rates over time differ.

Perhaps Amartya Sen's observation that democracy seems to avoid famine is only a side-effect of this.  In other forms of government, the government becomes extremely dysfunctional during power struggle turmoil (which might be occurring behind the scenes even before the current leader loses power), allowing things like famine to occur because nobody is minding the store.  (Of course, we can see dysfunction and turmoil in power struggles in a democracy also, so it remains to be identified exactly where the difference is.)

On one hand, this model suggests we ask too much of our democratic government: all we should really ask for are peaceful transitions​ of power, and not, for example, for the government to actually do good - e.g., promote the general welfare - with its power.  On the other hand, because we are avoiding turbulent power transitions and energy wasted on power struggles​, it would be nice if the government could spend its surplus energy on doing good.

[snwocelw] Cost of crisis cooperation

A crisis happens, and people who would normally not get along are forced to get along with each other.  Normally this is depicted as a good thing.  Invert the trope: cooperation came at a cost, perhaps social or psychological.  Explore or depict that cost.

Tuesday, April 25, 2017

[ymkcqmog] Polynomial through points

Given some points on the plane, fit a minimum-degree polynomial through them.  This is easy, but the resulting curve depends on the orientation (angle) of the axes, which can be arbitrarily chosen.  Which one should be chosen?  Perhaps the one which minimizes the arc length of the curve segment through the given points.

[oovttyoz] Check the reference

Given an academic paper with an inline citation to another work, create a tool which fetches the other work, does NLP on both works, and verifies that what the citer says about the cited is valid.

Also Wikipedia citations.

[mxxavtrh] Lab triple alpha

Demonstrate in a laboratory the triple-alpha fusion process, yielding carbon-12.  This seems difficult bordering on impossible.  Maybe Farnsworth fusor.

This is, anthropically, the most important nuclear reaction in the universe.

Ironically, getting the ionized helium nuclei needed as input is extremely easy: alpha particle.

Vaguely inspired by the 21 cm hydrogen line , which is very common astronomically but had never been observed in the lab and even initially seemed impossible to see in a lab because of the rarity of the "forbidden" atomic transition.  However, hydrogen masers have since replicated astronomical observations.

Monday, April 24, 2017

[vqoxpezv] Omitting named function arguments

Consider a programming language whose syntax for function calls requires naming each passed argument, but as a benefit for this extra verbosity, allows specifying the arguments in any order:

f { foo = 3, bar = True, baz = "hello" }

If an argument is omitted, there are several things that could happen, depending on how the language is defined.

  1. Compile time error.
  2. It becomes a partial function application, a lambda function of the missing arguments.  Haskell does this with currying when trailing arguments are omitted.  (Tangentially, in Haskell, creating a lambda for a missing argument that is not the last one requires a little bit more work.)
  3. The missing arguments get silently assigned a lazy "undefined" value, which results in a run-time error if the "undefined" is ever evaluated.
  4. The language permits the function definition to provide default values to some omitted arguments.  If there is no default value, then compile-time error.  C++ does this.

It would be nice if a language could provide all of these options, even though strictly speaking they are mutually exclusive.

An imperfect solution is to have special keywords invoking #2, #3 and #4, perhaps something like f { foo = 3, REST UNDEFINED } or REST DEFAULT or REST LAMBDA, explicitly indicating indicating what do with the rest of arguments omitted at a call site.

I have seen default values implemented in Haskell using its typeclass mechanism, e.g., configuration values in xmonad.  Default values are overridden using record modification syntax.

A hybrid between #1 and #4 would have the compiler always produce an error if arguments are missing, but indicate in the compile error that a default value is available via an explicit keyword (as above) when one is.

A list of named parameters and their values looks kind of like a record or struct.  Make such a list a real type and allow variables of that type to be declared and assigned.  A special syntax allows invoking a function with a record instead of a named argument list.  If two functions have the same named parameters, are their parameter record types the same?  Duck typing.

This scheme also gets​ messy when arguments may be omitted; we need to be able to define record types with only a subset of the parameters of a function, as well as possibly allowing REST UNDEFINED or REST DEFAULT as dynamic values in the record.  If using REST LAMBDA, and whether a record field is defined is only known dynamically, then type checking and kind checking has to be postponed until run-time.

One of the things that makes me uneasy about Haskell record syntax is the following: REST UNDEFINED (#3) occurs implicitly when records are constructed whereas REST LAMBDA (#2) occurs when omitting trailing arguments when using positional constructors.  The latter will usually cause a type checking error if the argument was omitted accidentally whereas the former waits for a run-time error.

Previously: Same idea.

Having to specify a function name as well as all its parameter names might become tedious for the programmer.  Perhaps have mechanisms for a programmer to define alternate parameter names or omit a name.  Vaguely related: by type.

Saturday, April 22, 2017

[tpfqrkkk] Earth surface area

Approximating the shape of the earth as an oblate ellipsoid, we use the following values from wikipedia (which cites IERS):
a=6378136.6 meter
c=6356751.9 meter
f=298.25642^-1

Note that the values are not consistent.  If we compute flattening from a and c, we get f=298.25701^-1.

We can compute eccentricity from c and a:
e = sqrt(1-c^2/a^2) = 0.081819221

Or we can compute it from flattening:
e = sqrt(2*f-f^2) = 0.081819301

We use the following formula from Wikipedia for the surface area of an oblate ellipsoid to compute the area of the Earth in square meters:
2*Pi*a^2*(1+(1-e^2)/e*atanh(e))
= 5.1006556e14 m^2
= 5.1006555e14 m^2
using the two different values of eccentricity computed above.

We have tried to use significant digits correctly.  The above two values of the earth surface area are considerably higher precision than typically reported values of earth surface area, which usually give only 2 significant digits.

We have not made any corrections for general relativity.

[cogfpzpk] Trump apology for Holocaust denial

Of the many, many groups that the Trump adminstration has offended thus far, is "Hitler did not use chemical weapons" the only offensive thing said by the administration (through its mouthpiece Sean Spicer) that it has apologized for?

Does this speak to the political strength of Jews compared to that of other groups the administration has offended?

Using toxic chemicals for execution of prisoners is qualitatively very different from using toxic chemicals for killing on the battlefield.  It seems bad faith to equate them, though taking a political opponent's words and interpreting them in bad faith is (cynically) synonymous with politics.

The type of chemical differs considerably between gas chambers for execution (carbon monoxide, hydrogen cyanide) and battlefield (mustard gas, sarin, VX).  The delivery method differs considerably between execution (pump the gas into a room) and battlefield (bombs and munitions, outdoors).  On the battlefield, there is much more danger of the gas hurting your own soldiers, for example, due to a change in wind direction.

Even the U.S. has used gas chambers for execution, and continues to use toxic chemicals for the execution of criminals.  Does that mean the U.S. is doing the same evil as Hitler and whoever it was in Syria (presumed to be Assad)?  There are of course considerable differences in the justice system preceding each use of chemicals for killing, but the prohibition of the use of chemical weapons does not specify a standard of justice that makes using the weapons OK.

Incidentally, Imperial Germany did use mustard gas on the battlefield in World War I, and presumably the technical knowhow survived into the Nazi regime, so Hitler may have consciously chosen not to use chemical weapons on the battlefield in World War II, even though he easily could have.  Use of weapons of mass destruction in WWII would have to wait for another country.

Friday, April 21, 2017

[frhoywsb] Money can't buy happiness

Why not?

Like Soylent Green, the answer is, it's people of course, perhaps the presence of people you do trust, and can trust because they see you as One Of Us.  People are social animals with happiness deeply ingrained into tribe membership.  The tribe boundaries are equally deeply ingrained into identity.

Interesting extreme examples are celebrity marriages failing.  If money could buy happiness, those people could afford it.

[qwfubouw] Symmetric Hamiltonian cycle of the faces of a cube

Top, side, side, bottom, then the two remaining side faces in the order which preserves bilateral symmetry.

[gvkjyyui] Base 6

Consider base 6.  Testing divisibility by 2 and 3 can be done by examining the last digit.  Similarly, decimal (hexal hexary) expansions of fractions with those denominators​ terminate.  Testing divisibility for 5 and 7 can be done by methods​ analogous to 9 and 11 in decimal.

6 = 3! might be useful.  Number of faces of a cube.

Previously, base 30.

Inspired by, the fingers on one hand can specify one digit in base 6.  Though finger counting is unary.

[tdenfgzv] Dumbbell escape horizon

As two black holes merge, is there a moment when the escape horizon is shaped like two tangent or slightly overlapping spheres or spheroids?  Space and spacetime are shaped very weird -- not convex -- in the vicinity.

[fgmfgmql] Checking base 10 arithmetic

One can check arithmetic in base 10 by casting out nines, and similarly computing remainders by alternating sums for 11 and the beautiful 1001=7*11*13.  (So 11 is repeated effort.)  We can also get 999=37*27 and prime 101.  Is base 10 especially nice in its ease of checking arithmetic?  We are probably looking for large least common multiple of b^n plus/minus 1, over small n.

Monday, April 17, 2017

[ughuslfb] Brain-damaged cockroaches

Mythbusters demonstrated that cockroaches seemingly recover after being submerged underwater for 30 minutes.  However, were they permanently damaged by the experience?  Humans suffer permanent brain damage after oxygen deprivation in cases of near drowning.

Initially, it seems comical to try to measure whether a cockroach suffered brain damage, as they didn't have much of a brain to start with.

[czyaeert] Continuously extruded baguette

Create a very long baking system in which dough is continuously extruded onto a conveyor belt, allowed to rise, then baked, all while on the same long straight constantly moving belt.  Out the other end comes an infinitely long baked baguette.  Probably not practically useful.

Inspired by the baking machinery at Krispy Kreme, including the zig-zagging proofing section.

Same idea for constructing starships.

[jkbtasqi] Proofs of specific NP or P

Collect interesting or clever proofs of specific instances of NP-complete problems being proved to have no solution.  Inspired by proofs that certain graphs have no Hamiltonian path, where the general Hamiltonian path or cycle problem is NP-complete.  Also easily applicable to satisfiability.

We're probably wandering into co-NP.

A proof that a problem has no solution done by enumerating all possibilities is mundane (and exponentially long (actually just super-polynomial), by the nature of NP).  Interesting proofs avoid the exponentiality.  Such proofs, perhaps many taken together, might provide insights into the nature of class NP, of course aiming for resolving the P versus NP problem.  Ultimately we are looking for indications that there exist problems for which one cannot avoid exponential computation to prove there is no solution.

Conversely, a solution to a specific NP (not NP-complete) problem (for which no polynomial time algorithm is originally known) found by brute force is mundane.  Solutions found in a way that generalizes to polynomial-time are interesting, essentially proving that the problem is in P.  Collecting many such proofs may be useful.  Again, we are looking for commonalities in ways problems get interestingly proven to be in P.

[jyketcyj] Humans improving a chess engine

Given a game in which a chess engine loses (probably against another engine), ask unassisted human players to identify the losing move (perhaps allowing probabilities to express degree of certainty).  (The answers can be verified with longer computation.)  Moves which human players can quickly and accurately identify as bad are candidates for areas of improvement for the losing engine, perhaps even automated improvement using machine learning.  (This assumes anything a human can compute quickly, a computer should be able to, too.)

Previously, on ways a human can help improve a chess program.

[slnpxpzm] Graphs with surprisingly large chromatic number

Create a gallery of graphs with surprisingly large chromatic number, where "surprising" is subjective.  Perhaps graphs which are almost planar, having very few edge crossings, but require far more than 4 colors.

[ymjknqvs] First perfect game of chess

When was the first game-theoretically optimal game of chess played, where neither player made moves which altered the theoretical game value of the opening position?  We do not require players to put up the strongest resistance (for example, if a position is lost).  Has the first perfect game already been played or has it yet to be played?

Of course, barring tremendous improvements in computing, we can never prove whether any given game is a perfect game, though we can disprove some games.

Consider a contest (of hubris), nominating games (the older the better) believed to be perfect games, that stand up to all current human and computer analysis, and that are predicted to stand up to all future analysis.  Neither player makes a half-point (or full-point) mistake.

I suspect the game value of the opening position is a draw, so unfortunately we are looking for old insipid draws where both players play very safe moves: "grandmaster draws".

Comically, if we allow game results by mutual agreement, then one of these zero-move games must be the perfect game:

1. Draw agreed 1/2-1/2

1. Black resigns 1-0

1. White resigns 0-1

In a similar vein, if the game value of the opening position is decisive (say, white can force a win), then a game in which black immediately plays very bad moves and quickly gets checkmated may be a perfect game: we do not require black put up the best resistance from the losing opening position.

Sunday, April 16, 2017

[vsbfzrka] Preventing DoS against stretched passwords

Apply key stretching to your login passwords, e.g., /etc/shadow.  Unfortunately, this makes easier denial-of-service attacks with remote ssh logins by spamming a server with password attempts, each which consume considerable CPU to test and reject.  How can this be avoided?

Easiest is proof-of-work (e.g., Hashcash) submitted by each client for each password validation attempt.  Client requests with more Hashcash can preempt currently running validations.  Clients also need a way to query the current queue to know how much Hashcash to submit to aim for the front of the queue to be able to log in when a DoS attack is in progress but not waste time computing Hashcash when there is no attack happening.  Even this scheme may be insufficient against a distributed denial of service attack (DDoS).

Harder is for the password validation computation be done by the client.  I do not know how this could work.  The delegation capability of Makwa might be useful.

Asymmetric key (e.g. RSA public and private keypair) logins do not have to do an expensive hash a password, at least not on the server side.

[rynazulu] Grim reaper pendulum

Create a kinetic sculpture of a grim reaper swinging his scythe at a frequency that matches the actual average rate of death in the world.

Thursday, April 13, 2017

[jtzxkpvw] First against the wall when the revolution comes

Who should be assassinated / executed / otherwise incapacitated when consolidating power, to eliminate and prevent formation of opposition?

Seemingly obvious are leaders of the opposition, but after that things become less obvious:  People who could potentially become leaders of the opposition.  Any competent people who could potentially be useful to the potential opposition, not necessarily as a leader (but they could be potentially useful to your side as well).  Who else?  And how can one find these people?  Answering these questions​ requires understanding how society operates and adapts in response to changes.

Inspired by real mass political executions, e.g., Katyn, in which the Soviets executed a great many competent Polish people, seemingly with considerable success: it took many generations for effective opposition to form.

Vaguely similar is brain drain, which also weakens a region by depriving it of competent people.

Tuesday, April 11, 2017

[nznriibb] Two useful functions

For a calculator: Modular exponentiation, extended GCD.  Latter needs two outputs.

Other number theoretic functions: Floor, mod, factorial (gamma), nCr.

Previously: factoring

[rgettuwe] Swimming to the center of the sun

Indestructible Superman visits the Sun and tries to swim to the core.  How difficult would this be?  How strong is the radiation pressure?  Assume Superman can't just change his density and sink the whole way.

Same questions, except for a white dwarf, maybe Sirius B.  Assume he remains indestructible despite being away from the yellow sun.

[nzvscjxd] Rational roots of a polynomial

Given a polynomial with integer coefficients, determine all of its rational roots.  What is the computational complexity of this problem?  At first glance, it seems one must factor the leading coefficient and constant term, but maybe there are tricks of solving the polynomial in floating point using for example Newton's Method, then testing whether each found solution is a rational number.

Given a monic polynomial, determine all of its integer roots.  Determine all of its Gaussian integer roots.  Monic polynomial with Gaussian integer coefficients.

[edptgsmd] African-American immigration

To what extent is the conflict between blacks and whites in American society similar or identical to conflict between immigrants and natives (less recent immigrants)?  The model is that the apartheid culture that existed for African-Americans before the civil rights movement (and probably still partially exists now) could just as well have been another country, and the civil rights movement represented an relaxation of restrictions on travel across the border.

Understanding one in terms of the other may help propose or eliminate potential solutions.

[kjpopgqp] Murdering your spouse to marry another

A classic noir plot involves one partner murdering their spouse for the purpose of marrying another, perhaps someone they love more.  (Interestingly, the plot is done in both gender directions without either seeming like an inversion of a trope.)

Assuming this happens in real life, what is going on in society that sets up the incentives for murder?  Obviously, living is so much better than dying that it is surprising that some sort of Pareto-improvement deal could not be worked out that avoids killing.  It might be that the surrounding society prohibits or otherwise punishes divorce, though that still begs the question why, especially since such a practice incentivizes murder.

One possible such incentive, good for noir, is that the jilted first partner will kill the new second partner to eliminate the new competition, so the first partner must be killed to save the second: game theory.

[ocilzptj] Arithmetic in any quadratic field

If providing arithmetic with complex numbers (in an application, library, or calculator), it is only slightly more complicated to provide arithmetic in any quadratic field.  For a + b*sqrt(D), I think a, b, and D can be any real number, though mathematicians have identified rational a and b and integer D to be especially "interesting".  D=-1 is complex arithmetic.

[orgxasdy] Inverting a regex

Given a regular expression, list all possible strings that match it, perhaps in order of length.  This seems relatively easy, perhaps breadth-first on the nodes of a finite automaton.  Easiest is if the regular expression is anchored with ^ .

Sunday, April 09, 2017

[qzdahqpt] Turing machine walking a tree

Instead of walking along an infinite tape, modify a Turing​ Machine to walk along an infinite binary tree.  In each state transition, the head can move to the parent or to one of the two children (or possibly stay in place).  Data can be written at each node, analogous to tape cells.

Perhaps make available in the state whether a node is a left or right child.

The tree could have a root node, analogous to a Turing machine tape that is only infinite in one direction, or the parents could continue upwards forever, analogous to a tape that is infinite in both directions.  A regular Turing machine can be simulated by just traversing the leftmost nodes.

This machine model seems attractive to write real programs for because it can address exponential amounts of memory in linear time, unlike the traditional Turing machine which takes linear time to get to an address.

Previously on tree-structured Turing machines.

[ezfobhcr] Non equal temperament

When using a tuning system that is not equal temperament, transposing a piece to a different key can make it sound significantly different​, with some intervals sounding more in tune and others sounding less.  This could be used artistically.

With a synthesizer, one could invoke different tuning systems with a touch of a button.

Friday, April 07, 2017

[rpyxdyva] Luke, you are your father

In a shocking alternative climax of Empire Strikes Back, Darth Vader reveals that Luke is destined to time travel.

Previously: Luke is his own Grandpa​.

[bdjgpymn] Reforging Narsil

Tell a (new) story of how reforging Narsil in the Lord of the Rings was no easy task: the sword had to be reimbued with magic in order to command the Army of the Dead.  Perhaps it was continuously worked on by elves for 3000 years (not unthinkable for immortal creatures), and completed (as fate would have it) just in the nick of time.

Invent metallurgy that takes thousands of years: it probably already exists.

[mevrcrul] Chuck Norris survives first contact with the enemy

"What's the battle plan?"

"Chuck Norris."

"Yeah!"

[naokatvv] Splitting and merging rectangles

Consider operations of splitting and merging rectangles to form new rectangles.  Motivation is for a tiling window manager.

Nicer subset is hierarchical: a rectangle can be divided into multiple like a tic tac toe grid.  Merges only permitted if nodes share the same immediate parent.

Not hierarchical: arbitrarily split lines, almost arbitrary merges: a tricky task to decide what may be merged and form a rectangle.

Interesting operations: extend line (perhaps rejoining with an original line that got split).  Shift line (or only a portion of a line, perhaps non connected).  Shift vertex, moving two lines at once.  Proportional shift: shift a line keeping proportions within a region the same.

[fsyiqavl] Star Wars Mexican standoff

Luke fights Darth Vader in the presence of the Emperor.  New backstory: the only reason Luke wins is because he had the Emperor's help, who was doing Battle Meditation to help Luke and hinder Vader.  The helps explain how a neophyte Jedi could defeat one of the most powerful Sith.

The Emperor then attempts to single-handedly turn or kill Luke, but fails.  He might have succeded if he and Vader worked together, but it was perhaps a strategic error to have just betrayed Vader setting him up for slaughter.  Vader was in no mood to help.  (It is quite unlike the Emperor to make strategic errors.  Can this be explained?  Maybe someone was doing Battle Meditation against him.  Maybe he hadn't expected Luke to defeat but not kill Vader, introducing an unexpected extra variable.)

Vader turns and kills the Emperor.  Normally, this would not have been possible (we assume the Emperor is stronger, or else the tables would have been turned already) but essentially Luke and Vader were working together: Luke was busy Force-resisting the Emperor's lightning bolts, sapping the Emperor's strength.

We see essentially all possibilities of any 2 being able to defeat the remaining 1.  This had already been hinted at in "Together we can rule the galaxy as father and son."

[mhxokkmu] Two quadrilaterals

Two families of quadrilaterals:

Congruent (same length) diagonals, not necessarily intersecting at midpoints.  If they intersect at midpoints, then it is a rectangle.

Orthogonal diagonals, not necessarily same lengths or intersecting at midpoints.  If same length and intersect at midpoints, then it is a square.

Similar ideas possible with octahedron.

Thursday, April 06, 2017

[ptygiaxw] Sexual nurture

Obvious part: people differ in whom they are attracted to.  More to the point, there is considerable variation in specific qualities in another desired person driving each person's sexual arousal and attraction.  (Original thought: sex is fun.  Exactly what about sex makes it fun?  The answers will differ a lot from person to person.)

Profound part: Therefore, sex drive must be learned behavior; it must be taught.  If it were innate, we would expect less variation in what we are attracted to.  Very roughly, there just aren't enough genes to encode the observed variation in preferences.

Of course, without sex drive, humans would quickly go extinct.  After making the profound observation, we muse at how it's surprising that humans haven't gone extinct already, having at some point in some sort of dysfunctional society failed to effectively teach sex drive to the next generation.  I suppose it is similar to how some baby animals need to be taught what to eat by their parents; they do not instinctively eat what tastes delicious.

Giant questions: what are the mechanisms by which sex drive is taught and learned?  What causes a person to become sexually attracted to which qualities?

These mechanisms must be very robust -- or else extinction.  I suspect they form a huge part of how society functions, including manifesting in conflict.  Our ability and predilection to learn sex drive is likely innate; I suspect our predilection to teach it is also instinctual, which means that a huge part of how society functions is hardcoded instinctual behavior.  This places limits on how much we can change society for political or altruistic reasons: instinct is very powerful -- or else extinction.

The answers to the giant questions seem gettable.  It's kind of surprising the answers aren't known already, given how important the questions are.  Crowdsourcing might be useful.  Techniques in analyzing Big Data might be useful.  However, the fact that it is a taboo topic might (continue to) impede things.

With this model, it is easy to explain the existence of preferences and behaviors commonly called sexual deviancy, some seemingly paradoxical in being not conducive to producing babies: people simply learned them.  (However, with all sexual preference being learned, it's hard to call learning some things normal and others deviant.  The only preference that might fairly be called normal is learning no sex drive at all: only deviancy saves us from extinction.)  Understanding what specific environmental experiences cause people to learn which sexual preferences is still work to be done: they are the giant questions above.  (We can see how this is a taboo topic: having understood the mechanisms by which someone became sexually deviant, we can then place blame for the deviancy on the people around them doing or allowing those mechanisms, as well as absolve of guilt criminally sexually deviant behavior.)

This model is scientifically testable, in principle: after hypothesizing a mechanism by which people learn some sexual preference, some aspect of sex drive, we can do experiments exposing one group to the mechanism and another group not.  Unfortunately, such experiments seem highly unethical and very difficult to do in a controlled manner.

We can also continue to test the other side of the nature versus nurture debate: look for correlations or lack of correlation in sexual preferences between genetically related individuals.  Of course, this is tricky: genetically related people often live in very similar environments.  We can again imagine highly unethical experiments.

What evolutionary advantage was there for humans to have this indirect method of acquiring sex drive?  Probably something to do with tribes.  Is it unique to humans?

Previously: What is beauty?  Having learned some preferences, people often do not, and cannot, change.  We could consider doing genetically what is currently done memetically.

[efxrossg] Animusic

Animusic videos are nice concepts: depicting real synthesized sounds as if made by fictional musical instruments difficult or impossible to build in the real world.  Additional ideas:

Even though the instruments are fictional, make them as realistic as possible within the rules of their fictional world.  For example, playing the instrument the same way always results in the same sound; equivalently, if we hear a variation in an instrument's sound (needed for musical reasons), there must be a corresponding visual difference in the animation.

Let a mechanism to play an instrument require a solving a formidable puzzle, perhaps a constraint satisfaction problem, that no human could solve live if the instrument existed for real.  Maybe balls bouncing off each other in complicated ways before finally hitting something to make a sound.

Depict the instrument in virtual reality, allowing the viewer to see it functioning from arbitrary angles and distances.  Cutaway and adjusting lights.  Rewind and slow motion.

[jdykyqqp] Bacteria defending the planet

Bacteria defeat the aliens in War of the Worlds.  Create a fictional epilogue which reveals that bacteria have won many times before against many previous alien invasion attempts.  They are the true defenders, perhaps even sinister or selfish in keeping Earth as a playground for only themselves and their toys.

Tell stories of other invasions: aliens versus dinosaurs.

Tell stories of the reputation Earth has among alien civilizations that have tried to invade and failed.  Perhaps invading Earth is an absolute last resort, an act of desperation well understood likely to be an act of suicide.

[hftrsoja] Stars

Place congruent isosceles triangles on the edges of a regular polygon, forming a star.  Several interesting choices for triangle size: equilateral, same size as the triangle formed by edge and center, extension of adjacent edges (as in the classic pentagram).

Wednesday, April 05, 2017

[xqvyhosk] QR code from video

Decoding a 2D barcode from video has some issues not present in decoding from a single static image.  Video is a stack of many images which can be combined to decrease noise, though how to align and combine them seems nontrivial.

Weird image shear can occur if the camera or the barcode move in the middle of rasterizing a video frame.  Perhaps consider video as a collection of raster lines rather than frames.

[asrvtxuw] Wisconsin bubbler

Create (as a joke) a pair of drinking fountains, one labeled for Wisconsin people and one for others.  The Wisconsin one makes bubbling sounds when the button is pressed but does not emit water.  Or, emits soap bubbles.

Alternatively, a water cooler with multiple tabs: pushing the Wisconsin one merely bubbles air through the water in the jug and again does not emit water (this will require some engineering, because the incoming air then needs to be taken back out.).

If you want water, use the water fountain, not the bubbler.

[swzmsxnb] Refine mercury from seafood

Demonstrate smelting techniques to obtain a small amount of metallic mercury from fish bought from the store.  Inspired by YouTube Cody's Lab.

[ezltaurg] Relish the battle against copyright

Keep developing technical means to evade copyright enforcement because it is good preparation for when the government or other powerful entities engage in "real" censorship, for example, against political speech.

Real censorship will have the government try to unmask and punish the speakers of the speech it wishes to suppress.   It will have the government attempting to install spyware and malware onto users' computers.  It will have the government attack or force cooperation with the distribution channels, e.g., ISPs, to try to suppress speech.  It will have the government force cooperation with hardware manufacturers to prevent the transmission of certain speech or identify people who do.  It will have the government punish software developers who develop tools to disseminate speech.  It will have the government attempting to poison (with useless chaff) and do denial-of-service attacks against systems that are being used to disseminate the speech to be suppressed.  All these things the entertainment industry already does and has done in trying to enforce copyright.  Defending against these attacks and circumventing these restrictions represent important technical challenges to solve in preparation for combatting real censorship.

Note well that achieving copyright reform through political means is not helpful in practicing to combat real censorship: whatever politics (unimaginable IMHO because of the political strength of the entertainment industry) that achieves copyright reform is unlikely to be applicable in a political battle against real censorship.  In fact, it is better that the entertainment industry retain as much legal power as possible, in order to simulate the tautological legal power a government will exercise when it does real censorship.

A healthy robust technical infrastructure for evading copyright may induce a government not to even try real censorship.

Tuesday, April 04, 2017

[pubesiij] Non secret FLT

Imagine a world in which Andrew Wiles instead of working in secret on Fermat's Last Theorem, published early and often.  Would things have turned out differently?  If so, how?

Perhaps someone would have beaten him to the proof, or at least, completed first whatever ended up being the final step.

Perhaps academic ridicule for working on such a silly project (because of so many previous failures) would have resulted in incentives, perhaps financial, to abandon it long before even getting close to the solution.

Monday, April 03, 2017

[cpsjxejd] Implementing Goodstein

The Goodstein function is one of the fastest growing computable functions.  As best as I can tell, it grows faster than the Ackermann function and faster than Conway's chained arrow notation.  It is fairly straightforward to implement -- implementation is where the rubber meets the road when a function claims to be computable: source code in Haskell here.

Some excerpts of code, first demonstrating converting to and from Hereditary Base notation:

-- curiously, these Terms may be reordered, i.e., commutative, which is different from normal base N notation which is place value.
type HerditaryBase = [Term];

-- value is Integer * base ^ HerditaryBase. base is given exogenously.
data Term = Term Integer HerditaryBase deriving Show;

-- wrap Base in newtype to defend against accidentally mixing it up with a coefficient
newtype Base = Base Integer deriving (Show, Enum); -- Enum needed for succ

-- output is little-endian
int_to_hb :: Base -> Integer -> HerditaryBase;
int_to_hb base x = zipWith Term (radix_convert base x) (map (int_to_hb base) [0..]);
-- [0..] are the list of exponents

hb_to_int :: Base -> HerditaryBase -> Integer;
hb_to_int base = map (term_to_int base) >>> sum;

term_to_int :: Base -> Term -> Integer;
term_to_int _ (Term 0 _) = 0; -- optimization
term_to_int (Base base) (Term k x) = k * base ^ (hb_to_int (Base base) x);

-- input must be zero or positive. output is little-endian.
radix_convert :: Base -> Integer -> [Integer];
radix_convert (Base base) = unfoldr $ \n -> if n==0 then Nothing else Just $ swap $ divMod n base;

-- Compute the next value in a Goodstein sequence
goodstein_tuple :: (Base, Integer) -> (Base, Integer);
goodstein_tuple (base, x) = (succ base , int_to_hb base x & hb_to_int (succ base) & subtract 1);

goodstein_sequence_from :: (Base, Integer) -> [Integer];
goodstein_sequence_from = iterate goodstein_tuple >>> map snd >>> takeWhile (>=0);

goodstein_sequence :: Integer -> [Integer];
goodstein_sequence x = (Base 2,x) & goodstein_sequence_from;

goodstein :: Integer -> Integer;
goodstein = goodstein_sequence >>> genericLength;

goodstein {0, 1, 2, 3} will complete within a reasonable amount of time.  4 and larger are huge so will not terminate within a reasonable amount of time.  (This unfortunately limits the testcases available for testing whether the implementation is correct.) The full source code also demonstrates computing the first 6 steps in hereditary base notation of the evaluation of goodstein 19 (Comparing with Wikipedia).

Harvey Friedman's tree and subcubic graph numbers supposedly grow faster, but they are difficult to understand, difficult to understand that they are computable, and consequently difficult to implement.

Thursday, March 30, 2017

[apurmnmc] Living a perfect power Planck time

Previously similar: (1) and (2).

Particularly elegant: 20.08 years = 34^34 t_P.  The Wolfram Alpha syntax to calculate a particular date is "January 1, 2000 + 34^34 Planck time".

Arbitrarily chosen limits: years 1-150, bases 2 through 99.

YearsPlanck times
1.0376^27 Planck time units
1.1090^26 Planck time units
1.282^169 Planck time units
1.4039^32 Planck time units
1.4257^29 Planck time units
1.4791^26 Planck time units
1.4777^27 Planck time units
1.4826^36 Planck time units
1.5144^31 Planck time units
1.5166^28 Planck time units
1.5435^33 Planck time units
1.5950^30 Planck time units
1.7110^51 Planck time units
1.7622^38 Planck time units
1.815^73 Planck time units
1.8211^49 Planck time units
1.933^107 Planck time units
1.9592^26 Planck time units
2.0024^37 Planck time units
2.0978^27 Planck time units
2.3167^28 Planck time units
2.3658^29 Planck time units
2.4119^40 Planck time units
2.562^170 Planck time units
2.5632^34 Planck time units
2.564^85 Planck time units
2.5993^26 Planck time units
2.6129^35 Planck time units
2.8851^30 Planck time units
2.9479^27 Planck time units
2.9813^46 Planck time units
3.0445^31 Planck time units
3.1540^32 Planck time units
3.4294^26 Planck time units
3.4968^28 Planck time units
3.8759^29 Planck time units
3.9036^33 Planck time units
3.906^66 Planck time units
4.1380^27 Planck time units
4.5095^26 Planck time units
5.0018^41 Planck time units
5.112^171 Planck time units
5.118^57 Planck time units
5.1652^30 Planck time units
5.2569^28 Planck time units
5.7827^36 Planck time units
5.783^108 Planck time units
5.7881^27 Planck time units
5.789^54 Planck time units
5.9196^26 Planck time units
6.0046^31 Planck time units
6.087^61 Planck time units
6.2960^29 Planck time units
6.3021^39 Planck time units
6.4314^45 Planck time units
6.9441^32 Planck time units
7.2833^34 Planck time units
7.7497^26 Planck time units
7.8670^28 Planck time units
8.0582^27 Planck time units
8.1617^42 Planck time units
8.5530^35 Planck time units
9.0425^37 Planck time units
9.045^74 Planck time units
9.1453^30 Planck time units
9.5123^38 Planck time units
9.5615^44 Planck time units
9.6237^33 Planck time units
10.1098^26 Planck time units
10.1761^29 Planck time units
10.2316^43 Planck time units
10.232^172 Planck time units
10.234^86 Planck time units
10.8012^48 Planck time units
11.1683^27 Planck time units
11.6847^31 Planck time units
11.6971^28 Planck time units
13.1699^26 Planck time units
15.0242^32 Planck time units
15.4284^27 Planck time units
16.0154^30 Planck time units
16.2962^29 Planck time units
17.0810^52 Planck time units
17.2972^28 Planck time units
17.333^109 Planck time units
18.7820^40 Planck time units
20.0511^50 Planck time units
20.0834^34 Planck time units
20.452^173 Planck time units
21.2385^27 Planck time units
21.3928^36 Planck time units
22.4448^31 Planck time units
23.2038^33 Planck time units
23.376^67 Planck time units
25.4573^28 Planck time units
25.9163^29 Planck time units
26.9331^35 Planck time units
27.7655^30 Planck time units
29.1186^27 Planck time units
31.8843^32 Planck time units
37.2474^28 Planck time units
38.6026^37 Planck time units
38.6422^39 Planck time units
38.7213^47 Planck time units
39.7787^27 Planck time units
40.912^174 Planck time units
40.914^87 Planck time units
40.9164^29 Planck time units
40.918^58 Planck time units
42.5349^31 Planck time units
42.537^62 Planck time units
45.225^75 Planck time units
45.8619^41 Planck time units
47.6756^30 Planck time units
47.9324^38 Planck time units
51.993^110 Planck time units
51.999^55 Planck time units
53.8135^34 Planck time units
54.1588^27 Planck time units
54.2475^28 Planck time units
54.6739^33 Planck time units
64.1365^29 Planck time units
66.5444^32 Planck time units
73.4789^27 Planck time units
75.6729^36 Planck time units
78.5976^28 Planck time units
79.5550^31 Planck time units
81.0657^30 Planck time units
81.812^175 Planck time units
81.8132^35 Planck time units
89.9518^42 Planck time units
90.0514^46 Planck time units
99.3490^27 Planck time units
99.8566^29 Planck time units
113.3277^28 Planck time units
126.0540^33 Planck time units
129.5612^49 Planck time units
132.2421^40 Planck time units
133.8791^27 Planck time units
136.5845^32 Planck time units
136.5958^30 Planck time units
138.6417^43 Planck time units
140.2436^34 Planck time units
140.246^68 Planck time units
143.4515^45 Planck time units
146.9851^31 Planck time units

[nrdhigmh] Gauss's Machin-like formula

Is Gauss's Machin-like formula for pi,

pi/4=12cot^(-1)18+8cot^(-1)57-5cot^(-1)239

the most efficient 3-term Machin-like formula?  Machin's 2-term formula is the most efficient 2-term formula.

Sunday, March 19, 2017

[azmjfube] Maintaining induced hatred

Something about how one group behaves causes another group to hate them.  This induces a bunker mentality in the first group: we must depend on each other for support.  Us versus them.  Group solidarity.  Strong feeling of allegiance to the group.

Curiously then, the behavior which induced hate against them has caused the group doing the behavior to become stronger.  Then, groups which can inculcate such behavior into new members, probably the next generation, will survive because of this induced strong group identity.  Groups which fail to inculcate the behavior will dissipate, its members perhaps assimilating into another group, the groups no longer needing to be bound by the bunker mentality.

There's an evolutionary aspect to it: the behavior which induced hate could have been discovered by accident, by randomness, but only the most "successful" behaviors survive, perhaps becoming fine-tuned over the generations to induce just the right amount of hate and bunker mentality.

Therefore, the groups that currently exist and have been around for a while are likely very good at inculcating hate-inducing behaviors to each new generation.  Can the cycle be broken?  Should it be broken?

Religion is of course the famous collection of groups oppressing each other, but many other instances of groups hating each other (for reasons of the other's behavior) exist in society.

There's a reason you despise Them.

Thursday, March 16, 2017

[pmkfskff] Quadratic Binary Diophantine

Quadratic Diophantine equations in two variables seem to be algorithmically solvable usually if not always, though the algorithms seem hairy.

Challenges for correct, elegant, or fast implementations.

A little bit of a challenge in describing the output: a solution could be an infinite set.

The famous quadratic Diophantine equation in 2 variables is the Pell equation.

https://www.alpertron.com.ar/METHODS.HTM describes some solution methods.

Inspired by the incomplete "diophantine" package on hackage.

[cheinley] Kissing tiles

Inscribe within a polygon a closed curve which is tangent at the midpoint of each edge.  Splines are probably the easiest.

Apply this to a polygonal plane tiling, not necessarily a tiling of only one tile type, and get a collection of closed curves that are tangent to each other, with gaps (surrounding the vertices).  No practical purpose.

Could also be done with polyhedral tilings (honeycombs).

[bocfvnob] Reviewing self-medicating

Hypothesize that a large portion of recreational drug use, including alcohol, is self-medication for mental health.  As pharmaceutical medications for mental health improve, are people's such self-medication regimens being updated rationally?  (Rational requires a cost-benefit analysis.)  There may also be new recreational drugs being developed.  Is there significant delay in the speed of information dispersal that could be improved with technology?  There may be stigma of taking a pharmaceutical mental health drug, compared to a recreational drug.

[xpvcdfst] Cubes with blocks taken out

Divide a cube into 27 smaller cubes, 3x3x3.  Consider subsets of the smaller cubes which are visually distinct (modulo rotation) when viewed from the outside: essentially the presence of the center cube only matters when one of the center face cubes is missing, providing a window.

Perhaps only consider rotations around the vertical axis.  The bottom face is attached to the ground and cannot provide a window to the center cube.

Add constraints that the cubes must be connected through faces.  Or that they must be stable. The 4 corner cubes on the bottom face must be present.

Subsets of edges is better: there is no obstruction by faces hiding things behind them.

[ejnuxlwp] On beauty

People obsess about physical beauty, famously in men judging women's beauty and women judging themselves, seemingly far more than can easily be explained by evolutionary biology, which only cares whether this mate will produce good offspring.

Photographs of models are interesting, because they certainly transmit no pheromones and carry extremely little information about personality, yet they often very strongly induce feelings about attractiveness and attractedness.

The most likely explanation is physical appearance communicates a tremendous amount of information about social class.  Decode that information.  Class may be extremely important for success of offspring.  It is interesting that humans have evolved to be so sensitive to these cues.

In porn, there are often no class cues derivable from clothing, yet people still can and do form very strong opinions about beauty.

A more outlandish explanation is that humans are being puppeteered by their microbiomes, both controlling what a viewer perceives as beautiful and controlling the appearance of the viewed.  The bacteria's manipulations are all part of Their Plan.

[zzcbplwc] Irrational slices of a periodic volumetric cube

Take volumetric data (i.e., f(x,y,z)) in a cube, then tile it across space as a cubic honeycomb.  Slice through the honeycomb with a plane of irrational slope, and draw on the plane the data where it intersects (and draw the cube edges).  Because the slope is irrational, the plane will eventually pass near every point in the cube.

Probably silver ratio is useful the way golden ratio would be a good slope of a line.

[ellybhkp] Invisible taper

Create an object that tapers so thin that its thinnest portion cannot be seen by the eye.  Perhaps fiber optics.  It might be able to be sensed by touch, brushing against the skin.  No known practical purpose: just the cognitive dissonance of an object that seems simultaneously there and not there.

Inspired by the thin end of hair.

So thin as to be invisible is easily achieved by decreasing vision acuity, though that seems like cheating.

[gdwsglhd] People are rational

Tell stories how people are far more rational than conventionally believed, that seemingly irrational decisions and actions are actually rational because of conventionally ignored, unseen, or unnoticed factors.  Depict alternate universes in which the alternative (seemingly more rational) action was taken, and then how those formerly unseen and unnoticed factors end up making things worse.

[qywsmqtg] Set the world on fire

Some people just want to watch the world burn.  Others take a more proactive approach, for example, by transmuting the entire atmosphere into chlorine trifluoride.

Space explorers come across a world destroyed by a hellish planet-wide fluorine fire and wonder how it could have occurred.  Or paleontologists come across evidence of such a past fire on our world, then try to suppress knowledge that such a thing is even possible.

Monday, March 13, 2017

[dwvcvceg] Colors

We explore the range of RGB colors (the sRGB gamut) projected into CIE L*a*b* (CIElab, Lab) color space, as implemented in the Haskell colour package.

The first image below is a slice of the CIE L*a*b* color solid through the plane L = 50, halfway between 0 (black) to 100 (white). The "a" and "b" coordinates have range ±128. The shape is slightly different from -- the bottom is slightly narrower than -- the image of the slice at L=50 on Wikipedia, so I wonder what is going on. It might be the choice of white point. We chose white_point=Data.Colour.CIE.Illuminant.d65 for everything in this discussion.

(Most of the images on this page have been scaled down with HTML. Right click and View Image to embiggen.)

cielab lightness 50

The inside of the cross section is kind of boring being mostly grayish, so in the image below we fill the cross section by connecting the origin (a=0, b=0) with line segments of the color at edge. We do this because we are mostly interested in the extent (outer edge) of the sRGB gamut in CIE L*a*b*. And it makes the pictures more striking.

cielab lightness 50

Finding the edge of the cross section, i.e., the last representable color still within the sRGB gamut, was an exercise in root finding.

Below are 13 other slices colored similarly. The lightness values are as follows.

  1. Lightness 16.149085003423885, halfway between black and the lightness of fully saturated blue.
  2. Lightness 32.29817000684777, the lightness of fully saturated blue.
  3. Lightness 42.767524268618665, halfway between blue and red.
  4. Lightness 53.23687853038956, the lightness of fully saturated red. We switch to a black background as colors approach white in order to better be able to see the edge of the shape.
  5. Lightness 56.779166162118884, halfway between red and magenta.
  6. Lightness 60.32145379384821, the lightness of fully saturated magenta.
  7. Lightness 74.02883222725823, halfway between magenta and green.
  8. Lightness 87.73621066066826, the lightness of fully saturated green.
  9. Lightness 89.42553101260378, halfway between green and cyan.
  10. Lightness 91.11485136453929, the lightness of fully saturated cyan.
  11. Lightness 94.12695165179927, halfway between cyan and yellow.
  12. Lightness 97.13905193905926, the lightness of fully saturated yellow.
  13. Lightness 98.56952596952962, halfway between yellow and white.

It might be fun to 3D print or or render the solid with 3D graphics someday. It seems to have a complicated shape. For 3D graphics, it would be most natural for the rendered color of the solid at each surface point to be the actual color of the solid, incorporating no reflected lights or shadows. However, such a lighting model will probably prevent the solid's sharp edges from being easily visible.

Above, we presented only 13 slices of the CIE L*a*b* color space. The first image below depicts the outer edge colors of 1024 slices. The vertical axis is lightness (L). The horizontal axis is the angle from the a-b origin. On my monitor, there are curious ridges corresponding to the saturated colors. I suspect it has to do with gamma.

However, the appeal of the CIE L*a*b* color space is perceptual uniformity; that is, perceptual differences in color can be calculated by Euclidean distance. The second image above has each row individually rescaled for perceptural uniformity. In other words, the horizontal axis is the proportion of the perimeter of cross section.

Marching along the perimeter of the cross section was another exercise in root finding. At each step, we seek the next point on the perimeter a constant distance away (and remember that finding any point on the perimeter itself requires root finding). Because we don't know the perimeter of a cross section in advance, we arbitrarily choose a small step size, achieving a set of points separated by that step size (except from the final point to initial point), then crudely rescale the those points into 1024 steps.

The image above on the right was the "magnum opus" of this project, taking days to compute. Here is a raw data file of the (a,b) coordinates of the perimeter at 1023 levels of lightness. Some combination of Implicit Differentiation and Automatic Differentiation might have computed this more efficiently.

We can take any row of this image to extract a band of uniform lightness and uniform rate of color change. Below on the top row is two copies of the band at L = 53.3203125, the lightness with the longest perimeter. This happens to be very close to the lightness of pure red. On the bottom row is the same band shifted 25 pixels. The color distance between the rows is roughly constant, so ideally there should be equally sharp contrast along the entire boundary. (But on my monitor this appears not to be the case: we will explore this more further below.)

We can sample this band at multiples of phi (the golden ratio) to get an infinite palette of colors widely spaced from each other, all at the same lightness.

Palette entries 0, 5, 8, 13 are similar because the Fibonacci sequence approximates the golden ratio.

For a fixed size palette, one can probably do slightly better by particle repulsion on the cross section itself, though I have not implemented this.

Next, abandon the constraint of equal lightness and instead focus on the saturated RGB colors. The outline of next image projects has only the saturated RGB colors projected orthogonally to the a-b plane. The edge colors are then radially connected to the origin as before. Someday, it might be fun to render this in 3D as a minimal surface.

saturated RGB colors projected to the a-b plane of the CIE Lab color space

I discovered that the appearance of the above image on my LCD display radically changes depending on the position of my head: the width of the colors changes. (CRTs I suspect do not have this problem.) The image below may better illustrate the effect. Move your head up and down (or left and right) and notice how (or if) the color sectors change in width. I especially notice it in the blues. Also, here is a webpage with the same circles tiling the background.

saturated RGB colors projected to the ab plane of the CIE Lab color space

The first image below shows the saturated colors scaled in distance for perceptual uniformity. The second image is without correction, a typical color palette moving in RGB space at constant speed, using all the saturated colors of the rainbow.


The upper image below gives the same perceptually uniform rainbow except extended (looped) a bit to better see the region around red. The lower image is the same, except shifted by 20 pixels. The color distance between the rows is roughly constant, so ideally there should be a boundary line of constant contrast across the whole width. On my monitor, this appears not to be the case: the rows blend in the red-magenta area. As before, on LCD displays, the contrast may depend on the viewing angle.

rgb(55,0,255)rgb(147,0,255)

The above two colors are separated by a distance of 18.9955 according to this online color distance calculator, whose results are in close (but not exact) agreement with my code. On my monitor, the colors appear quite different.

rgb(255,0,69)rgb(255,0,33)

The above two colors are separated by a distance of 18.89. On my monitor, they appear similar.

rgb(0,255,44)rgb(0,255,100)

The above two colors are separated by a distance of 19.108. On my monitor, they appear similar.

Based on the above examples, I'm less than convinced that L*a*b* space is good for defining perceptual color distance. Or, my monitor is bad at displaying colors.

Here is the program used to generate the images, and alternate download location for the inline images.