diff options
| author | Jules Laplace <julescarbon@gmail.com> | 2021-09-16 18:44:16 +0200 |
|---|---|---|
| committer | Jules Laplace <julescarbon@gmail.com> | 2021-09-16 18:44:16 +0200 |
| commit | b08b596b34a9f84248df294c7ee4f0c953e000a2 (patch) | |
| tree | 1504bb96fcbf558d08e4d457a8078c7ca7654afe | |
| parent | b6d86f71169ef1643a3a44527ae8f59d10ec78b3 (diff) | |
3d clocks
| -rw-r--r-- | data_store/tags.csv | 2 | ||||
| -rw-r--r-- | db.json | 120 | ||||
| -rw-r--r-- | index.js | 1 | ||||
| -rw-r--r-- | load_spreadsheet.js | 1 | ||||
| -rw-r--r-- | public/assets/css/css.css | 6 | ||||
| -rw-r--r-- | src/graph.js | 43 | ||||
| -rw-r--r-- | src/views/Detail.js | 3 | ||||
| -rw-r--r-- | src/views/Gallery.js | 6 | ||||
| -rwxr-xr-x | sync.sh | 3 |
9 files changed, 166 insertions, 19 deletions
diff --git a/data_store/tags.csv b/data_store/tags.csv index a4738d7..4732384 100644 --- a/data_store/tags.csv +++ b/data_store/tags.csv @@ -1,4 +1,4 @@ -,,1620s,painting,blunt,National Gallery of Canada,Art Gallery of Ontario,Courtauld Institute,Stankievech,connsoeurship,double agent,forensics ,black box,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+Title,,1620s,painting,blunt,National Gallery of Canada,Art Gallery of Ontario,Courtauld Institute,Stankievech,connsoeurship,double agent,forensics ,black box,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
01 Poussin: No6092,1,x,x,x,x,,,,x,,x,x,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
02 No6092: Xray,2,,,,x,,,,,,x,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
03 Blunt: Apollo,3,,,x,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
@@ -4,6 +4,7 @@ "__index": 0, "id": "page_0", "title": "Augustus and Cleopatra ", + "short_title": "01 Poussin: No6092", "type": "image", "tag_0": 1, "tag_1": 2, @@ -38,6 +39,7 @@ "__index": 1, "id": "page_1", "title": "<i>Augustus and Cleopatra </i>", + "short_title": "02 No6092: Xray", "type": "image", "tag_0": 4, "tag_1": 0, @@ -72,6 +74,7 @@ "__index": 2, "id": "page_2", "title": "A Newly Discovered Poussin", + "short_title": "03 Blunt: Apollo", "type": "image", "tag_0": 3, "tag_1": 0, @@ -134,6 +137,7 @@ "__index": 3, "id": "page_3", "title": "<i>Note on Mr. McCurry's Visit</i>", + "short_title": "04 Blunt: McCurry's Visit ", "type": "image", "tag_0": 3, "tag_1": 4, @@ -168,6 +172,7 @@ "__index": 4, "id": "page_4", "title": "<i>Telegram: Send Express Poussin </i>", + "short_title": "05 Blunt: Telegram ", "type": "image", "tag_0": 3, "tag_1": 4, @@ -202,6 +207,7 @@ "__index": 5, "id": "page_5", "title": "<i>Record of Work Done on Pictures </i>", + "short_title": "06 NGC: Record ", "type": "image", "tag_0": 4, "tag_1": 0, @@ -236,6 +242,7 @@ "__index": 6, "id": "page_6", "title": "<i>Receiving and Shipping Picture</i>", + "short_title": "07 NGC: Receiving ", "type": "image", "tag_0": 4, "tag_1": 0, @@ -277,6 +284,7 @@ "__index": 7, "id": "page_7", "title": "<i>Letter to Robert H. Hubbard Requesting Photo of Label </i>", + "short_title": "08 Mahon to Hubbard", "type": "image", "tag_0": 4, "tag_1": 0, @@ -311,6 +319,7 @@ "__index": 8, "id": "page_8", "title": "<i>Letter to Denis Mahon with Polaroid Photo of Label </i>", + "short_title": "09 Hubbard to Mahon ", "type": "image", "tag_0": 4, "tag_1": 0, @@ -352,6 +361,7 @@ "__index": 9, "id": "page_9", "title": "<i>Close Up of no6092 Label </i>", + "short_title": "10 No6092: Label ", "type": "image", "tag_0": 4, "tag_1": 0, @@ -393,6 +403,7 @@ "__index": 10, "id": "page_10", "title": "<i>Letter to Robert H. Hubbbard </i>", + "short_title": "11 Mahon to Hubbard", "type": "image", "tag_0": 4, "tag_1": 0, @@ -434,6 +445,7 @@ "__index": 11, "id": "page_11", "title": "<i>Note on Two Paintings </i>", + "short_title": "12 Laskin: Note", "type": "image", "tag_0": 4, "tag_1": 0, @@ -468,6 +480,7 @@ "__index": 12, "id": "page_12", "title": "<i>Letter to Konrad Oberhuber </i>", + "short_title": "13 Laskin to Oberhuber ", "type": "image", "tag_0": 4, "tag_1": 0, @@ -502,6 +515,7 @@ "__index": 13, "id": "page_13", "title": "<i>Letter to William H. Gerdts</i>", + "short_title": "14 Laskin to Gerdts ", "type": "image", "tag_0": 4, "tag_1": 0, @@ -536,6 +550,7 @@ "__index": 14, "id": "page_14", "title": "<i>Letter to Louise d'Argencourt </i>", + "short_title": "15 Miles to d'Argencourt ", "type": "image", "tag_0": 4, "tag_1": 0, @@ -577,6 +592,7 @@ "__index": 15, "id": "page_15", "title": "<i>Letter to Myron Laskin, Jr. </i>", + "short_title": "16 Lavin to Laskin ", "type": "image", "tag_0": 4, "tag_1": 0, @@ -611,6 +627,7 @@ "__index": 16, "id": "page_16", "title": "<i>Letter to Marilyn Lavin </i>", + "short_title": "17 Laskin to Lavin ", "type": "image", "tag_0": 4, "tag_1": 0, @@ -645,6 +662,7 @@ "__index": 17, "id": "page_17", "title": "<i>Memo: Italian School 17th Century, no6092 </i>", + "short_title": "18 NGC: Italian Memo", "type": "image", "tag_0": 4, "tag_1": 0, @@ -679,6 +697,7 @@ "__index": 18, "id": "page_18", "title": "Correspondence with Konrad Oberhuber ", + "short_title": "19 Laskin to Oberhuber ", "type": "image", "tag_0": 4, "tag_1": 0, @@ -727,6 +746,7 @@ "__index": 19, "id": "page_19", "title": "Notes on Radiographs of Five Paintings by Poussin", + "short_title": "20 Rees: Xrays", "type": "image", "tag_0": 6, "tag_1": 0, @@ -781,6 +801,8 @@ { "__index": 20, "id": "page_20", + "title": "<i>Radiograph of Nicolas Poussin's Landscape with a Woman Washing Her Feet </i>", + "short_title": "21 Poussin: Xray", "type": "image", "tag_0": 2, "tag_1": 4, @@ -790,12 +812,32 @@ "tag_5": 0, "tag_6": 0, "tag_7": 0, - "tag_8": 0 + "tag_8": 0, + "images": [ + { + "uri": "assets/data_store/21-Xray/21-Xray.jpg", + "caption": "", + "height": 1309, + "width": 2001, + "type": "jpg" + } + ], + "citation": "2016 <br>\nPhotograph 42.6 x 27.9 cm <br>\nRestoration and Conservation Lab Files National Gallery of Canada<br>\n", + "description": "<p>\nThe establishment of the Chemical Laboratory of the Royal Museums in Berlin in 1888 was a milestone moment in the analysis of cultural artefacts for authenticity and attribution. Wilhelm Röntgen invented radiography in 1895 and within a year his former student, Walter König, used the technology to x-ray an oil painting. Documentation of the forensic analysis of artworks began in 1914 when Alexander Faber registered a German patent for the application of radiographic analysis to the examination of paintings. Eventually the method spread to Amsterdam and Paris. By the 1930s, it was being integrated into museum infrastructure and then academic institutions, including at the newly minted Courtauld Institute of Art under the technical eye of Stephen Rees Jones, the long-time director of the institute’s laboratory under Sir Anthony Blunt. X-rays were first employed to look under the skin of the paint to see traces of earlier versions of a painting (also known as <i>pentimenti</i>, Italian for repent) or of a different painting altogether. Originally called ‘shadowgraphs,’ radiographs however are not the only invisible wavelengths that can peek behind Parrhasius’s curtain. Researchers also analyze works of art using infrared rays, which penetrate the surface layer of paint and reflect off the underdrawing—paint being more translucent than graphite to the long waveforms of infrared. Under such analysis, a work’s authenticity can often be determined, since corrections and underdrawings usually signify the working processes of an original. Such a theory, however, does not easily apply to Poussin as his rational approach dictated carefully planned compositions that were not resolved at the layer of the paint. \n</p>\n\n", + "author": "UNKNOWN ", + "thumbnail": { + "uri": "assets/data_store/21-Xray/21-Xray-thumb.jpg", + "caption": "", + "height": 137, + "width": 198, + "type": "jpg" + } }, { "__index": 21, "id": "page_21", "title": "<i>Woman Painted at Palavas </i>", + "short_title": "22 Courbet: Painting", "type": "image", "tag_0": 2, "tag_1": 3, @@ -829,6 +871,8 @@ { "__index": 22, "id": "page_22", + "title": "<i>Group of Shelterers During an Air Raid </i>", + "short_title": "23 Moore: Painting I", "type": "image", "tag_0": 2, "tag_1": 3, @@ -838,11 +882,24 @@ "tag_5": 0, "tag_6": 0, "tag_7": 0, - "tag_8": 0 + "tag_8": 0, + "images": [], + "citation": "1941 38.2 × 55.4 cm <br>\ngraphite, pen and ink, brush and ink, wax crayon, chalks and scraping out on paper <br>\nCollection of the Art Gallery of Ontario, Toronto. <br>\nGift of the Contemporary Art Society, 1951 (50/64)<br>\n", + "description": "<p>\nThere are conflicting stories how Anthony Blunt was introduced into the Canadian Museum system. A year before he was on retainer for the National Gallery of Canada (NGC) in 1948, he was secured by the Art Gallery of Ontario (AGO). One theory is that Charles Vincent Massey–then-Governor General and driving force behind the founding of the Canada Council for the Arts and the National Library of Canada—introduced Blunt to the AGO’s first Director Martin Baldwin. Another source says it was University of Toronto professor Peter Brieger, who was originally at the Courtauld in the 1930s, who instigated the relationship. Blunt acquired several works of art for the gallery including the Courbet painting <i>Woman Painted at Palavas</i>, but is most famous for fostering the AGO’s significant relationship with Henry Moore. After curating the 50th anniversary exhibition for the AGO in 1950, Blunt brokered the acquisition of Moore’s sketch <i>Group of Shelterers During an Air Raid</i>, made while he was an official war artist in 1941 and Blunt was at MI5. This relationship blossomed into an entire wing of Henry Moore sculptures and Blunt even found the first Moore curator, Alan Wilkinson, a former student of his at the Courtauld. The first director of Conservation at the NGC also studied under Blunt at the Courtauld during this period and more directly under technical director Stephen Rees-Jones. The current Director of Conservation and Technical Research at the NGC, Stephen Gritt, was also educated at the Courtauld Institute for Art. \n</p>\n\n", + "author": "HENRY MOORE ", + "thumbnail": { + "uri": "assets/data_store/23-Moore1941/23-Moore1941-thumb.jpg", + "caption": "", + "height": 133, + "width": 191, + "type": "jpg" + } }, { "__index": 23, "id": "page_23", + "title": "<i>Two Women on a Bench in a Shelter </i>", + "short_title": "24 Moore: Painting II", "type": "image", "tag_0": 2, "tag_1": 3, @@ -852,12 +909,24 @@ "tag_5": 0, "tag_6": 0, "tag_7": 0, - "tag_8": 0 + "tag_8": 0, + "images": [], + "citation": "1940 <br>\n34.4 x 42.7 cm <br>\ngraphite, pen and ink, brush and ink, wax crayon, and scraping out on paper <br>\nArt Gallery of Ontario<br>\nToronto Purchase 1974 (74/337)<br>\n", + "description": "<p>\nThere are conflicting stories how Anthony Blunt was introduced into the Canadian Museum system. A year before he was on retainer for the National Gallery of Canada (NGC) in 1948, he was secured by the Art Gallery of Ontario (AGO). One theory is that Charles Vincent Massey–then-Governor General and driving force behind the founding of the Canada Council for the Arts and the National Library of Canada—introduced Blunt to the AGO’s first Director Martin Baldwin. Another source says it was University of Toronto professor Peter Brieger, who was originally at the Courtauld in the 1930s, who instigated the relationship. Blunt acquired several works of art for the gallery including the Courbet painting <i>Woman Painted at Palavas</i>, but is most famous for fostering the AGO’s significant relationship with Henry Moore. After curating the 50th anniversary exhibition for the AGO in 1950, Blunt brokered the acquisition of Moore’s sketch <i>Group of Shelterers During an Air Raid</i>, made while he was an official war artist in 1941 and Blunt was at MI5. This relationship blossomed into an entire wing of Henry Moore sculptures and Blunt even found the first Moore curator, Alan Wilkinson, a former student of his at the Courtauld. The first director of Conservation at the NGC also studied under Blunt at the Courtauld during this period and more directly under technical director Stephen Rees-Jones. The current Director of Conservation and Technical Research at the NGC, Stephen Gritt, was also educated at the Courtauld Institute for Art. \n</p>\n\n", + "author": "HENRY MOORE ", + "thumbnail": { + "uri": "assets/data_store/24-Moore1940/24-Moore1940-thumb.jpg", + "caption": "", + "height": 161, + "width": 191, + "type": "jpg" + } }, { "__index": 24, "id": "page_24", "title": "<i>Email RE: Toronto Courbet question (4.5.2015) </i>", + "short_title": "25 Chu: Courbet Signature", "type": "image", "tag_0": 5, "tag_1": 0, @@ -892,6 +961,7 @@ "__index": 25, "id": "page_25", "title": "<i>Courbet Signatures</i>", + "short_title": "26 Fernier: Courbet Signatures", "type": "image", "tag_0": 5, "tag_1": 0, @@ -926,6 +996,7 @@ "__index": 26, "id": "page_26", "title": "<i>Woman Painted at Palavas (detail) </i>", + "short_title": "27 Courbet: Signature", "type": "image", "tag_0": 5, "tag_1": 0, @@ -960,6 +1031,7 @@ "__index": 27, "id": "page_27", "title": "Invitation to Blunt Lecture (16.12.1965)", + "short_title": "28 AGO: Blunt Lecture ", "type": "image", "tag_0": 3, "tag_1": 5, @@ -994,6 +1066,7 @@ "__index": 28, "id": "page_28", "title": "Letter from Sir Anthony Blunt to William J. Withrow re: Stage I opening ceremonies (8.4.1974) ", + "short_title": "29 Blunt: AGO Opening", "type": "image", "tag_0": 3, "tag_1": 5, @@ -1028,6 +1101,7 @@ "__index": 29, "id": "page_29", "title": "<i>An Apology for Poussin’s Augustus and Cleopatra: Sir Anthony Blunt’s Farewell Lecture at the Courtauld Institute of Art, 8 April 1974</i>", + "short_title": "30 Stankievech: An Apology ", "type": "video", "tag_0": 3, "tag_1": 7, @@ -1057,6 +1131,7 @@ "__index": 30, "id": "page_30", "title": "<i>Courtauld Cocktail </i>", + "short_title": "31 Stankievech: Courtauld Cocktail ", "type": "video", "tag_0": 6, "tag_1": 7, @@ -1086,6 +1161,7 @@ "__index": 31, "id": "page_31", "title": "<i>Letter to Anthony Blunt about BBC Broadcast (22.7.1938) </i>", + "short_title": "32 Burgess to Blunt", "type": "image", "tag_0": 3, "tag_1": 9, @@ -1119,6 +1195,8 @@ { "__index": 32, "id": "page_32", + "title": "<i>The Secret Agent </i>", + "short_title": "33 Stankievech: Secret Agent ", "type": "video", "tag_0": 7, "tag_1": 9, @@ -1130,6 +1208,9 @@ "tag_7": 0, "tag_8": 0, "images": [], + "citation": "2016 <br>\nTwo identical clocks, one set to Greenwich Mean Time (GMT) and one to the timezone of the current exhibition <br>\nCourtesy the Artist <br>\n", + "description": "<p>\nAt precisely 16:45 on the 15th of February, 1894, Martial Bourdin attempted to explode time during the first international terrorist attack in London. The outcome, however, was not a hole in time but a hole in his stomach, and the symbolic destruction of his left hand before his death half an hour later. During the last moments of his life, the French Anarchist revealed nothing about his identity or intentions. The failed attack occurred at the astronomical Royal Observatory in Greenwich, London, which is the starting point for international time zones and, historically, was the site where colonial mariners would set their ships’ clocks before setting out to sea. The accuracy of onboard clocks determined the accuracy of their calculations for longitudinal measurements, and thus the entire grid of the modern world originated at this exact point, all colonised time measured as difference. Official theories suggest the target was a mistake, or that Bourdin was trying to dispose of the bomb in an unpopulated site. Joseph Conrad memorialized the event in his novel <i>The Secret Agent </i>(1907), which attempted to construct a fictional backstory to the mystery by imagining the plan was masterminded by “The Professor.” But even Conrad found it “impossible to fathom its origin by any reasonable or even unreasonable process of thought.” While it might seem surreal to connect Bourdin’s intentions were to blow up time itself, Walter Benjamin reminds us of a similar historical attack on time during the French Revolution: “On the first evening of fighting, it so happened that the dials on clock towers were being fired at simultaneously and independently from several locations in Paris.” Benjamin further reflects on split time: “A clock that is working will always be a disturbance on the stage. There it cannot be permitted its function of measuring time. Even in a naturalistic play, astronomical time would clash with theatrical time.”\n</p>\n\n", + "author": "CHARLES STANKIEVECH ", "threeObject": { "path": "data_store/33-Agent/", "file": "Charles_Clock.obj" @@ -1139,6 +1220,7 @@ "__index": 33, "id": "page_33", "title": "<i>The Criminal-King in the 19th Century Novel</i>", + "short_title": "34 Blunt: Warburg Journal", "type": "image", "tag_0": 3, "tag_1": 6, @@ -1187,6 +1269,7 @@ "__index": 34, "id": "page_34", "title": "<i>Connoisseurs and Secret Agents</i> ", + "short_title": "35 Lewis: Secret Agents ", "type": "image", "tag_0": 3, "tag_1": 6, @@ -1235,6 +1318,7 @@ "__index": 35, "id": "page_35", "title": "BBC Panorama: The Queen's Gallery ", + "short_title": "36 Blunt: BBC ", "type": "video", "tag_0": 3, "tag_1": 8, @@ -1266,6 +1350,7 @@ "__index": 36, "id": "page_36", "title": "<i>L'Hypothèse du tableau volé </i>", + "short_title": "37 Ruiz: L'Hypothèse du tableau volé ", "type": "video", "tag_0": 2, "tag_1": 8, @@ -1297,6 +1382,7 @@ "__index": 37, "id": "page_37", "title": "Mondrian 63-96 ", + "short_title": "38 Benjamin: Mondrian", "type": "video", "tag_0": 2, "tag_1": 8, @@ -1328,6 +1414,7 @@ "__index": 38, "id": "page_38", "title": "<i>The conquest of space, Atlas for the use of artists and the military </i>", + "short_title": "39 Broodthaers: Atlas", "type": "video", "tag_0": 8, "tag_1": 9, @@ -1357,6 +1444,7 @@ "__index": 39, "id": "page_39", "title": "<i>Der Bildatlas Mnemosyne (Taflen No79)</i>", + "short_title": "40 Warburg: Mnemosyne Atlas ", "type": "image", "tag_0": 6, "tag_1": 8, @@ -1391,6 +1479,7 @@ "__index": 40, "id": "page_40", "title": "Considerazioni sulla pittura ", + "short_title": "41 Mancini: Pittura", "type": "image", "tag_0": 1, "tag_1": 2, @@ -1425,6 +1514,7 @@ "__index": 41, "id": "page_41", "title": "<i>Mancini's Caratteri / Warburg's Atlas</i>", + "short_title": "42 Stankievech: Mancini / Warburg", "type": "image", "tag_0": 1, "tag_1": 7, @@ -1459,6 +1549,7 @@ "__index": 42, "id": "page_42", "title": "Letter to Nicolas-Claude Fabri De Peiresc", + "short_title": "43 Ruebens to Nicolas-Claude ", "type": "image", "tag_0": 1, "tag_1": 2, @@ -1500,6 +1591,7 @@ "__index": 43, "id": "page_43", "title": "<i>The Purloined Letter</i>", + "short_title": "44 Poe: Purloined Letter", "type": "image", "tag_0": 9, "tag_1": 11, @@ -1695,6 +1787,7 @@ "__index": 44, "id": "page_44", "title": "<i>Seminar on The Purloined Letter </i>", + "short_title": "45 Lacan: Purloined Letter", "type": "image", "tag_0": 3, "tag_1": 5, @@ -1764,6 +1857,7 @@ "__index": 45, "id": "page_45", "title": "<i>Zinoviev Letter </i>", + "short_title": "46 MI6: Zinoviev Letter", "type": "image", "tag_0": 9, "tag_1": 11, @@ -1812,6 +1906,7 @@ "__index": 46, "id": "page_46", "title": "<i>Vienna Convention On Diplomatic Relations</i>", + "short_title": "47 UN: Vienna Convention", "type": "image", "tag_0": 1, "tag_1": 3, @@ -1846,8 +1941,8 @@ "type": "jpg" } ], - "citation": "<b>
</b>1961<br>\nDocument <br>\n21.5 x 27.9<br>\nCourtesy the United Nations <br>\n <br>\nIn 1625, Hugo Grotius collected the thoughts of his predecessors together with his own to publish <i>On the Law of War and Peace</i>, which earned him the colloquial title of the father of International Law. Grotius essentially proposed that international society should be governed by mutual agreements and laws rather than by the force of warfare. A key concept in the manuscript is the idea of exterritoriality—or diplomatic immunity—for ambassadors while travelling in foreign states. It follows that, if the role of the ambassador is to maintain clear communication—especially during trying situations—the means of communication must also be clear, and confidential, between the ambassador abroad and the sovereign home state. Various acts and statutes have attempted to legalize reciprocal understanding between nations, but current law is based upon the Vienna Convention on Diplomatic Relations, ratified in 1961 by the member states of the United Nations. Article 27 of the treaty outlines, in purposefully vague terms, the inviolability of the diplomatic bag, which must not be opened nor delayed, as an essential component of healthy international relations. While not explicitly stated in the treaty, it is almost universally acknowledged that x-raying such a bag would violate the intention of the law, and so as a general rule is not conducted. A year after discovering painting <i>no6092</i>, the second world war interrupted Anthony Blunt’s academic life. Among Blunt’s portfolio of tasks as a spy during the war was the development and management of espionage unit Operation XXX, or TripleX. It would seem Blunt shifted his analysis of pouches-in-paintings to the analysis of pouches-in-politics. Blunt’s XXX program devised a method for the secret interception of diplomatic pouches, which are supposed to have immunity from police and Custom officers’ search and seizure rights while in transit. <br>\n", - "description": "", + "citation": "<b>
</b>1961<br>\nDocument <br>\n21.5 x 27.9<br>\nCourtesy the United Nations <br>\n", + "description": "<p>\nIn 1625, Hugo Grotius collected the thoughts of his predecessors together with his own to publish <i>On the Law of War and Peace</i>, which earned him the colloquial title of the father of International Law. Grotius essentially proposed that international society should be governed by mutual agreements and laws rather than by the force of warfare. A key concept in the manuscript is the idea of exterritoriality—or diplomatic immunity—for ambassadors while travelling in foreign states. It follows that, if the role of the ambassador is to maintain clear communication—especially during trying situations—the means of communication must also be clear, and confidential, between the ambassador abroad and the sovereign home state. Various acts and statutes have attempted to legalize reciprocal understanding between nations, but current law is based upon the Vienna Convention on Diplomatic Relations, ratified in 1961 by the member states of the United Nations. Article 27 of the treaty outlines, in purposefully vague terms, the inviolability of the diplomatic bag, which must not be opened nor delayed, as an essential component of healthy international relations. While not explicitly stated in the treaty, it is almost universally acknowledged that x-raying such a bag would violate the intention of the law, and so as a general rule is not conducted. A year after discovering painting <i>no6092</i>, the second world war interrupted Anthony Blunt’s academic life. Among Blunt’s portfolio of tasks as a spy during the war was the development and management of espionage unit Operation XXX, or TripleX. It would seem Blunt shifted his analysis of pouches-in-paintings to the analysis of pouches-in-politics. Blunt’s XXX program devised a method for the secret interception of diplomatic pouches, which are supposed to have immunity from police and Custom officers’ search and seizure rights while in transit. \n</p>\n\n", "author": "UNITED NATIONS ", "thumbnail": { "uri": "assets/data_store/47-UN/47-UN-thumb.jpg", @@ -1860,6 +1955,8 @@ { "__index": 47, "id": "page_47", + "title": "Key to Wittgensteinhaus ", + "short_title": "48 Wittgenstein Key", "type": "video", "tag_0": 9, "tag_1": 11, @@ -1870,7 +1967,16 @@ "tag_6": 0, "tag_7": 0, "tag_8": 0, - "images": [], + "images": [ + { + "type": "video", + "caption": "", + "uri": "https://vimeo.com/590328604" + } + ], + "citation": "1926-28 <br>\n7.5 × 3.0 × 0.5 cm <br>\nPrivate Collection <br>\n", + "description": "<p>\n‘What we cannot speak about we must pass over in silence’, wrote Ludwig Wittgenstein at the end of his major treatise, <i>Tractatus Logico-Philosophicus </i>(1921). He later went on to develop his theory of language games, published posthumously in <i>Philosophical Investigations</i> (1953). In between formulating his two major treatises, Wittgenstein built his sister’s house in Vienna from 1926-28. A Gesamtkunstwerk, the house was entirely designed by Wittgenstein, from the master plan down to door handles and locks. Metaphorically, the key to the passage from a logical ordering and picture of the world as seen in the blueprint of the <i>Tractatus</i> to the pragmatic navigation of language games is literally the key to the Haus Wittgenstein— that small object whose purpose is to open and close spaces, lock and unlock social engagements. Arthur Danto in 1964 used Wittgenstein’s theory of language games in his seminal essay \"The Artworld.\" Arguing for an ‘interpretive model’ of aesthetics, a transcendent concept of art is pulled out of the museum and back into the world of the artefact; or inversely, as Alfred Gell asked in his anthropological essay \"Vogel’s Net,\" why not consider hunting traps as conceptual art? Danto ends his classic essay by defining the value of this new useful art, and in doing so he returns to the classic tale of Hamlet, and particularly the role of the famous scene in which the play-within-the-play is revealed as a mousetrap designed to catch his uncle. Here art is a play, a dangerous game, Danto argues, where \"as a mirror held up to nature, [it] might serve to catch the conscience of our kings.\" Today the most important keys are not to our houses; rather, they are the ones that lock and unlock our virtual lives: bank accounts, email, computers, social networks. Such keys reduce our language games down to single civilian passwords that define our subjectivity in direct contrast to the single key search terms typed by NSA officers. The social network exhibitionist versus the dragnet of an overzealous intelligence machine. \n</p>\n\n", + "author": "LUDWIG WITTGENSTEIN ", "threeObject": { "path": "data_store/48-Wittgenstein/", "file": "Charles_Key.obj" @@ -1880,6 +1986,7 @@ "__index": 48, "id": "page_48", "title": "<i>no6092: The Purloined Letter </i>", + "short_title": "49 Stankievech: Purloined Letter", "type": "video", "tag_0": 7, "tag_1": 11, @@ -1911,6 +2018,7 @@ "__index": 49, "id": "page_49", "title": "<b>The Luxembourg Freeport: The Instruction Manual </b>", + "short_title": "50 Arendt: Freeport ", "type": "image", "tag_0": 11, "tag_1": 0, @@ -40,6 +40,7 @@ var app = okcms page: { id: { type: "string", hidden: true }, title: { type: "string" }, + short_title: { type: "string" }, author: { type: "string" }, type: { type: "enum", options: ["image", "video", "3d"] }, citation: { type: "text" }, diff --git a/load_spreadsheet.js b/load_spreadsheet.js index 689b9d8..acfdd35 100644 --- a/load_spreadsheet.js +++ b/load_spreadsheet.js @@ -42,6 +42,7 @@ async function main() { __index: index, id: "page_" + index, title: row.Title, + short_title: row.Title, type: "image", }; // loop over the tags... diff --git a/public/assets/css/css.css b/public/assets/css/css.css index fc05db2..590e530 100644 --- a/public/assets/css/css.css +++ b/public/assets/css/css.css @@ -25,14 +25,14 @@ body { position: absolute; bottom: 0; left: 0; - font-size: 1rem; - line-height: 1.25; + font-size: 0.75rem; + line-height: 1.75; padding: 1rem; margin: 1rem 2rem; background: rgba(0, 0, 0, 0.5); color: #fff; transition: opacity 0.2s; - text-transform: lowercase; + text-transform: uppercase; font-variant: small-caps; } .legend .category { diff --git a/src/graph.js b/src/graph.js index 880caab..84d9d79 100644 --- a/src/graph.js +++ b/src/graph.js @@ -6,9 +6,13 @@ import { randint, choice, pad } from "./utils/index.js"; const IMG_SCALE = 16; const MAIN_IMG_SCALE = 80; +const PAINTING_SCALE = 30; +const VIDEO_SCALE = 40; const OBJECT_SCALE = 10; -export default function buildGraph({ db, objects, handlers }) { +const PAINTINGS = new Set([2, 10, 21, 22, 23, 24, 27, 40, 42]); + +export default function buildGraph({ db, handlers }) { const linkable = {}; const groups = {}; const data = { nodes: [], links: [] }; @@ -21,7 +25,7 @@ export default function buildGraph({ db, objects, handlers }) { db.page.forEach((item, index) => { const node = { - title: pad(index + 1) + " " + item.title, + title: item.short_title, id: index, data: item, groups: [], @@ -77,6 +81,7 @@ export default function buildGraph({ db, objects, handlers }) { const highlightNodes = new Set(); const highlightLinks = new Set(); let selectedNode = null; + const objects = []; /** build group */ @@ -88,6 +93,7 @@ export default function buildGraph({ db, objects, handlers }) { .nodeThreeObject((node) => { let sprite, material, texture, video; if (node.data.object) { + objects.push({ id: node.id, object: node.data.object }); const object = node.data.object; var box = new THREE.Box3().setFromObject(object); var center = new THREE.Vector3(); @@ -96,7 +102,8 @@ export default function buildGraph({ db, objects, handlers }) { object.scale.set(OBJECT_SCALE, OBJECT_SCALE, OBJECT_SCALE); return object; } else if (node.data.thumbnail?.uri) { - if (node.data.thumbnail.type === "video") { + const isVideo = node.data.thumbnail.type === "video"; + if (isVideo) { video = document.createElement("video"); video.src = node.data.thumbnail.uri; video.muted = true; @@ -113,6 +120,10 @@ export default function buildGraph({ db, objects, handlers }) { sprite = new THREE.Sprite(material); if (node.id === 0) { sprite.scale.set(MAIN_IMG_SCALE, MAIN_IMG_SCALE / aspect); + } else if (PAINTINGS.has(node.id + 1)) { + sprite.scale.set(PAINTING_SCALE, PAINTING_SCALE / aspect); + } else if (isVideo) { + sprite.scale.set(VIDEO_SCALE, VIDEO_SCALE / aspect); } else { sprite.scale.set(IMG_SCALE, IMG_SCALE / aspect); } @@ -145,10 +156,16 @@ export default function buildGraph({ db, objects, handlers }) { }) .linkWidth((link) => (highlightLinks.has(link) ? 4 : 1)); - // TrackballControls graph.controls().addEventListener("change", () => { - const position = graph.cameraPosition(); - // console.log(position); + const quaternion = graph.camera().quaternion; + const { axis, angle } = getAxisAndAngelFromQuaternion(quaternion); + objects.forEach(({ id, object }) => { + object.setRotationFromQuaternion(quaternion); + // the clock object is turned 90 degrees + if (id === 32) { + object.rotateY(Math.PI / 2); + } + }); }); const updateHighlight = () => { @@ -237,4 +254,18 @@ export default function buildGraph({ db, objects, handlers }) { // stars(); } +function getAxisAndAngelFromQuaternion(q) { + const angle = 2 * Math.acos(q.w); + var s; + if (1 - q.w * q.w < 0.000001) { + // test to avoid divide by zero, s is always positive due to sqrt + // if s close to zero then direction of axis not important + // http://www.euclideanspace.com/maths/geometry/rotations/conversions/quaternionToAngle/ + s = 1; + } else { + s = Math.sqrt(1 - q.w * q.w); + } + return { axis: new THREE.Vector3(q.x / s, q.y / s, q.z / s), angle }; +} + const commonGroups = (a, b) => union(a.groups, b.groups); diff --git a/src/views/Detail.js b/src/views/Detail.js index 70f4561..772abb1 100644 --- a/src/views/Detail.js +++ b/src/views/Detail.js @@ -50,6 +50,9 @@ export default function Detail({ node, visible, onClose }) { video={data.images[0].uri.replace("player.", "")} autoplay loop + showByline={false} + showPortrait={false} + showTitle={false} /> </div> ) diff --git a/src/views/Gallery.js b/src/views/Gallery.js index ec1b234..e2652df 100644 --- a/src/views/Gallery.js +++ b/src/views/Gallery.js @@ -19,18 +19,18 @@ export default function Gallery({ images, visible }) { function previous() { setOpacity(0); - setTimeout(() => setIndex(Math.max(0, index - 1)), 100); + setTimeout(() => setIndex(mod(index - 1, images.length)), 200); // setTimeout(() => setOpacity(1), 500); } function next() { setOpacity(0); - setTimeout(() => setIndex(Math.min(images.length - 1, index + 1)), 100); + setTimeout(() => setIndex(mod(index + 1, images.length)), 200); // setTimeout(() => setOpacity(1), 500); } function nextOrWrap() { if (oneItem) return; setOpacity(0); - setTimeout(() => setIndex(mod(index + 1, images.length)), 100); + setTimeout(() => setIndex(mod(index + 1, images.length)), 200); // setTimeout(() => setOpacity(1), 500); } function appear() { @@ -1,5 +1,8 @@ #!/bin/bash +# build js +yarn build:production + # sync local to remote rsync -rlptuvz data_store/ lens@garden:no6092/data_store/ scp public/assets/js/bundle.js* lens@garden:no6092/public/assets/js/ |
