惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

K
Kaspersky official blog
T
Threat Research - Cisco Blogs
N
News and Events Feed by Topic
Hacker News: Ask HN
Hacker News: Ask HN
Project Zero
Project Zero
Application and Cybersecurity Blog
Application and Cybersecurity Blog
博客园 - 叶小钗
Security Latest
Security Latest
Spread Privacy
Spread Privacy
aimingoo的专栏
aimingoo的专栏
N
News and Events Feed by Topic
Webroot Blog
Webroot Blog
U
Unit 42
Cyberwarzone
Cyberwarzone
小众软件
小众软件
Scott Helme
Scott Helme
Engineering at Meta
Engineering at Meta
Microsoft Security Blog
Microsoft Security Blog
T
The Blog of Author Tim Ferriss
A
About on SuperTechFans
爱范儿
爱范儿
S
Schneier on Security
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Schneier on Security
Schneier on Security
Latest news
Latest news
GbyAI
GbyAI
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Simon Willison's Weblog
Simon Willison's Weblog
The Register - Security
The Register - Security
WordPress大学
WordPress大学
博客园_首页
Blog — PlanetScale
Blog — PlanetScale
PCI Perspectives
PCI Perspectives
Jina AI
Jina AI
AI
AI
NISL@THU
NISL@THU
I
Intezer
G
GRAHAM CLULEY
B
Blog
S
Secure Thoughts
IT之家
IT之家
宝玉的分享
宝玉的分享
Recent Announcements
Recent Announcements
Y
Y Combinator Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
酷 壳 – CoolShell
酷 壳 – CoolShell
有赞技术团队
有赞技术团队
V2EX - 技术
V2EX - 技术
Recorded Future
Recorded Future
Hacker News - Newest:
Hacker News - Newest: "LLM"

Hacker News

Introducing Claude Opus 4.7 Qwen Studio The Future of Everything is Lies, I Guess: Where Do We Go From Here? GitHub - SeanFDZ/macmind: Single-layer transformer in HyperTalk for the classic Macintosh Show HN: Agent-cache – Multi-tier LLM/tool/session caching for Valkey and Redis Moving a large-scale metrics pipeline from StatsD to OpenTelemetry / Prometheus GitHub - Nightmare-Eclipse/RedSun: The Red Sun vulnerability repository GitHub - SethPyle376/hiraeth: Local AWS emulator focused on fast integration testing, with SQS support, SQLite-backed state, and a debug-friendly web UI. GitHub - macOS26/Agent: Any AI, replaces Claude Code, Cursor, OpenClaw. Over 18 LLM providers (Claude, OpenAI, Gemini, Ollama, Zai, HF, Qwen) wired into a native Mac app that writes code, builds Xcode projects, bumps versions, manages git, automates Safari, use AppleScript, JS or Accessibility, extend Agent! w/ MCP Servers, run tasks from your iPhone via Messages. YouTube now lets you turn off Shorts I Made a Terminal Pager Burgers | マクドナルド公式 Commands — HackerNews CLI documentation ChatGPT for Excel PiCore - Raspberry Pi Port of Tiny Core Linux Live Nation illegally monopolized ticketing market, jury finds Google Broke Its Promise to Me. Now ICE Has My Data. Founding Engineer at Adaptional | Y Combinator CRISPR takes important step toward silencing Down syndrome’s extra chromosome GitHub - saffron-health/libretto: The AI toolkit for building reliable browser automations US v. Heppner (S.D.N.Y. 2026) no attorney-client privilege for AI chats [pdf] Unexpected €54k billing spike in 13 hours: Firebase browser key without API restrictions used for Gemini requests Retrofitting JIT Compilers into C Interpreters IPv6 – Google The Accursèd Alphabetical Clock Cybersecurity Looks Like Proof of Work Now Fragments: April 14 Cal.com Goes Closed Source: Why AI Security Is Forcing Our Decision | Cal.com - Scheduling Software for Online Bookings Laravel raised money and now injects ads directly into your agent When moving fast, talking is the first thing to break Too much Discussion of the XOR swap trick – Heather Cafe Introduction to Spherical Harmonics for Graphics Programmers The Grand Line Building a Z-Machine in the worst possible language High-Level Rust: Getting 80% of the Benefits with 20% of the Pain GitHub - duguyue100/midnight-captain: Inspired by Midnight Commander, tailored to my taste. How to build a `git diff` driver · Jamie Tanna | Software Engineer Center for Responsible, Decentralized Intelligence at Berkeley The Local Universe’s Expansion Rate Is Clearer Than Ever, but Still Doesn’t Add Up - A new synthesis of astronomical measurements confirms a persistent mismatch that could point to physics beyond current models The air throughout our homes is infused with microplastics. But there are things you can do to breathe less of them The disturbing white paper Red Hat is trying to erase from the internet – OSnews The Future of Everything is Lies, I Guess: Annoyances ‘Abhorrent’: the inside story of the Polymarket gamblers betting millions on war Productive procrastination — Max van IJsselmuiden maps, territory and LMs 447 Terabytes per Square Centimetre at Zero Retention Energy: Non-Volatile Memory at the Atomic Scale on Fluorographane Show HN: Pardonned.com – A searchable database of US Pardons 20 Years on AWS and Never Not My Job The Seasons are Wrong Artemis II crew splashes down near San Diego after historic moon mission We gave an AI a 3 year retail lease in SF and asked it to make a profit | Andon Labs How a dancer with ALS used brainwaves to perform live On filing the corners off my MacBooks Installing every* Firefox extension OpenClaw’s memory is unreliable, and you don’t know when it will break Steve Blank Nowhere Is Safe Chimpanzees in Uganda locked in vicious 'civil war', say researchers watgo - a WebAssembly Toolkit for Go linux/Documentation/process/coding-assistants.rst at master · torvalds/linux GitHub - callumlocke/json-formatter: Makes JSON easy to read. Founding Product Engineer at Bild AI | Y Combinator A compelling title that is cryptic enough to get you to take action on it GitHub - Keychron/Keychron-Keyboards-Hardware-Design: Industrial design files for Keychron keyboards and mice. 100+ models with CAD assets in STEP, DXF, DWG, and PDF. Source-available, with commercial use allowed for original compatible accessories within the license terms. [ANNOUNCE] WireGuardNT v0.11 and WireGuard for Windows v0.6 Released 1D-Chess Helium Is Hard to Replace Cooperative Vectors Introduction | Evolve Keeping a Postgres queue healthy — PlanetScale Our response to the Axios developer tool compromise Do Americans read print books, e-books or audiobooks more? The Zettelkasten Method in Obsidian: A Practical Setup Guide Artemis II Is Competency Porn and We Are Starving For It WeakC4 Flight Viz — Cockpit View A Mexican surveillance giant you’ve never heard of is now watching the U.S. border Surelock: Deadlock-Free Mutexes for Rust RISC-V 101 – what is it and what does it mean for Canonical? | Ubuntu The Problem That Built an Industry How Much Linear Memory Access Is Enough? | Solidean Investigating Split Locks on x86-64 Simplest hash functions Sybilproof reputation mechanisms (2005) [pdf] What is a property? How Complex is my Code? Static code analysis in Kotlin — tools overview Toffoli gates are all you need PGLite evangelism dcmake: a new CMake debugger UI Clojure on Fennel part one: Persistent Data Structures Fragments: April 2 Python Release Python install manager 26.1 The Life and Death of the Book Review - Liberties Introducing Database Traffic Control — PlanetScale Bitcoin miners are losing $19,000 on every BTC produced as difficulty drops 7.8% God sleeps in the minerals Building slogbox Apple Silicon and Virtual Machines: Beating the 2 VM Limit Who was “Not Even Wrong” first? Pokemon Evolution Vs Darwinian Evolution The APL Programming Language Source Code
Lippmann | jonhilty
2026-06-24 · via Hacker News

Making the Emulsion
*EDIT 2025-05-28* - This page is like 10 years out of date.  I made lots of improvements to the process, and will be reworking this whole page soon.  It's probably best just to follow Darran Green's workflow in that pdf for the meantime instead of anything I wrote here.

The process for making a Lippmann emulsion does not differ very much from a standard emulsion black & white silver gelatin emulsion.  The major steps include halide precipitation, noodling & washing, and adding the finals.

My workflow currently borrows much from Darran Green's emulsion recipe, which can  be found here.

Precipitation

1.  In a 250mL beaker (Solution A), add 4g of 250 bloom gelatin and 100mL of distilled water.  Allow the gelatin to swell for about 10 minutes before heating to 60C* to melt the gelatin.  Take the container off heat and stir magnetically.

      * - My temperature readings use a digital thermometer clothes pinned to the side of the beaker.  Temperature control is very important in making this emulsion.

2.  While the gelatin is cooling, measure out 700mg of potassium bromide into a 100mL beaker (Solution B).  Add to it 5mL of a 1% solution of potassium iodide.  Swirl to dissolve.  Measure out 1g of silver nitrate.  Make these measurements as accurate as possible.

3.  When the digital thermometer reads that the gelatin solution is exactly 35C, pour 30 - 50mL of Solution A into Solution B.  Add the silver nitrate to Solution A and continue vigorous magetic stirring.  Briefly stir Solution B to ensure it is mixed.

From here on, LIGHTS OUT.  A red safelight may be used.

4.  Get a good vortex with the magnetic stirrer, but not so vigourously as to generate bubbles or foam.  Using a fine tipped syringe, slowly add Solution B to A, with the tip of the syringe under the surface of A.  The solution will cloud slighly at first, and become mostly clear again as the addition of B completes.  This should take about a minute.  Continue stirring for an additional minute, then pour into a container (I use a tupperware sandwich container) and place in a refrigerator* for a coule hours).  Do not freeze the emulsion.

       * - Do not let the gelatin be exposed to light.  If you are not lucky like me and do not have a refrigerator in your darkroom, put the container in a light tight box first. 

Washing the Emulsion

5.  Cut the emulsion into small 1/4 inch cubes with a butter knife.  Mix and strain the cubes with 3 changes of cold distilled water.  Stir breifly and allow the gelatin to soak in each change for 10 minutes.  When complete, strain the gelatin and add to another 250mL beaker. 

Add the Finals

6.  Place the beaker in a water bath, carefully controlled to be around 35C.  This can take a long time, but it is crucial the emulsion does not heat higher than 35C.  Use a digital thermometer to monitor the emulsio's temperature, and stir occasionally.  The emulsion will liquifiy between 28C - 33C.  When the emulsion is mostly liquid, heat the bath to 45C and stir the emulsion magnetically.

7. AS SOON AS the emulsion reads 35C, add the following:


 

0.5mL of 1:1000 erythrosine (in alcohol).  This will give us additional green sensitivity.

1 mL of 1:1000 pinacyanol* (in alcohol).  This will give us our red sensitivity.

2mL of a 1% chrome alum solution.  This will harden the gelatin

2 drops of Photo Flo to aid in coating the plates.

These must be added under extremely subdued light.


 

The emulsion is ready, and must be coated immediately!  Don't let the emulsion's temperature exceed 35C!

      * - I've had better luck with pinacyanol, but ethyl violet may be used here instead.

Coating the Plates

The emulsion is extremely runny compared to your standard silver gelatin emulsion, which makes most hand held methods very difficult to get an even coat.  I prefer to use a cheap level I purchased at the local hardware store.  The level is attached to a tripod with a ball-head, and great care is taken to make sure it is exactly level. 

The plates are set up on the level.  After filtering the emulsion through a coffee filter, I use another syringe to dispense onto the plates;  8mL for a 4x5 and 14mL for a 5x7.  The emulsion can gently be smeared with a gloved hand to ensure it covers the whole plate. 

After letting the plates cool, stand them vertical and allow them to dry.  A gentle fan can be used, though take care to only use a fan in a reasonably dust-free environment.  I generally leave my plates to dry overnight.  Once dry they can be stacked if you wish.  Store in a cool, dry container and they should last several weeks (if not longer).

Exposing a Plate

Optional:  Hypersensitizing

"Hypersensitizing" the plates means treating them in a solution prior to exposure, rendering the plates a few stops faster (which happens to be quite a lot faster when calculating exposures with Lippmann plates!).  All hypersentization techniques that do not produce fog or cause grain growth should work.  Currently my favorite is a solution of TEA (triethanolamine), which seems to produce brighter results than ascorbic acid, as well as being about a 1/2 stop faster. 

Try a 1% solution of TEA for 5 minutes. TEA can cause undesired swelling which will result initially in a blueshifted image after processing (though this can be remedied).  Stand to dry.  Generally you only want to hypersensitize on the day of shooting (though I've gone as long as a few days with no noticable issues). 

Update Feb. 2017:  They definitely will be dim if you let them sit for two weeks before development ;)

The plate is placed in a plate holder with the emulsion facing away from the lens.  I salvaged a broken plate holder, lining the back with black velvet to prevent scattered light fogging the plate. 

The exposure is quite long; the rule of thumb for outdoors is 3 minutes at EV 15 and f/5.6.  You will have to extrapolate even longer for indoor still lifes.  My indoor exposures range from 30 minutes - 4 hours, depending on lighting and bellows extension. 

Development

I currently prefer the pyro - ammonium carbonate developer.  The developer is mixed especially for each plate, and discarded when development is complete.  Be careful, as this uses PYROGALLOL, which is toxic and can be absorbed through the skin (and latex!).  When handling, always use nitrile gloves, eye protection, and wear a respirator when mixing the dry powder.

The developer is as follows:


 

60mL distilled water
2g ammonium carbonate

6 drops of 30% potassium bromide

4mL 10% solution of pyrogallol in alcohol

This developes one 4x5 plate, or a 5x7 if your tray is sufficiently

shallow.  You may need more for bigger plates.

Start development at 2 minutes (at 20C) as a baseline.  Developing

longer causes brighter colors but less purity (generally red/brown

cast, especially in the shadows).  Cutting development yields

dimmer, more pure colors, which can be mitigated somewhat by

increasing exposure time. 

There is a "sweet spot" where the colors are very pure and bright,

though this changes from batch to batch and must be determined

experimentally.

After development, wash for 5 minutes.  Then fix in a 3% solution of hypo for 5 minutes.  Wash for an additional 10 minutes after fixing.

Optional - Swelling

The final step is to swell the emulsion.  Since removing the unexposed silver halide crystals during fixing causes the silver grains to move slightly closer to each other, the image will be blueshifted.  Additionally, changes in humidity can cause color shifts. 

Try soaking the plates in  a solution of glycerin for two minutes and allowing to dry (don't wash!).  If the plate is blueshifted, add more glycerin to the swelling solution and reswell.  If it is red, try diluting the solution. 

If there was no hypersensitization, or you hypered with ascorbic acid, start out with a 2% solution.  If you hypered with a 2% solution of TEA, try starting out with a 4% glycerin solution.

Mounting

A dry Lippmann plate has a sensitive surface, very susceptible to scratching or oil from grubby fingers.  Cementing a prism protects the emulsion from damange and changes in humidity, while also enhancing the color reproduction by removing surface reflection. 

It should be noted that dimmer plates do not seem to benefit greatly from the prism, and mounting may make them quite difficult to view.  My rule of thumb thus far has been if you can see colors on the plate with ambient room lighting, you're probably in good shape to mount it. 

Prisms can be either bought or made, depending on how much bang for your buck you want.  Your cheapest option is to make your own -- cast some clear polyester resin (such as Eager EP-4101) between two angled pieces of glass.

Alternatively, a common shape for trophy suppliers is a wedge -- perfect for Lippmann plates!  I was able to source prisms for my 4x5 plates from Noble Crystal for $13/prism, by far the cheapest from all the companies I talked to.